add blog post on principled type classes