I think it's missing sequencing, for which I personally reach quite often when working with such monadic container types. Eg. for Maybe:(sequence-maybe lst)if all elements in lst are Just, returns Just of list, whose elements correspond to unwrapped values in lst. If any element in lst is Nothing, returns Nothing.
(sequence-maybe (list (just 'a) (just 'b))) == (just (list 'a 'b))(sequence-maybe (list (just 'a) (nothing))) == (nothing)