Functions are builtin types on which Data.Function defines some operations, same applies to enumerations.