aboutsummaryrefslogtreecommitdiff
path: root/src/client/Utils/Maybe.elm
blob: 46456e155b3725fb35a90d59ae1846947aeeb154 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
module Utils.Maybe exposing
  ( isJust
  , cat
  , toList
  , orElse
  )

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

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

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

orElse : Maybe a -> Maybe a -> Maybe a
orElse mb1 mb2 =
  case mb1 of
    Just x -> Just x
    Nothing -> mb2