navi
Safe HaskellNone
LanguageGHC2021

Navi.Data.Result

Contents

Synopsis

Documentation

data Result e a Source #

General type for error handling, with convenient MonadFail instance.

Constructors

Err e 
Ok a 

Instances

Instances details
Bifoldable Result Source # 
Instance details

Defined in Navi.Data.Result

Methods

bifold :: Monoid m => Result m m -> m #

bifoldMap :: Monoid m => (a -> m) -> (b -> m) -> Result a b -> m #

bifoldr :: (a -> c -> c) -> (b -> c -> c) -> c -> Result a b -> c #

bifoldl :: (c -> a -> c) -> (c -> b -> c) -> c -> Result a b -> c #

Bifunctor Result Source # 
Instance details

Defined in Navi.Data.Result

Methods

bimap :: (a -> b) -> (c -> d) -> Result a c -> Result b d #

first :: (a -> b) -> Result a c -> Result b c #

second :: (b -> c) -> Result a b -> Result a c #

Bitraversable Result Source # 
Instance details

Defined in Navi.Data.Result

Methods

bitraverse :: Applicative f => (a -> f c) -> (b -> f d) -> Result a b -> f (Result c d) #

(k ~ An_Iso, x ~ Either e a, y ~ Either e a) => LabelOptic "eitherIso" k (Result e a) (Result e a) x y Source # 
Instance details

Defined in Navi.Data.Result

Methods

labelOptic :: Optic k NoIx (Result e a) (Result e a) x y Source #

Applicative (Result e) Source # 
Instance details

Defined in Navi.Data.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 #

Functor (Result e) Source # 
Instance details

Defined in Navi.Data.Result

Methods

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

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

Monad (Result e) Source # 
Instance details

Defined in Navi.Data.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 #

IsString e => MonadFail (Result e) Source # 
Instance details

Defined in Navi.Data.Result

Methods

fail :: String -> Result e a #

Foldable (Result e) Source # 
Instance details

Defined in Navi.Data.Result

Methods

fold :: Monoid m => Result e m -> m #

foldMap :: Monoid m => (a -> m) -> Result e a -> m #

foldMap' :: Monoid m => (a -> m) -> Result e a -> m #

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

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

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

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

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

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

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

null :: Result e a -> Bool #

length :: Result e a -> Int #

elem :: Eq a => a -> Result e a -> Bool #

maximum :: Ord a => Result e a -> a #

minimum :: Ord a => Result e a -> a #

sum :: Num a => Result e a -> a #

product :: Num a => Result e a -> a #

Traversable (Result e) Source # 
Instance details

Defined in Navi.Data.Result

Methods

traverse :: Applicative f => (a -> f b) -> Result e a -> f (Result e b) #

sequenceA :: Applicative f => Result e (f a) -> f (Result e a) #

mapM :: Monad m => (a -> m b) -> Result e a -> m (Result e b) #

sequence :: Monad m => Result e (m a) -> m (Result e a) #

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

Defined in Navi.Data.Result

Methods

rnf :: Result e a -> () #

Generic (Result e a) Source # 
Instance details

Defined in Navi.Data.Result

Associated Types

type Rep (Result e a) 
Instance details

Defined in Navi.Data.Result

Methods

from :: Result e a -> Rep (Result e a) x #

to :: Rep (Result e a) x -> Result e a #

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

Defined in Navi.Data.Result

Methods

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

show :: Result e a -> String #

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

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

Defined in Navi.Data.Result

Methods

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

(/=) :: Result e a -> Result e a -> Bool #

type Rep (Result e a) Source # 
Instance details

Defined in Navi.Data.Result

Elimination

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

General eliminator.

onErr :: (e -> a) -> Result e a -> a Source #

Err eliminator.

onOk :: (a -> e) -> Result e a -> e Source #

Ok eliminator.

errorErr :: HasCallStack => ResultDefault a -> a Source #

Eliminates Err via error.

failErr :: MonadFail m => ResultDefault a -> m a Source #

Eliminates Err via MonadFail.

throwErr :: (Exception e, HasCallStack, MonadThrow m) => Result e a -> m a Source #

Eliminates Err via MonadThrow.