Haskell backend

The Haskell backend is an independent part of the system and the user can use it from the console. You can start the program by navigating its folder MultiCategory and running the command stack ghci which starts the (read evaluate print loop).

Packages and data structures

The backend uses the following packages to store different models. Some of the data structures are fairly simple and included in the base.

Schema and instance categories

The schema categories are implemented as modules that contain Haskell datatypes. These schema categories can be found from the folder src which contains folders named after the data sets. Each folder contains a file called SchemaCategory.hs. Each of these folders contains a file called InstanceCategory.hs which contains the objects that are mapped with collection constructor functors from the schema category. The morphisms are not implemented explicitly since we conceptually consider that all the Haskell functions (except the undefined) to be morphisms.