\import Paths \data Maybe (A : \Type) | nothing | just A \where { \func map {A B : \Type} (f : A -> B) (m : Maybe A) : Maybe B \elim m | nothing => nothing | just a => just (f a) } \func maybe {A B : \Type} (b : B) (f : A -> B) (m : Maybe A) : B \elim m | nothing => b | just a => f a \func unjust {A : \Type} (a : A) (maybe : Maybe A) : A \elim maybe | nothing => a | just a1 => a1 \func just-injective {A : \Type} {a b : A} (eq : just a = just b) : a = b => pmap (unjust a) eq