Location
Industry Impact
Partnership
Global Reach Impact
Plow Technologies needed guaranteed consistency between its Haskell backend and ReasonML frontend as SCADA data structures evolved. Shifting types risked runtime failures, slowed development, and compromised reliability in mission-critical systems.
Stack Builders developed a custom code-generation tool that automatically generated frontend types based on the backend, eliminating manual errors, streamlining delivery, and ensuring Plow Technologies’ systems remained reliable and deployment-ready.
Stack Builders built an automated workflow to keep Plow Technologies’ Haskell backend and OCaml/ReasonML frontend perfectly aligned. Using Haskell types as the source of truth, we generated matching OCaml types and codecs with an in-house codegen library. We also produced QuickCheck arbitrary data and JSON golden files to validate round-trip accuracy. Integrated into CI, the system regenerated code and ran cross-language tests on every commit.
Automated OCaml/ReasonML code generation from Haskell types, plus auto-derived QuickCheck data via custom in-house libraries.
Added golden and property tests ensuring Haskell↔OCaml JSON serialization remains accurate and fully round-trippable.
Integrated type generation and tests into the CI pipeline, guaranteeing backend–frontend type consistency on every commit.
Ensured data integrity across a large, mission-critical system by automating type syncing and cross-language validation.
This diagram shows an automated workflow that enforces type-level consistency between a Haskell backend and an OCaml/ReasonML frontend. Types, serializers, and tests are generated from a single Haskell source of truth and validated via golden and property-based tests in CI.
Servant: Type-safe Haskell web framework for defining backend APIs
Aeson: Haskell JSON serialization/deserialization library
ReasonML + ReasonReact: Frontend framework used to consume and safely interpret backend-generated da
Hspec-golden-aeson (in-house): Golden file generator for JSON output verification
quickcheck-arbitrary-adt (in-house): Automatic arbitrary data generation for property testing
OCaml Export (in-house): Code-generation tool producing OCaml types, codecs, and tests
bs-aeson (in-house): OCaml JSON serialization/deserialization library inspired by Haskell’s Aeson
The automated type-synchronization system enabled Plow Technologies to release updates faster and with greater confidence. By generating types and tests directly from backend definitions, Stack Builders eliminated data mismatches, cut manual maintenance, and surfaced errors earlier in development. The result was improved reliability across mission-critical systems and a foundation that scales safely as payloads evolve.