React

Rationale

Reaction networks are typically built out of two components: a description of the network itself (the data), and the logic detailing the behaviour of the network (the code). Standard formats for reaction networks as SBML and SGML encode both the description and the behaviour as data (ie. an XML file). One of the drawbacks of this approach is that, given an SBML file, the validity of the model it encodes is undecidable.

The goal of React is to remedy to this problem.

React networks are written in a combination of two domain-specific languages (DSL) embedded in Haskell: one DSL to describe the structure of the network, and one DSL to specify its behaviour. This allows React to benefit from the Haskell type-checker and provide static guarantees about the validity of the encoded reaction network.

Implementation

React is written in Haskell.