For example the kind of DSL you get with free mona...
# arrow
r
For example the kind of DSL you get with free monads you can just achieve by defining your functions like this: