flatcurry-elim-newtype

This packages contains the library FlatCurry.ElimNewtype which defines operations to eliminate definitions and uses of newtype in a FlatCurry program.

If there is a declaration of the form

newtype NTYPE a1...an = NTCONS te

in a Curry program, the following transformations are preformed:

The implementation requires also the interfaces of imported modules to find all uses of newtype in the module to be transformed. Furthermore, types are reconstructed in the FlatCurry program since one transformation requires type information.