kind-generics 0.4.1.2 → 0.4.1.3
raw patch · 2 files changed
+13/−4 lines, 2 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
+ Generics.Kind: WrapI :: Interpret f tys -> WrappedI (f :: Atom d Type) (tys :: LoT d)
+ Generics.Kind: [:&&:] :: forall k1 ks. k1 -> LoT ks -> LoT (k1 -> ks)
+ Generics.Kind: [:&:] :: forall d. Atom d Constraint -> Atom d Constraint -> Atom d Constraint
+ Generics.Kind: [:=>>:] :: forall d. Atom d Constraint -> Atom d Type -> Atom d Type
+ Generics.Kind: [:@:] :: forall d k1 k2. Atom d (k1 -> k2) -> Atom d k1 -> Atom d k2
+ Generics.Kind: [ForAllI] :: forall d1 d (f :: Atom (d1 -> d) Type) (tys :: LoT d). (forall (t :: d1). () => Interpret f (t :&&: tys)) -> ForAllI f tys
+ Generics.Kind: [ForAll] :: forall d1 d. Atom (d1 -> d) Type -> Atom d Type
+ Generics.Kind: [Kon] :: forall k1 d. k1 -> Atom d k1
+ Generics.Kind: [LoT0] :: LoT Type
+ Generics.Kind: [SuchThatI] :: forall d (c :: Atom d Constraint) (tys :: LoT d) (f :: Atom d Type). (Interpret c tys => Interpret f tys) -> SuchThatI c f tys
+ Generics.Kind: [VS] :: forall xs k1 x. TyVar xs k1 -> TyVar (x -> xs) k1
+ Generics.Kind: [VZ] :: forall x xs. TyVar (x -> xs) x
+ Generics.Kind: [Var] :: forall d k1. TyVar d k1 -> Atom d k1
+ Generics.Kind: [unwrapI] :: WrappedI (f :: Atom d Type) (tys :: LoT d) -> Interpret f tys
+ Generics.Kind: data Atom d (k :: TYPE r)
+ Generics.Kind: data LoT k
+ Generics.Kind: data TyVar d (k :: TYPE r)
+ Generics.Kind: fromWrappedI :: forall d1 d (f :: Atom (d1 -> d) Type) (tys :: LoT d). (forall (t :: d1). () => WrappedI f (t :&&: tys)) -> ForAllI f tys
+ Generics.Kind: newtype ForAllI (f :: Atom d1 -> d Type) (tys :: LoT d)
+ Generics.Kind: newtype SuchThatI (c :: Atom d Constraint) (f :: Atom d Type) (tys :: LoT d)
+ Generics.Kind: newtype WrappedI (f :: Atom d Type) (tys :: LoT d)
+ Generics.Kind: toWrappedI :: forall d1 ks (f :: Atom (d1 -> ks) Type) (tys :: LoT ks) (t :: d1). ForAllI f tys -> WrappedI f (t :&&: tys)
+ Generics.Kind: type (a :: Atom d k1) :~~: (b :: Atom d k2) = 'Kon (~~) :: k1 -> k2 -> Constraint :: Atom d k1 -> k2 -> Constraint :@: a :@: b
+ Generics.Kind: type LoT1 (a :: k) = a :&&: 'LoT0
+ Generics.Kind: type LoT2 (a :: k) (b :: k1) = a :&&: b :&&: 'LoT0
+ Generics.Kind: type Var0 = 'Var 'VZ :: TyVar k -> xs k
+ Generics.Kind: type Var1 = 'Var 'VS 'VZ :: TyVar k -> xs k :: TyVar x -> k -> xs k
+ Generics.Kind: type Var2 = 'Var 'VS 'VS 'VZ :: TyVar k -> xs k :: TyVar x1 -> k -> xs k :: TyVar x -> x1 -> k -> xs k
+ Generics.Kind: type Var3 = 'Var 'VS 'VS 'VS 'VZ :: TyVar k -> xs k :: TyVar x2 -> k -> xs k :: TyVar x1 -> x2 -> k -> xs k :: TyVar x -> x1 -> x2 -> k -> xs k
+ Generics.Kind: type Var4 = 'Var 'VS 'VS 'VS 'VS 'VZ :: TyVar k -> xs k :: TyVar x3 -> k -> xs k :: TyVar x2 -> x3 -> k -> xs k :: TyVar x1 -> x2 -> x3 -> k -> xs k :: TyVar x -> x1 -> x2 -> x3 -> k -> xs k
+ Generics.Kind: type Var5 = 'Var 'VS 'VS 'VS 'VS 'VS 'VZ :: TyVar k -> xs k :: TyVar x4 -> k -> xs k :: TyVar x3 -> x4 -> k -> xs k :: TyVar x2 -> x3 -> x4 -> k -> xs k :: TyVar x1 -> x2 -> x3 -> x4 -> k -> xs k :: TyVar x -> x1 -> x2 -> x3 -> x4 -> k -> xs k
+ Generics.Kind: type Var6 = 'Var 'VS 'VS 'VS 'VS 'VS 'VS 'VZ :: TyVar k -> xs k :: TyVar x5 -> k -> xs k :: TyVar x4 -> x5 -> k -> xs k :: TyVar x3 -> x4 -> x5 -> k -> xs k :: TyVar x2 -> x3 -> x4 -> x5 -> k -> xs k :: TyVar x1 -> x2 -> x3 -> x4 -> x5 -> k -> xs k :: TyVar x -> x1 -> x2 -> x3 -> x4 -> x5 -> k -> xs k
+ Generics.Kind: type Var7 = 'Var 'VS 'VS 'VS 'VS 'VS 'VS 'VS 'VZ :: TyVar k -> xs k :: TyVar x6 -> k -> xs k :: TyVar x5 -> x6 -> k -> xs k :: TyVar x4 -> x5 -> x6 -> k -> xs k :: TyVar x3 -> x4 -> x5 -> x6 -> k -> xs k :: TyVar x2 -> x3 -> x4 -> x5 -> x6 -> k -> xs k :: TyVar x1 -> x2 -> x3 -> x4 -> x5 -> x6 -> k -> xs k :: TyVar x -> x1 -> x2 -> x3 -> x4 -> x5 -> x6 -> k -> xs k
+ Generics.Kind: type Var8 = 'Var 'VS 'VS 'VS 'VS 'VS 'VS 'VS 'VS 'VZ :: TyVar k -> xs k :: TyVar x7 -> k -> xs k :: TyVar x6 -> x7 -> k -> xs k :: TyVar x5 -> x6 -> x7 -> k -> xs k :: TyVar x4 -> x5 -> x6 -> x7 -> k -> xs k :: TyVar x3 -> x4 -> x5 -> x6 -> x7 -> k -> xs k :: TyVar x2 -> x3 -> x4 -> x5 -> x6 -> x7 -> k -> xs k :: TyVar x1 -> x2 -> x3 -> x4 -> x5 -> x6 -> x7 -> k -> xs k :: TyVar x -> x1 -> x2 -> x3 -> x4 -> x5 -> x6 -> x7 -> k -> xs k
+ Generics.Kind: type Var9 = 'Var 'VS 'VS 'VS 'VS 'VS 'VS 'VS 'VS 'VS 'VZ :: TyVar k -> xs k :: TyVar x8 -> k -> xs k :: TyVar x7 -> x8 -> k -> xs k :: TyVar x6 -> x7 -> x8 -> k -> xs k :: TyVar x5 -> x6 -> x7 -> x8 -> k -> xs k :: TyVar x4 -> x5 -> x6 -> x7 -> x8 -> k -> xs k :: TyVar x3 -> x4 -> x5 -> x6 -> x7 -> x8 -> k -> xs k :: TyVar x2 -> x3 -> x4 -> x5 -> x6 -> x7 -> x8 -> k -> xs k :: TyVar x1 -> x2 -> x3 -> x4 -> x5 -> x6 -> x7 -> x8 -> k -> xs k :: TyVar x -> x1 -> x2 -> x3 -> x4 -> x5 -> x6 -> x7 -> x8 -> k -> xs k
- Generics.Kind: type family SubstAtom (f :: Atom (t -> k) d) (x :: t) :: Atom k d
+ Generics.Kind: type family ContainsTyVar (v :: TyVar d k) (t :: Atom d p) :: Bool
Files
- kind-generics.cabal +1/−1
- src/Generics/Kind.hs +12/−3
kind-generics.cabal view
@@ -1,6 +1,6 @@ cabal-version: >=1.10 name: kind-generics-version: 0.4.1.2+version: 0.4.1.3 synopsis: Generic programming in GHC style for arbitrary kinds and GADTs. description: This package provides functionality to extend the data type generic programming functionality in GHC to classes of arbitrary kind, and constructors featuring constraints and existentials, as usually found in GADTs. -- bug-reports:
src/Generics/Kind.hs view
@@ -18,11 +18,14 @@ {-# language UndecidableSuperClasses #-} -- | Main module of @kind-generics@. Please refer to the @README@ file for documentation on how to use this package. module Generics.Kind (- module Data.PolyKinded-, module Data.PolyKinded.Atom -- * Generic representation types-, (:+:)(..), (:*:)(..), V1, U1(..), M1(..)+ (:+:)(..), (:*:)(..), V1, U1(..), M1(..) , Field(..), (:=>:)(..), Exists(..)+ -- ** Atoms for 'Field'+, TyVar(..), Atom(..), (:$:), (:~:), (:~~:)+, Var0, Var1, Var2, Var3, Var4, Var5, Var6, Var7, Var8, Var9+ -- ** Lists of types+, LoT(..), (:@@:), LoT1, LoT2 -- * Generic type classes , GenericK(..) , GenericF, fromF, toF@@ -31,6 +34,12 @@ , fromRepK, toRepK, SubstRep, SubstRep', SubstAtom -- * Bridging with "GHC.Generics" , Conv(..)+ -- * Re-exported from 'Data.PolyKinded.Atom'+ -- ** Interpretation of atoms+, Interpret, InterpretVar, Satisfies, ContainsTyVar+ -- ** Auxiliary data types for interpretation+, ForAllI(..), SuchThatI(..)+, WrappedI(..), toWrappedI, fromWrappedI ) where import Data.Kind