Open
Description
If someone is feeling daring and finds it worthwhile, they might try factoring Term like this:
data Path var gen fk =
| Var var
| Gen gen
| Fk fk (Path gen fk)
data Term var ty en sym fk att gen sk =
| Var var
| Sk sk
| Att (Path var gen fk)
| Sym sym (List (Term var ty en sym fk att gen sk))