Adds typeclasses to the datatype declaration and an explanation of why they are needed
Adds a readme