Integrate version 3 changes
A branch that merges the recent changes on the master
branch with libs_refactor
to make CPM compatible with the version 3 compilers.
Something to discuss would be how to proceed with the error logging monad. There are currently two approaches (along with naming conventions) taken here:
- The
master
branch (version 2) uses a statelessErrorLogger
that holds the log entries and a separateErrorLoggerIO
- The
libs_refactor
branch (version 3) uses only an effectfulErrorLogger
(analogous toErrorLoggerIO
) everywhere. This makes the code slightly more consistent due to fewerfromELM
/toELM
conversions at the expense of having moreliftIOErrorLogger
s.
This branch currently largely adopts the latter approach:
master |
this branch |
---|---|
ErrorLogger |
ErrorLog |
ErrorLoggerIO |
ErrorLogger |
execIO |
liftIOErrorLogger |
toELM/fromELM |
not needed |
(|>=) , (|>) , etc. |
(>>=) , (>>) , etc. |
Edited by Fredrik Wieczerkowski