TypeClassMacros
simulacrum
typeclass
simulacrum