Provide a single class that implements most of the typeclasses. Create and return a single instance.
This will simplify the implementation (override methods from the typeclass and delegate to the concrete type, which has implementations for most/ many of typeclass methods now) and improve performance.