Right now one has to use any of the following to sequence indexed monadic actions and discarding return values:
foo :>>= \_ -> bar` -- or `const bar`
foo `mbind` \_ -> bar -- or `const bar`
do foo
bar
where bind = ibind
If we had IxApply, we could implement :*>, corresponding to *> from Apply. That would take us down the path of implementing the whole type class hierarchy (Bind, Applicative, Apply, Functor, more?).
foo :*> bar
We could perhaps also add :>>, like >> in Haskell's prelude, and just have it defined for only for IxMonad.
Right now one has to use any of the following to sequence indexed monadic actions and discarding return values:
If we had
IxApply
, we could implement:*>
, corresponding to*>
from Apply. That would take us down the path of implementing the whole type class hierarchy (Bind, Applicative, Apply, Functor, more?).We could perhaps also add
:>>
, like>>
in Haskell's prelude, and just have it defined for only forIxMonad
.