An attempt of monads in Go lang
Go Shell
Switch branches/tags
Nothing to show
Clone or download


Monads in Go lang

Build Status


(aka "Algebraic GO Specification")

This project specifies interoperability of common algebraic structures:

  • Semigroup
  • Monoid
  • Functor
  • Applicative
  • Chain
  • Monad


The useful lib provides actual implementations of Wishful spec.


An algebra is a set of values, a set of operators that it is closed under and some laws it must obey.

Each algebra is a separate specification. An algebra may have dependencies on other algebras which must be implemented. An algebra may also state other algebra methods which do not need to be implemented and how they can be derived from new methods.


Current supported versions of go.

  • 1.3
  • Release
  • Tip

Fantasy Land Compatible

wishful is fantasy-land compatible