20 lines
368 B
Text
20 lines
368 B
Text
data Maybe (a) where
|
|
Nothing : Maybe (a)
|
|
Just : a -> Maybe (a)
|
|
|
|
fromJust : Maybe (a) -> a
|
|
fromJust a =
|
|
case a of
|
|
Just a => a
|
|
|
|
fromMaybe : a -> Maybe (a) -> a
|
|
fromMaybe a b =
|
|
case b of
|
|
Just a => a
|
|
Nothing => a
|
|
|
|
maybe : b -> (a -> b) -> Maybe (a) -> b
|
|
maybe b f ma =
|
|
case ma of
|
|
Just a => f a
|
|
Nothing => b
|