From: jpm@cs.uu.nl Date: Thu, 6 Jan 2011 15:49:20 +0000 (+0000) Subject: Use functional dependencies. X-Git-Tag: ghc-darcs-git-switchover~2 X-Git-Url: http://git.megacz.com/?p=ghc-prim.git;a=commitdiff_plain;h=0d734fe962945f7e8943043d19cda70e7d4137c4 Use functional dependencies. --- 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