
Hello, Project:M36 is an open-source, relational algebra engine database management system written in Haskell. When used as a backend with other Haskell frameworks such as yesod, Project:M36 completes a fully-Haskell application stack. https://github.com/agentm/project-m36 Project:M36 adheres strongly to the relational algebra principles laid out by Chris Date in his books and, thus, includes a TutorialD interactive interpreter for learning about the relational algebra. Thus, Project:M36 does not suffer from the typical type-system impedance mismatch or SQL inconsistencies common in ORMs. Of particular interest to Haskellers is the existentially-quantified value type which allows any Haskell data type adhering to a set of basic typeclasses to be used directly as a database value. This feature includes creating database functions to operate directly on these values. In addition, the transaction model is similar to git: instead of continually contending for the "latest committed" state, the DBMS maintains a transaction graph which allows for branching and time travel to past commits. Naturally, through the use of immutable data structures, Project:M36 opens the door for parallelization of every query. Project:M36 includes two native Haskell interfacing libraries: a) a driver for the "persistent" library and b) a client library which allows direct access to the relational algebra DSLs. Thanks for looking at Project:M36! Best regards, Team Project:M36