explicitly named terms
desugaring
desugaring
complete distill
oops
group equal types for arr
unused import
update parser and pp
removed Eq instance as a reminder..>
parametrise TermT by the Free and Bound tag types

This is so we can have the Binder to always track the tag.  When
converting a `TermT Void Id' everything will be Bound at the beginning
and `Free' will be put in place.
substitutions
export
rename Name to Bind to avoid confusion
adjust sugar
pairing the binding with the name makes things considerably messier
implement substitutions and equality

While doing that I realised that it's better to allow pattern matching
on arbitrary things in Case binding the scrutined to a variable.

This makes the distilling problemating, I should probably adopt two
case form in STerm so that I can distill both.
variable names in Term
start to adjust Environment

The final piece missing is converting from Id to unique tags
uniquify where due
provisional code for the generation of ty/data cons