pub type TermCtx = Term<IdentCtx, LitVal, OptCons<Ident>>;
pub enum TermCtx { Var(IdentCtx), Lit(LitVal), Cons(OptCons<Ident>, Vec<Term<IdentCtx, LitVal, OptCons<Ident>>>), }