Give nicer error message when it comes to unsupported expressions
A few comments about macro implementation
Move expression rewriting in a separate method
Fix typo in the Readme
More code golfing!
Shiny syntax for monoid instances + function monoid instance
Shiny syntax for semigroup instances
Remove 'set' instance, since it is not a monad
Show types of intermediate bindings in the error message
Use fold instead of map+getOrElse