Play with reimplementing some typeclasses.