-*- Org -*-
DSL.Implement: implement EDSLs in Haskell (as combinator libraries)
advanced type system features Types.HOT: functors, monads and monad transformers Types.Class: type classes, newtypes, deriving, …
file:MonadT_API_summary.hs file:mtl/Control/Monad/Reader.hs Higher-order type + corresponding type class:
Starting from a trivial expression language with only numbers and addition (file:src/Interpreter0.hs) adding features one by one:
file:src/Interpreter1.hs
file:src/Interpreter2.hs
file:src/Interpreter3.hs
(In 2015 this was the start of lecture 6.)
file:MonadT_API_summary.hs file:src/Test.hs
For the curious, the full source code of the monad transformer library can be downloaded and inspected as follows:
cabal unpack mtl file:mtl-2.2.1/Control/Monad/State/Lazy.hs
rm -r live
rsync –recursive ./ live/
rsync –recursive before/ live/