Lifting of the Hashable class to unary and binary type constructors. These classes are needed to express the constraints on arguments of types that are parameterized by type constructors. Fixed-point data types and monad transformers are such types.
Lift a hashing function through the type constructor.
Lift a hashing function through the binary type constructor.
Lift the hashWithSalt function through the type constructor.
Lift the hashWithSalt function halfway through the type constructor. This function makes a suitable default implementation of liftHashWithSalt, given that the type constructor t in question can unify with f a.