X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=GHC%2FGenerics.hs;h=c1b962de36746babe0c0adad83fdb29f6b91e4e1;hb=0d734fe962945f7e8943043d19cda70e7d4137c4;hp=d2170d98e23ba6493c34c12bfcd67e53e9ca77d2;hpb=42469bcdc57991e0e64f25b2efb52e7f20a98c30;p=ghc-prim.git diff --git a/GHC/Generics.hs b/GHC/Generics.hs index d2170d9..c1b962d 100644 --- a/GHC/Generics.hs +++ b/GHC/Generics.hs @@ -20,6 +20,7 @@ data (:*:) a b = a :*: b {-# OPTIONS_GHC -XTypeSynonymInstances #-} {-# OPTIONS_GHC -XTypeOperators #-} {-# OPTIONS_GHC -XKindSignatures #-} +{-# OPTIONS_GHC -XFunctionalDependencies #-} module GHC.Generics ( -- * Generic representation types @@ -34,9 +35,6 @@ module GHC.Generics ( , Datatype(..), Constructor(..), Selector(..), NoSelector , Fixity(..), Associativity(..), Arity(..), prec - -- * Representation type families - , Rep0, Rep1 - -- * Representable type classes , Representable0(..), Representable1(..) @@ -174,18 +172,18 @@ data Associativity = LeftAssociative -- | Representable types of kind * -class Representable0 a rep where +class Representable0 a rep | a -> rep where -- | Convert from the datatype to its representation - from0 :: a -> Rep0 a x + from0 :: a -> rep x -- | Convert from the representation to the datatype - to0 :: Rep0 a x -> a + to0 :: rep x -> a -- | Representable types of kind * -> * -class Representable1 f rep where +class Representable1 f rep | f -> rep where -- | Convert from the datatype to its representation - from1 :: f a -> Rep1 f a + from1 :: f a -> rep a -- | Convert from the representation to the datatype - to1 :: Rep1 f a -> f a + to1 :: rep a -> f a -------------------------------------------------------------------------------- -- Representation for base types