data Bool : Type where { True : Bool; False : Bool; } ; depif : (A:Type) -> (B:Type) -> (b:Bool) -> A -> B -> if Type b then A else B ; depif _ _ True x _ = x ; depif _ _ False _ y = y ; not : Bool -> Bool ; not b = if b then False else True ;