All tests pass with new Rules for GetField
Proper Rule deletion
Extract Rule.Internal from Infer.Internal
ExprRefs generalized
Add test from QuickCheck
unifyRecurse does visited check on both refs
Arbitrary makes Records and GetFields too
visitedCheck -> refToRep
fix test name
add test
Revert "visitedCheck -> refToRep" and "unifyRecurse does visited check on both refs"

This reverts commit 0b1cf824db34e86b0de8d6888d445e8c1fd18350.
This reverts commit eac1c86dce6565dfbf6a1157ce3dd12b9066c211.
Alternative fix, code is a mess