nothing package:relude

Performs default Applicative action if Nothing is given. Otherwise returns content of Just pured to Applicative.
>>> whenNothing Nothing [True, False]
[True,False]

>>> whenNothing (Just True) [True, False]
[True]
Monadic version of whenNothing.
>>> whenNothingM (pure $ Just True) $ True <$ putTextLn "Is Just!"
True

>>> whenNothingM (pure Nothing) $ False <$ putTextLn "Is Nothing!"
Is Nothing!
False
Monadic version of whenNothing_.
>>> whenNothingM_ (pure $ Just True) $ putTextLn "Is Just!"

>>> whenNothingM_ (pure Nothing) $ putTextLn "Is Nothing!"
Is Nothing!
Performs default Applicative action if Nothing is given. Do nothing for Just. Convenient for discarding Just content.
>>> whenNothing_ Nothing $ putTextLn "Nothing!"
Nothing!

>>> whenNothing_ (Just True) $ putTextLn "Nothing!"
The isNothing function returns True iff its argument is Nothing.

Examples

Basic usage:
>>> isNothing (Just 3)
False
>>> isNothing (Just ())
False
>>> isNothing Nothing
True
Only the outer constructor is taken into consideration:
>>> isNothing (Just Nothing)
False