Every expression and function in Haskell has a type.
Types in Haskell are:
- Can be automatically inferred.
- True has the type Bool
- 'foo' is of type String
- 1 has type Num
Type are important for abstraction. To add meaning to some bytes. The meaning cannot change after the type has been defined.
The benefit is that you can ignore or forget about the low level details.