let of_three = let yes = Yes(dep0) and no = No(dep0) in fun p a -> match p a with | Three.Yes -> yes | Three.No -> no | Three.X -> X