a -> a a -> b -> a a -> (a -> b) -> b (a -> b) -> (a -> b -> c) -> (a -> c) (a -> b) -> (b -> c) -> (a -> c) (a | b) -> !a -> b (a -> b) -> (!a -> b) -> b (!a -> b) -> (!a -> !b) -> a a | b -> (a -> c) -> (b -> c) -> c a | b | c -> (a -> d) -> (b -> d) -> (c -> d) -> d