If a function of type is applied to an argument , it will produce a result which is a member of , i.e. .
In Haskell, the type of a function is describe as a sequence of the types involved in its reduction steps.