2017
DOI: 10.1145/3133894
|View full text |Cite
|
Sign up to set email alerts
|

Familia: unifying interfaces, type classes, and family polymorphism

Abstract: Parametric polymorphism and inheritance are both important, extensively explored language mechanisms for providing code reuse and extensibility. But harmoniously integrating these apparently distinct mechanismsÐ and powerful recent forms of them, including type classes and family polymorphismÐin a single language remains an elusive goal. In this paper, we show that a deep unification can be achieved by generalizing the semantics of interfaces and classes. The payoff is a significant increase in expressive powe… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1

Citation Types

0
1
0

Year Published

2019
2019
2023
2023

Publication Types

Select...
4
1

Relationship

0
5

Authors

Journals

citations
Cited by 9 publications
(1 citation statement)
references
References 67 publications
0
1
0
Order By: Relevance
“…Various proposals have been made to better support family polymorphism (and the related łexpression problemž [Wadler 1998]) in object-oriented languages, including the use of design patterns [Nystrom et al 2003;Oliveira and Cook 2012;Wang and Oliveira 2016], and type systems [Ernst 2000;Kiselyov et al 2009;Nystrom et al 2006;Odersky and Zenger 2005;Zhang et al 2015;Zhang and Myers 2017] that permit some restricted form of covariant method parameters.…”
Section: Familymentioning
confidence: 99%
“…Various proposals have been made to better support family polymorphism (and the related łexpression problemž [Wadler 1998]) in object-oriented languages, including the use of design patterns [Nystrom et al 2003;Oliveira and Cook 2012;Wang and Oliveira 2016], and type systems [Ernst 2000;Kiselyov et al 2009;Nystrom et al 2006;Odersky and Zenger 2005;Zhang et al 2015;Zhang and Myers 2017] that permit some restricted form of covariant method parameters.…”
Section: Familymentioning
confidence: 99%