Derived external syntax
Bugfix in ExtSyntax folds
Removed `.toFamily` calls in type inference
Bugfixes and improved pair types

Type inference now works as expected, at
least for the recovery server combinator.
Matching was incorrect for certain situations
involving type variables. Also, invariance
and rigidity checks are correct now.

Added support for pair types with depth
and width subtyping. This enables a cleaner
definition of component access operations
for pairs, e.g. type arguments can be
fully inferred.