distribution as a monad