Applications and libraries/Database interfaces/CoddFish
CoddFish is contained by the Pure Project and written by Alexandra Silva and Joost Visser. It is a strongly-typed model of relational databases and operations on them. In this model, table meta-data is represented by type-level entities that guard the semantic correctness of all database operations at compile time. The model relies on typeclass bounded and parametric polymorphism and it is encoded in the functional programming language Haskell. Apart from the standard relational database operations, such as selection and join, it contains functional dependencies, normal forms, and operations for database transformation. Functional dependency information is represented at the type level, and can be transported through operations. This means that type inference statically computes functional dependencies on the result from those on the arguments. The model can be used to design and experiment with typed languages for modelling, programming, and migrating databases.