At first I thought this would be a post that would interest only one topic map person that I know. But upon reading the entire post, I decided it might interest two.
What pushed me over the edge was:
Thus by merely specifying the return type we have effectively generated a parser. An invalid string will produce an error:
That is a very powerful mechanism to use with processing values returned in processing a topic map (or data about to be included in a topic map).