mirror of
https://github.com/coot/free-category.git
synced 2024-11-26 21:33:47 +03:00
Fix typos
This commit is contained in:
parent
963b3f1221
commit
b4a67b3489
@ -14,7 +14,7 @@ Free arrows and free Kleisli categories are also included.
|
|||||||
Free categories are useful to model state machines in a simple yet type safe
|
Free categories are useful to model state machines in a simple yet type safe
|
||||||
manner. For that purpose `Kleisli` categories are a very useful target which
|
manner. For that purpose `Kleisli` categories are a very useful target which
|
||||||
allows to include monadic computations. This package contains a useful
|
allows to include monadic computations. This package contains a useful
|
||||||
generalisation of `Kliesli` categories captured by `EffectCategory` class
|
generalisation of `Kleisli` categories captured by `EffectCategory` class
|
||||||
(categories with effects), and a (free) transformer which lifts a category to
|
(categories with effects), and a (free) transformer which lifts a category to
|
||||||
a category with effects.
|
a category with effects.
|
||||||
|
|
||||||
@ -29,8 +29,8 @@ Check performance characteristics of various representations:
|
|||||||
## Resources
|
## Resources
|
||||||
* [LoginStateMachine](https://github.com/coot/free-category/blob/master/examples/src/LoginStateMachine.hs):
|
* [LoginStateMachine](https://github.com/coot/free-category/blob/master/examples/src/LoginStateMachine.hs):
|
||||||
based on [State Machines All The Way
|
based on [State Machines All The Way
|
||||||
Down](https://www.youtube.com/watch?v=xq7ZuSRgCR4) by Edwin Bradly, 2017 You
|
Down](https://www.youtube.com/watch?v=xq7ZuSRgCR4) by Edwin Bradly, 2017.
|
||||||
can run it with `cabal new-run examples:login-state-machine`.
|
You can run it with `cabal new-run examples:login-state-machine`.
|
||||||
* Read more [here](https://coot.me/posts/finite-state-machines.html) on
|
* Read more [here](https://coot.me/posts/finite-state-machines.html) on
|
||||||
a simple example of a finite state machine encoded using a free category
|
a simple example of a finite state machine encoded using a free category
|
||||||
using a simple GADT.
|
using a simple GADT.
|
||||||
|
@ -116,7 +116,7 @@ instance FreeAlgebra2 Arr where
|
|||||||
-- Free arrows using CSP style
|
-- Free arrows using CSP style
|
||||||
--
|
--
|
||||||
|
|
||||||
-- | Free arrow using CPS sytle.
|
-- | Free arrow using CPS style.
|
||||||
--
|
--
|
||||||
newtype A f a b
|
newtype A f a b
|
||||||
= A { runA :: forall r. Arrow r
|
= A { runA :: forall r. Arrow r
|
||||||
|
@ -73,8 +73,8 @@ liftEffect :: ( Monad m
|
|||||||
=> tr a b -> EffCat m (cat tr) a b
|
=> tr a b -> EffCat m (cat tr) a b
|
||||||
liftEffect = liftFree2 . liftFree2
|
liftEffect = liftFree2 . liftFree2
|
||||||
|
|
||||||
-- | Fold @'FreeLifing'@ category based on a free category @'cat' tr@ (e.g.
|
-- | Fold @'FreeLifting'@ category based on a free category @'cat' tr@ (e.g.
|
||||||
-- @'Cat' tr@) using a functor @tr x y -> c x y@.
|
-- @'C' tr@) using a functor @tr x y -> c x y@.
|
||||||
--
|
--
|
||||||
foldNatEffCat
|
foldNatEffCat
|
||||||
:: ( Monad m
|
:: ( Monad m
|
||||||
@ -89,7 +89,7 @@ foldNatEffCat
|
|||||||
-> c a b
|
-> c a b
|
||||||
foldNatEffCat nat = foldNatFree2 (foldNatFree2 nat)
|
foldNatEffCat nat = foldNatFree2 (foldNatFree2 nat)
|
||||||
|
|
||||||
-- | Functor from @(->)@ category to @'Kleisli' m@. If @m@ is 'Identity' then
|
-- | Functor from @(->)@ category to @'Kleisli' m@. If @m@ is 'Identity' then
|
||||||
-- it will respect 'effect' i.e.
|
-- it will respect 'effect' i.e.
|
||||||
-- @'liftKleisli' ('effect' ar) = 'effect' ('liftKleisli' \<$\> ar)@.
|
-- @'liftKleisli' ('effect' ar) = 'effect' ('liftKleisli' \<$\> ar)@.
|
||||||
--
|
--
|
||||||
|
Loading…
Reference in New Issue
Block a user