+ (make-monad monad-type key value ...)
+ `make-monad` creates a new monad structure and associates the :monad key
+ with given monad-type. What the monad-type actually is, is up to the caller.
+ This value will be used for dispatching in the `bind` multimethod.
+ Any further key-value pairs will be associated with the map."
+ (apply struct-map monad-structure :monad monad-type kvs))