summaryrefslogtreecommitdiff
path: root/transfer/examples/maybe.tr
blob: 02d7fe56d86455e6e0ac5d3aa5f07d7b8d23fc8f (plain)
1
2
3
4
5
6
7
8
9
10
11
data Maybe : Type -> Type where
	Nothing : (A : Type) -> Maybe A
	Just : (A : Type) -> A -> Maybe A

fromMaybe : (A : Type) -> A -> Maybe A -> A
fromMaybe _ x Nothing = x
fromMaybe _ _ (Just x) = x

maybe : (A : Type) -> (B : Type) -> B -> (A -> B) -> Maybe A -> A
maybe _ _ x _ Nothing = x
maybe _ _ _ f (Just x) = f x