Type safe interface for working in subcategories of Hask