Genspio is a typed domain specific language embedded in OCaml that compiles terms to POSIX shell scripts or one-liners. It is used to build, for instance, complex deployment scripts which need to be run over SSH on hosts that may not have OCaml or any scripting language available.
The implementation is based on a GADT and has allowed us to scale to increasingly complex “Dev-Ops” deployments, thanks to the composability and modularity provided by OCaml itself. We describe these in Secotrec, for now our heaviest use of the Genspio EDSL.
While the released version has proved very useful, we detail quite a few very interesting future work problems.