Here are things about Haskell and related concepts that I think of and want to remember
- A Typeclass is an abstraction over a set of Types
- A Type describes the data a program works with and has Instances of Typeclasses
- An Instance is the implementation of a Typeclass for a specific Type
They are somewhat comparable to Object Oriented concepts:
- A Typeclass is like an Interface (abstraction)
- A Type is like a Class
- An Instance is like the implementation of an Interface in a specific Class
A monoid is a binary associative operation (=function) with an identity (element)