xml-extractors- Wrapper over xml to extract data from parsed xml

Safe HaskellSafe-Inferred




data Result e a Source

Result is like Either but with two error states, Fail and Fatal.

Fail is precisely analogous to Left while Fatal has short cut semantics for Alternative.

The idea is that Fatal errors cannot be circumvented by <|> etc.


Fatal e 
Fail e 
Ok a 


Error e => Alternative (Result e) 
Monad (Result e) 
Functor (Result e) 
Applicative (Result e) 
(Show e, Show a) => Show (Result e a) 

toEither :: Result a b -> Either a b Source

Maps Fail and Fatal to Left.

escalate :: Result e a -> Result e a Source

Maps Fail to Fatal.

data ResultT e m a Source


Error e => MonadTrans (ResultT e) 
(Functor m, Monad m, Error e) => Alternative (ResultT e m) 
(Monad m, Error e) => Monad (ResultT e m) 
Functor m => Functor (ResultT e m) 
(Error e, Monad m) => MonadPlus (ResultT e m) 
(Functor m, Monad m) => Applicative (ResultT e m) 

runResultT :: ResultT e m a -> m (Result e a) Source

throwError :: (Error e, Monad m) => e -> ResultT e m a Source

throwFatal :: (Error e, Monad m) => e -> ResultT e m a Source

mapResult :: (Functor m, Monad m) => (Result e1 a1 -> Result e a) -> ResultT e1 m a1 -> ResultT e m a Source

lift :: MonadTrans t => forall m a. Monad m => m a -> t m a

Lift a computation from the argument monad to the constructed monad.