module Utils.Maybe
  ( isJust
  , catMaybes
  , maybeToList
  ) where

isJust : Maybe a -> Bool
isJust maybe =
  case maybe of
    Just _  -> True
    Nothing -> False

catMaybes : List (Maybe a) -> List a
catMaybes =
  List.foldr
    (\mb xs ->
      case mb of
        Just x  -> x :: xs
        Nothing -> xs
    )
    []

maybeToList : Maybe a -> List a
maybeToList mb =
  case mb of
    Just a  -> [a]
    Nothing -> []