Safe Haskell | Safe-Infered |
---|
IO
as Alternative
instance.
If the left IO
monad of (<|>
) causes an error or goNext
is used,
the right IO
monad is executed.
Of course, side effects cannot be rolled back. This means
that this Alternative
instance breaks the Alternative
laws.
But it's common in parsers.
- goNext :: IO a
- runAnyOne :: [IO a] -> IO a
- data AltIOgoNext = AltIOgoNext
Documentation
Go to the next IO
monad by throwing AltIOgoNext
.
data AltIOgoNext Source
Exception to control Alternative
IO
.