A go rewrite of the original NotAMonad repository made by Strilanc in C#.
I found this repo in this blog post: What Isn't a Monad.
Test it with:
go test ./...
It's a pedagogical repository, containing examples of types that are monads (i.e. have wrapping, transforming, flattening methods) and also types that aren't (at least, not in a natural or desirable way).
Compare and constrast: Printer/Parser, SquareMatrix/List, QuantumSuperposition/ProbabilityDistribution.
Thanks for your time!
Peace ☮