So, higher order abstract syntax provides an algebraic account of many context sensitive features of languages which manipulate variables, names and identifiers.
All these have conflated together in meta-language variables. So, all languages with binders, restriction operators, new name operators assignment, they are all treated on a languages with only the variable name, identifier free expressions.
They are all dealt with these binders, they are all explained in terms of the unique binder of our metamodel which is Lambda abstractions.