Safe Haskell | None |
---|---|
Language | Haskell2010 |
Proarrow.Category.Instance.Free
Documentation
newtype FREE (str :: CAT [FK k]) (p :: CAT k) Source Comments #
Instances
(Structure str, Profunctor p) => CategoryOf (FREE str p) Source Comments # | |
Defined in Proarrow.Category.Instance.Free | |
(Structure str, Profunctor p) => Promonad (Free :: FREE str p -> FREE str p -> Type) Source Comments # | |
(Structure str, Profunctor p) => Profunctor (Free :: FREE str p -> FREE str p -> Type) Source Comments # | |
Defined in Proarrow.Category.Instance.Free | |
type UN ('F :: FK k1 -> FREE str p) ('F k2 :: FREE str p) Source Comments # | |
type (~>) Source Comments # | |
type Ob (a :: FREE str p) Source Comments # | |
data Free (a :: FREE str p) (b :: FREE str p) where Source Comments #
Constructors
Free :: forall {k} (a1 :: FK k) (b1 :: FK k) (str :: CAT [FK k]) (p :: CAT k). (IsFK a1, IsFK b1) => (forall (ctx :: [FK k]). IsFKs ctx => MFree str p ctx a1 -> MFree str p ctx b1) -> Free ('F a1 :: FREE str p) ('F b1 :: FREE str p) |
Constructors
EMB k |
Instances
Structure (Plain :: [FK k] -> [FK k] -> Type) Source Comments # | |||||
Defined in Proarrow.Category.Instance.Free Associated Types
| |||||
IsFK a => IsFKs ('[a] :: [FK k]) Source Comments # | |||||
Defined in Proarrow.Category.Instance.Free Associated Types
| |||||
type UN ('EMB :: j -> FK j) ('EMB a :: FK j) Source Comments # | |||||
type HasStructure (Plain :: [FK k] -> [FK k] -> Type) Source Comments # | |||||
Defined in Proarrow.Category.Instance.Free | |||||
type Flatten ('[a] :: [FK k]) Source Comments # | |||||
Defined in Proarrow.Category.Instance.Free | |||||
type UN ('F :: FK k1 -> FREE str p) ('F k2 :: FREE str p) Source Comments # | |||||
data MFree (str :: CAT [FK k]) (p :: CAT k) (as :: [FK k]) (b :: FK k) where Source Comments #
Constructors
Id :: forall {k} (b :: FK k) (str :: CAT [FK k]) (p :: CAT k). IsFK b => MFree str p '[b] b | |
Emb :: forall {k} (p :: CAT k) (a :: k) (b1 :: k) (str :: CAT [FK k]) (as :: [FK k]). p a b1 -> MFree str p as ('EMB a) -> MFree str p as ('EMB b1) | |
Str :: forall {k} (str :: CAT [FK k]) (as :: [FK k]) (ctx2 :: [FK k]) (p :: CAT k) (b :: FK k). str as ctx2 -> MFree str p ctx2 b -> MFree str p as b |
class Structure (str :: CAT [FK k]) where Source Comments #
Associated Types
type HasStructure (str :: CAT [FK k]) :: Kind -> Constraint Source Comments #
Methods
foldStructure :: forall cat (ctx1 :: [FK k]) (ctx2 :: [FK k]). HasStructure str k => str ctx1 ctx2 -> cat (Lower (Flatten ctx1)) (Lower (Flatten ctx2)) Source Comments #
Instances
Structure (Plain :: [FK k] -> [FK k] -> Type) Source Comments # | |||||
Defined in Proarrow.Category.Instance.Free Associated Types
|
data Plain (ctx1 :: k) (ctx2 :: k1) Source Comments #
Instances
Structure (Plain :: [FK k] -> [FK k] -> Type) Source Comments # | |||||
Defined in Proarrow.Category.Instance.Free Associated Types
| |||||
type HasStructure (Plain :: [FK k] -> [FK k] -> Type) Source Comments # | |||||
Defined in Proarrow.Category.Instance.Free |
class NoConstraint (k1 :: k) Source Comments #
Instances
NoConstraint (k2 :: k1) Source Comments # | |
Defined in Proarrow.Category.Instance.Free |
fold :: forall {k} (str :: CAT [FK k]) (p :: CAT k) cat (a :: FK k) (b :: FK k). (Category cat, Structure str, HasStructure str k) => (p :~> cat) -> Free ('F a :: FREE str p) ('F b :: FREE str p) -> cat (Lower a) (Lower b) Source Comments #
type T (ctx :: [FK Type]) = MFree (Plain :: [FK Type] -> [FK Type] -> Type) Test ctx Source Comments #