The atom package

Atom is a Haskell DSL for designing hard realtime embedded programs. Based
on conditional term rewriting, atom will compile a collection of atomic
state transition rules to a C program with constant memory use and
deterministic execution time.