open data Option (A : Type) : Type
| none
| some A

variable A B C : Type

def map (f : AB) (x : Option A) : Option B
| _, nonenone
| f, some asome (f a)