Improve higher order unification

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
Improve higher order unification