combined expression language using Coq GADTs; work still needed to port the causality proof...