Add support for multiple-constructor datatypes with fields.
authorMatthijs Kooijman <matthijs@stdin.nl>
Wed, 9 Jun 2010 20:30:13 +0000 (22:30 +0200)
committerMatthijs Kooijman <matthijs@stdin.nl>
Wed, 9 Jun 2010 20:30:13 +0000 (22:30 +0200)
commit4583b2b6d86da12e795f199f2951b193efed613f
tree967f88c05a5706de8bbdc9c149ea7463247d9c60
parentb17e2ae55f553ae206d9459799392d4d618b0e13
Add support for multiple-constructor datatypes with fields.

This is the naïve implementation that will not try to use the same
storage space for fields from different constructors, so it might
quickly become inefficient with bigger datatypes. For simple types like
the Maybe type, this should be fine.

The support is not quite working yet, for some reason these new types
are not marked as representable. This is cause because the type
substitution in mkTyConHType does not work for some reason, so the field
type of the Just constructor in (for example) a Maybe Bool type stays
"a" instead of "Bool".
clash/CLasH/Translator/TranslatorTypes.hs
clash/CLasH/VHDL/Generate.hs
clash/CLasH/VHDL/VHDLTools.hs