
Happy to announce 'Elminator', a package for generating Elm source for type definitions and Json encoders/decoders from Haskell data type definitions. https://hackage.haskell.org/package/elminator, This package tries to address some issues with popular/existing packages in the same space. Some distinguishing features are.. 1. Supports generation of polymorphic types (as well as concrete ones) in Elm from possibly polymorphic Haskell types, including types with phantom type variables. 2. Supports generation of code for recursive types (direct/indirect) as long as the type is not polymorphic. 3. Generates code that does not depend on external Elm libraries. 4. Does not have limits on the number of fields that the constructors of your types can have. 5. Supports JSON encoding options exported by the Aeson library comprehensively. 6. Supports generation of code that depend on user defined types and encoders/decoders in Elm. Right now this package is tested by using a Haskell/Elm test app that round trips a bunch of data structures between an Elm front end and a Haskell back end, so as of now, there there aren't any automated tests included with this repo. Any feedback is welcome! Thanks.