closes #25

It's useless to make analogies with the State Monad methods because
they just take one argument. However, I think that putting the
function as the first parameter is better, since you can deploy
generic combinators to reuse them.