Commit Graph

150 Commits

Author SHA1 Message Date
Marco Perone
4eb63937b2 improve readme 2023-03-02 15:51:29 +01:00
Marco Perone
600a75bcac adopt MIT license 2023-03-01 12:57:28 +01:00
Marco Perone
a95e0d2995 add logo to readme 2023-03-01 11:15:24 +01:00
Marco Perone
065a1bd6b8 add crem logo 2023-03-01 10:53:41 +01:00
Marco Perone
8181b54720 generate hobbit map 2023-02-28 18:38:33 +01:00
Marco Perone
8d940555c8 switches start in OffState 2023-02-28 16:01:47 +01:00
Marco Perone
9e16ebc1c9 comment out crem-examples doctests 2023-02-27 17:48:16 +01:00
Marco Perone
84a25535b4 can not use overloaded string when generating Enum instance with singletons 2023-02-27 17:26:03 +01:00
Marco Perone
1dcce3a673 execute doctests also on examples 2023-02-27 17:05:45 +01:00
Marco Perone
2484a7ad30 complete literate example 2023-02-27 17:05:45 +01:00
Marco Perone
b740fa8142 start literate example on library usage 2023-02-27 17:05:45 +01:00
Marco Perone
2a6954df0d add operations to lift a BaseMachine over Maybe and Either 2023-02-27 17:05:45 +01:00
Marco Perone
fbf578cded improve haddock documentation 2023-02-27 17:05:45 +01:00
Marco Perone
3cc5b668ba disable global OverloadedStrings 2023-02-27 17:05:45 +01:00
Marco Perone
8025e592df improve readme 2023-02-27 17:05:45 +01:00
Marco Perone
7f51d0b7af move examples to internal package 2023-02-27 17:05:45 +01:00
Marco Perone
432cf8ad6c Decider can be rebuilt out of its own outputs 2023-02-27 17:05:45 +01:00
Marco Perone
657141b8d5 implentation of Uno Decider 2023-02-27 17:05:45 +01:00
Marco Perone
ffd9614358 Decider should be pure, hence we remove effects 2023-02-27 17:05:45 +01:00
Marco Perone
281b54a935 define Decider and interpret it as a machine 2023-02-27 17:05:45 +01:00
Marco Perone
6cec6b9f57 document usage of Arrow for composing machines 2023-02-27 17:05:45 +01:00
Marco Perone
14faa0ce89 use explicit names for profunctor operations 2023-02-27 17:05:45 +01:00
Marco Perone
064d2cb31e implement Arrow and ArrowChoice for StateMachine 2023-02-27 17:05:45 +01:00
Marco Perone
1e3b8cbde1 how to render a machine 2023-02-27 17:05:45 +01:00
Marco Perone
63eee6db1a how to run a machine 2023-02-27 17:05:45 +01:00
Marco Perone
936f5e89c5 how to compose machines 2023-02-27 17:05:45 +01:00
Marco Perone
4d4f6b5751 documentation index 2023-02-27 17:05:45 +01:00
Marco Perone
1dc4ea8449 remove commented code 2023-02-27 17:05:45 +01:00
Marco Perone
d488b9baba rename Compose to Sequential 2023-02-27 17:05:45 +01:00
Marco Perone
380ed98093 rename CRM to Crem 2023-02-27 17:05:45 +01:00
Marco Perone
b5cb36c0a9 use Mermaid diagrams for documentation 2023-02-27 17:05:45 +01:00
Marco Perone
bc7a599bdd document RenderableVertices 2023-02-27 17:05:45 +01:00
Marco Perone
41fd334f17 render all vertices of a machine 2023-02-27 17:05:45 +01:00
Marco Perone
bfb19e9923 render the flow of a machine 2023-02-27 17:05:45 +01:00
Marco Perone
c8ebe67973 also executables should avoid generating Paths_crm 2023-02-27 17:05:45 +01:00
Marco Perone
748c60b950 executable to plain Hobbit game 2023-02-27 17:05:45 +01:00
Marco Perone
99a85c1727 move examples into the main package 2023-02-27 17:05:45 +01:00
Marco Perone
bb1430eba9 explain Basic constructor constraints 2023-02-27 17:05:45 +01:00
Marco Perone
0f1fe42893 improvements from Alex code review 2023-02-27 17:05:45 +01:00
Marco Perone
478e907b33 complete documentation on how to create a machine 2023-02-27 17:05:45 +01:00
Marco Perone
9ad45158fb generalize feedback to any foldable monoid 2023-02-27 17:05:45 +01:00
Marco Perone
10eb33e6fb correct Kleisli rendering
since the second machine is run potentially many times, we need to use the transitive closure
2023-02-27 17:05:45 +01:00
Marco Perone
8f220dd8a4 explain how to create a machine 2023-02-27 17:05:45 +01:00
Marco Perone
dd7ac5d833 test cases with loan details 2023-02-27 17:05:45 +01:00
Marco Perone
5d3272ec37 decision log entry for Feedback constructor 2023-02-27 17:05:45 +01:00
Marco Perone
14f9d03939 use Feedback constructor instead of Loop 2023-02-27 17:05:45 +01:00
Marco Perone
57df8ae1c3 RiskManager example 2023-02-27 17:05:45 +01:00
Marco Perone
8e3f21b7a4 add Kleisli constructor 2023-02-27 17:05:45 +01:00
Marco Perone
743242aaf4 allow machines to execute effects when emitting output 2023-02-27 17:05:45 +01:00
Marco Perone
e096f7d33f add Loop constructor to state machines 2023-02-27 17:05:45 +01:00