
I did not mean to include functions that take type constructors as parameters (so lists are out of my discussion scope). I am only considering functions that uses type variables that are not restricted by typeclasses.
There is const: const :: a -> b -> a const x _ = x And of course a family of const like functions: const' :: a -> b -> c -> a const' x _ _ = x and so on... Of course const is related to id. There is also undefined: undefined :: a undefined = undefined You can extend this with arguments: f :: a -> b f x = undefined or even: f x = f x and so on ... Is this what you are looking for?
In this setting could you give a few useful function signatures, and their explanation? How does "not" work polymorphically for example?
not isn't polymorphic in Haskell 98. Cheers, Bernie.