I???d expect a higher-level interface to look something like Go???s standard JSON library ??? which uses a mix of interfaces, reflection, and mutation to automatically translate back and forth between data types and JSON ??? but I haven???t worked out enough details to know how feasible / easy that would be, or to compare the convenience of that approach with the Haskell version above.