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