Dealing with complex C-structure-like data in haskell often force the developer to have to deal with C files, and create a system that is usually a tradeoff between efficiency, modularity and safety.
The Foreign
class doesn't quite cut it, external program needs C files,
binary parsers (binary, cereal) are not efficient or modular.
Let's see if we can do better using the advanced haskell type system.