Don't assert that the input values are AST nodes.
Give better error messages for empty problem paths.
Fall back to non-strict equality when all else fails.
Add tests of types.astNodesAreEquivalent.