Other potential solutions (2)
Use the type class system to construct parser from types
Similar to what I did with marshalling for the FFI in 2001
Less work for the programmer
More complex implementation?
How to add documentation?