@INPROCEEDINGS{HanusKrone17EPTCS,
author    = "Hanus, M. and Krone, J.",
title     = "A Typeful Integration of SQL into Curry",
year      = "2017",
booktitle = "Proc.\ of the 24th International Workshop on Functional and
             (Constraint) Logic Programming (WFLP 2016)",
pages     = {104-119},
publisher = {Open Publishing Association},
series    = {Electronic Proceedings in Theoretical Computer Science},
volume    = {234},
abstract = {
We present an extension of the declarative programming language Curry
to support the access to data stored in relational databases via SQL.
Since Curry is statically typed, our emphasis on this SQL integration
is on type safety. Our extension respects the type system of Curry so
that run-time errors due to ill-typed data are avoided.  This is
obtained by preprocessing SQL statements at compile time and
translating them into type-safe database access operations.  As a
consequence, the type checker of the Curry system can spot type errors
in SQL statements at compile time.  To generate appropriately typed
access operations, the preprocessor uses an entity-relationship (ER)
model describing the structure of the relational data.  In addition to
standard SQL, SQL statements embedded in Curry can include program
expressions and also relationships specified in the ER model.  The
latter feature is useful to avoid the error-prone use of foreign keys.
As a result, our SQL integration supports a high-level and type-safe
access to databases in Curry programs.
}
}
