generics-sop 0.5.1.0 → 0.5.1.1
raw patch · 4 files changed
+20/−11 lines, 4 filesdep ~basedep ~ghc-primdep ~template-haskellPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: base, ghc-prim, template-haskell, th-abstraction
API changes (from Hackage documentation)
- Generics.SOP: data Shape (a :: [k]) :: forall k. () => [k] -> Type
- Generics.SOP: data Proxy (t :: k) :: forall k. () => k -> Type
- Generics.SOP: newtype K a (b :: k) :: forall k. () => Type -> k -> Type
- Generics.SOP: newtype (-.->) (f :: k -> Type) (g :: k -> Type) (a :: k) :: forall k. () => k -> Type -> k -> Type -> k -> Type
- Generics.SOP: newtype (:.:) (f :: l -> Type) (g :: k -> l) (p :: k) :: forall l k. () => l -> Type -> k -> l -> k -> Type
- Generics.SOP.Instances: instance Generics.SOP.Universe.Generic GHC.IO.Handle.Lock.LockMode
- Generics.SOP.Instances: instance Generics.SOP.Universe.HasDatatypeInfo GHC.IO.Handle.Lock.LockMode
+ Generics.SOP: data NP (a :: k -> Type) (b :: [k])
+ Generics.SOP: data NS (a :: k -> Type) (b :: [k])
+ Generics.SOP: data Proxy (t :: k)
+ Generics.SOP: data SList (a :: [k])
+ Generics.SOP: data Shape (a :: [k])
+ Generics.SOP: newtype ( (f :: l -> Type) :.: (g :: k -> l) ) (p :: k)
+ Generics.SOP: newtype K a (b :: k)
+ Generics.SOP: newtype POP (f :: k -> Type) (xss :: [[k]])
+ Generics.SOP: newtype SOP (f :: k -> Type) (xss :: [[k]])
+ Generics.SOP.Instances: instance Generics.SOP.Universe.Generic GHC.IO.Handle.Lock.Common.LockMode
+ Generics.SOP.Instances: instance Generics.SOP.Universe.HasDatatypeInfo GHC.IO.Handle.Lock.Common.LockMode
- Generics.SOP: Comp :: f (g p) -> (:.:)
+ Generics.SOP: Comp :: f (g p) -> (:.:) (f :: l -> Type) (g :: k -> l) (p :: k)
- Generics.SOP: Fn :: (f a -> g a) -> (-.->)
+ Generics.SOP: Fn :: (f a -> g a) -> (-.->) (f :: k -> Type) (g :: k -> Type) (a :: k)
- Generics.SOP: K :: a -> K a
+ Generics.SOP: K :: a -> K a (b :: k)
- Generics.SOP: POP :: NP (NP f) xss -> POP
+ Generics.SOP: POP :: NP (NP f) xss -> POP (f :: k -> Type) (xss :: [[k]])
- Generics.SOP: Proxy :: Proxy
+ Generics.SOP: Proxy :: Proxy (t :: k)
- Generics.SOP: SOP :: NS (NP f) xss -> SOP
+ Generics.SOP: SOP :: NS (NP f) xss -> SOP (f :: k -> Type) (xss :: [[k]])
- Generics.SOP: [:*] :: forall k (a :: k -> Type) (b :: [k]) (x :: k) (xs :: [k]). () => a x -> NP a xs -> NP a (x : xs)
+ Generics.SOP: [:*] :: forall k (a :: k -> Type) (x :: k) (xs :: [k]). a x -> NP a xs -> NP a (x : xs)
- Generics.SOP: [Newtype] :: ModuleName -> DatatypeName -> ConstructorInfo '[x] -> DatatypeInfo '['[x]]
+ Generics.SOP: [Newtype] :: ModuleName -> DatatypeName -> ConstructorInfo '[x] -> DatatypeInfo '[ '[x]]
- Generics.SOP: [Nil] :: forall k (a :: k -> Type) (b :: [k]). () => NP a ([] :: [k])
+ Generics.SOP: [Nil] :: forall k (a :: k -> Type). NP a ('[] :: [k])
- Generics.SOP: [SCons] :: forall k (a :: [k]) (xs :: [k]) (x :: k). SListI xs => SList (x : xs)
+ Generics.SOP: [SCons] :: forall k (xs :: [k]) (x :: k). SListI xs => SList (x : xs)
- Generics.SOP: [SNil] :: forall k (a :: [k]). () => SList ([] :: [k])
+ Generics.SOP: [SNil] :: forall k. SList ('[] :: [k])
- Generics.SOP: [S] :: forall k (a :: k -> Type) (b :: [k]) (xs :: [k]) (x :: k). () => NS a xs -> NS a (x : xs)
+ Generics.SOP: [S] :: forall k (a :: k -> Type) (xs :: [k]) (x :: k). NS a xs -> NS a (x : xs)
- Generics.SOP: [ShapeCons] :: forall k (a :: [k]) (xs :: [k]) (x :: k). SListI xs => Shape xs -> Shape (x : xs)
+ Generics.SOP: [ShapeCons] :: forall k (xs :: [k]) (x :: k). SListI xs => Shape xs -> Shape (x : xs)
- Generics.SOP: [ShapeNil] :: forall k (a :: [k]). () => Shape ([] :: [k])
+ Generics.SOP: [ShapeNil] :: forall k. Shape ('[] :: [k])
- Generics.SOP: [Z] :: forall k (a :: k -> Type) (b :: [k]) (x :: k) (xs :: [k]). () => a x -> NS a (x : xs)
+ Generics.SOP: [Z] :: forall k (a :: k -> Type) (x :: k) (xs :: [k]). a x -> NS a (x : xs)
- Generics.SOP: [apFn] :: (-.->) -> f a -> g a
+ Generics.SOP: [apFn] :: (-.->) (f :: k -> Type) (g :: k -> Type) (a :: k) -> f a -> g a
- Generics.SOP: apInjs_NP :: SListI xs => NP f xs -> [NS f xs]
+ Generics.SOP: apInjs_NP :: forall k (xs :: [k]) (f :: k -> Type). SListI xs => NP f xs -> [NS f xs]
- Generics.SOP: apInjs_POP :: SListI xss => POP f xss -> [SOP f xss]
+ Generics.SOP: apInjs_POP :: forall k (xss :: [[k]]) (f :: k -> Type). SListI xss => POP f xss -> [SOP f xss]
- Generics.SOP: case_SList :: SListI xs => r ([] :: [k]) -> (forall (y :: k) (ys :: [k]). SListI ys => r (y : ys)) -> r xs
+ Generics.SOP: case_SList :: forall k (xs :: [k]) r. SListI xs => r ('[] :: [k]) -> (forall (y :: k) (ys :: [k]). SListI ys => r (y : ys)) -> r xs
- Generics.SOP: ccase_SList :: All c xs => proxy c -> r ([] :: [k]) -> (forall (y :: k) (ys :: [k]). (c y, All c ys) => r (y : ys)) -> r xs
+ Generics.SOP: ccase_SList :: forall k c (xs :: [k]) proxy r. All c xs => proxy c -> r ('[] :: [k]) -> (forall (y :: k) (ys :: [k]). (c y, All c ys) => r (y : ys)) -> r xs
- Generics.SOP: ccompare_NS :: All c xs => proxy c -> r -> (forall (x :: k). c x => f x -> g x -> r) -> r -> NS f xs -> NS g xs -> r
+ Generics.SOP: ccompare_NS :: forall k c proxy r f g (xs :: [k]). All c xs => proxy c -> r -> (forall (x :: k). c x => f x -> g x -> r) -> r -> NS f xs -> NS g xs -> r
- Generics.SOP: ccompare_SOP :: All2 c xss => proxy c -> r -> (forall (xs :: [k]). All c xs => NP f xs -> NP g xs -> r) -> r -> SOP f xss -> SOP g xss -> r
+ Generics.SOP: ccompare_SOP :: forall k (c :: k -> Constraint) proxy r (f :: k -> Type) (g :: k -> Type) (xss :: [[k]]). All2 c xss => proxy c -> r -> (forall (xs :: [k]). All c xs => NP f xs -> NP g xs -> r) -> r -> SOP f xss -> SOP g xss -> r
- Generics.SOP: class ((Same h1 :: k2 -> Type -> l2 -> Type) ~ h2, (Same h2 :: k1 -> Type -> l1 -> Type) ~ h1) => HTrans (h1 :: k1 -> Type -> l1 -> Type) (h2 :: k2 -> Type -> l2 -> Type)
+ Generics.SOP: class (Same h1 :: k2 -> Type -> l2 -> Type ~ h2, Same h2 :: k1 -> Type -> l1 -> Type ~ h1) => HTrans (h1 :: k1 -> Type -> l1 -> Type) (h2 :: k2 -> Type -> l2 -> Type)
- Generics.SOP: class Coercible f x g y => LiftedCoercible (f :: k -> k0) (g :: k1 -> k0) (x :: k) (y :: k1)
+ Generics.SOP: class Coercible f x g y => LiftedCoercible (f :: k -> k1) (g :: k2 -> k1) (x :: k) (y :: k2)
- Generics.SOP: compare_NS :: () => r -> (forall (x :: k). () => f x -> g x -> r) -> r -> NS f xs -> NS g xs -> r
+ Generics.SOP: compare_NS :: forall k r f g (xs :: [k]). r -> (forall (x :: k). () => f x -> g x -> r) -> r -> NS f xs -> NS g xs -> r
- Generics.SOP: compare_SOP :: () => r -> (forall (xs :: [k]). () => NP f xs -> NP g xs -> r) -> r -> SOP f xss -> SOP g xss -> r
+ Generics.SOP: compare_SOP :: forall k r (f :: k -> Type) (g :: k -> Type) (xss :: [[k]]). r -> (forall (xs :: [k]). () => NP f xs -> NP g xs -> r) -> r -> SOP f xss -> SOP g xss -> r
- Generics.SOP: cpara_SList :: All c xs => proxy c -> r ([] :: [k]) -> (forall (y :: k) (ys :: [k]). (c y, All c ys) => r ys -> r (y : ys)) -> r xs
+ Generics.SOP: cpara_SList :: All c xs => proxy c -> r ('[] :: [k]) -> (forall (y :: k) (ys :: [k]). (c y, All c ys) => r ys -> r (y : ys)) -> r xs
- Generics.SOP: ejections :: SListI xs => NP (Ejection f xs) xs
+ Generics.SOP: ejections :: forall k (xs :: [k]) (f :: k -> Type). SListI xs => NP (Ejection f xs) xs
- Generics.SOP: fn :: () => (f a -> f' a) -> (f -.-> f') a
+ Generics.SOP: fn :: forall k f (a :: k) f'. (f a -> f' a) -> (f -.-> f') a
- Generics.SOP: fn_2 :: () => (f a -> f' a -> f'' a) -> (f -.-> (f' -.-> f'')) a
+ Generics.SOP: fn_2 :: forall k f (a :: k) f' f''. (f a -> f' a -> f'' a) -> (f -.-> (f' -.-> f'')) a
- Generics.SOP: fn_3 :: () => (f a -> f' a -> f'' a -> f''' a) -> (f -.-> (f' -.-> (f'' -.-> f'''))) a
+ Generics.SOP: fn_3 :: forall k f (a :: k) f' f'' f'''. (f a -> f' a -> f'' a -> f''' a) -> (f -.-> (f' -.-> (f'' -.-> f'''))) a
- Generics.SOP: fn_4 :: () => (f a -> f' a -> f'' a -> f''' a -> f'''' a) -> (f -.-> (f' -.-> (f'' -.-> (f''' -.-> f'''')))) a
+ Generics.SOP: fn_4 :: forall k f (a :: k) f' f'' f''' f''''. (f a -> f' a -> f'' a -> f''' a -> f'''' a) -> (f -.-> (f' -.-> (f'' -.-> (f''' -.-> f'''')))) a
- Generics.SOP: fromList :: SListI xs => [a] -> Maybe (NP (K a :: k -> Type) xs)
+ Generics.SOP: fromList :: forall k (xs :: [k]) a. SListI xs => [a] -> Maybe (NP (K a :: k -> Type) xs)
- Generics.SOP: hap :: HAp h => Prod h (f -.-> g) xs -> h f xs -> h g xs
+ Generics.SOP: hap :: forall (f :: k -> Type) (g :: k -> Type) (xs :: l). HAp h => Prod h (f -.-> g) xs -> h f xs -> h g xs
- Generics.SOP: hapInjs :: (HApInjs h, SListIN h xs) => Prod h f xs -> [h f xs]
+ Generics.SOP: hapInjs :: forall (xs :: l) (f :: k -> Type). (HApInjs h, SListIN h xs) => Prod h f xs -> [h f xs]
- Generics.SOP: hcexpand :: (HExpand h, AllN (Prod h) c xs) => proxy c -> (forall (x :: k). c x => f x) -> h f xs -> Prod h f xs
+ Generics.SOP: hcexpand :: forall c (xs :: l) proxy f. (HExpand h, AllN (Prod h) c xs) => proxy c -> (forall (x :: k). c x => f x) -> h f xs -> Prod h f xs
- Generics.SOP: hcfoldMap :: (HTraverse_ h, AllN h c xs, Monoid m) => proxy c -> (forall (a :: k). c a => f a -> m) -> h f xs -> m
+ Generics.SOP: hcfoldMap :: forall k l h c (xs :: l) m proxy f. (HTraverse_ h, AllN h c xs, Monoid m) => proxy c -> (forall (a :: k). c a => f a -> m) -> h f xs -> m
- Generics.SOP: hcfor :: (HSequence h, AllN h c xs, Applicative g) => proxy c -> h f xs -> (forall a. c a => f a -> g a) -> g (h I xs)
+ Generics.SOP: hcfor :: forall l h c (xs :: l) g proxy f. (HSequence h, AllN h c xs, Applicative g) => proxy c -> h f xs -> (forall a. c a => f a -> g a) -> g (h I xs)
- Generics.SOP: hcfor_ :: (HTraverse_ h, AllN h c xs, Applicative g) => proxy c -> h f xs -> (forall (a :: k). c a => f a -> g ()) -> g ()
+ Generics.SOP: hcfor_ :: forall k l h c (xs :: l) g proxy f. (HTraverse_ h, AllN h c xs, Applicative g) => proxy c -> h f xs -> (forall (a :: k). c a => f a -> g ()) -> g ()
- Generics.SOP: hcliftA :: (AllN (Prod h) c xs, HAp h) => proxy c -> (forall (a :: k). c a => f a -> f' a) -> h f xs -> h f' xs
+ Generics.SOP: hcliftA :: forall k l h c (xs :: l) proxy f f'. (AllN (Prod h) c xs, HAp h) => proxy c -> (forall (a :: k). c a => f a -> f' a) -> h f xs -> h f' xs
- Generics.SOP: hcliftA' :: (All2 c xss, Prod h ~ (NP :: ([k] -> Type) -> [[k]] -> Type), HAp h) => proxy c -> (forall (xs :: [k]). All c xs => f xs -> f' xs) -> h f xss -> h f' xss
+ Generics.SOP: hcliftA' :: forall k (c :: k -> Constraint) (xss :: [[k]]) h proxy f f'. (All2 c xss, Prod h ~ (NP :: ([k] -> Type) -> [[k]] -> Type), HAp h) => proxy c -> (forall (xs :: [k]). All c xs => f xs -> f' xs) -> h f xss -> h f' xss
- Generics.SOP: hcliftA2 :: (AllN (Prod h) c xs, HAp h, HAp (Prod h)) => proxy c -> (forall (a :: k). c a => f a -> f' a -> f'' a) -> Prod h f xs -> h f' xs -> h f'' xs
+ Generics.SOP: hcliftA2 :: forall k l h c (xs :: l) proxy f f' f''. (AllN (Prod h) c xs, HAp h, HAp (Prod h)) => proxy c -> (forall (a :: k). c a => f a -> f' a -> f'' a) -> Prod h f xs -> h f' xs -> h f'' xs
- Generics.SOP: hcliftA2' :: (All2 c xss, Prod h ~ (NP :: ([k] -> Type) -> [[k]] -> Type), HAp h) => proxy c -> (forall (xs :: [k]). All c xs => f xs -> f' xs -> f'' xs) -> Prod h f xss -> h f' xss -> h f'' xss
+ Generics.SOP: hcliftA2' :: forall k (c :: k -> Constraint) (xss :: [[k]]) h proxy f f' f''. (All2 c xss, Prod h ~ (NP :: ([k] -> Type) -> [[k]] -> Type), HAp h) => proxy c -> (forall (xs :: [k]). All c xs => f xs -> f' xs -> f'' xs) -> Prod h f xss -> h f' xss -> h f'' xss
- Generics.SOP: hcliftA3 :: (AllN (Prod h) c xs, HAp h, HAp (Prod h)) => proxy c -> (forall (a :: k). c a => f a -> f' a -> f'' a -> f''' a) -> Prod h f xs -> Prod h f' xs -> h f'' xs -> h f''' xs
+ Generics.SOP: hcliftA3 :: forall k l h c (xs :: l) proxy f f' f'' f'''. (AllN (Prod h) c xs, HAp h, HAp (Prod h)) => proxy c -> (forall (a :: k). c a => f a -> f' a -> f'' a -> f''' a) -> Prod h f xs -> Prod h f' xs -> h f'' xs -> h f''' xs
- Generics.SOP: hcliftA3' :: (All2 c xss, Prod h ~ (NP :: ([k] -> Type) -> [[k]] -> Type), HAp h) => proxy c -> (forall (xs :: [k]). All c xs => f xs -> f' xs -> f'' xs -> f''' xs) -> Prod h f xss -> Prod h f' xss -> h f'' xss -> h f''' xss
+ Generics.SOP: hcliftA3' :: forall k (c :: k -> Constraint) (xss :: [[k]]) h proxy f f' f'' f'''. (All2 c xss, Prod h ~ (NP :: ([k] -> Type) -> [[k]] -> Type), HAp h) => proxy c -> (forall (xs :: [k]). All c xs => f xs -> f' xs -> f'' xs -> f''' xs) -> Prod h f xss -> Prod h f' xss -> h f'' xss -> h f''' xss
- Generics.SOP: hcmap :: (AllN (Prod h) c xs, HAp h) => proxy c -> (forall (a :: k). c a => f a -> f' a) -> h f xs -> h f' xs
+ Generics.SOP: hcmap :: forall k l h c (xs :: l) proxy f f'. (AllN (Prod h) c xs, HAp h) => proxy c -> (forall (a :: k). c a => f a -> f' a) -> h f xs -> h f' xs
- Generics.SOP: hcoerce :: (HTrans h1 h2, AllZipN (Prod h1) (LiftedCoercible f g) xs ys) => h1 f xs -> h2 g ys
+ Generics.SOP: hcoerce :: forall (f :: k1 -> Type) (g :: k2 -> Type) (xs :: l1) (ys :: l2). (HTrans h1 h2, AllZipN (Prod h1) (LiftedCoercible f g) xs ys) => h1 f xs -> h2 g ys
- Generics.SOP: hcollapse :: (HCollapse h, SListIN h xs) => h (K a :: k -> Type) xs -> CollapseTo h a
+ Generics.SOP: hcollapse :: forall (xs :: l) a. (HCollapse h, SListIN h xs) => h (K a :: k -> Type) xs -> CollapseTo h a
- Generics.SOP: hcpure :: (HPure h, AllN h c xs) => proxy c -> (forall (a :: k). c a => f a) -> h f xs
+ Generics.SOP: hcpure :: forall c (xs :: l) proxy f. (HPure h, AllN h c xs) => proxy c -> (forall (a :: k). c a => f a) -> h f xs
- Generics.SOP: hctraverse :: (HSequence h, AllN h c xs, Applicative g) => proxy c -> (forall a. c a => f a -> g a) -> h f xs -> g (h I xs)
+ Generics.SOP: hctraverse :: forall l h c (xs :: l) g proxy f. (HSequence h, AllN h c xs, Applicative g) => proxy c -> (forall a. c a => f a -> g a) -> h f xs -> g (h I xs)
- Generics.SOP: hctraverse' :: (HSequence h, AllN h c xs, Applicative g) => proxy c -> (forall (a :: k). c a => f a -> g (f' a)) -> h f xs -> g (h f' xs)
+ Generics.SOP: hctraverse' :: forall c (xs :: l) g proxy f f'. (HSequence h, AllN h c xs, Applicative g) => proxy c -> (forall (a :: k). c a => f a -> g (f' a)) -> h f xs -> g (h f' xs)
- Generics.SOP: hctraverse_ :: (HTraverse_ h, AllN h c xs, Applicative g) => proxy c -> (forall (a :: k). c a => f a -> g ()) -> h f xs -> g ()
+ Generics.SOP: hctraverse_ :: forall c (xs :: l) g proxy f. (HTraverse_ h, AllN h c xs, Applicative g) => proxy c -> (forall (a :: k). c a => f a -> g ()) -> h f xs -> g ()
- Generics.SOP: hczipWith :: (AllN (Prod h) c xs, HAp h, HAp (Prod h)) => proxy c -> (forall (a :: k). c a => f a -> f' a -> f'' a) -> Prod h f xs -> h f' xs -> h f'' xs
+ Generics.SOP: hczipWith :: forall k l h c (xs :: l) proxy f f' f''. (AllN (Prod h) c xs, HAp h, HAp (Prod h)) => proxy c -> (forall (a :: k). c a => f a -> f' a -> f'' a) -> Prod h f xs -> h f' xs -> h f'' xs
- Generics.SOP: hczipWith3 :: (AllN (Prod h) c xs, HAp h, HAp (Prod h)) => proxy c -> (forall (a :: k). c a => f a -> f' a -> f'' a -> f''' a) -> Prod h f xs -> Prod h f' xs -> h f'' xs -> h f''' xs
+ Generics.SOP: hczipWith3 :: forall k l h c (xs :: l) proxy f f' f'' f'''. (AllN (Prod h) c xs, HAp h, HAp (Prod h)) => proxy c -> (forall (a :: k). c a => f a -> f' a -> f'' a -> f''' a) -> Prod h f xs -> Prod h f' xs -> h f'' xs -> h f''' xs
- Generics.SOP: hd :: () => NP f (x : xs) -> f x
+ Generics.SOP: hd :: forall k f (x :: k) (xs :: [k]). NP f (x : xs) -> f x
- Generics.SOP: hexpand :: (HExpand h, SListIN (Prod h) xs) => (forall (x :: k). () => f x) -> h f xs -> Prod h f xs
+ Generics.SOP: hexpand :: forall (xs :: l) f. (HExpand h, SListIN (Prod h) xs) => (forall (x :: k). () => f x) -> h f xs -> Prod h f xs
- Generics.SOP: hfromI :: (AllZipN (Prod h1) (LiftedCoercible I f) xs ys, HTrans h1 h2) => h1 I xs -> h2 f ys
+ Generics.SOP: hfromI :: forall l1 k2 l2 h1 (f :: k2 -> Type) (xs :: l1) (ys :: l2) h2. (AllZipN (Prod h1) (LiftedCoercible I f) xs ys, HTrans h1 h2) => h1 I xs -> h2 f ys
- Generics.SOP: hindex :: HIndex h => h f xs -> Int
+ Generics.SOP: hindex :: forall (f :: k -> Type) (xs :: l). HIndex h => h f xs -> Int
- Generics.SOP: hliftA :: (SListIN (Prod h) xs, HAp h) => (forall (a :: k). () => f a -> f' a) -> h f xs -> h f' xs
+ Generics.SOP: hliftA :: forall k l h (xs :: l) f f'. (SListIN (Prod h) xs, HAp h) => (forall (a :: k). () => f a -> f' a) -> h f xs -> h f' xs
- Generics.SOP: hliftA2 :: (SListIN (Prod h) xs, HAp h, HAp (Prod h)) => (forall (a :: k). () => f a -> f' a -> f'' a) -> Prod h f xs -> h f' xs -> h f'' xs
+ Generics.SOP: hliftA2 :: forall k l h (xs :: l) f f' f''. (SListIN (Prod h) xs, HAp h, HAp (Prod h)) => (forall (a :: k). () => f a -> f' a -> f'' a) -> Prod h f xs -> h f' xs -> h f'' xs
- Generics.SOP: hliftA3 :: (SListIN (Prod h) xs, HAp h, HAp (Prod h)) => (forall (a :: k). () => f a -> f' a -> f'' a -> f''' a) -> Prod h f xs -> Prod h f' xs -> h f'' xs -> h f''' xs
+ Generics.SOP: hliftA3 :: forall k l h (xs :: l) f f' f'' f'''. (SListIN (Prod h) xs, HAp h, HAp (Prod h)) => (forall (a :: k). () => f a -> f' a -> f'' a -> f''' a) -> Prod h f xs -> Prod h f' xs -> h f'' xs -> h f''' xs
- Generics.SOP: hmap :: (SListIN (Prod h) xs, HAp h) => (forall (a :: k). () => f a -> f' a) -> h f xs -> h f' xs
+ Generics.SOP: hmap :: forall k l h (xs :: l) f f'. (SListIN (Prod h) xs, HAp h) => (forall (a :: k). () => f a -> f' a) -> h f xs -> h f' xs
- Generics.SOP: hpure :: (HPure h, SListIN h xs) => (forall (a :: k). () => f a) -> h f xs
+ Generics.SOP: hpure :: forall (xs :: l) f. (HPure h, SListIN h xs) => (forall (a :: k). () => f a) -> h f xs
- Generics.SOP: hsequence :: (SListIN h xs, SListIN (Prod h) xs, HSequence h, Applicative f) => h f xs -> f (h I xs)
+ Generics.SOP: hsequence :: forall l h (xs :: l) f. (SListIN h xs, SListIN (Prod h) xs, HSequence h, Applicative f) => h f xs -> f (h I xs)
- Generics.SOP: hsequence' :: (HSequence h, SListIN h xs, Applicative f) => h (f :.: g) xs -> f (h g xs)
+ Generics.SOP: hsequence' :: forall (xs :: l) f (g :: k -> Type). (HSequence h, SListIN h xs, Applicative f) => h (f :.: g) xs -> f (h g xs)
- Generics.SOP: hsequenceK :: (SListIN h xs, SListIN (Prod h) xs, Applicative f, HSequence h) => h (K (f a) :: k -> Type) xs -> f (h (K a :: k -> Type) xs)
+ Generics.SOP: hsequenceK :: forall k l h (xs :: l) f a. (SListIN h xs, SListIN (Prod h) xs, Applicative f, HSequence h) => h (K (f a) :: k -> Type) xs -> f (h (K a :: k -> Type) xs)
- Generics.SOP: htoI :: (AllZipN (Prod h1) (LiftedCoercible f I) xs ys, HTrans h1 h2) => h1 f xs -> h2 I ys
+ Generics.SOP: htoI :: forall k1 l1 l2 h1 (f :: k1 -> Type) (xs :: l1) (ys :: l2) h2. (AllZipN (Prod h1) (LiftedCoercible f I) xs ys, HTrans h1 h2) => h1 f xs -> h2 I ys
- Generics.SOP: htrans :: (HTrans h1 h2, AllZipN (Prod h1) c xs ys) => proxy c -> (forall (x :: k1) (y :: k2). c x y => f x -> g y) -> h1 f xs -> h2 g ys
+ Generics.SOP: htrans :: forall c (xs :: l1) (ys :: l2) proxy f g. (HTrans h1 h2, AllZipN (Prod h1) c xs ys) => proxy c -> (forall (x :: k1) (y :: k2). c x y => f x -> g y) -> h1 f xs -> h2 g ys
- Generics.SOP: htraverse' :: (HSequence h, SListIN h xs, Applicative g) => (forall (a :: k). () => f a -> g (f' a)) -> h f xs -> g (h f' xs)
+ Generics.SOP: htraverse' :: forall (xs :: l) g f f'. (HSequence h, SListIN h xs, Applicative g) => (forall (a :: k). () => f a -> g (f' a)) -> h f xs -> g (h f' xs)
- Generics.SOP: htraverse_ :: (HTraverse_ h, SListIN h xs, Applicative g) => (forall (a :: k). () => f a -> g ()) -> h f xs -> g ()
+ Generics.SOP: htraverse_ :: forall (xs :: l) g f. (HTraverse_ h, SListIN h xs, Applicative g) => (forall (a :: k). () => f a -> g ()) -> h f xs -> g ()
- Generics.SOP: hzipWith :: (SListIN (Prod h) xs, HAp h, HAp (Prod h)) => (forall (a :: k). () => f a -> f' a -> f'' a) -> Prod h f xs -> h f' xs -> h f'' xs
+ Generics.SOP: hzipWith :: forall k l h (xs :: l) f f' f''. (SListIN (Prod h) xs, HAp h, HAp (Prod h)) => (forall (a :: k). () => f a -> f' a -> f'' a) -> Prod h f xs -> h f' xs -> h f'' xs
- Generics.SOP: hzipWith3 :: (SListIN (Prod h) xs, HAp h, HAp (Prod h)) => (forall (a :: k). () => f a -> f' a -> f'' a -> f''' a) -> Prod h f xs -> Prod h f' xs -> h f'' xs -> h f''' xs
+ Generics.SOP: hzipWith3 :: forall k l h (xs :: l) f f' f'' f'''. (SListIN (Prod h) xs, HAp h, HAp (Prod h)) => (forall (a :: k). () => f a -> f' a -> f'' a -> f''' a) -> Prod h f xs -> Prod h f' xs -> h f'' xs -> h f''' xs
- Generics.SOP: injections :: SListI xs => NP (Injection f xs) xs
+ Generics.SOP: injections :: forall k (xs :: [k]) (f :: k -> Type). SListI xs => NP (Injection f xs) xs
- Generics.SOP: lengthSList :: SListI xs => proxy xs -> Int
+ Generics.SOP: lengthSList :: forall k (xs :: [k]) proxy. SListI xs => proxy xs -> Int
- Generics.SOP: mapII :: () => (a -> b) -> I a -> I b
+ Generics.SOP: mapII :: (a -> b) -> I a -> I b
- Generics.SOP: mapIII :: () => (a -> b -> c) -> I a -> I b -> I c
+ Generics.SOP: mapIII :: (a -> b -> c) -> I a -> I b -> I c
- Generics.SOP: mapIIK :: () => (a -> b -> c) -> I a -> I b -> K c d
+ Generics.SOP: mapIIK :: forall k a b c (d :: k). (a -> b -> c) -> I a -> I b -> K c d
- Generics.SOP: mapIK :: () => (a -> b) -> I a -> K b c
+ Generics.SOP: mapIK :: forall k a b (c :: k). (a -> b) -> I a -> K b c
- Generics.SOP: mapIKI :: () => (a -> b -> c) -> I a -> K b d -> I c
+ Generics.SOP: mapIKI :: forall k a b c (d :: k). (a -> b -> c) -> I a -> K b d -> I c
- Generics.SOP: mapIKK :: () => (a -> b -> c) -> I a -> K b d -> K c e
+ Generics.SOP: mapIKK :: forall k1 k2 a b c (d :: k1) (e :: k2). (a -> b -> c) -> I a -> K b d -> K c e
- Generics.SOP: mapKI :: () => (a -> b) -> K a c -> I b
+ Generics.SOP: mapKI :: forall k a b (c :: k). (a -> b) -> K a c -> I b
- Generics.SOP: mapKII :: () => (a -> b -> c) -> K a d -> I b -> I c
+ Generics.SOP: mapKII :: forall k a b c (d :: k). (a -> b -> c) -> K a d -> I b -> I c
- Generics.SOP: mapKIK :: () => (a -> b -> c) -> K a d -> I b -> K c e
+ Generics.SOP: mapKIK :: forall k1 k2 a b c (d :: k1) (e :: k2). (a -> b -> c) -> K a d -> I b -> K c e
- Generics.SOP: mapKK :: () => (a -> b) -> K a c -> K b d
+ Generics.SOP: mapKK :: forall k1 k2 a b (c :: k1) (d :: k2). (a -> b) -> K a c -> K b d
- Generics.SOP: mapKKI :: () => (a -> b -> c) -> K a d -> K b e -> I c
+ Generics.SOP: mapKKI :: forall k1 k2 a b c (d :: k1) (e :: k2). (a -> b -> c) -> K a d -> K b e -> I c
- Generics.SOP: mapKKK :: () => (a -> b -> c) -> K a d -> K b e -> K c f
+ Generics.SOP: mapKKK :: forall k1 k2 k3 a b c (d :: k1) (e :: k2) (f :: k3). (a -> b -> c) -> K a d -> K b e -> K c f
- Generics.SOP: para_SList :: SListI xs => r ([] :: [k]) -> (forall (y :: k) (ys :: [k]). SListI ys => r ys -> r (y : ys)) -> r xs
+ Generics.SOP: para_SList :: forall k (xs :: [k]) r. SListI xs => r ('[] :: [k]) -> (forall (y :: k) (ys :: [k]). SListI ys => r ys -> r (y : ys)) -> r xs
- Generics.SOP: projections :: SListI xs => NP (Projection f xs) xs
+ Generics.SOP: projections :: forall k (xs :: [k]) (f :: k -> Type). SListI xs => NP (Projection f xs) xs
- Generics.SOP: sList :: SListI xs => SList xs
+ Generics.SOP: sList :: forall k (xs :: [k]). SListI xs => SList xs
- Generics.SOP: shape :: SListI xs => Shape xs
+ Generics.SOP: shape :: forall k (xs :: [k]). SListI xs => Shape xs
- Generics.SOP: shift :: () => Injection f xs a2 -> Injection f (x : xs) a2
+ Generics.SOP: shift :: forall a1 (f :: a1 -> Type) (xs :: [a1]) (a2 :: a1) (x :: a1). Injection f xs a2 -> Injection f (x : xs) a2
- Generics.SOP: shiftEjection :: () => Ejection f xs a2 -> Ejection f (x : xs) a2
+ Generics.SOP: shiftEjection :: forall a1 (f :: a1 -> Type) (x :: a1) (xs :: [a1]) (a2 :: a1). Ejection f xs a2 -> Ejection f (x : xs) a2
- Generics.SOP: shiftInjection :: () => Injection f xs a2 -> Injection f (x : xs) a2
+ Generics.SOP: shiftInjection :: forall a1 (f :: a1 -> Type) (xs :: [a1]) (a2 :: a1) (x :: a1). Injection f xs a2 -> Injection f (x : xs) a2
- Generics.SOP: shiftProjection :: () => Projection f xs a2 -> Projection f (x : xs) a2
+ Generics.SOP: shiftProjection :: forall a1 (f :: a1 -> Type) (xs :: [a1]) (a2 :: a1) (x :: a1). Projection f xs a2 -> Projection f (x : xs) a2
- Generics.SOP: tl :: () => NP f (x : xs) -> NP f xs
+ Generics.SOP: tl :: forall k (f :: k -> Type) (x :: k) (xs :: [k]). NP f (x : xs) -> NP f xs
- Generics.SOP: type Ejection (f :: k -> Type) (xs :: [k]) = (K NS f xs :: k -> Type) -.-> Maybe :.: f
+ Generics.SOP: type Ejection (f :: k -> Type) (xs :: [k]) = K NS f xs :: k -> Type -.-> Maybe :.: f
- Generics.SOP: type Injection (f :: k -> Type) (xs :: [k]) = f -.-> (K NS f xs :: k -> Type)
+ Generics.SOP: type Injection (f :: k -> Type) (xs :: [k]) = f -.-> K NS f xs :: k -> Type
- Generics.SOP: type IsWrappedType (a :: Type) (x :: Type) = (Generic a, Code a ~ '['[x]])
+ Generics.SOP: type IsWrappedType (a :: Type) (x :: Type) = (Generic a, Code a ~ '[ '[x]])
- Generics.SOP: type Projection (f :: k -> Type) (xs :: [k]) = (K NP f xs :: k -> Type) -.-> f
+ Generics.SOP: type Projection (f :: k -> Type) (xs :: [k]) = K NP f xs :: k -> Type -.-> f
- Generics.SOP: type SListI = All (Top :: k -> Constraint)
+ Generics.SOP: type SListI = All Top :: k -> Constraint
- Generics.SOP: type SListI2 = All (SListI :: [k] -> Constraint)
+ Generics.SOP: type SListI2 = All SListI :: [k] -> Constraint
- Generics.SOP: type family SameShapeAs (xs :: [a]) (ys :: [b]) :: Constraint
+ Generics.SOP: type family SameShapeAs (xs :: [a]) (ys :: [b])
- Generics.SOP: unComp :: () => (f :.: g) p -> f (g p)
+ Generics.SOP: unComp :: forall l k f (g :: k -> l) (p :: k). (f :.: g) p -> f (g p)
- Generics.SOP: unI :: () => I a -> a
+ Generics.SOP: unI :: I a -> a
- Generics.SOP: unK :: () => K a b -> a
+ Generics.SOP: unK :: forall k a (b :: k). K a b -> a
- Generics.SOP: unPOP :: () => POP f xss -> NP (NP f) xss
+ Generics.SOP: unPOP :: forall k (f :: k -> Type) (xss :: [[k]]). POP f xss -> NP (NP f) xss
- Generics.SOP: unSOP :: () => SOP f xss -> NS (NP f) xss
+ Generics.SOP: unSOP :: forall k (f :: k -> Type) (xss :: [[k]]). SOP f xss -> NS (NP f) xss
- Generics.SOP: unZ :: () => NS f (x : ([] :: [k])) -> f x
+ Generics.SOP: unZ :: forall k f (x :: k). NS f '[x] -> f x
- Generics.SOP.Metadata: [Newtype] :: ModuleName -> DatatypeName -> ConstructorInfo '[x] -> DatatypeInfo '['[x]]
+ Generics.SOP.Metadata: [Newtype] :: ModuleName -> DatatypeName -> ConstructorInfo '[x] -> DatatypeInfo '[ '[x]]
- Generics.SOP.Universe: type IsWrappedType (a :: Type) (x :: Type) = (Generic a, Code a ~ '['[x]])
+ Generics.SOP.Universe: type IsWrappedType (a :: Type) (x :: Type) = (Generic a, Code a ~ '[ '[x]])
Files
- CHANGELOG.md +4/−0
- generics-sop.cabal +6/−6
- src/Generics/SOP/Instances.hs +2/−0
- src/Generics/SOP/TH.hs +8/−5
CHANGELOG.md view
@@ -1,3 +1,7 @@+# 0.5.1.1 (2020-xx-yy)++* Compatibility with GHC-9.0+ # 0.5.1.0 (2020-03-29) * Compatibility with GHC-8.10 (thanks to Ryan Scott).
generics-sop.cabal view
@@ -1,5 +1,5 @@ name: generics-sop-version: 0.5.1.0+version: 0.5.1.1 synopsis: Generic Programming using True Sums of Products description: A library to support the definition of generic functions.@@ -42,7 +42,7 @@ build-type: Simple cabal-version: >=1.10 extra-source-files: CHANGELOG.md doctest.sh-tested-with: GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5, GHC == 8.8.2, GHC == 8.10.1+tested-with: GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5, GHC == 8.8.2, GHC == 8.10.4, GHC == 9.0.1 source-repository head type: git@@ -65,11 +65,11 @@ Generics.SOP.NP Generics.SOP.NS Generics.SOP.Sing- build-depends: base >= 4.9 && < 4.15,+ build-depends: base >= 4.9 && < 4.16, sop-core == 0.5.0.*,- template-haskell >= 2.8 && < 2.17,- th-abstraction >= 0.3 && < 0.4,- ghc-prim >= 0.3 && < 0.7+ template-haskell >= 2.8 && < 2.18,+ th-abstraction >= 0.4 && < 0.5,+ ghc-prim >= 0.3 && < 0.8 hs-source-dirs: src default-language: Haskell2010 ghc-options: -Wall
src/Generics/SOP/Instances.hs view
@@ -262,7 +262,9 @@ deriveGeneric ''RuntimeRep -- new deriveGeneric ''VecCount -- new deriveGeneric ''VecElem -- new+#if !MIN_VERSION_base(4,15,0) deriveGeneric ''SpecConstrAnnotation -- new+#endif -- From GHC.Generics: deriveGeneric ''GHC.Generics.K1 -- new
src/Generics/SOP/TH.hs view
@@ -14,6 +14,9 @@ import Data.List (foldl') import Data.Maybe (fromMaybe) import Data.Proxy++-- importing in this order to avoid unused import warning+import Language.Haskell.TH.Datatype.TyVarBndr import Language.Haskell.TH import Language.Haskell.TH.Datatype as TH @@ -186,14 +189,14 @@ [ tySynD datatypeInfoName' [] (metadataType' variant name cons) ] deriveGenericForDataDec ::- (Name -> Q Type) -> DatatypeVariant -> Cxt -> Name -> [TyVarBndr] -> [Type] -> [TH.ConstructorInfo] -> Q [Dec]+ (Name -> Q Type) -> DatatypeVariant -> Cxt -> Name -> [TyVarBndrUnit] -> [Type] -> [TH.ConstructorInfo] -> Q [Dec] deriveGenericForDataDec f _variant _cxt name _bndrs instTys cons = do let typ = appTysSubst f name instTys deriveGenericForDataType f typ cons deriveGenericForDataType :: (Name -> Q Type) -> Q Type -> [TH.ConstructorInfo] -> Q [Dec] deriveGenericForDataType f typ cons = do- let codeSyn = tySynInstDCompat ''Code Nothing [typ] (codeFor f cons)+ let codeSyn = tySynInstDCompat ''Generics.SOP.Universe.Code Nothing [typ] (codeFor f cons) inst <- instanceD (cxt []) [t| Generic $typ |]@@ -201,7 +204,7 @@ return [inst] deriveMetadataForDataDec ::- (Name -> Q Type) -> DatatypeVariant -> Cxt -> Name -> [TyVarBndr] -> [Type] -> [TH.ConstructorInfo] -> Q [Dec]+ (Name -> Q Type) -> DatatypeVariant -> Cxt -> Name -> [TyVarBndrUnit] -> [Type] -> [TH.ConstructorInfo] -> Q [Dec] deriveMetadataForDataDec f variant _cxt name _bndrs instTys cons = do let typ = appTysSubst f name instTys deriveMetadataForDataType variant name typ cons@@ -508,7 +511,7 @@ appsT :: Name -> [Q Type] -> Q Type appsT n = foldl' appT (conT n) -appTyVars :: (Name -> Q Type) -> Name -> [TyVarBndr] -> Q Type+appTyVars :: (Name -> Q Type) -> Name -> [TyVarBndrUnit] -> Q Type appTyVars f n bndrs = appsT n (map (f . tvName) bndrs) @@ -545,7 +548,7 @@ -- The datatype context -> Name -- The data type's name- -> [TyVarBndr]+ -> [TyVarBndrUnit] -- The datatype's type variable binders, both implicit and explicit. -- Examples: --