:type ~and~ :type ~and~ (False, True) :type \x. ~and~ (x, True) :type let f : (Bool * Bool -> Bool) -> Bool = \g. g (True, False) in f ~and~