When I have some function of type like
f :: (Ord a) => a -> a -> Bool f a b = a > b
I should like make function which wrap this
Your n combinator can be written:
n = ((not .) .)
As for your bonus question, the typical way around would be to create several of these:
lift2 = (.).(.) lift3 = (.).(.).(.) lift4 = (.).(.).(.).(.) lift5 = (.).(.).(.).(.).(.)
etc.