From 0d734fe962945f7e8943043d19cda70e7d4137c4 Mon Sep 17 00:00:00 2001 From: "jpm@cs.uu.nl" Date: Thu, 6 Jan 2011 15:49:20 +0000 Subject: [PATCH] Use functional dependencies. --- GHC/Generics.hs | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) 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 -- 1.7.10.4