This code defines a simple domain-specific language of string
patterns and demonstrates two interpreters of the language:
for building strings (sprintf) and parsing strings (sscanf).
This code thus solves the problem of typed printf/scanf sharing the
same format string posed by Chung-chieh Shan.
This code presents scanf/printf interpreters in the final style;
it is thus the dual of the code in PrintScan.hs