packages feed

RepLib 0.5.3.3 → 0.5.3.4

raw patch · 10 files changed

+179/−145 lines, 10 filesdep +transformersdep ~template-haskellnew-uploaderPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies added: transformers

Dependency ranges changed: template-haskell

API changes (from Hackage documentation)

- Generics.RepLib.AbstractReps: instance (Rep k0, Rep a0) => Rep (Map k0 a0)
- Generics.RepLib.AbstractReps: instance (Rep k0, Rep a0) => Rep1 ctx0 (Map k0 a0)
- Generics.RepLib.AbstractReps: instance Rep a0 => Rep (Set a0)
- Generics.RepLib.AbstractReps: instance Rep a0 => Rep1 ctx0 (Set a0)
- Generics.RepLib.Derive: instance Applicative QN
- Generics.RepLib.Derive: instance Functor QN
- Generics.RepLib.Derive: instance Monad QN
- Generics.RepLib.Derive: instance MonadWriter (Set Int) QN
- Generics.RepLib.Derive: instance Quasi QN
- Generics.RepLib.Lib: enumerateD :: EnumerateD a -> [a]
- Generics.RepLib.Lib: generateD :: GenerateD a -> Int -> [a]
- Generics.RepLib.Lib: gsumD :: GSumD a -> a -> Int
- Generics.RepLib.Lib: instance (Enumerate a, Enumerate b) => Enumerate (a, b)
- Generics.RepLib.Lib: instance (GSum a, GSum b) => GSum (a, b)
- Generics.RepLib.Lib: instance (Generate a, Generate b) => Generate (a, b)
- Generics.RepLib.Lib: instance (Lreduce c a, Lreduce c b) => Lreduce c (a, b)
- Generics.RepLib.Lib: instance (Ord a, Enumerate a) => Enumerate (Set a)
- Generics.RepLib.Lib: instance (Ord a, Generate a) => Generate (Set a)
- Generics.RepLib.Lib: instance (Ord a, Lreduce b a) => Lreduce b (Set a)
- Generics.RepLib.Lib: instance (Ord a, Rreduce b a) => Rreduce b (Set a)
- Generics.RepLib.Lib: instance (Ord a, Shrink a) => Shrink (Set a)
- Generics.RepLib.Lib: instance (Ord k, Enumerate k, Enumerate a) => Enumerate (Map k a)
- Generics.RepLib.Lib: instance (Ord k, Generate k, Generate a) => Generate (Map k a)
- Generics.RepLib.Lib: instance (Ord k, Shrink k, Shrink a) => Shrink (Map k a)
- Generics.RepLib.Lib: instance (Rep k, GSum a) => GSum (Map k a)
- Generics.RepLib.Lib: instance (Rep k, Rep a) => Zero (Map k a)
- Generics.RepLib.Lib: instance (Rreduce c a, Rreduce c b) => Rreduce c (a, b)
- Generics.RepLib.Lib: instance (Shrink a, Shrink b) => Shrink (a, b)
- Generics.RepLib.Lib: instance (Zero a, Zero b) => Zero (a -> b)
- Generics.RepLib.Lib: instance (Zero a, Zero b) => Zero (a, b)
- Generics.RepLib.Lib: instance Applicative M
- Generics.RepLib.Lib: instance Enumerate ()
- Generics.RepLib.Lib: instance Enumerate Bool
- Generics.RepLib.Lib: instance Enumerate Char
- Generics.RepLib.Lib: instance Enumerate Double
- Generics.RepLib.Lib: instance Enumerate Float
- Generics.RepLib.Lib: instance Enumerate Int
- Generics.RepLib.Lib: instance Enumerate Integer
- Generics.RepLib.Lib: instance Enumerate a => Enumerate [a]
- Generics.RepLib.Lib: instance Enumerate a => Sat (EnumerateD a)
- Generics.RepLib.Lib: instance Fold (Map k)
- Generics.RepLib.Lib: instance Fold Set
- Generics.RepLib.Lib: instance Fold []
- Generics.RepLib.Lib: instance Functor M
- Generics.RepLib.Lib: instance GSum ()
- Generics.RepLib.Lib: instance GSum Bool
- Generics.RepLib.Lib: instance GSum Char
- Generics.RepLib.Lib: instance GSum Double
- Generics.RepLib.Lib: instance GSum Float
- Generics.RepLib.Lib: instance GSum Int
- Generics.RepLib.Lib: instance GSum Integer
- Generics.RepLib.Lib: instance GSum a => GSum (Set a)
- Generics.RepLib.Lib: instance GSum a => GSum [a]
- Generics.RepLib.Lib: instance GSum a => Sat (GSumD a)
- Generics.RepLib.Lib: instance Generate ()
- Generics.RepLib.Lib: instance Generate Char
- Generics.RepLib.Lib: instance Generate Double
- Generics.RepLib.Lib: instance Generate Float
- Generics.RepLib.Lib: instance Generate Int
- Generics.RepLib.Lib: instance Generate Integer
- Generics.RepLib.Lib: instance Generate a => Generate [a]
- Generics.RepLib.Lib: instance Generate a => Sat (GenerateD a)
- Generics.RepLib.Lib: instance Lreduce b ()
- Generics.RepLib.Lib: instance Lreduce b Bool
- Generics.RepLib.Lib: instance Lreduce b Char
- Generics.RepLib.Lib: instance Lreduce b Int
- Generics.RepLib.Lib: instance Lreduce b a => Sat (LreduceD b a)
- Generics.RepLib.Lib: instance Lreduce c a => Lreduce c [a]
- Generics.RepLib.Lib: instance Monad M
- Generics.RepLib.Lib: instance Rep a => Zero (Set a)
- Generics.RepLib.Lib: instance Rreduce b ()
- Generics.RepLib.Lib: instance Rreduce b Bool
- Generics.RepLib.Lib: instance Rreduce b Char
- Generics.RepLib.Lib: instance Rreduce b Int
- Generics.RepLib.Lib: instance Rreduce b a => Sat (RreduceD b a)
- Generics.RepLib.Lib: instance Rreduce c a => Rreduce c [a]
- Generics.RepLib.Lib: instance Shrink ()
- Generics.RepLib.Lib: instance Shrink Char
- Generics.RepLib.Lib: instance Shrink Int
- Generics.RepLib.Lib: instance Shrink a => Sat (ShrinkD a)
- Generics.RepLib.Lib: instance Shrink a => Shrink [a]
- Generics.RepLib.Lib: instance Zero ()
- Generics.RepLib.Lib: instance Zero Bool
- Generics.RepLib.Lib: instance Zero Char
- Generics.RepLib.Lib: instance Zero Double
- Generics.RepLib.Lib: instance Zero Float
- Generics.RepLib.Lib: instance Zero IOError
- Generics.RepLib.Lib: instance Zero Int
- Generics.RepLib.Lib: instance Zero Integer
- Generics.RepLib.Lib: instance Zero a => Sat (ZeroD a)
- Generics.RepLib.Lib: instance Zero a => Zero [a]
- Generics.RepLib.Lib: lreduceD :: LreduceD b a -> b -> a -> b
- Generics.RepLib.Lib: rreduceD :: RreduceD b a -> a -> b -> b
- Generics.RepLib.Lib: shrinkD :: ShrinkD a -> a -> [a]
- Generics.RepLib.Lib: zeroD :: ZeroD a -> a
- Generics.RepLib.PreludeLib: instance Bounded a => Sat (BoundedD a)
- Generics.RepLib.PreludeLib: instance Eq a => Sat (EqD a)
- Generics.RepLib.PreludeLib: instance Ord a => Sat (OrdD a)
- Generics.RepLib.PreludeLib: instance Show a => Sat (ShowD a)
- Generics.RepLib.PreludeReps: instance (Rep a0, Rep b0) => Rep (Either a0 b0)
- Generics.RepLib.PreludeReps: instance (Rep a0, Rep b0, Rep c0) => Rep (a0, b0, c0)
- Generics.RepLib.PreludeReps: instance (Rep a0, Rep b0, Rep c0, Rep d0) => Rep (a0, b0, c0, d0)
- Generics.RepLib.PreludeReps: instance (Rep a0, Rep b0, Rep c0, Rep d0, Rep e0) => Rep (a0, b0, c0, d0, e0)
- Generics.RepLib.PreludeReps: instance (Rep a0, Rep b0, Rep c0, Rep d0, Rep e0, Rep f0) => Rep (a0, b0, c0, d0, e0, f0)
- Generics.RepLib.PreludeReps: instance (Rep a0, Rep b0, Rep c0, Rep d0, Rep e0, Rep f0, Rep g0) => Rep (a0, b0, c0, d0, e0, f0, g0)
- Generics.RepLib.PreludeReps: instance (Rep a0, Rep b0, Rep c0, Rep d0, Rep e0, Rep f0, Rep g0, Sat (ctx0 a0), Sat (ctx0 b0), Sat (ctx0 c0), Sat (ctx0 d0), Sat (ctx0 e0), Sat (ctx0 f0), Sat (ctx0 g0)) => Rep1 ctx0 (a0, b0, c0, d0, e0, f0, g0)
- Generics.RepLib.PreludeReps: instance (Rep a0, Rep b0, Rep c0, Rep d0, Rep e0, Rep f0, Sat (ctx0 a0), Sat (ctx0 b0), Sat (ctx0 c0), Sat (ctx0 d0), Sat (ctx0 e0), Sat (ctx0 f0)) => Rep1 ctx0 (a0, b0, c0, d0, e0, f0)
- Generics.RepLib.PreludeReps: instance (Rep a0, Rep b0, Rep c0, Rep d0, Rep e0, Sat (ctx0 a0), Sat (ctx0 b0), Sat (ctx0 c0), Sat (ctx0 d0), Sat (ctx0 e0)) => Rep1 ctx0 (a0, b0, c0, d0, e0)
- Generics.RepLib.PreludeReps: instance (Rep a0, Rep b0, Rep c0, Rep d0, Sat (ctx0 a0), Sat (ctx0 b0), Sat (ctx0 c0), Sat (ctx0 d0)) => Rep1 ctx0 (a0, b0, c0, d0)
- Generics.RepLib.PreludeReps: instance (Rep a0, Rep b0, Rep c0, Sat (ctx0 a0), Sat (ctx0 b0), Sat (ctx0 c0)) => Rep1 ctx0 (a0, b0, c0)
- Generics.RepLib.PreludeReps: instance (Rep a0, Rep b0, Sat (ctx0 a0), Sat (ctx0 b0)) => Rep1 ctx0 (Either a0 b0)
- Generics.RepLib.PreludeReps: instance (Rep a0, Sat (ctx0 a0)) => Rep1 ctx0 (Maybe a0)
- Generics.RepLib.PreludeReps: instance Rep Bool
- Generics.RepLib.PreludeReps: instance Rep Ordering
- Generics.RepLib.PreludeReps: instance Rep a0 => Rep (Maybe a0)
- Generics.RepLib.PreludeReps: instance Rep1 ctx0 Bool
- Generics.RepLib.PreludeReps: instance Rep1 ctx0 Ordering
- Generics.RepLib.R: fixity :: Emb l a -> Fixity
- Generics.RepLib.R: from :: Emb l a -> a -> Maybe l
- Generics.RepLib.R: instance (Rep a, Rep b) => Rep (a -> b)
- Generics.RepLib.R: instance (Rep a, Rep b) => Rep (a :~: b)
- Generics.RepLib.R: instance (Rep a, Rep b) => Rep (a, b)
- Generics.RepLib.R: instance Eq (R a)
- Generics.RepLib.R: instance Ord (R a)
- Generics.RepLib.R: instance Rep ()
- Generics.RepLib.R: instance Rep Char
- Generics.RepLib.R: instance Rep Double
- Generics.RepLib.R: instance Rep Float
- Generics.RepLib.R: instance Rep IOError
- Generics.RepLib.R: instance Rep Int
- Generics.RepLib.R: instance Rep Integer
- Generics.RepLib.R: instance Rep Rational
- Generics.RepLib.R: instance Rep a => Rep (IO a)
- Generics.RepLib.R: instance Rep a => Rep [a]
- Generics.RepLib.R: instance Show (MTup R l)
- Generics.RepLib.R: instance Show (R a)
- Generics.RepLib.R: instance Show DT
- Generics.RepLib.R: labels :: Emb l a -> Maybe [String]
- Generics.RepLib.R: name :: Emb l a -> String
- Generics.RepLib.R: prec :: Fixity -> Int
- Generics.RepLib.R: to :: Emb l a -> l -> a
- Generics.RepLib.R1: instance (Rep a, Rep b, Sat (ctx a), Sat (ctx b)) => Rep1 ctx (a -> b)
- Generics.RepLib.R1: instance (Rep a, Rep b, Sat (ctx a), Sat (ctx b)) => Rep1 ctx (a :~: b)
- Generics.RepLib.R1: instance (Rep a, Sat (ctx a)) => Rep1 ctx (IO a)
- Generics.RepLib.R1: instance (Rep a, Sat (ctx a), Rep b, Sat (ctx b)) => Rep1 ctx (a, b)
- Generics.RepLib.R1: instance (Rep a, Sat (ctx a), Sat (ctx [a])) => Rep1 ctx [a]
- Generics.RepLib.R1: instance Rep1 ctx ()
- Generics.RepLib.R1: instance Rep1 ctx Char
- Generics.RepLib.R1: instance Rep1 ctx Double
- Generics.RepLib.R1: instance Rep1 ctx Float
- Generics.RepLib.R1: instance Rep1 ctx IOError
- Generics.RepLib.R1: instance Rep1 ctx Int
- Generics.RepLib.R1: instance Rep1 ctx Integer
- Generics.RepLib.R1: instance Rep1 ctx Rational
- Generics.RepLib.R1: instance Show (R1 c a)
- Generics.RepLib.RepAux: instance Eq DT
- Generics.RepLib.RepAux: instance Ord DT
- Generics.RepLib.RepAux: instance TestEquality R
- Generics.RepLib.SYB.Aliases: unGM :: GenericM' m -> forall a. Rep a => a -> m a
- Generics.RepLib.SYB.Aliases: unGQ :: GenericQ' r -> GenericQ r
- Generics.RepLib.SYB.Aliases: unGT :: GenericT' -> forall a. Rep a => a -> a
- Generics.RepLib.SYB.Aliases: unGeneric' :: Generic' c -> Generic c
- Generics.RepLib.Unify: instance [incoherent] (Eq a, HasVar a t, Rep1 (UnifySubD a t) t) => Subst a t t
- Generics.RepLib.Unify: instance [incoherent] (Eq n, HasVar n a, Rep1 (UnifySubD n a) a) => Occurs n a a
- Generics.RepLib.Unify: instance [incoherent] (Eq n, Show n, Show a, HasVar n a, Rep1 (UnifySubD n a) a) => Unify n a a
- Generics.RepLib.Unify: instance [incoherent] (Eq n, Show n, Show a, Show b, HasVar n a, Rep1 (UnifySubD n a) b) => Unify n a b
- Generics.RepLib.Unify: instance [incoherent] (Unify n a b, Subst n a b, Occurs n a b) => Sat (UnifySubD n a b)
- Generics.RepLib.Unify: instance [incoherent] Rep1 (UnifySubD a t) t' => Subst a t t'
- Generics.RepLib.Unify: instance [incoherent] Rep1 (UnifySubD n a) b => Occurs n a b
- Generics.RepLib.Unify: occursCheckD :: UnifySubD n a b -> n -> Proxy a -> b -> Bool
- Generics.RepLib.Unify: substD :: UnifySubD n a b -> n -> a -> b -> b
- Generics.RepLib.Unify: uConstraints :: UnificationState n a -> [UConstraint n a]
- Generics.RepLib.Unify: uSubst :: UnificationState n a -> [(n, a)]
- Generics.RepLib.Unify: unifyStepD :: UnifySubD n a b -> Proxy (n, a) -> b -> b -> UM n a ()
+ Generics.RepLib.AbstractReps: instance (Generics.RepLib.R.Rep k0, Generics.RepLib.R.Rep a0) => Generics.RepLib.R.Rep (Data.Map.Base.Map k0 a0)
+ Generics.RepLib.AbstractReps: instance (Generics.RepLib.R.Rep k0, Generics.RepLib.R.Rep a0) => Generics.RepLib.R1.Rep1 ctx0 (Data.Map.Base.Map k0 a0)
+ Generics.RepLib.AbstractReps: instance Generics.RepLib.R.Rep a0 => Generics.RepLib.R.Rep (Data.Set.Base.Set a0)
+ Generics.RepLib.AbstractReps: instance Generics.RepLib.R.Rep a0 => Generics.RepLib.R1.Rep1 ctx0 (Data.Set.Base.Set a0)
+ Generics.RepLib.Derive: instance Control.Monad.Writer.Class.MonadWriter (Data.Set.Base.Set GHC.Types.Int) Generics.RepLib.Derive.QN
+ Generics.RepLib.Derive: instance GHC.Base.Applicative Generics.RepLib.Derive.QN
+ Generics.RepLib.Derive: instance GHC.Base.Functor Generics.RepLib.Derive.QN
+ Generics.RepLib.Derive: instance GHC.Base.Monad Generics.RepLib.Derive.QN
+ Generics.RepLib.Derive: instance Language.Haskell.TH.Syntax.Quasi Generics.RepLib.Derive.QN
+ Generics.RepLib.Lib: [enumerateD] :: EnumerateD a -> [a]
+ Generics.RepLib.Lib: [generateD] :: GenerateD a -> Int -> [a]
+ Generics.RepLib.Lib: [gsumD] :: GSumD a -> a -> Int
+ Generics.RepLib.Lib: [lreduceD] :: LreduceD b a -> b -> a -> b
+ Generics.RepLib.Lib: [rreduceD] :: RreduceD b a -> a -> b -> b
+ Generics.RepLib.Lib: [shrinkD] :: ShrinkD a -> a -> [a]
+ Generics.RepLib.Lib: [zeroD] :: ZeroD a -> a
+ Generics.RepLib.Lib: instance (GHC.Classes.Ord a, Generics.RepLib.Lib.Enumerate a) => Generics.RepLib.Lib.Enumerate (Data.Set.Base.Set a)
+ Generics.RepLib.Lib: instance (GHC.Classes.Ord a, Generics.RepLib.Lib.Generate a) => Generics.RepLib.Lib.Generate (Data.Set.Base.Set a)
+ Generics.RepLib.Lib: instance (GHC.Classes.Ord a, Generics.RepLib.Lib.Lreduce b a) => Generics.RepLib.Lib.Lreduce b (Data.Set.Base.Set a)
+ Generics.RepLib.Lib: instance (GHC.Classes.Ord a, Generics.RepLib.Lib.Rreduce b a) => Generics.RepLib.Lib.Rreduce b (Data.Set.Base.Set a)
+ Generics.RepLib.Lib: instance (GHC.Classes.Ord a, Generics.RepLib.Lib.Shrink a) => Generics.RepLib.Lib.Shrink (Data.Set.Base.Set a)
+ Generics.RepLib.Lib: instance (GHC.Classes.Ord k, Generics.RepLib.Lib.Enumerate k, Generics.RepLib.Lib.Enumerate a) => Generics.RepLib.Lib.Enumerate (Data.Map.Base.Map k a)
+ Generics.RepLib.Lib: instance (GHC.Classes.Ord k, Generics.RepLib.Lib.Generate k, Generics.RepLib.Lib.Generate a) => Generics.RepLib.Lib.Generate (Data.Map.Base.Map k a)
+ Generics.RepLib.Lib: instance (GHC.Classes.Ord k, Generics.RepLib.Lib.Shrink k, Generics.RepLib.Lib.Shrink a) => Generics.RepLib.Lib.Shrink (Data.Map.Base.Map k a)
+ Generics.RepLib.Lib: instance (Generics.RepLib.Lib.Enumerate a, Generics.RepLib.Lib.Enumerate b) => Generics.RepLib.Lib.Enumerate (a, b)
+ Generics.RepLib.Lib: instance (Generics.RepLib.Lib.GSum a, Generics.RepLib.Lib.GSum b) => Generics.RepLib.Lib.GSum (a, b)
+ Generics.RepLib.Lib: instance (Generics.RepLib.Lib.Generate a, Generics.RepLib.Lib.Generate b) => Generics.RepLib.Lib.Generate (a, b)
+ Generics.RepLib.Lib: instance (Generics.RepLib.Lib.Lreduce c a, Generics.RepLib.Lib.Lreduce c b) => Generics.RepLib.Lib.Lreduce c (a, b)
+ Generics.RepLib.Lib: instance (Generics.RepLib.Lib.Rreduce c a, Generics.RepLib.Lib.Rreduce c b) => Generics.RepLib.Lib.Rreduce c (a, b)
+ Generics.RepLib.Lib: instance (Generics.RepLib.Lib.Shrink a, Generics.RepLib.Lib.Shrink b) => Generics.RepLib.Lib.Shrink (a, b)
+ Generics.RepLib.Lib: instance (Generics.RepLib.Lib.Zero a, Generics.RepLib.Lib.Zero b) => Generics.RepLib.Lib.Zero (a -> b)
+ Generics.RepLib.Lib: instance (Generics.RepLib.Lib.Zero a, Generics.RepLib.Lib.Zero b) => Generics.RepLib.Lib.Zero (a, b)
+ Generics.RepLib.Lib: instance (Generics.RepLib.R.Rep k, Generics.RepLib.Lib.GSum a) => Generics.RepLib.Lib.GSum (Data.Map.Base.Map k a)
+ Generics.RepLib.Lib: instance (Generics.RepLib.R.Rep k, Generics.RepLib.R.Rep a) => Generics.RepLib.Lib.Zero (Data.Map.Base.Map k a)
+ Generics.RepLib.Lib: instance GHC.Base.Applicative Generics.RepLib.Lib.M
+ Generics.RepLib.Lib: instance GHC.Base.Functor Generics.RepLib.Lib.M
+ Generics.RepLib.Lib: instance GHC.Base.Monad Generics.RepLib.Lib.M
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Enumerate ()
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Enumerate GHC.Integer.Type.Integer
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Enumerate GHC.Types.Bool
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Enumerate GHC.Types.Char
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Enumerate GHC.Types.Double
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Enumerate GHC.Types.Float
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Enumerate GHC.Types.Int
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Enumerate a => Generics.RepLib.Lib.Enumerate [a]
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Enumerate a => Generics.RepLib.R1.Sat (Generics.RepLib.Lib.EnumerateD a)
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Fold (Data.Map.Base.Map k)
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Fold Data.Set.Base.Set
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Fold []
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.GSum ()
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.GSum GHC.Integer.Type.Integer
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.GSum GHC.Types.Bool
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.GSum GHC.Types.Char
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.GSum GHC.Types.Double
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.GSum GHC.Types.Float
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.GSum GHC.Types.Int
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.GSum a => Generics.RepLib.Lib.GSum (Data.Set.Base.Set a)
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.GSum a => Generics.RepLib.Lib.GSum [a]
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.GSum a => Generics.RepLib.R1.Sat (Generics.RepLib.Lib.GSumD a)
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Generate ()
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Generate GHC.Integer.Type.Integer
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Generate GHC.Types.Char
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Generate GHC.Types.Double
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Generate GHC.Types.Float
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Generate GHC.Types.Int
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Generate a => Generics.RepLib.Lib.Generate [a]
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Generate a => Generics.RepLib.R1.Sat (Generics.RepLib.Lib.GenerateD a)
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Lreduce b ()
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Lreduce b GHC.Types.Bool
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Lreduce b GHC.Types.Char
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Lreduce b GHC.Types.Int
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Lreduce b a => Generics.RepLib.R1.Sat (Generics.RepLib.Lib.LreduceD b a)
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Lreduce c a => Generics.RepLib.Lib.Lreduce c [a]
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Rreduce b ()
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Rreduce b GHC.Types.Bool
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Rreduce b GHC.Types.Char
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Rreduce b GHC.Types.Int
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Rreduce b a => Generics.RepLib.R1.Sat (Generics.RepLib.Lib.RreduceD b a)
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Rreduce c a => Generics.RepLib.Lib.Rreduce c [a]
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Shrink ()
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Shrink GHC.Types.Char
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Shrink GHC.Types.Int
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Shrink a => Generics.RepLib.Lib.Shrink [a]
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Shrink a => Generics.RepLib.R1.Sat (Generics.RepLib.Lib.ShrinkD a)
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Zero ()
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Zero GHC.IO.Exception.IOError
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Zero GHC.Integer.Type.Integer
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Zero GHC.Types.Bool
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Zero GHC.Types.Char
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Zero GHC.Types.Double
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Zero GHC.Types.Float
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Zero GHC.Types.Int
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Zero a => Generics.RepLib.Lib.Zero [a]
+ Generics.RepLib.Lib: instance Generics.RepLib.Lib.Zero a => Generics.RepLib.R1.Sat (Generics.RepLib.Lib.ZeroD a)
+ Generics.RepLib.Lib: instance Generics.RepLib.R.Rep a => Generics.RepLib.Lib.Zero (Data.Set.Base.Set a)
+ Generics.RepLib.PreludeLib: instance GHC.Classes.Eq a => Generics.RepLib.R1.Sat (Generics.RepLib.PreludeLib.EqD a)
+ Generics.RepLib.PreludeLib: instance GHC.Classes.Ord a => Generics.RepLib.R1.Sat (Generics.RepLib.PreludeLib.OrdD a)
+ Generics.RepLib.PreludeLib: instance GHC.Enum.Bounded a => Generics.RepLib.R1.Sat (Generics.RepLib.PreludeLib.BoundedD a)
+ Generics.RepLib.PreludeLib: instance GHC.Show.Show a => Generics.RepLib.R1.Sat (Generics.RepLib.PreludeLib.ShowD a)
+ Generics.RepLib.PreludeReps: instance (Generics.RepLib.R.Rep a0, Generics.RepLib.R.Rep b0) => Generics.RepLib.R.Rep (Data.Either.Either a0 b0)
+ Generics.RepLib.PreludeReps: instance (Generics.RepLib.R.Rep a0, Generics.RepLib.R.Rep b0, Generics.RepLib.R.Rep c0) => Generics.RepLib.R.Rep (a0, b0, c0)
+ Generics.RepLib.PreludeReps: instance (Generics.RepLib.R.Rep a0, Generics.RepLib.R.Rep b0, Generics.RepLib.R.Rep c0, Generics.RepLib.R.Rep d0) => Generics.RepLib.R.Rep (a0, b0, c0, d0)
+ Generics.RepLib.PreludeReps: instance (Generics.RepLib.R.Rep a0, Generics.RepLib.R.Rep b0, Generics.RepLib.R.Rep c0, Generics.RepLib.R.Rep d0, Generics.RepLib.R.Rep e0) => Generics.RepLib.R.Rep (a0, b0, c0, d0, e0)
+ Generics.RepLib.PreludeReps: instance (Generics.RepLib.R.Rep a0, Generics.RepLib.R.Rep b0, Generics.RepLib.R.Rep c0, Generics.RepLib.R.Rep d0, Generics.RepLib.R.Rep e0, Generics.RepLib.R.Rep f0) => Generics.RepLib.R.Rep (a0, b0, c0, d0, e0, f0)
+ Generics.RepLib.PreludeReps: instance (Generics.RepLib.R.Rep a0, Generics.RepLib.R.Rep b0, Generics.RepLib.R.Rep c0, Generics.RepLib.R.Rep d0, Generics.RepLib.R.Rep e0, Generics.RepLib.R.Rep f0, Generics.RepLib.R.Rep g0) => Generics.RepLib.R.Rep (a0, b0, c0, d0, e0, f0, g0)
+ Generics.RepLib.PreludeReps: instance (Generics.RepLib.R.Rep a0, Generics.RepLib.R.Rep b0, Generics.RepLib.R.Rep c0, Generics.RepLib.R.Rep d0, Generics.RepLib.R.Rep e0, Generics.RepLib.R.Rep f0, Generics.RepLib.R.Rep g0, Generics.RepLib.R1.Sat (ctx0 a0), Generics.RepLib.R1.Sat (ctx0 b0), Generics.RepLib.R1.Sat (ctx0 c0), Generics.RepLib.R1.Sat (ctx0 d0), Generics.RepLib.R1.Sat (ctx0 e0), Generics.RepLib.R1.Sat (ctx0 f0), Generics.RepLib.R1.Sat (ctx0 g0)) => Generics.RepLib.R1.Rep1 ctx0 (a0, b0, c0, d0, e0, f0, g0)
+ Generics.RepLib.PreludeReps: instance (Generics.RepLib.R.Rep a0, Generics.RepLib.R.Rep b0, Generics.RepLib.R.Rep c0, Generics.RepLib.R.Rep d0, Generics.RepLib.R.Rep e0, Generics.RepLib.R.Rep f0, Generics.RepLib.R1.Sat (ctx0 a0), Generics.RepLib.R1.Sat (ctx0 b0), Generics.RepLib.R1.Sat (ctx0 c0), Generics.RepLib.R1.Sat (ctx0 d0), Generics.RepLib.R1.Sat (ctx0 e0), Generics.RepLib.R1.Sat (ctx0 f0)) => Generics.RepLib.R1.Rep1 ctx0 (a0, b0, c0, d0, e0, f0)
+ Generics.RepLib.PreludeReps: instance (Generics.RepLib.R.Rep a0, Generics.RepLib.R.Rep b0, Generics.RepLib.R.Rep c0, Generics.RepLib.R.Rep d0, Generics.RepLib.R.Rep e0, Generics.RepLib.R1.Sat (ctx0 a0), Generics.RepLib.R1.Sat (ctx0 b0), Generics.RepLib.R1.Sat (ctx0 c0), Generics.RepLib.R1.Sat (ctx0 d0), Generics.RepLib.R1.Sat (ctx0 e0)) => Generics.RepLib.R1.Rep1 ctx0 (a0, b0, c0, d0, e0)
+ Generics.RepLib.PreludeReps: instance (Generics.RepLib.R.Rep a0, Generics.RepLib.R.Rep b0, Generics.RepLib.R.Rep c0, Generics.RepLib.R.Rep d0, Generics.RepLib.R1.Sat (ctx0 a0), Generics.RepLib.R1.Sat (ctx0 b0), Generics.RepLib.R1.Sat (ctx0 c0), Generics.RepLib.R1.Sat (ctx0 d0)) => Generics.RepLib.R1.Rep1 ctx0 (a0, b0, c0, d0)
+ Generics.RepLib.PreludeReps: instance (Generics.RepLib.R.Rep a0, Generics.RepLib.R.Rep b0, Generics.RepLib.R.Rep c0, Generics.RepLib.R1.Sat (ctx0 a0), Generics.RepLib.R1.Sat (ctx0 b0), Generics.RepLib.R1.Sat (ctx0 c0)) => Generics.RepLib.R1.Rep1 ctx0 (a0, b0, c0)
+ Generics.RepLib.PreludeReps: instance (Generics.RepLib.R.Rep a0, Generics.RepLib.R.Rep b0, Generics.RepLib.R1.Sat (ctx0 a0), Generics.RepLib.R1.Sat (ctx0 b0)) => Generics.RepLib.R1.Rep1 ctx0 (Data.Either.Either a0 b0)
+ Generics.RepLib.PreludeReps: instance (Generics.RepLib.R.Rep a0, Generics.RepLib.R1.Sat (ctx0 a0)) => Generics.RepLib.R1.Rep1 ctx0 (GHC.Base.Maybe a0)
+ Generics.RepLib.PreludeReps: instance Generics.RepLib.R.Rep GHC.Types.Bool
+ Generics.RepLib.PreludeReps: instance Generics.RepLib.R.Rep GHC.Types.Ordering
+ Generics.RepLib.PreludeReps: instance Generics.RepLib.R.Rep a0 => Generics.RepLib.R.Rep (GHC.Base.Maybe a0)
+ Generics.RepLib.PreludeReps: instance Generics.RepLib.R1.Rep1 ctx0 GHC.Types.Bool
+ Generics.RepLib.PreludeReps: instance Generics.RepLib.R1.Rep1 ctx0 GHC.Types.Ordering
+ Generics.RepLib.R: [fixity] :: Emb l a -> Fixity
+ Generics.RepLib.R: [from] :: Emb l a -> a -> Maybe l
+ Generics.RepLib.R: [labels] :: Emb l a -> Maybe [String]
+ Generics.RepLib.R: [name] :: Emb l a -> String
+ Generics.RepLib.R: [prec] :: Fixity -> Int
+ Generics.RepLib.R: [to] :: Emb l a -> l -> a
+ Generics.RepLib.R: instance (Generics.RepLib.R.Rep a, Generics.RepLib.R.Rep b) => Generics.RepLib.R.Rep (a -> b)
+ Generics.RepLib.R: instance (Generics.RepLib.R.Rep a, Generics.RepLib.R.Rep b) => Generics.RepLib.R.Rep (a Data.Type.Equality.:~: b)
+ Generics.RepLib.R: instance (Generics.RepLib.R.Rep a, Generics.RepLib.R.Rep b) => Generics.RepLib.R.Rep (a, b)
+ Generics.RepLib.R: instance GHC.Classes.Eq (Generics.RepLib.R.R a)
+ Generics.RepLib.R: instance GHC.Classes.Ord (Generics.RepLib.R.R a)
+ Generics.RepLib.R: instance GHC.Show.Show (Generics.RepLib.R.MTup Generics.RepLib.R.R l)
+ Generics.RepLib.R: instance GHC.Show.Show (Generics.RepLib.R.R a)
+ Generics.RepLib.R: instance GHC.Show.Show Generics.RepLib.R.DT
+ Generics.RepLib.R: instance Generics.RepLib.R.Rep ()
+ Generics.RepLib.R: instance Generics.RepLib.R.Rep GHC.IO.Exception.IOError
+ Generics.RepLib.R: instance Generics.RepLib.R.Rep GHC.Integer.Type.Integer
+ Generics.RepLib.R: instance Generics.RepLib.R.Rep GHC.Real.Rational
+ Generics.RepLib.R: instance Generics.RepLib.R.Rep GHC.Types.Char
+ Generics.RepLib.R: instance Generics.RepLib.R.Rep GHC.Types.Double
+ Generics.RepLib.R: instance Generics.RepLib.R.Rep GHC.Types.Float
+ Generics.RepLib.R: instance Generics.RepLib.R.Rep GHC.Types.Int
+ Generics.RepLib.R: instance Generics.RepLib.R.Rep a => Generics.RepLib.R.Rep (GHC.Types.IO a)
+ Generics.RepLib.R: instance Generics.RepLib.R.Rep a => Generics.RepLib.R.Rep [a]
+ Generics.RepLib.R1: instance (Generics.RepLib.R.Rep a, Generics.RepLib.R.Rep b, Generics.RepLib.R1.Sat (ctx a), Generics.RepLib.R1.Sat (ctx b)) => Generics.RepLib.R1.Rep1 ctx (a -> b)
+ Generics.RepLib.R1: instance (Generics.RepLib.R.Rep a, Generics.RepLib.R.Rep b, Generics.RepLib.R1.Sat (ctx a), Generics.RepLib.R1.Sat (ctx b)) => Generics.RepLib.R1.Rep1 ctx (a Data.Type.Equality.:~: b)
+ Generics.RepLib.R1: instance (Generics.RepLib.R.Rep a, Generics.RepLib.R1.Sat (ctx a)) => Generics.RepLib.R1.Rep1 ctx (GHC.Types.IO a)
+ Generics.RepLib.R1: instance (Generics.RepLib.R.Rep a, Generics.RepLib.R1.Sat (ctx a), Generics.RepLib.R.Rep b, Generics.RepLib.R1.Sat (ctx b)) => Generics.RepLib.R1.Rep1 ctx (a, b)
+ Generics.RepLib.R1: instance (Generics.RepLib.R.Rep a, Generics.RepLib.R1.Sat (ctx a), Generics.RepLib.R1.Sat (ctx [a])) => Generics.RepLib.R1.Rep1 ctx [a]
+ Generics.RepLib.R1: instance GHC.Show.Show (Generics.RepLib.R1.R1 c a)
+ Generics.RepLib.R1: instance Generics.RepLib.R1.Rep1 ctx ()
+ Generics.RepLib.R1: instance Generics.RepLib.R1.Rep1 ctx GHC.IO.Exception.IOError
+ Generics.RepLib.R1: instance Generics.RepLib.R1.Rep1 ctx GHC.Integer.Type.Integer
+ Generics.RepLib.R1: instance Generics.RepLib.R1.Rep1 ctx GHC.Real.Rational
+ Generics.RepLib.R1: instance Generics.RepLib.R1.Rep1 ctx GHC.Types.Char
+ Generics.RepLib.R1: instance Generics.RepLib.R1.Rep1 ctx GHC.Types.Double
+ Generics.RepLib.R1: instance Generics.RepLib.R1.Rep1 ctx GHC.Types.Float
+ Generics.RepLib.R1: instance Generics.RepLib.R1.Rep1 ctx GHC.Types.Int
+ Generics.RepLib.RepAux: instance Data.Type.Equality.TestEquality Generics.RepLib.R.R
+ Generics.RepLib.RepAux: instance GHC.Classes.Eq Generics.RepLib.R.DT
+ Generics.RepLib.RepAux: instance GHC.Classes.Ord Generics.RepLib.R.DT
+ Generics.RepLib.SYB.Aliases: [unGM] :: GenericM' m -> forall a. Rep a => a -> m a
+ Generics.RepLib.SYB.Aliases: [unGQ] :: GenericQ' r -> GenericQ r
+ Generics.RepLib.SYB.Aliases: [unGT] :: GenericT' -> forall a. Rep a => a -> a
+ Generics.RepLib.SYB.Aliases: [unGeneric'] :: Generic' c -> Generic c
+ Generics.RepLib.Unify: [occursCheckD] :: UnifySubD n a b -> n -> Proxy a -> b -> Bool
+ Generics.RepLib.Unify: [substD] :: UnifySubD n a b -> n -> a -> b -> b
+ Generics.RepLib.Unify: [uConstraints] :: UnificationState n a -> [UConstraint n a]
+ Generics.RepLib.Unify: [uSubst] :: UnificationState n a -> [(n, a)]
+ Generics.RepLib.Unify: [unifyStepD] :: UnifySubD n a b -> Proxy (n, a) -> b -> b -> UM n a ()
+ Generics.RepLib.Unify: instance (GHC.Classes.Eq a, Generics.RepLib.Unify.HasVar a t, Generics.RepLib.R1.Rep1 (Generics.RepLib.Unify.UnifySubD a t) t) => Generics.RepLib.Unify.Subst a t t
+ Generics.RepLib.Unify: instance (GHC.Classes.Eq n, GHC.Show.Show n, GHC.Show.Show a, GHC.Show.Show b, Generics.RepLib.Unify.HasVar n a, Generics.RepLib.R1.Rep1 (Generics.RepLib.Unify.UnifySubD n a) b) => Generics.RepLib.Unify.Unify n a b
+ Generics.RepLib.Unify: instance (GHC.Classes.Eq n, GHC.Show.Show n, GHC.Show.Show a, Generics.RepLib.Unify.HasVar n a, Generics.RepLib.R1.Rep1 (Generics.RepLib.Unify.UnifySubD n a) a) => Generics.RepLib.Unify.Unify n a a
+ Generics.RepLib.Unify: instance (GHC.Classes.Eq n, Generics.RepLib.Unify.HasVar n a, Generics.RepLib.R1.Rep1 (Generics.RepLib.Unify.UnifySubD n a) a) => Generics.RepLib.Unify.Occurs n a a
+ Generics.RepLib.Unify: instance (Generics.RepLib.Unify.Unify n a b, Generics.RepLib.Unify.Subst n a b, Generics.RepLib.Unify.Occurs n a b) => Generics.RepLib.R1.Sat (Generics.RepLib.Unify.UnifySubD n a b)
+ Generics.RepLib.Unify: instance Generics.RepLib.R1.Rep1 (Generics.RepLib.Unify.UnifySubD a t) t' => Generics.RepLib.Unify.Subst a t t'
+ Generics.RepLib.Unify: instance Generics.RepLib.R1.Rep1 (Generics.RepLib.Unify.UnifySubD n a) b => Generics.RepLib.Unify.Occurs n a b
- Generics.RepLib: Refl :: (:~:) k a1 a1
+ Generics.RepLib: Refl :: (:~:) k b b
- Generics.RepLib.AbstractReps: rMap :: (Rep k_ajyb, Rep a_ajyc) => R (Map k_ajyb a_ajyc)
+ Generics.RepLib.AbstractReps: rMap :: (Rep k_amZs, Rep a_amZt) => R (Map k_amZs a_amZt)
- Generics.RepLib.AbstractReps: rMap1 :: (Rep k_ajyb, Rep a_ajyc) => R1 ctx_ajyr (Map k_ajyb a_ajyc)
+ Generics.RepLib.AbstractReps: rMap1 :: (Rep k_amZs, Rep a_amZt) => R1 ctx_amZC (Map k_amZs a_amZt)
- Generics.RepLib.AbstractReps: rSet :: Rep a_a6AF => R (Set a_a6AF)
+ Generics.RepLib.AbstractReps: rSet :: Rep a_a9wy => R (Set a_a9wy)
- Generics.RepLib.AbstractReps: rSet1 :: Rep a_a6AF => R1 ctx_ajyF (Set a_a6AF)
+ Generics.RepLib.AbstractReps: rSet1 :: Rep a_a9wy => R1 ctx_amZQ (Set a_a9wy)
- Generics.RepLib.Lib: class Rep1 ShrinkD a => Shrink a where shrink a = subtrees a ++ shrinkStep a where shrinkStep _t = let M _ ts = gmapM1 m a in ts m :: forall b. ShrinkD b -> b -> M b m d x = M x (shrinkD d x)
+ Generics.RepLib.Lib: class (Rep1 ShrinkD a) => Shrink a where shrink a = subtrees a ++ shrinkStep a where shrinkStep _t = let M _ ts = gmapM1 m a in ts m :: forall b. ShrinkD b -> b -> M b m d x = M x (shrinkD d x)
- Generics.RepLib.Lib: class Rep1 ZeroD a => Zero a where zero = zeroR1 rep1
+ Generics.RepLib.Lib: class (Rep1 ZeroD a) => Zero a where zero = zeroR1 rep1
- Generics.RepLib.Lib: gand :: Fold t => t Bool -> Bool
+ Generics.RepLib.Lib: gand :: (Fold t) => t Bool -> Bool
- Generics.RepLib.Lib: gor :: Fold t => t Bool -> Bool
+ Generics.RepLib.Lib: gor :: (Fold t) => t Bool -> Bool
- Generics.RepLib.PreludeReps: rBool1 :: () -> () -> R1 ctx_adcV Bool
+ Generics.RepLib.PreludeReps: rBool1 :: () -> () -> R1 ctx_aglR Bool
- Generics.RepLib.PreludeReps: rEither :: (Rep a_adde, Rep b_addf) => R (Either a_adde b_addf)
+ Generics.RepLib.PreludeReps: rEither :: (Rep a_agma, Rep b_agmb) => R (Either a_agma b_agmb)
- Generics.RepLib.PreludeReps: rEither1 :: (Rep a_adde, Rep b_addf) => ctx_addu a_adde -> ctx_addu b_addf -> R1 ctx_addu (Either a_adde b_addf)
+ Generics.RepLib.PreludeReps: rEither1 :: (Rep a_agma, Rep b_agmb) => ctx_agmk a_agma -> ctx_agmk b_agmb -> R1 ctx_agmk (Either a_agma b_agmb)
- Generics.RepLib.PreludeReps: rMaybe :: Rep a_a2IU => R (Maybe a_a2IU)
+ Generics.RepLib.PreludeReps: rMaybe :: Rep a_a2Zv => R (Maybe a_a2Zv)
- Generics.RepLib.PreludeReps: rMaybe1 :: Rep a_a2IU => () -> ctx_add2 a_a2IU -> R1 ctx_add2 (Maybe a_a2IU)
+ Generics.RepLib.PreludeReps: rMaybe1 :: Rep a_a2Zv => () -> ctx_aglY a_a2Zv -> R1 ctx_aglY (Maybe a_a2Zv)
- Generics.RepLib.PreludeReps: rOrdering1 :: () -> () -> () -> R1 ctx_addL Ordering
+ Generics.RepLib.PreludeReps: rOrdering1 :: () -> () -> () -> R1 ctx_agmB Ordering
- Generics.RepLib.PreludeReps: rTup3_1 :: (Rep a_12, Rep b_13, Rep c_14) => (ctx_addV a_12, ctx_addV b_13, ctx_addV c_14) -> R1 ctx_addV ((,,) a_12 b_13 c_14)
+ Generics.RepLib.PreludeReps: rTup3_1 :: (Rep a_12, Rep b_13, Rep c_14) => (ctx_agmL a_12, ctx_agmL b_13, ctx_agmL c_14) -> R1 ctx_agmL ((,,) a_12 b_13 c_14)
- Generics.RepLib.PreludeReps: rTup4_1 :: (Rep a_12, Rep b_13, Rep c_14, Rep d_15) => (ctx_adee a_12, ctx_adee b_13, ctx_adee c_14, ctx_adee d_15) -> R1 ctx_adee ((,,,) a_12 b_13 c_14 d_15)
+ Generics.RepLib.PreludeReps: rTup4_1 :: (Rep a_12, Rep b_13, Rep c_14, Rep d_15) => (ctx_agn4 a_12, ctx_agn4 b_13, ctx_agn4 c_14, ctx_agn4 d_15) -> R1 ctx_agn4 ((,,,) a_12 b_13 c_14 d_15)
- Generics.RepLib.PreludeReps: rTup5_1 :: (Rep a_12, Rep b_13, Rep c_14, Rep d_15, Rep e_16) => (ctx_adeC a_12, ctx_adeC b_13, ctx_adeC c_14, ctx_adeC d_15, ctx_adeC e_16) -> R1 ctx_adeC ((,,,,) a_12 b_13 c_14 d_15 e_16)
+ Generics.RepLib.PreludeReps: rTup5_1 :: (Rep a_12, Rep b_13, Rep c_14, Rep d_15, Rep e_16) => (ctx_agns a_12, ctx_agns b_13, ctx_agns c_14, ctx_agns d_15, ctx_agns e_16) -> R1 ctx_agns ((,,,,) a_12 b_13 c_14 d_15 e_16)
- Generics.RepLib.PreludeReps: rTup6_1 :: (Rep a_12, Rep b_13, Rep c_14, Rep d_15, Rep e_16, Rep f_17) => (ctx_adf5 a_12, ctx_adf5 b_13, ctx_adf5 c_14, ctx_adf5 d_15, ctx_adf5 e_16, ctx_adf5 f_17) -> R1 ctx_adf5 ((,,,,,) a_12 b_13 c_14 d_15 e_16 f_17)
+ Generics.RepLib.PreludeReps: rTup6_1 :: (Rep a_12, Rep b_13, Rep c_14, Rep d_15, Rep e_16, Rep f_17) => (ctx_agnV a_12, ctx_agnV b_13, ctx_agnV c_14, ctx_agnV d_15, ctx_agnV e_16, ctx_agnV f_17) -> R1 ctx_agnV ((,,,,,) a_12 b_13 c_14 d_15 e_16 f_17)
- Generics.RepLib.PreludeReps: rTup7_1 :: (Rep a_12, Rep b_13, Rep c_14, Rep d_15, Rep e_16, Rep f_17, Rep g_18) => (ctx_adfD a_12, ctx_adfD b_13, ctx_adfD c_14, ctx_adfD d_15, ctx_adfD e_16, ctx_adfD f_17, ctx_adfD g_18) -> R1 ctx_adfD ((,,,,,,) a_12 b_13 c_14 d_15 e_16 f_17 g_18)
+ Generics.RepLib.PreludeReps: rTup7_1 :: (Rep a_12, Rep b_13, Rep c_14, Rep d_15, Rep e_16, Rep f_17, Rep g_18) => (ctx_agot a_12, ctx_agot b_13, ctx_agot c_14, ctx_agot d_15, ctx_agot e_16, ctx_agot f_17, ctx_agot g_18) -> R1 ctx_agot ((,,,,,,) a_12 b_13 c_14 d_15 e_16 f_17 g_18)
- Generics.RepLib.RepAux: fromTupM :: Monad m => (forall a. Rep a => ctx a -> m a) -> MTup ctx l -> m l
+ Generics.RepLib.RepAux: fromTupM :: (Monad m) => (forall a. Rep a => ctx a -> m a) -> MTup ctx l -> m l
- Generics.RepLib.RepAux: gmapQ1 :: Rep1 ctx a => Query1 ctx r -> a -> [r]
+ Generics.RepLib.RepAux: gmapQ1 :: (Rep1 ctx a) => Query1 ctx r -> a -> [r]
- Generics.RepLib.RepAux: gmapT1 :: Rep1 ctx a => Traversal1 ctx -> a -> a
+ Generics.RepLib.RepAux: gmapT1 :: (Rep1 ctx a) => Traversal1 ctx -> a -> a
- Generics.RepLib.RepAux: mapM_l :: Monad m => (forall a. Rep a => ctx a -> a -> m a) -> MTup ctx l -> l -> m l
+ Generics.RepLib.RepAux: mapM_l :: (Monad m) => (forall a. Rep a => ctx a -> a -> m a) -> MTup ctx l -> l -> m l
- Generics.RepLib.Unify: type UM n a b = ErrorT UnifyError (State (UnificationState n a)) b
+ Generics.RepLib.Unify: type UM n a b = ExceptT UnifyError (State (UnificationState n a)) b

Files

Generics/RepLib/Derive.hs view
@@ -28,7 +28,7 @@   module Generics.RepLib.Derive (-	derive, derive_abstract+  derive, derive_abstract ) where  import Generics.RepLib.R@@ -157,9 +157,12 @@ extractParamEqualities tyVars = filterWith extractLHSVars                               . filterWith extractEq   where extractEq :: Pred -> Maybe (Type, Type)-        extractEq (EqualP ty1 ty2)  = Just (ty1, ty2)-        extractEq _                 = Nothing-+#if MIN_VERSION_template_haskell(2,10,0)+        extractEq (AppT (AppT EqualityT ty1) ty2) = Just (ty1, ty2)+#else+        extractEq (EqualP ty1 ty2)                = Just (ty1, ty2)+#endif+        extractEq _                               = Nothing         extractLHSVars (VarT n, t2) | any ((==n) . tyVarBndrName) tyVars = Just (n,t2)         extractLHSVars _            = Nothing         -- Note, assuming here that equalities involving type parameters@@ -280,13 +283,17 @@                      Conc -> [| Data $(repDT nm paramNames)                                      (catMaybes $(return (ListE rcons))) |]                      Abs  -> [| Abstract $(repDT nm paramNames) |]+#if MIN_VERSION_template_haskell(2,10,0)+                  let ctx = map (\p -> AppT (ConT (mkName "Rep")) (VarT p)) paramNames+#else                   let ctx = map (\p -> ClassP (mkName "Rep") [VarT p]) paramNames+#endif                   let rTypeName :: Name                       rTypeName = rName n                       rSig :: Dec                       rSig = SigD rTypeName (ForallT (map PlainTV paramNames)                                                      ctx ((ConT (mkName "R"))-         	                                          `AppT` ty))+                                                          `AppT` ty))                       rType :: Dec                       rType = ValD (VarP rTypeName) (NormalB body) []                   let inst  = InstanceD ctx ((ConT (mkName "Rep")) `AppT` ty)@@ -418,7 +425,11 @@                        Nothing -> VarT a        satInst  = InstanceD+#if MIN_VERSION_template_haskell(2,10,0)+                   (map (\x -> AppT (ConT ''Sat) x) (cpPayloadElts ctxParam))+#else                    (map (ClassP ''Sat . (:[])) (cpPayloadElts ctxParam))+#endif                    satInstHead                    [ValD (VarP dictNm)                          (NormalB (LamE (replicate (length eqs) (ConP 'Refl []))@@ -469,7 +480,11 @@                        Abs  -> return []       r1Ty <- [t| $(conT $ ''R1) $(varT ctx) $(return ty) |]+#if MIN_VERSION_template_haskell(2,10,0)+     let ctxRep = map (\p -> AppT (ConT ''Rep) (VarT p)) paramNames+#else      let ctxRep = map (\p -> ClassP (''Rep) [VarT p]) paramNames+#endif          rSig = SigD rTypeName                   (ForallT                     (map PlainTV (ctx : paramNames))@@ -491,8 +506,13 @@      -- equality proofs      (ctxParams', satClasses) <- genSatClasses ctxParams      let mkCtxRec c = case cpSat c of+#if MIN_VERSION_template_haskell(2,10,0)+                        Nothing    -> map (\x -> AppT (ConT ''Sat) x) (cpPayloadElts c)+                        Just (s,_) -> [foldl AppT (ConT s) (map VarT (cpCtxName c : paramNames))]+#else                         Nothing    -> map (ClassP ''Sat . (:[])) (cpPayloadElts c)                         Just (s,_) -> [ClassP s (map VarT (cpCtxName c : paramNames))]+#endif          ctxRec = nub $ concatMap mkCtxRec ctxParams'          mkDictArg c = case cpSat c of                          Just (_,dn) -> VarE dn@@ -655,7 +675,11 @@ deriveResultCon n c a bs =     ForallC       (map PlainTV bs)+#if MIN_VERSION_template_haskell(2,10,0)+      (map (\x -> AppT (ConT ''Rep) (VarT x)) bs)+#else       (map (ClassP ''Rep . (:[]) . VarT) bs)+#endif       (NormalC (mkName $ "Result" ++ show n)         [(NotStrict, deriveResultEq c a bs)]       )
Generics/RepLib/Lib.hs view
@@ -10,7 +10,6 @@ -- License     :  BSD -- -- Maintainer  :  sweirich@cis.upenn.edu--- Stability   :  experimental -- Portability :  non-portable -- -- A library of type-indexed functions@@ -336,10 +335,10 @@  -- For example -- @ instance Fold [] where---	 foldRight op = rreduceR1 (rList1 (RreduceD { rreduceD = op })---					  (RreduceD { rreduceD = foldRight op }))---	 foldLeft op = lreduceR1 (rList1 (LreduceD  { lreduceD = op })---					 (LreduceD { lreduceD = foldLeft op }))+--    foldRight op = rreduceR1 (rList1 (RreduceD { rreduceD = op })+--                             (RreduceD { rreduceD = foldRight op }))+--    foldLeft op = lreduceR1 (rList1 (LreduceD  { lreduceD = op })+--                            (LreduceD { lreduceD = foldLeft op })) -- @  instance Rreduce b a => Sat (RreduceD b a) where@@ -382,8 +381,8 @@ -- | All of the functions below are defined using instances -- of the following class class Fold f where-	 foldRight :: Rep a => (a -> b -> b) -> f a -> b -> b-	 foldLeft  :: Rep a => (b -> a -> b) -> b -> f a -> b+  foldRight :: Rep a => (a -> b -> b) -> f a -> b -> b+  foldLeft  :: Rep a => (b -> a -> b) -> b -> f a -> b  -- | Fold a bindary operation left over a datastructure crush      :: (Rep a, Fold t) => (a -> a -> a) -> a -> t a -> a@@ -432,14 +431,14 @@   instance Fold [] where-	 foldRight op = rreduceR1 (rList1 (RreduceD { rreduceD = op })-					  (RreduceD { rreduceD = foldRight op }))-	 foldLeft op = lreduceR1 (rList1 (LreduceD  { lreduceD = op })-					 (LreduceD { lreduceD = foldLeft op }))+  foldRight op = rreduceR1 (rList1 (RreduceD { rreduceD = op })+                           (RreduceD { rreduceD = foldRight op }))+  foldLeft op = lreduceR1 (rList1 (LreduceD  { lreduceD = op })+                          (LreduceD { lreduceD = foldLeft op }))  instance Fold Set where-	 foldRight op x b = foldRight op (Set.toList x) b-	 foldLeft op b x = foldLeft op b (Set.toList x)+  foldRight op x b = foldRight op (Set.toList x) b+  foldLeft op b x = foldLeft op b (Set.toList x)  instance Fold (Map k) where   foldRight op x b = foldRight op (Map.elems x) b
Generics/RepLib/PreludeLib.hs view
@@ -36,7 +36,7 @@ --   > --   > instance Show T where --   >   showsPrec = showsPrecR1 rep1   -- showsPrecR1 is defined in this module-													 --+-- --  * This library also serves as a model for generic functions that are -- slight modifications to these prelude operations. For example, if you -- wanted to define reverse lexicographic ordering or an XML pretty@@ -153,14 +153,14 @@ data ShowD a = ShowD { showsPrecD :: Int -> a -> ShowS }  instance Show a => Sat (ShowD a) where-	 dict = ShowD { showsPrecD = showsPrec }+  dict = ShowD { showsPrecD = showsPrec }  getFixity :: Emb a b -> Int getFixity c = case fixity c of-				    Nonfix   -> 0-				    Infix  i -> i-				    Infixl i -> i-				    Infixr i -> i+               Nonfix   -> 0+               Infix  i -> i+               Infixl i -> i+               Infixr i -> i  -- | Minimal completion of the show class showsPrecR1 :: R1 ShowD a ->@@ -168,13 +168,13 @@                a    -> -- value to be shown                ShowS showsPrecR1 (Data1 (DT _ _) cons) = \p v ->-	case (findCon cons v) of+    case (findCon cons v) of       Val c rec kids ->           case (labels c) of             Just labs -> par $ showString (name c) .                                showString "{" .-	 		       showRecord rec kids labs .-			       showString "}"+                               showRecord rec kids labs .+                               showString "}"             Nothing   -> par $ showString (name c) .                                maybespace .                                showKids rec kids@@ -191,7 +191,7 @@                 showRecord (r :+: rs) (a :*: aa) (l : ls) =                     showString l . ('=':) . showKid r a . showString (", ") . showRecord rs aa ls                 showRecord _ _ _ = error ("Incorrect representation: " ++-				          "wrong number of labels in record type")+                                          "wrong number of labels in record type")                  showKids :: MTup ShowD l -> l -> ShowS                 showKids MNil Nil = id
Generics/RepLib/R.hs view
@@ -139,7 +139,7 @@ rUnitEmb :: Emb Nil () rUnitEmb = Emb { to = \Nil -> (),                  from = \() -> Just Nil,-			        labels = Nothing,+                 labels = Nothing,                  name = "()",                  fixity = Nonfix } @@ -156,7 +156,7 @@  rTup2 :: forall a b. (Rep a, Rep b) => R (a,b) rTup2 = let args =  ((rep :: R a) :+: (rep :: R b) :+: MNil) in-			Data (DT "(,)" args) [ Con rPairEmb args ]+            Data (DT "(,)" args) [ Con rPairEmb args ]  rPairEmb :: Emb (a :*: b :*: Nil) (a,b) rPairEmb =@@ -179,7 +179,7 @@                            []    -> Just Nil,                   labels = Nothing,                   name = "[]",-		  fixity = Nonfix+                  fixity = Nonfix                  }  rConsEmb :: Emb (a :*: [a] :*: Nil) [a]@@ -191,7 +191,7 @@                     []        -> Nothing,             labels = Nothing,             name = ":",-	    fixity = Nonfix -- ???+            fixity = Nonfix -- ???           }  instance Rep a => Rep [a] where
Generics/RepLib/RepAux.hs view
@@ -280,8 +280,9 @@ gmapQ :: forall a r. Rep a => Query r -> a -> [r] gmapQ q =   case (rep :: R a) of-    (Data _ cons) -> \x -> case (findCon cons x) of-		Val _ reps ys -> mapQ_l (const q) reps ys+    (Data _ cons) -> \x ->+      case (findCon cons x) of+       Val _ reps ys -> mapQ_l (const q) reps ys     _ -> const []  @@ -290,9 +291,10 @@  gmapM   :: forall a m. (Rep a, Monad m) => MapM m -> a -> m a gmapM m = case (rep :: R a) of-   (Data _ cons) -> \x -> case (findCon cons x) of-     Val emb reps ys -> do l <- mapM_l (const m) reps ys-                           return (to emb l)+   (Data _ cons) -> \x ->+     case (findCon cons x) of+      Val emb reps ys -> do l <- mapM_l (const m) reps ys+                            return (to emb l)    _ -> return  @@ -311,16 +313,18 @@ gmapQ1 :: forall a ctx r. (Rep1 ctx a) => Query1 ctx r -> a -> [r] gmapQ1 q  =   case (rep1 :: R1 ctx a) of-    (Data1 _ cons) -> \x -> case (findCon cons x) of-		Val _ recs kids -> mapQ_l q recs kids+    (Data1 _ cons) -> \x ->+      case (findCon cons x) of+       Val _ recs kids -> mapQ_l q recs kids     _ -> const []  type MapM1 ctx m = forall a. Rep a => ctx a -> a -> m a gmapM1  :: forall a ctx m. (Rep1 ctx a, Monad m) => MapM1 ctx m -> a -> m a gmapM1 m = case (rep1 :: R1 ctx a) of-   (Data1 _ cons) -> \x -> case (findCon cons x) of-     Val emb rec ys -> do l <- mapM_l m rec ys-                          return (to emb l)+   (Data1 _ cons) -> \x ->+     case (findCon cons x) of+      Val emb rec ys -> do l <- mapM_l m rec ys+                           return (to emb l)    _ -> return  -------------- Spine from SYB Reloaded ---------------------------@@ -329,20 +333,20 @@ infixr 7 :::  data Spine a where-	 Constr :: a -> Spine a-	 (:<>)  :: Spine (a -> b) -> Typed a -> Spine b+  Constr :: a -> Spine a+  (:<>)  :: Spine (a -> b) -> Typed a -> Spine b  toSpineR :: R a -> a -> Spine a toSpineR (Data _ cons) a =-	 case (findCon cons a) of-	    Val emb reps kids -> toSpineRl reps kids (to emb)+  case (findCon cons a) of+   Val emb reps kids -> toSpineRl reps kids (to emb) toSpineR _ a = Constr a  toSpineRl :: MTup R l -> l -> (l -> a) -> Spine a toSpineRl MNil Nil into = Constr (into Nil) toSpineRl (ra :+: rs) (a :*: l) into =-	 (toSpineRl rs l into') :<> (a ::: ra)-		  where into' tl1 x1 = into (x1 :*: tl1)+  (toSpineRl rs l into') :<> (a ::: ra)+   where into' tl1 x1 = into (x1 :*: tl1)  toSpine :: Rep a => a -> Spine a toSpine = toSpineR rep
Generics/RepLib/SYB/Aliases.hs view
@@ -19,36 +19,36 @@ ----------------------------------------------------------------------------- module Generics.RepLib.SYB.Aliases ( -	-- * Combinators to \"make\" generic functions via cast-	mkT, mkQ, mkM, mkMp, mkR,-	ext0, extT, extQ, extM, extMp, extB, extR,+   -- * Combinators to \"make\" generic functions via cast+   mkT, mkQ, mkM, mkMp, mkR,+   ext0, extT, extQ, extM, extMp, extB, extR, -	-- * Type synonyms for generic function types-	GenericT,-	GenericQ,-	GenericM,-	GenericB,-	GenericR,+   -- * Type synonyms for generic function types+   GenericT,+   GenericQ,+   GenericM,+   GenericB,+   GenericR,    Generic,    Generic'(..),    GenericT'(..),    GenericQ'(..),    GenericM'(..), -	-- * Inredients of generic functions-	orElse,+   -- * Inredients of generic functions+   orElse, -	-- * Function combinators on generic functions-	recoverMp,-	recoverQ,-	choiceMp,-	choiceQ+   -- * Function combinators on generic functions+   recoverMp,+   recoverQ,+   choiceMp,+   choiceQ -	-- * Type extension for unary type constructors---	ext1T,---	ext1M,---	ext1Q,---	ext1R+   -- * Type extension for unary type constructors+-- ext1T,+-- ext1M,+-- ext1Q,+-- ext1R    ) where @@ -62,8 +62,8 @@  ------------------------------------------------------------------------------ -----	Combinators to "make" generic functions---	We use type-safe cast in a number of ways to make generic functions.+-- Combinators to "make" generic functions+-- We use type-safe cast in a number of ways to make generic functions. -- ------------------------------------------------------------------------------ @@ -209,7 +209,7 @@  ------------------------------------------------------------------------------ -----	Type synonyms for generic function types+-- Type synonyms for generic function types -- ------------------------------------------------------------------------------ @@ -258,9 +258,9 @@   -- | Other first-class polymorphic wrappers-newtype GenericT'   = GT { unGT :: Rep a => a -> a }+newtype GenericT'   = GT { unGT :: forall a. Rep a => a -> a } newtype GenericQ' r = GQ { unGQ :: GenericQ r }-newtype GenericM' m = GM { unGM :: Rep a => a -> m a }+newtype GenericM' m = GM { unGM :: forall a. Rep a => a -> m a }   -- | Left-biased choice on maybies@@ -305,7 +305,7 @@  ------------------------------------------------------------------------------ -----	Type extension for unary type constructors+-- Type extension for unary type constructors -- ------------------------------------------------------------------------------ @@ -355,7 +355,7 @@  ------------------------------------------------------------------------------ -----	Type constructors for type-level lambdas+-- Type constructors for type-level lambdas -- ------------------------------------------------------------------------------ 
Generics/RepLib/SYB/Schemes.hs view
@@ -26,17 +26,17 @@    everywhereBut,    everywhereM, --   somewhere,-	everything,-	listify,+   everything,+   listify,    something,-	synthesize,-	gsize,-	glength,-	gdepth,-	gcount,-	gnodecount,-	gtypecount,-	gfindtype+   synthesize,+   gsize,+   glength,+   gdepth,+   gcount,+   gnodecount,+   gtypecount,+   gfindtype   ) where 
Generics/RepLib/Unify.hs view
@@ -1,7 +1,11 @@-{-# LANGUAGE UndecidableInstances, OverlappingInstances, IncoherentInstances,+{-# LANGUAGE UndecidableInstances, IncoherentInstances,     ExistentialQuantification, ScopedTypeVariables, EmptyDataDecls,-    MultiParamTypeClasses, FlexibleInstances, FlexibleContexts+    MultiParamTypeClasses, FlexibleInstances, FlexibleContexts, CPP   #-}+#if MIN_VERSION_template_haskell(2,10,0)+#else+{-# LANGUAGE OverlappingInstances #-}+#endif {-# OPTIONS_GHC -fno-warn-incomplete-patterns #-}  -----------------------------------------------------------------------------@@ -27,7 +31,11 @@ import Generics.RepLib.RepAux import Generics.RepLib.PreludeReps() import Control.Monad.State+#if MIN_VERSION_transformers(0,4,0)+import Control.Monad.Except+#else import Control.Monad.Error+#endif  data Proxy a @@ -47,12 +55,16 @@   -- Error/State monad for unification. This version does not abstract the monad.+#if MIN_VERSION_transformers(0,4,0)+type UM n a b = ExceptT UnifyError (State (UnificationState n a)) b+#else type UM n a b = ErrorT UnifyError (State (UnificationState n a)) b+#endif   data UnifySubD n a b = UnifySubD { unifyStepD :: Proxy (n, a) -> b -> b -> UM n a (),-				   substD:: n -> a -> b -> b,-				   occursCheckD :: n -> Proxy a -> b -> Bool}+                                   substD:: n -> a -> b -> b,+                                   occursCheckD :: n -> Proxy a -> b -> Bool}  instance (Unify n a b, Subst n a b, Occurs n a b) => Sat (UnifySubD n a b) where     dict = UnifySubD {unifyStepD = unifyStep, substD = subst, occursCheckD = occursCheck}@@ -60,7 +72,7 @@  data UConstraint n a = forall b. UC (UnifySubD n a b) b b data UnificationState n a = UState {uConstraints :: [UConstraint n a],-				    uSubst :: [(n, a)]}+                                    uSubst :: [(n, a)]}   @@ -85,11 +97,11 @@     \ x y ->        let loop (Con rcd rec : rest) =               case (from rcd x, from rcd y) of-	         (Just p1, Just p2) -> addConstraintsRL1 rec dum p1 p2-		 (Nothing, Nothing) -> loop rest-		 (_,_) -> throwError (strMsg $ "constructor mismatch when trying to match " ++ show x ++ " = " ++ show y)-	   in loop cons-unifyStepR1 _ _ = \_ _ -> throwError (strMsg ("unifyStepR1 unhandled generic type constructor"))+               (Just p1, Just p2) -> addConstraintsRL1 rec dum p1 p2+               (Nothing, Nothing) -> loop rest+               (_,_) -> throwError ("constructor mismatch when trying to match " ++ show x ++ " = " ++ show y)+        in loop cons+unifyStepR1 _ _ = \_ _ -> throwError ("unifyStepR1 unhandled generic type constructor")   @@ -101,29 +113,29 @@  unifyStepEq :: (Eq b, Show b) => b -> b -> UM n a () unifyStepEq x y = if x == y-		    then return ()-		    else throwError $ strMsg ("unify failed when testing equality for " ++ show x ++ " = " ++ show y)    -- " show x ++ " /= " ++ show y)+                   then return ()+                   else throwError $ "unify failed when testing equality for " ++ show x ++ " = " ++ show y    -- " show x ++ " /= " ++ show y   -- a a instance instance (Eq n, Show n, Show a, HasVar n a, Rep1 (UnifySubD n a) a) => Unify n a a where     unifyStep (dum :: Proxy (n, a)) (a1::a) a2 =-	case ((is_var a1) :: Maybe n, (is_var a2) :: Maybe n) of-	    (Just n1, Just n2) ->  if n1 == n2-				     then return ()-				     else addSub n1 ((var n2) :: a);-	    (Just n1, _) -> addSub n1 a2-	    (_, Just n2) ->  addSub n2 a1-	    (_, _) -> unifyStepR1 rep1 dum a1 a2-	where+     case ((is_var a1) :: Maybe n, (is_var a2) :: Maybe n) of+      (Just n1, Just n2) ->  if n1 == n2+                              then return ()+                              else addSub n1 ((var n2) :: a);+      (Just n1, _) -> addSub n1 a2+      (_, Just n2) ->  addSub n2 a1+      (_, _) -> unifyStepR1 rep1 dum a1 a2+     where         addSub n t = extendSubstitution (n, t)   dequeueConstraint :: UM n a (Maybe (UConstraint n a)) dequeueConstraint = do s <- get-		       case s of (UState [] _) -> return Nothing-				 (UState (x : xs) sub) -> do put $ UState xs sub-							     return $ Just x+                       case s of (UState [] _) -> return Nothing+                                 (UState (x : xs) sub) -> do put $ UState xs sub+                                                             return $ Just x  queueConstraint ::  UConstraint n a -> UM n a () queueConstraint eq = modify (\ (UState xs sub) -> (UState (eq : xs) sub))@@ -151,7 +163,7 @@     if (occursCheck n (undefined :: Proxy a) a)        then throwError $ "occurs check failed when extending sub with " ++ (show n) ++ " = " ++ (show a)        else do (UState xs sub) <- get- 	       let sub' = [(n', subst n a a') | (n', a') <- sub]                            -- these might have side effects if we want to handle binding via freshmonad.+               let sub' = [(n', subst n a a') | (n', a') <- sub]                            -- these might have side effects if we want to handle binding via freshmonad.                let xs' = [UC d (substD d n a b1) (substD d n a b2) | (UC d b1 b2) <- xs]                put (UState xs' (asgn : sub')) @@ -164,15 +176,15 @@ solveUnification :: (HasVar n a, Eq n, Show n, Show a, Rep1 (UnifySubD n a) a) => [(a, a)] -> Maybe [(n, a)] solveUnification (eqs :: [(a, a)]) =     case r of Left e -> error e-	      Right _ -> Just $ uSubst final+              Right _ -> Just $ uSubst final     where-    (r, final) = runState (runErrorT rwConstraints) (UState cs [])+    (r, final) = runState (runExceptT rwConstraints) (UState cs [])     cs = [(UC dict a1 a2) | (a1, a2) <- eqs]     rwConstraints :: UM n a ()     rwConstraints = do c <- dequeueConstraint-		       case c of Just (UC d a1 a2) -> do _ <- unifyStepD d (undefined :: Proxy (n, a)) a1 a2-							 rwConstraints-				 Nothing -> return ()+                       case c of Just (UC d a1 a2) -> do _ <- unifyStepD d (undefined :: Proxy (n, a)) a1 a2+                                                         rwConstraints+                                 Nothing -> return ()   @@ -184,15 +196,15 @@ solveUnification' :: (HasVar n a, Eq n, Show n, Show a, Show b, Rep1 (UnifySubD n a) b) => Proxy (n, a) -> [(b, b)] -> Maybe [(n, a)] solveUnification' (dum :: Proxy (n, a)) (eqs :: [(b, b)]) =     case r of Left e -> error e-	      Right _ -> Just $ uSubst final+              Right _ -> Just $ uSubst final     where-    (r, final) = runState (runErrorT rwConstraints) (UState cs [])+    (r, final) = runState (runExceptT rwConstraints) (UState cs [])     cs = [(UC dict a1 a2) | (a1, a2) <- eqs]     rwConstraints :: UM n a ()     rwConstraints = do c <- dequeueConstraint-		       case c of Just (UC d a1 a2) -> do _ <- unifyStepD d dum a1 a2-							 rwConstraints-				 Nothing -> return ()+                       case c of Just (UC d a1 a2) -> do _ <- unifyStepD d dum a1 a2+                                                         rwConstraints+                                 Nothing -> return ()   @@ -219,8 +231,8 @@ -- a a instance instance (Eq a, HasVar a t, Rep1 (UnifySubD a t) t) => Subst a t t where     subst a t t' = if is_var t' == Just a-		  then t-		  else gmapT1 (\cb b -> substD cb a t b) t'+                    then t+                    else gmapT1 (\cb b -> substD cb a t b) t'   -- Generic Occurs checking@@ -238,7 +250,7 @@ -- a a instance. instance (Eq n, HasVar n a, Rep1 (UnifySubD n a) a) => Occurs n a a where     occursCheck n pa a = if is_var a == Just n-		  then True-		  else or $ gmapQ1 (\cb b -> occursCheckD cb n pa b) a+                          then True+                          else or $ gmapQ1 (\cb b -> occursCheckD cb n pa b) a  
README view
@@ -1,21 +1,17 @@ ----------------------------------------------------------------------------- -- --- Copyright   :  (c) 2006-2011, RepLib team (see LICENSE)+-- Copyright   :  (c) 2006-2015, RepLib team (see LICENSE) -- License     :  BSD -- --- Maintainer  :  sweirich@cis.upenn.edu, byorgey@cis.upenn.edu+-- Maintainer  :  sweirich@cis.upenn.edu -- Stability   :  experimental -- Portability :  non-portable -- -- RepLib  --    a library of derivable type classes based on representation types -----  See http://code.google.com/p/replib/ for more information. ----------------------------------------------------------------------------- -RepLib has been tested with GHC 7.0.1.  It currently does not compile with -GHC 6.12.x or earlier.- This library contains the following modules:  Generics.RepLib.R           - Basic type representations@@ -35,9 +31,7 @@  To use this library, import RepLib and derive representations of your datatypes. The "Lib" module contains a number of type-indexed-operations that have been predefined.  To see an example of-automatically deriving the representation of a datatype, see the file-Main.hs.+operations that have been predefined.   -Currently, the representations of datatypes with record components,-GADTs and nested datatypes cannot be automatically derived.+Currently, representations of datatypes with record components, GADTs and+nested datatypes cannot be automatically derived.
RepLib.cabal view
@@ -1,5 +1,5 @@ name:           RepLib-version:        0.5.3.3+version:        0.5.3.4 license:        BSD3 license-file:   LICENSE build-type:     Simple@@ -8,12 +8,12 @@                 GHC == 7.2.1,                 GHC == 7.4.1,                 GHC == 7.6.1,-                GHC == 7.8.1+                GHC == 7.8.1,+                GHC == 7.8.3,+                GHC == 7.10.2 author:         Stephanie Weirich-maintainer:     Brent Yorgey <byorgey@cis.upenn.edu>-                Chris Casinghino <ccasin@cis.upenn.edu>-                Stephanie Weirich <sweirich@cis.upenn.edu>-homepage:       http://code.google.com/p/replib/+maintainer:     Stephanie Weirich <sweirich@cis.upenn.edu>+homepage:       https://github.com/sweirich/replib category:       Generics extra-source-files: README synopsis:       Generic programming library with representation types@@ -21,14 +21,15 @@                 polymorphism and other features.  Source-repository head-  type: svn-  location: http://replib.googlecode.com/svn/trunk/+  type: git+  location: https://github.com/sweirich/replib  Library   build-depends: base >= 4.3 && < 5,-                 template-haskell >= 2.4 && < 2.10,+                 template-haskell >= 2.4 && < 2.11,                  mtl >= 2.0 && < 2.3,-                 containers >= 0.4 && < 0.6+                 containers >= 0.4 && < 0.6,+                 transformers    if impl(ghc < 7.8)     build-depends: type-equality >= 0.1.0.2 && < 0.2