posable (hackage): A generics library that represents a non-recursive Haskell 98 datatype as a product-of-sums. Each type is represented with a single tag, and a product of sums of fields. The tag represents all constructor choices in the type, the fields contain all the values in the type. This representation maps easily to a struct of unions, which is a memory-efficient way to store sum datatypes.
Keywords: bsd3|generics|library