----------------------------------------------------------------------------------------------------
-- Parser and Prettyprinter are an isomorphism!

syntaxIso :: forall a. (forall s. (Syntax s) => s a) -> Iso String a
syntaxIso s = iso (parse1 s) (print s)
syntaxIso :: forall a. (forall s. (Syntax s) => s a) -> Iso String a
syntaxIso s = iso (parse1 s) (print s)
syntaxIso s = iso (parse1 s) (print s)