RepLib 0.5.3.5 → 0.5.4
raw patch · 3 files changed
+77/−21 lines, 3 filesdep ~template-haskellPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: template-haskell
API changes (from Hackage documentation)
- Generics.RepLib: Refl :: (:~:) k a1 a1
- 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: (:+:) :: r a -> MTup r l -> MTup r (a :*: l)
- Generics.RepLib.R: Abstract :: DT -> R a
- Generics.RepLib.R: Arrow :: R a -> R b -> R (a -> b)
- Generics.RepLib.R: Char :: R Char
- Generics.RepLib.R: Con :: Emb l a -> MTup r l -> Con r a
- Generics.RepLib.R: Data :: DT -> [Con R a] -> R a
- Generics.RepLib.R: Double :: R Double
- Generics.RepLib.R: Equal :: R a -> R b -> R (a :~: b)
- Generics.RepLib.R: Float :: R Float
- Generics.RepLib.R: IO :: R a -> R (IO a)
- Generics.RepLib.R: IOError :: R IOError
- Generics.RepLib.R: Int :: R Int
- Generics.RepLib.R: Integer :: R Integer
- Generics.RepLib.R: MNil :: MTup r Nil
- Generics.RepLib.R: Rational :: R Rational
- 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: Abstract1 :: DT -> R1 ctx a
- Generics.RepLib.R1: Arrow1 :: ctx a -> ctx b -> R1 ctx (a -> b)
- Generics.RepLib.R1: Char1 :: R1 ctx Char
- Generics.RepLib.R1: Data1 :: DT -> [Con ctx a] -> R1 ctx a
- Generics.RepLib.R1: Double1 :: R1 ctx Double
- Generics.RepLib.R1: Equal1 :: ctx a -> ctx b -> R1 ctx (a :~: b)
- Generics.RepLib.R1: Float1 :: R1 ctx Float
- Generics.RepLib.R1: IO1 :: ctx a -> R1 ctx (IO a)
- Generics.RepLib.R1: IOError1 :: R1 ctx IOError
- Generics.RepLib.R1: Int1 :: R1 ctx Int
- Generics.RepLib.R1: Integer1 :: R1 ctx Integer
- Generics.RepLib.R1: Rational1 :: R1 ctx Rational
- 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: (:<>) :: Spine (a -> b) -> Typed a -> Spine b
- Generics.RepLib.RepAux: Constr :: a -> Spine a
- Generics.RepLib.RepAux: Val :: Emb l a -> MTup ctx l -> l -> Val ctx 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: runExceptT :: ErrorT e m a -> m (Either e a)
- 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: [Refl] :: (:~:) k a 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.Fail.MonadFail Generics.RepLib.Derive.QN
+ 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: [:+:] :: (Rep a) => r a -> MTup r l -> MTup r (a :*: l)
+ Generics.RepLib.R: [Abstract] :: DT -> R a
+ Generics.RepLib.R: [Arrow] :: (Rep a, Rep b) => R a -> R b -> R (a -> b)
+ Generics.RepLib.R: [Char] :: R Char
+ Generics.RepLib.R: [Con] :: Emb l a -> MTup r l -> Con r a
+ Generics.RepLib.R: [Data] :: DT -> [Con R a] -> R a
+ Generics.RepLib.R: [Double] :: R Double
+ Generics.RepLib.R: [Equal] :: (Rep a, Rep b) => R a -> R b -> R (a :~: b)
+ Generics.RepLib.R: [Float] :: R Float
+ Generics.RepLib.R: [IOError] :: R IOError
+ Generics.RepLib.R: [IO] :: (Rep a) => R a -> R (IO a)
+ Generics.RepLib.R: [Int] :: R Int
+ Generics.RepLib.R: [Integer] :: R Integer
+ Generics.RepLib.R: [MNil] :: MTup r Nil
+ Generics.RepLib.R: [Rational] :: R Rational
+ 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.R: withRep :: R a -> (Rep a => r) -> r
+ Generics.RepLib.R1: [Abstract1] :: DT -> R1 ctx a
+ Generics.RepLib.R1: [Arrow1] :: (Rep a, Rep b) => ctx a -> ctx b -> R1 ctx (a -> b)
+ Generics.RepLib.R1: [Char1] :: R1 ctx Char
+ Generics.RepLib.R1: [Data1] :: DT -> [Con ctx a] -> R1 ctx a
+ Generics.RepLib.R1: [Double1] :: R1 ctx Double
+ Generics.RepLib.R1: [Equal1] :: (Rep a, Rep b) => ctx a -> ctx b -> R1 ctx (a :~: b)
+ Generics.RepLib.R1: [Float1] :: R1 ctx Float
+ Generics.RepLib.R1: [IO1] :: (Rep a) => ctx a -> R1 ctx (IO a)
+ Generics.RepLib.R1: [IOError1] :: R1 ctx IOError
+ Generics.RepLib.R1: [Int1] :: R1 ctx Int
+ Generics.RepLib.R1: [Integer1] :: R1 ctx Integer
+ Generics.RepLib.R1: [Rational1] :: R1 ctx Rational
+ 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: [:<>] :: Spine (a -> b) -> Typed a -> Spine b
+ Generics.RepLib.RepAux: [Constr] :: a -> Spine a
+ Generics.RepLib.RepAux: [Val] :: Emb l a -> MTup ctx l -> l -> Val ctx a
+ 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.Unify: throwError :: UnifyError -> UM n a b
- Generics.RepLib: class TestEquality (f :: k -> *)
+ Generics.RepLib: class TestEquality k (f :: k -> *)
- Generics.RepLib: data (:~:) (a :: k) (b :: k) :: k -> k -> *
+ Generics.RepLib: data (:~:) k (a :: k) (b :: k) :: forall k. k -> k -> *
- Generics.RepLib: testEquality :: TestEquality f => f a -> f b -> Maybe ((:~:) k a b)
+ Generics.RepLib: testEquality :: f a -> f b -> Maybe ((:~:) k a b)
- Generics.RepLib.AbstractReps: rMap :: (Rep k_ajN7, Rep a_ajN8) => R (Map k_ajN7 a_ajN8)
+ Generics.RepLib.AbstractReps: rMap :: forall k_aBud a_aBue. (Rep k_aBud, Rep a_aBue) => R (Map k_aBud a_aBue)
- Generics.RepLib.AbstractReps: rMap1 :: (Rep k_ajN7, Rep a_ajN8) => R1 ctx_ajNn (Map k_ajN7 a_ajN8)
+ Generics.RepLib.AbstractReps: rMap1 :: forall ctx_aBul k_aBud a_aBue. (Rep k_aBud, Rep a_aBue) => R1 ctx_aBul (Map k_aBud a_aBue)
- Generics.RepLib.AbstractReps: rSet :: Rep a_a6C2 => R (Set a_a6C2)
+ Generics.RepLib.AbstractReps: rSet :: forall a_acKl. Rep a_acKl => R (Set a_acKl)
- Generics.RepLib.AbstractReps: rSet1 :: Rep a_a6C2 => R1 ctx_ajNB (Set a_a6C2)
+ Generics.RepLib.AbstractReps: rSet1 :: forall ctx_aBuz a_acKl. Rep a_acKl => R1 ctx_aBuz (Set a_acKl)
- 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.Lib: subtrees :: Rep a => a -> [a]
+ Generics.RepLib.Lib: subtrees :: forall a. Rep a => a -> [a]
- Generics.RepLib.PreludeReps: rBool1 :: () -> () -> R1 ctx_adrR Bool
+ Generics.RepLib.PreludeReps: rBool1 :: forall ctx_aq1C. () -> () -> R1 ctx_aq1C Bool
- Generics.RepLib.PreludeReps: rEither :: (Rep a_adsa, Rep b_adsb) => R (Either a_adsa b_adsb)
+ Generics.RepLib.PreludeReps: rEither :: forall a_aq1V b_aq1W. (Rep a_aq1V, Rep b_aq1W) => R (Either a_aq1V b_aq1W)
- Generics.RepLib.PreludeReps: rEither1 :: (Rep a_adsa, Rep b_adsb) => ctx_adsq a_adsa -> ctx_adsq b_adsb -> R1 ctx_adsq (Either a_adsa b_adsb)
+ Generics.RepLib.PreludeReps: rEither1 :: forall ctx_aq23 a_aq1V b_aq1W. (Rep a_aq1V, Rep b_aq1W) => ctx_aq23 a_aq1V -> ctx_aq23 b_aq1W -> R1 ctx_aq23 (Either a_aq1V b_aq1W)
- Generics.RepLib.PreludeReps: rMaybe :: Rep a_a2Fz => R (Maybe a_a2Fz)
+ Generics.RepLib.PreludeReps: rMaybe :: forall a_12. Rep a_12 => R (Maybe a_12)
- Generics.RepLib.PreludeReps: rMaybe1 :: Rep a_a2Fz => () -> ctx_adrY a_a2Fz -> R1 ctx_adrY (Maybe a_a2Fz)
+ Generics.RepLib.PreludeReps: rMaybe1 :: forall ctx_aq1J a_12. Rep a_12 => () -> ctx_aq1J a_12 -> R1 ctx_aq1J (Maybe a_12)
- Generics.RepLib.PreludeReps: rOrdering1 :: () -> () -> () -> R1 ctx_adsH Ordering
+ Generics.RepLib.PreludeReps: rOrdering1 :: forall ctx_aq2k. () -> () -> () -> R1 ctx_aq2k Ordering
- Generics.RepLib.PreludeReps: rTup3 :: (Rep a_12, Rep b_13, Rep c_14) => R ((,,) a_12 b_13 c_14)
+ Generics.RepLib.PreludeReps: rTup3 :: forall a_12 b_13 c_14. (Rep a_12, Rep b_13, Rep c_14) => R ((,,) a_12 b_13 c_14)
- Generics.RepLib.PreludeReps: rTup3_1 :: (Rep a_12, Rep b_13, Rep c_14) => (ctx_adsR a_12, ctx_adsR b_13, ctx_adsR c_14) -> R1 ctx_adsR ((,,) a_12 b_13 c_14)
+ Generics.RepLib.PreludeReps: rTup3_1 :: forall ctx_aq2u a_12 b_13 c_14. (Rep a_12, Rep b_13, Rep c_14) => (ctx_aq2u a_12, ctx_aq2u b_13, ctx_aq2u c_14) -> R1 ctx_aq2u ((,,) a_12 b_13 c_14)
- Generics.RepLib.PreludeReps: rTup4 :: (Rep a_12, Rep b_13, Rep c_14, Rep d_15) => R ((,,,) a_12 b_13 c_14 d_15)
+ Generics.RepLib.PreludeReps: rTup4 :: forall a_12 b_13 c_14 d_15. (Rep a_12, Rep b_13, Rep c_14, Rep d_15) => R ((,,,) 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_adta a_12, ctx_adta b_13, ctx_adta c_14, ctx_adta d_15) -> R1 ctx_adta ((,,,) a_12 b_13 c_14 d_15)
+ Generics.RepLib.PreludeReps: rTup4_1 :: forall ctx_aq2N a_12 b_13 c_14 d_15. (Rep a_12, Rep b_13, Rep c_14, Rep d_15) => (ctx_aq2N a_12, ctx_aq2N b_13, ctx_aq2N c_14, ctx_aq2N d_15) -> R1 ctx_aq2N ((,,,) a_12 b_13 c_14 d_15)
- Generics.RepLib.PreludeReps: rTup5 :: (Rep a_12, Rep b_13, Rep c_14, Rep d_15, Rep e_16) => R ((,,,,) a_12 b_13 c_14 d_15 e_16)
+ Generics.RepLib.PreludeReps: rTup5 :: forall a_12 b_13 c_14 d_15 e_16. (Rep a_12, Rep b_13, Rep c_14, Rep d_15, Rep e_16) => R ((,,,,) 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_adty a_12, ctx_adty b_13, ctx_adty c_14, ctx_adty d_15, ctx_adty e_16) -> R1 ctx_adty ((,,,,) a_12 b_13 c_14 d_15 e_16)
+ Generics.RepLib.PreludeReps: rTup5_1 :: forall ctx_aq3b a_12 b_13 c_14 d_15 e_16. (Rep a_12, Rep b_13, Rep c_14, Rep d_15, Rep e_16) => (ctx_aq3b a_12, ctx_aq3b b_13, ctx_aq3b c_14, ctx_aq3b d_15, ctx_aq3b e_16) -> R1 ctx_aq3b ((,,,,) a_12 b_13 c_14 d_15 e_16)
- Generics.RepLib.PreludeReps: rTup6 :: (Rep a_12, Rep b_13, Rep c_14, Rep d_15, Rep e_16, Rep f_17) => R ((,,,,,) a_12 b_13 c_14 d_15 e_16 f_17)
+ Generics.RepLib.PreludeReps: rTup6 :: forall a_12 b_13 c_14 d_15 e_16 f_17. (Rep a_12, Rep b_13, Rep c_14, Rep d_15, Rep e_16, Rep f_17) => R ((,,,,,) 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_adu1 a_12, ctx_adu1 b_13, ctx_adu1 c_14, ctx_adu1 d_15, ctx_adu1 e_16, ctx_adu1 f_17) -> R1 ctx_adu1 ((,,,,,) a_12 b_13 c_14 d_15 e_16 f_17)
+ Generics.RepLib.PreludeReps: rTup6_1 :: forall ctx_aq3E a_12 b_13 c_14 d_15 e_16 f_17. (Rep a_12, Rep b_13, Rep c_14, Rep d_15, Rep e_16, Rep f_17) => (ctx_aq3E a_12, ctx_aq3E b_13, ctx_aq3E c_14, ctx_aq3E d_15, ctx_aq3E e_16, ctx_aq3E f_17) -> R1 ctx_aq3E ((,,,,,) a_12 b_13 c_14 d_15 e_16 f_17)
- Generics.RepLib.PreludeReps: rTup7 :: (Rep a_12, Rep b_13, Rep c_14, Rep d_15, Rep e_16, Rep f_17, Rep g_18) => R ((,,,,,,) a_12 b_13 c_14 d_15 e_16 f_17 g_18)
+ Generics.RepLib.PreludeReps: rTup7 :: forall a_12 b_13 c_14 d_15 e_16 f_17 g_18. (Rep a_12, Rep b_13, Rep c_14, Rep d_15, Rep e_16, Rep f_17, Rep g_18) => R ((,,,,,,) 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_aduz a_12, ctx_aduz b_13, ctx_aduz c_14, ctx_aduz d_15, ctx_aduz e_16, ctx_aduz f_17, ctx_aduz g_18) -> R1 ctx_aduz ((,,,,,,) a_12 b_13 c_14 d_15 e_16 f_17 g_18)
+ Generics.RepLib.PreludeReps: rTup7_1 :: forall ctx_aq4c a_12 b_13 c_14 d_15 e_16 f_17 g_18. (Rep a_12, Rep b_13, Rep c_14, Rep d_15, Rep e_16, Rep f_17, Rep g_18) => (ctx_aq4c a_12, ctx_aq4c b_13, ctx_aq4c c_14, ctx_aq4c d_15, ctx_aq4c e_16, ctx_aq4c f_17, ctx_aq4c g_18) -> R1 ctx_aq4c ((,,,,,,) a_12 b_13 c_14 d_15 e_16 f_17 g_18)
- Generics.RepLib.R: rList :: Rep a => R [a]
+ Generics.RepLib.R: rList :: forall a. Rep a => R [a]
- Generics.RepLib.R: rTup2 :: (Rep a, Rep b) => R (a, b)
+ Generics.RepLib.R: rTup2 :: forall a b. (Rep a, Rep b) => R (a, b)
- Generics.RepLib.R1: rList1 :: Rep a => ctx a -> ctx [a] -> R1 ctx [a]
+ Generics.RepLib.R1: rList1 :: forall a ctx. Rep a => ctx a -> ctx [a] -> R1 ctx [a]
- Generics.RepLib.R1: rTup2_1 :: (Rep a, Rep b) => ctx a -> ctx b -> R1 ctx (a, b)
+ Generics.RepLib.R1: rTup2_1 :: forall a b ctx. (Rep a, Rep b) => ctx a -> ctx b -> R1 ctx (a, b)
- Generics.RepLib.RepAux: cast :: (Rep a, Rep b) => a -> Maybe b
+ Generics.RepLib.RepAux: cast :: forall a b. (Rep a, Rep b) => a -> Maybe b
- 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: gcast :: (Rep a, Rep b) => c a -> Maybe (c b)
+ Generics.RepLib.RepAux: gcast :: forall a b c. (Rep a, Rep b) => c a -> Maybe (c b)
- Generics.RepLib.RepAux: gcastR :: R a -> R b -> c a -> Maybe (c b)
+ Generics.RepLib.RepAux: gcastR :: forall a b c. R a -> R b -> c a -> Maybe (c b)
- Generics.RepLib.RepAux: gmapM :: (Rep a, Monad m) => MapM m -> a -> m a
+ Generics.RepLib.RepAux: gmapM :: forall a m. (Rep a, Monad m) => MapM m -> a -> m a
- Generics.RepLib.RepAux: gmapM1 :: (Rep1 ctx a, Monad m) => MapM1 ctx m -> a -> m a
+ Generics.RepLib.RepAux: gmapM1 :: forall a ctx m. (Rep1 ctx a, Monad m) => MapM1 ctx m -> a -> m a
- Generics.RepLib.RepAux: gmapQ :: Rep a => Query r -> a -> [r]
+ Generics.RepLib.RepAux: gmapQ :: forall a r. Rep a => Query r -> a -> [r]
- Generics.RepLib.RepAux: gmapQ1 :: Rep1 ctx a => Query1 ctx r -> a -> [r]
+ Generics.RepLib.RepAux: gmapQ1 :: forall a ctx r. (Rep1 ctx a) => Query1 ctx r -> a -> [r]
- Generics.RepLib.RepAux: gmapT :: Rep a => Traversal -> a -> a
+ Generics.RepLib.RepAux: gmapT :: forall a. Rep a => Traversal -> a -> a
- Generics.RepLib.RepAux: gmapT1 :: Rep1 ctx a => Traversal1 ctx -> a -> a
+ Generics.RepLib.RepAux: gmapT1 :: forall a ctx. (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 +65/−17
- Generics/RepLib/R.hs +8/−1
- RepLib.cabal +4/−3
Generics/RepLib/Derive.hs view
@@ -48,6 +48,10 @@ import Unsafe.Coerce +#if MIN_VERSION_template_haskell(2,11,0)+import Control.Monad.Fail ( MonadFail )+#endif+ -- | Given a type, produce its representation. repty :: Type -> Exp repty ty = SigE (VarE (mkName "rep")) ((ConT ''R) `AppT` ty)@@ -81,12 +85,14 @@ -- while generating constructor representations. newtype QN a = QN { unQN :: WriterT (S.Set Int) Q a }+ deriving ( Monad, Functor, MonadWriter (S.Set Int)+#if MIN_VERSION_template_haskell(2,11,0)+ , MonadFail+#endif #if MIN_VERSION_template_haskell(2,7,0)- deriving (Applicative, Functor, Monad, MonadWriter (S.Set Int))-#else- deriving (Functor, Monad, MonadWriter (S.Set Int))+ , Applicative #endif-+ ) liftQN :: Q a -> QN a liftQN = QN . lift@@ -119,6 +125,12 @@ qGetQ = liftQN $ qGetQ qPutQ a = liftQN $ qPutQ a #endif+#if MIN_VERSION_template_haskell(2,11,0)+ qReifyFixity n = liftQN $ qReifyFixity n+ qReifyConStrictness n = liftQN $ qReifyConStrictness n+ qIsExtEnabled e = liftQN $ qIsExtEnabled e+ qExtsEnabled = liftQN $ qExtsEnabled+#endif -- Generate the representation for a data constructor. -- As our representation of data constructors evolves, so must this definition.@@ -296,14 +308,16 @@ `AppT` ty)) rType :: Dec rType = ValD (VarP rTypeName) (NormalB body) []- let inst = InstanceD ctx ((ConT (mkName "Rep")) `AppT` ty)+ let inst = InstanceD+#if MIN_VERSION_template_haskell(2,11,0)+ Nothing+#endif+ ctx+ ((ConT (mkName "Rep")) `AppT` ty) [ValD (VarP (mkName "rep")) (NormalB (VarE rTypeName)) []] return $ ress ++ [rSig, rType, inst] -reprs :: Flag -> [Name] -> Q [Dec]-reprs f ns = concat <$> mapM (repr f) ns- -------------------------------------------------------------------------------------------- --- Generating the R1 representation @@ -338,7 +352,7 @@ , cpTyVars :: [Name] -- /All/ type variable arguments to the type -- (not just ones requiring equality proofs); -- needed when generating special Sat classes- , cpPayload :: Type -- What you get after supplying+ , _cpPayload :: Type -- What you get after supplying -- the proofs , cpPayloadElts :: [Type] -- individual elements in -- the payload@@ -425,6 +439,9 @@ Nothing -> VarT a satInst = InstanceD+#if MIN_VERSION_template_haskell(2,11,0)+ Nothing+#endif #if MIN_VERSION_template_haskell(2,10,0) (map (\x -> AppT (ConT ''Sat) x) (cpPayloadElts ctxParam)) #else@@ -445,7 +462,11 @@ nms <- replicateM (length tvs) (newName "a") err <- [| error "Impossible Sat instance!" |] - let defSatInst = InstanceD [] (foldl' AppT (ConT satNm) (map VarT (ctx : nms)))+ let defSatInst = InstanceD+#if MIN_VERSION_template_haskell(2,11,0)+ Nothing+#endif+ [] (foldl' AppT (ConT satNm) (map VarT (ctx : nms))) [ValD (VarP dictNm) (NormalB (LamE (replicate (length eqs) (ConP 'Refl [])) err)) []@@ -573,22 +594,34 @@ typeInfo :: Dec -> TypeInfo typeInfo d = case d of- (DataD _ _ _ _ _) ->+ (DataD {}) -> TypeInfo (getName d) (paramsA d) (consA d)- (NewtypeD _ _ _ _ _) ->+ (NewtypeD {}) -> TypeInfo (getName d) (paramsA d) (consA d) _ -> error ("derive: not a data type declaration: " ++ show d) where- getName (DataD _ n _ _ _) = n- getName (NewtypeD _ n _ _ _) = n- getName x = error $ "Impossible! " ++ show x ++ " is neither data nor newtype"+#if MIN_VERSION_template_haskell(2,11,0)+ getName (DataD _ n _ _ _ _) = n+ getName (NewtypeD _ n _ _ _ _) = n+ getName x = error $ "Impossible! " ++ show x ++ " is neither data nor newtype" + paramsA (DataD _ _ ps _ _ _) = ps+ paramsA (NewtypeD _ _ ps _ _ _) = ps++ consA (DataD _ _ _ _ cs _) = rememberOnly $ map conA cs+ consA (NewtypeD _ _ _ _ c _) = rememberOnly $ [ conA c ]+#else+ getName (DataD _ n _ _ _) = n+ getName (NewtypeD _ n _ _ _) = n+ getName x = error $ "Impossible! " ++ show x ++ " is neither data nor newtype"+ paramsA (DataD _ _ ps _ _) = ps paramsA (NewtypeD _ _ ps _ _) = ps consA (DataD _ _ _ cs _) = rememberOnly $ map conA cs consA (NewtypeD _ _ _ c _) = rememberOnly $ [ conA c ]+#endif conA (NormalC c xs) = (mkConstr c) { constrFields = map normalField xs }@@ -603,7 +636,14 @@ in c' { constrBinders = bdrs ++ constrBinders c' , constrCxt = cx ++ constrCxt c' }+#if MIN_VERSION_template_haskell(2,11,0) + conA (GadtC [c] xs ty) = (mkConstr c)+ { constrFields = map normalField xs } + conA (RecGadtC [c] xs ty) = (mkConstr c)+ { constrFields = map recField xs }+#endif+ normalField x = FieldInfo { fieldName = Nothing , fieldType = snd x@@ -669,6 +709,9 @@ deriveResData :: Int -> Name -> Name -> [Name] -> Dec deriveResData n c a bs = DataD [] (mkName $ "Res" ++ show n) (map PlainTV [c,a])+#if MIN_VERSION_template_haskell(2,11,0)+ Nothing+#endif [deriveResultCon n c a bs, deriveNoResultCon n] [] deriveResultCon :: Int -> Name -> Name -> [Name] -> TH.Con@@ -681,8 +724,14 @@ (map (ClassP ''Rep . (:[]) . VarT) bs) #endif (NormalC (mkName $ "Result" ++ show n)- [(NotStrict, deriveResultEq c a bs)]+ [(notStrict, deriveResultEq c a bs)] )+ where+#if MIN_VERSION_template_haskell(2,11,0)+ notStrict = Bang NoSourceUnpackedness NoSourceStrictness+#else+ notStrict = NotStrict+#endif deriveResultEq :: Name -- Tyvar representing the type to be deconstructed -> Name -- Constructor tyvar@@ -767,4 +816,3 @@ appsT :: Type -> [Name] -> Type appsT t [] = t appsT t (n:ns) = appsT (AppT t (VarT n)) ns-
Generics/RepLib/R.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE TemplateHaskell, UndecidableInstances, ExistentialQuantification,- TypeOperators, GADTs, TypeSynonymInstances, FlexibleInstances,+ RankNTypes, TypeOperators, GADTs, TypeSynonymInstances, FlexibleInstances, ScopedTypeVariables, CPP #-} -----------------------------------------------------------------------------@@ -17,6 +17,8 @@ module Generics.RepLib.R where +import Unsafe.Coerce+ import Data.Type.Equality -- | A value of type @R a@ is a representation of a type @a@.@@ -82,6 +84,11 @@ -- | A class of representable types class Rep a where rep :: R a++-- | Use a concrete @'R' a@ for a @'Rep' a@ dictionary+withRep :: R a -> (Rep a => r) -> r+withRep = unsafeCoerce (flip ($) :: R a -> (R a -> r) -> r)+-- I think there's some contraint machinery that could hide the unsafeness here ------ Showing representations (rewrite this with showsPrec?)
RepLib.cabal view
@@ -1,5 +1,5 @@ name: RepLib-version: 0.5.3.5+version: 0.5.4 license: BSD3 license-file: LICENSE build-type: Simple@@ -10,7 +10,8 @@ GHC == 7.6.1, GHC == 7.8.1, GHC == 7.8.3,- GHC == 7.10.2+ GHC == 7.10.2,+ GHC == 8.0.1 author: Stephanie Weirich maintainer: Stephanie Weirich <sweirich@cis.upenn.edu> homepage: https://github.com/sweirich/replib@@ -26,7 +27,7 @@ Library build-depends: base >= 4.3 && < 5,- template-haskell >= 2.4 && < 2.11,+ template-haskell >= 2.4 && < 2.12, mtl >= 2.0 && < 2.3, containers >= 0.4 && < 0.6, transformers