It looks like a mistake to me. Someone from the F # team is likely to give a clear answer to this :-). At the same time, this is an easy workaround that you can use. The problem is compiling the = operator. You can define your operator (or function) and call this operator from the quoted code:
let (><) ab = a = b let quote = <@ let value1 = { x = 1; y = 1; } let value2 = { x = 1; y = 1; } let result2 = value1 >< value2 result2 @> print (quote.EvalUntyped())
Instead of generating an incorrect call to the standard operator = , it will generate code that calls your user-defined operator (which then starts the comparison as standard, correctly compiled F # code), so this gives the expected result.
source share