IS #4: Moving toward typeclass pattern for ad hoc polymorphism