November 2017
Intermediate to advanced
670 pages
17h 35m
English
Haskell is strongly typed and fully supports the HM type type system. Haskell has an additional layer above what we normally think of a type. Recall that a type defines the structure of the data stored in a variable of that type (string, int, user defined struct, and so on). A type class allows us to be more specific and specify not only what the data is, but also how it behaves.
Type classes define the sets of operations. A particular object may be an instance of a class and will have a method corresponding to each operation. Type classes may be arranged hierarchically, forming notions of superclasses and sub classes and permitting inheritance of operations/methods. A default method may also be associated with an ...