xml-extractors-0.4.0.3: Extension to the xml package to extract data from parsed xml
Safe HaskellSafe-Inferred
LanguageHaskell2010

Text.XML.Light.Extractors.Internal.Result

Synopsis

Documentation

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.

Constructors

Fatal e 
Fail e 
Ok a 

Instances

Instances details
Monad (Result e) Source # 
Instance details

Defined in Text.XML.Light.Extractors.Internal.Result

Methods

(>>=) :: Result e a -> (a -> Result e b) -> Result e b #

(>>) :: Result e a -> Result e b -> Result e b #

return :: a -> Result e a #

Functor (Result e) Source # 
Instance details

Defined in Text.XML.Light.Extractors.Internal.Result

Methods

fmap :: (a -> b) -> Result e a -> Result e b #

(<$) :: a -> Result e b -> Result e a #

Applicative (Result e) Source # 
Instance details

Defined in Text.XML.Light.Extractors.Internal.Result

Methods

pure :: a -> Result e a #

(<*>) :: Result e (a -> b) -> Result e a -> Result e b #

liftA2 :: (a -> b -> c) -> Result e a -> Result e b -> Result e c #

(*>) :: Result e a -> Result e b -> Result e b #

(<*) :: Result e a -> Result e b -> Result e a #

Error e => Alternative (Result e) Source # 
Instance details

Defined in Text.XML.Light.Extractors.Internal.Result

Methods

empty :: Result e a #

(<|>) :: Result e a -> Result e a -> Result e a #

some :: Result e a -> Result e [a] #

many :: Result e a -> Result e [a] #

(Show e, Show a) => Show (Result e a) Source # 
Instance details

Defined in Text.XML.Light.Extractors.Internal.Result

Methods

showsPrec :: Int -> Result e a -> ShowS #

show :: Result e a -> String #

showList :: [Result e a] -> ShowS #

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 #

Instances

Instances details
Error e => MonadTrans (ResultT e) Source # 
Instance details

Defined in Text.XML.Light.Extractors.Internal.Result

Methods

lift :: Monad m => m a -> ResultT e m a #

(Monad m, Error e) => Monad (ResultT e m) Source # 
Instance details

Defined in Text.XML.Light.Extractors.Internal.Result

Methods

(>>=) :: ResultT e m a -> (a -> ResultT e m b) -> ResultT e m b #

(>>) :: ResultT e m a -> ResultT e m b -> ResultT e m b #

return :: a -> ResultT e m a #

Functor m => Functor (ResultT e m) Source # 
Instance details

Defined in Text.XML.Light.Extractors.Internal.Result

Methods

fmap :: (a -> b) -> ResultT e m a -> ResultT e m b #

(<$) :: a -> ResultT e m b -> ResultT e m a #

(Monad m, Error e) => MonadFail (ResultT e m) Source # 
Instance details

Defined in Text.XML.Light.Extractors.Internal.Result

Methods

fail :: String -> ResultT e m a #

(Functor m, Monad m) => Applicative (ResultT e m) Source # 
Instance details

Defined in Text.XML.Light.Extractors.Internal.Result

Methods

pure :: a -> ResultT e m a #

(<*>) :: ResultT e m (a -> b) -> ResultT e m a -> ResultT e m b #

liftA2 :: (a -> b -> c) -> ResultT e m a -> ResultT e m b -> ResultT e m c #

(*>) :: ResultT e m a -> ResultT e m b -> ResultT e m b #

(<*) :: ResultT e m a -> ResultT e m b -> ResultT e m a #

(Functor m, Monad m, Error e) => Alternative (ResultT e m) Source # 
Instance details

Defined in Text.XML.Light.Extractors.Internal.Result

Methods

empty :: ResultT e m a #

(<|>) :: ResultT e m a -> ResultT e m a -> ResultT e m a #

some :: ResultT e m a -> ResultT e m [a] #

many :: ResultT e m a -> ResultT e m [a] #

(Error e, Monad m) => MonadPlus (ResultT e m) Source # 
Instance details

Defined in Text.XML.Light.Extractors.Internal.Result

Methods

mzero :: ResultT e m a #

mplus :: ResultT e m a -> ResultT e m a -> ResultT e m a #

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 #

class Error a where #

An exception to be thrown.

Minimal complete definition: noMsg or strMsg.

Minimal complete definition

Nothing

Methods

noMsg :: a #

Creates an exception without a message. The default implementation is strMsg "".

strMsg :: String -> a #

Creates an exception with a message. The default implementation of strMsg s is noMsg.

Instances

Instances details
Error IOException 
Instance details

Defined in Control.Monad.Trans.Error

Error ExtractionErr Source # 
Instance details

Defined in Text.XML.Light.Extractors.Internal

ErrorList a => Error [a]

A string can be thrown as an error.

Instance details

Defined in Control.Monad.Trans.Error

Methods

noMsg :: [a] #

strMsg :: String -> [a] #

lift :: (MonadTrans t, Monad m) => m a -> t m a #

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