# POSable A library to convert non-recursive Haskell-98 datatypes to a Product-of-Sums representation - and back. This makes it possible to compactly store arrays of (nested) sum types in a struct-of-arrays representation, which is used in array-based languages like [Accelerate]. [Accelerate]: https://www.acceleratehs.org/ ## Dependencies - The [Stack] package manager (Tested with stack 2.7.3) - `stylish-haskell` and `hlint` (for linting only) [Stack]: https://docs.haskellstack.org/en/stable/README/ ## Tests and lints ``` bash stylish-haskell -r src examples test hlint src examples test stack test ``` ## Building ``` bash stack build # To build the docs stack haddock posable ``` ## Examples In the [examples](examples) folder you will find examples that describe how to use this library.