|
ABSTRACT
A heterogeneous collection is a datatype that is capable of storing data of different types, while providing operations for look-up, update, iteration, and others. There are various kinds of heterogeneous collections, differing in representation, invariants, and access operations. We describe HLIST - a Haskell library for strongly typed heterogeneous collections including extensible records. We illustrate HLIST's benefits in the context of type-safe database access in Haskell. The HLIST library relies on common extensions of Haskell 98. Our exploration raises interesting issues regarding Haskell's type system, in particular, avoidance of overlapping instances, and reification of type equality and type unification.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
This paper's web site http://www.cwi.nl/~ralf/HList/, 2004. This site provides an extended paper version with extra appendicies that could not be included into the Haskell workshop paper. This site also provides a source code distribution for the GHC and Hugs implementations of Haskell.
|
 |
2
|
M. Abadi , L. Cardelli , B. Pierce , G. Plotkin, Dynamic typing in a statically-typed language, Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.213-227, January 11-13, 1989, Austin, Texas, United States
[doi> 10.1145/75277.75296]
|
| |
3
|
M. Abadi, L. Cardelli, B. Pierce, and D. Remy. Dynamic typing in polymorphic languages. In Proceedings of the 1992 ACM Workshop on ML and its Applications, pages 92--103, San Francisco, June 1992.
|
 |
4
|
|
| |
5
|
G. Bracha and G. Lindstrom. Modularity Meets Inheritance. In Proceedings: 4th International Conference on Computer Languages, pages 282--290. IEEE Computer Society Press, 1992.
|
 |
6
|
|
 |
7
|
Kung Chen , Paul Hudak , Martin Odersky, Parametric type classes, Proceedings of the 1992 ACM conference on LISP and functional programming, p.170-181, June 22-24, 1992, San Francisco, California, United States
|
 |
8
|
|
| |
9
|
G. Duck, S. Peyton Jones, P. Stuckey, and M. Sulzmann. Sound and Decidable Type Inference for Functional Dependencies. In D. Schmidt, editor, Proceedings, 13th European Symposium on Programming, ESOP 2004, Barcelona, Spain, March 29 - April 2, 2004, volume 2986 of LNCS, pages 49--63. Springer-Verlag, 2004.
|
| |
10
|
B. Gaster and M. Jones. A Polymorphic Type System for Extensible Records and Variants. Technical report NOTTCS-TR-96-3, University of Nottingham, Department of Computer Science, Nov. 1996.
|
| |
11
|
H. Nilsson. The Future of Haskell discussion at the Haskell Workshop, 2003. http://www.mail-archive.com/haskell\@haskell.org/msg13366.html.
|
| |
12
|
T. Hallgren. Fun with functional dependencies. In Joint Winter Meeting of the Departments of Science and Computer Engineering, Chalmers University of Technology and Goteborg University, Varberg, Sweden, Jan. 2001, 2001. http://www.cs.chalmers.se/~hallgren/Papers/wm01.html.
|
 |
13
|
|
| |
14
|
E. W. J. Van den Bussche. Polymorphic type inference for the relational algebra. Journal of Computer and System Sciences, 64:694--718, 2002. An extended abstract appeared in PODS'99.
|
| |
15
|
|
 |
16
|
|
| |
17
|
|
 |
18
|
|
 |
19
|
|
| |
20
|
|
| |
21
|
M. Neubauer, P. Thiemann, M. Gasbichler, and M. Sperber. A Functional Notation for Functional Dependencies. In Proc. 2001 ACM SIGPLAN Haskell Workshop, Firenze, Italy, September 2001, pages 101--120, 2001.
|
 |
22
|
Matthias Neubauer , Peter Thiemann , Martin Gasbichler , Michael Sperber, Functional logic overloading, Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.233-244, January 16-18, 2002, Portland, Oregon
|
 |
23
|
|
 |
24
|
|
| |
25
|
C. Okasaki. An Overview of Edison. In G. Hutton, editor, Electronic Notes in Theoretical Computer Science, volume 41. Elsevier, 2001.
|
| |
26
|
S. Peyton Jones. Adding Ord constraint to instance Monad Set?, 2004. http://www.haskell.org/pipermail/haskell-cafe/2004-March/005998.html.
|
| |
27
|
S. Peyton Jones, M. Jones, and E. Meijer. Type classes: exploring the design space. In J. Launchbury, editor, Haskell workshop, Amsterdam, 1997.
|
| |
28
|
S. Peyton Jones and G. Morrisett. A proposal for records in Haskell, 24 Feb. 2003. Online document: http://research.microsoft.com/~simonpj/Haskell/records.html.
|
| |
29
|
|
 |
30
|
|
 |
31
|
|
| |
32
|
M. Sulzmann et al. Chameleon, 2004. Web site http://www.comp.nus.edu.sg/~sulzmann/chameleon/.
|
 |
33
|
|
 |
34
|
|
 |
35
|
|
CITED BY 19
|
|
Björn Bringert , Anders Höckersten , Conny Andersson , Martin Andersson , Mary Bergman , Victor Blomqvist , Torbjörn Martin, Student paper: HaskellDB improved, Proceedings of the 2004 ACM SIGPLAN workshop on Haskell, p.108-115, September 22-22, 2004, Snowbird, Utah, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Paul Hudak , John Hughes , Simon Peyton Jones , Philip Wadler, A history of Haskell: being lazy with class, Proceedings of the third ACM SIGPLAN conference on History of programming languages, p.12-1-12-55, June 09-10, 2007, San Diego, California
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|