1996
DOI: 10.1017/s0956796800001817
|View full text |Cite
|
Sign up to set email alerts
|

Type classes with existential types

Abstract: We argue that the novel combination of type classes and existential types in a single language yields significant expressive power. We explore this combination in the context of higher-order functional languages with static typing, parametric polymorphism, algebraic data types and Hindley–Milner type inference. Adding existential types to an existing functional language that already features type classes requires only a minor syntactic extension. We first demonstrate how to provide existential quantification o… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
10
0

Year Published

1997
1997
2009
2009

Publication Types

Select...
4
3
1

Relationship

0
8

Authors

Journals

citations
Cited by 33 publications
(10 citation statements)
references
References 25 publications
0
10
0
Order By: Relevance
“…to find a workaround for the fact that higher order logic is inconsistent with System F [14]. An initial step in this direction would be the support for existential types, which provide a clean way of encapsulating representations of abstract datatypes [37]. Concerning the HasCasl development methodology (and indeed any methodology that works with standard logics on non-continuous functions to specify higher order programs), an open problem is support for developments that start with an abstract algebraic specification and only later refine this to a design specification working with cpo's and continuous functions.…”
Section: Discussionmentioning
confidence: 99%
“…to find a workaround for the fact that higher order logic is inconsistent with System F [14]. An initial step in this direction would be the support for existential types, which provide a clean way of encapsulating representations of abstract datatypes [37]. Concerning the HasCasl development methodology (and indeed any methodology that works with standard logics on non-continuous functions to specify higher order programs), an open problem is support for developments that start with an abstract algebraic specification and only later refine this to a design specification working with cpo's and continuous functions.…”
Section: Discussionmentioning
confidence: 99%
“…Without polymorphic variants, we have to represent heterogeneous lists using existential types [17], which also leads to loss of information.…”
Section: Related Workmentioning
confidence: 99%
“…Technically, we define a type class Display, which defines the operations that a display has to implement, for example creating and updating objects, generating command events (DispCmd), and receiving display message events (DispMsg): All displays are kept in one heterogeneous list (using existential types [22]): display events are sent to all elements of this list, and the command events generated by all displays are the command events of each display combined with the obvious extension of the binary choice operator (+>) to lists of events. Notice that implementing a notion of object within the interface allows us to keep context information with objects which specifies dependencies: effectively, a position within the linear PGIP protocol.…”
Section: Display Enginesmentioning
confidence: 99%