The idea behind the conjecture:
Fields on the right of OpRecConcat hides corresponding fields that may exist on the left, so the type of those fields on the left do not matter.
Currently: if they are known in the left record type, the right field take precedence. For instance:
[a: Integer, b: String]++[a: String, c: Integer] -> [a: String, b: String, c:Integer]
If the left record is open, the following should be sound:
[a: Integer, b: String, ..]++[a: String, c:Integer] -> [a: String, b: String, c:Integer, ..]
If c is present in the instance of the left, this will be hidden so we know the result of concatenation has a field c of type Integer