strict-data-0.2.0.2: A collection of commonly used strict data structures

Safe HaskellNone
LanguageHaskell2010

Data.Option

Synopsis

Documentation

data Option a Source #

Constructors

None 
Some !a 

Instances

Monad Option Source # 

Methods

(>>=) :: Option a -> (a -> Option b) -> Option b #

(>>) :: Option a -> Option b -> Option b #

return :: a -> Option a #

fail :: String -> Option a #

Functor Option Source # 

Methods

fmap :: (a -> b) -> Option a -> Option b #

(<$) :: a -> Option b -> Option a #

MonadFail Option Source # 

Methods

fail :: String -> Option a #

Applicative Option Source # 

Methods

pure :: a -> Option a #

(<*>) :: Option (a -> b) -> Option a -> Option b #

(*>) :: Option a -> Option b -> Option b #

(<*) :: Option a -> Option b -> Option a #

Foldable Option Source # 

Methods

fold :: Monoid m => Option m -> m #

foldMap :: Monoid m => (a -> m) -> Option a -> m #

foldr :: (a -> b -> b) -> b -> Option a -> b #

foldr' :: (a -> b -> b) -> b -> Option a -> b #

foldl :: (b -> a -> b) -> b -> Option a -> b #

foldl' :: (b -> a -> b) -> b -> Option a -> b #

foldr1 :: (a -> a -> a) -> Option a -> a #

foldl1 :: (a -> a -> a) -> Option a -> a #

toList :: Option a -> [a] #

null :: Option a -> Bool #

length :: Option a -> Int #

elem :: Eq a => a -> Option a -> Bool #

maximum :: Ord a => Option a -> a #

minimum :: Ord a => Option a -> a #

sum :: Num a => Option a -> a #

product :: Num a => Option a -> a #

Traversable Option Source # 

Methods

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

sequenceA :: Applicative f => Option (f a) -> f (Option a) #

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

sequence :: Monad m => Option (m a) -> m (Option a) #

Alternative Option Source # 

Methods

empty :: Option a #

(<|>) :: Option a -> Option a -> Option a #

some :: Option a -> Option [a] #

many :: Option a -> Option [a] #

MonadPlus Option Source # 

Methods

mzero :: Option a #

mplus :: Option a -> Option a -> Option a #

ToOptionT Option Source # 

Methods

optionT :: Monad m => m (Option a) -> OptionT m a Source #

Eq a => Eq (Option a) Source # 

Methods

(==) :: Option a -> Option a -> Bool #

(/=) :: Option a -> Option a -> Bool #

Data a => Data (Option a) Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Option a -> c (Option a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Option a) #

toConstr :: Option a -> Constr #

dataTypeOf :: Option a -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c (Option a)) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Option a)) #

gmapT :: (forall b. Data b => b -> b) -> Option a -> Option a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Option a -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Option a -> r #

gmapQ :: (forall d. Data d => d -> u) -> Option a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Option a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Option a -> m (Option a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Option a -> m (Option a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Option a -> m (Option a) #

Ord a => Ord (Option a) Source # 

Methods

compare :: Option a -> Option a -> Ordering #

(<) :: Option a -> Option a -> Bool #

(<=) :: Option a -> Option a -> Bool #

(>) :: Option a -> Option a -> Bool #

(>=) :: Option a -> Option a -> Bool #

max :: Option a -> Option a -> Option a #

min :: Option a -> Option a -> Option a #

Read a => Read (Option a) Source # 
Show a => Show (Option a) Source # 

Methods

showsPrec :: Int -> Option a -> ShowS #

show :: Option a -> String #

showList :: [Option a] -> ShowS #

Generic (Option a) Source # 

Associated Types

type Rep (Option a) :: * -> * #

Methods

from :: Option a -> Rep (Option a) x #

to :: Rep (Option a) x -> Option a #

Monoid a => Monoid (Option a) Source # 

Methods

mempty :: Option a #

mappend :: Option a -> Option a -> Option a #

mconcat :: [Option a] -> Option a #

Arbitrary a => Arbitrary (Option a) Source # 

Methods

arbitrary :: Gen (Option a) #

shrink :: Option a -> [Option a] #

Hashable a => Hashable (Option a) Source # 

Methods

hashWithSalt :: Int -> Option a -> Int #

hash :: Option a -> Int #

ToJSON a => ToJSON (Option a) Source # 
FromJSON a => FromJSON (Option a) Source # 
NFData a => NFData (Option a) Source # 

Methods

rnf :: Option a -> () #

type Rep (Option a) Source # 
type Rep (Option a) = D1 (MetaData "Option" "Data.Option" "strict-data-0.2.0.2-FGPF9cVJpblGQAsBKh3DLB" False) ((:+:) (C1 (MetaCons "None" PrefixI False) U1) (C1 (MetaCons "Some" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 a))))

newtype OptionT m a Source #

Constructors

OptionT 

Fields

Instances

MonadTrans OptionT Source # 

Methods

lift :: Monad m => m a -> OptionT m a #

Monad m => Monad (OptionT m) Source # 

Methods

(>>=) :: OptionT m a -> (a -> OptionT m b) -> OptionT m b #

(>>) :: OptionT m a -> OptionT m b -> OptionT m b #

return :: a -> OptionT m a #

fail :: String -> OptionT m a #

Functor m => Functor (OptionT m) Source # 

Methods

fmap :: (a -> b) -> OptionT m a -> OptionT m b #

(<$) :: a -> OptionT m b -> OptionT m a #

Monad m => MonadFail (OptionT m) Source # 

Methods

fail :: String -> OptionT m a #

(Functor m, Monad m) => Applicative (OptionT m) Source # 

Methods

pure :: a -> OptionT m a #

(<*>) :: OptionT m (a -> b) -> OptionT m a -> OptionT m b #

(*>) :: OptionT m a -> OptionT m b -> OptionT m b #

(<*) :: OptionT m a -> OptionT m b -> OptionT m a #

MonadIO m => MonadIO (OptionT m) Source # 

Methods

liftIO :: IO a -> OptionT m a #

runOptionTDef :: Functor m => a -> OptionT m a -> m a Source #

class ToOptionT t where Source #

Minimal complete definition

optionT

Methods

optionT :: Monad m => m (t a) -> OptionT m a Source #

Instances

ToOptionT Maybe Source # 

Methods

optionT :: Monad m => m (Maybe a) -> OptionT m a Source #

ToOptionT Option Source # 

Methods

optionT :: Monad m => m (Option a) -> OptionT m a Source #

noneIf :: (a -> Bool) -> a -> Option a Source #

fromOption :: a -> Option a -> a Source #

maybeToOption :: Maybe a -> Option a Source #

maybeToOption (optionToMaybe x) == x

getSomeNote :: Monad m => String -> Option a -> m a Source #

option :: b -> (a -> b) -> Option a -> b Source #

catOptions :: [Option a] -> [a] Source #

mapOption :: (a -> Option b) -> [a] -> [b] Source #

forOptionM :: Monad m => [a] -> (a -> OptionT m b) -> m [b] Source #

mapOptionM :: Monad m => (a -> OptionT m b) -> [a] -> m [b] Source #