Sun Feb 9 19:14:51 EST 2020

Lisp-style pattern matcher

I've been using s-expressions (SE) for many things.  They are terribly
convenient since the parser is almost trivial.

I'm mapping SE to (Free [String]).

What I miss, is straightforward structural matching.  The Free/Pure
constructors are clumsy to use for direct matching, but it might be
possible to define some fold-style matchers.

EDIT: yea not now

The underlying problem is that the s-expression space is very large,
and I want to match a very specific subset.  So maybe it's best to use
the Either monad.

Or... use the path represenation.  That is much easier to match.