| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Free.Agent.Syntax
Description
Documentation
data FreeAgent (arr :: k -> k -> Type) (a :: k) (b :: k) where Source #
Free category over a base arrow arr.
Constructors
| Lift :: forall {k} (arr :: k -> k -> Type) (a :: k) (b :: k). arr a b -> FreeAgent arr a b | Embed a base arrow as a single generator. |
| Compose :: forall {k} (arr :: k -> k -> Type) (b1 :: k) (b :: k) (a :: k). FreeAgent arr b1 b -> FreeAgent arr a b1 -> FreeAgent arr a b | Sequence two free morphisms (right-to-left, matching |
Instances
| Category arr => Category (FreeAgent arr :: k -> k -> Type) Source # | |||||||||||||
| Layer (FreeAgent :: (Type -> Type -> Type) -> Type -> Type -> Type) Source # |
| ||||||||||||
Defined in Free.Agent.Layer Associated Types
Methods unit :: forall (arr :: Type -> Type -> Type). Category arr => arr :~> FreeAgent arr # run :: (Run (FreeAgent :: (Type -> Type -> Type) -> Type -> Type -> Type) arr, Law (FreeAgent :: (Type -> Type -> Type) -> Type -> Type -> Type) arr, Bind (FreeAgent :: (Type -> Type -> Type) -> Type -> Type -> Type) arr) => FreeAgent arr a b -> arr a b # bind :: forall arr' (arr :: Cat2) a b. (Law (FreeAgent :: (Type -> Type -> Type) -> Type -> Type -> Type) arr', Bind (FreeAgent :: (Type -> Type -> Type) -> Type -> Type -> Type) arr) => (arr :~> arr') -> FreeAgent arr a b -> arr' a b # | |||||||||||||
| type Bind (FreeAgent :: (Type -> Type -> Type) -> Type -> Type -> Type) arr Source # | |||||||||||||
| type Law (FreeAgent :: (Type -> Type -> Type) -> Type -> Type -> Type) arr' Source # | |||||||||||||
| type Run (FreeAgent :: (Type -> Type -> Type) -> Type -> Type -> Type) arr Source # | |||||||||||||