module Bookhound.Utils.List where

hasNone ::  [a] -> Bool
hasNone :: forall a. [a] -> Bool
hasNone (a
_ : [a]
_) = Bool
False
hasNone [a]
_       = Bool
True

hasSome :: [a] -> Bool
hasSome :: forall a. [a] -> Bool
hasSome (a
_ : [a]
_) = Bool
True
hasSome [a]
_       = Bool
False

hasMultiple :: [a] -> Bool
hasMultiple :: forall a. [a] -> Bool
hasMultiple (a
_ : a
_ : [a]
_) = Bool
True
hasMultiple [a]
_           = Bool
False

headSafe :: [a] -> Maybe a
headSafe :: forall a. [a] -> Maybe a
headSafe (a
x: [a]
_) = forall a. a -> Maybe a
Just a
x
headSafe [a]
_      = forall a. Maybe a
Nothing