I’d like to announce a new library: fields-and-cases. It generates type definitions for arbitrary programming languages. All based on Haskell types.
The README contains detailed example for generating types for Rust and TypeScript. The pattern can be easily applied to other languages. The library makes the heavy lifting for you - such as type level programming parts. All you have to do is to provide some instances and pattern match on simple data structures to define custom mappings to the target languages.