diff --git a/src/Control/Alt.purs b/src/Control/Alt.purs index 9b35f8b..87988c8 100644 --- a/src/Control/Alt.purs +++ b/src/Control/Alt.purs @@ -18,6 +18,21 @@ import Data.Semigroup (append) -- | -- | For example, the `Array` (`[]`) type is an instance of `Alt`, where -- | `(<|>)` is defined to be concatenation. +-- | +-- | A common use case is to select the first "valid" item, or, if all items +-- | are "invalid", the last "invalid" item. +-- | +-- | For example: +-- | +-- | ```purescript +-- | import Control.Alt ((<|>)) +-- | import Data.Maybe (Maybe(..) +-- | import Data.Either (Either(..)) +-- | +-- | Nothing <|> Just 1 <|> Just 2 == Just 1 +-- | Left "err" <|> Right 1 <|> Right 2 == Right 1 +-- | Left "err 1" <|> Left "err 2" <|> Left "err 3" == Left "err 3" +-- | ``` class Functor f <= Alt f where alt :: forall a. f a -> f a -> f a