what is the difference between named and compound types ?
For named types, see @beccadax's excellent Stack Overflow post about the subject.
Compound types consist of function and tuple types (see the Types section of the Language Reference).