Signature generation that supports Default

All contexts are removed after monomorphisation.

The Default constructor is not added to the signature.

Furthermore, hd (app x x) = x