type class: Allows ad-hoc polymorphism by specificying the behaviors needed and not explicit inheritance </>