transformer implementation

here is a implementation of transformers to compare.

DISCUSS!!!! :smile: 
that's probably broken? :) should read `(maybe-or monad-a monad-b)`