Best value for overloading?
There exist various approaches to overloading, including:
* type classes of various kinds
What seems to offer the best value for investment effort, expressiveness, and type safety?
For instance, multimethods are pretty flexible and uniformally allow a form of type-based and case-based overloading, but it seems quite difficult to capture accurate types with all the expressiveness we expect of ML functions, eg. first-class functions require intersection types and subtyping.
Type classes and traits seem more or less equivalent, but have problems with overlapping and named instances, a problem shared by  I believe. Implicits seem promising, and properly handle named and overlapping instances.
Active forum topics
New forum topics