Split out typeclasses into identity-less versions