basic typeclass example