Added more typeclasses, testing of functor laws.