Skip to content

Latest commit

 

History

History
42 lines (33 loc) · 1 KB

File metadata and controls

42 lines (33 loc) · 1 KB

Module Data.Maybe.First

First

newtype First a
  = First (Maybe a)

Monoid returning the first (left-most) non-Nothing value.

First (Just x) <> First (Just y) == First (Just x)
First Nothing <> First (Just y) == First (Just y)
First Nothing <> Nothing == First Nothing
mempty :: First _ == First Nothing
Instances
instance eqFirst :: (Eq a) => Eq (First a)
instance ordFirst :: (Ord a) => Ord (First a)
instance boundedFirst :: (Bounded a) => Bounded (First a)
instance functorFirst :: Functor First
instance applyFirst :: Apply First
instance applicativeFirst :: Applicative First
instance bindFirst :: Bind First
instance monadFirst :: Monad First
instance extendFirst :: Extend First
instance invariantFirst :: Invariant First
instance showFirst :: (Show a) => Show (First a)
instance semigroupFirst :: Semigroup (First a)
instance monoidFirst :: Monoid (First a)

runFirst

runFirst :: forall a. First a -> Maybe a