extending typeclass