Takes a JSON format input, and generates automatic Haskell type declarations. Parser and printer instances are derived using Aeson. The program uses union type unification to trim output declarations. The types of same attribute tag and similar attribute set, are automatically unified using recognition by attribute set matching. (This option can be optionally turned off, or a set of unified types