TY - GEN
T1 - Strongly typed heterogeneous collections
AU - Kiselyov, Oleg
AU - Lämmel, Ralf
AU - Schupke, Keean
PY - 2004
Y1 - 2004
N2 - 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.
AB - 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.
KW - Collections
KW - Dependently typed programming
KW - Extensible records
KW - Haskell
KW - Type equality
KW - Type improvement
KW - Type-indexed rows
KW - Type-safe database access
UR - http://www.scopus.com/inward/record.url?scp=11244320503&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=11244320503&partnerID=8YFLogxK
U2 - 10.1145/1017472.1017488
DO - 10.1145/1017472.1017488
M3 - Conference contribution
AN - SCOPUS:11244320503
SN - 1581138504
SN - 9781581138504
T3 - Proceedings of the ACM SIGPLAN 2004 Haskell Workshop, Haskell'04
SP - 96
EP - 107
BT - Proceedings of the ACM SIGPLAN 2004 Haskell Workshop, Haskell'04
PB - Association for Computing Machinery
T2 - Proceedings of the ACM SIGPLAN 2004 Haskell Workshop, Haskell'04
Y2 - 22 September 2004 through 22 September 2004
ER -