diff --git a/src/Compiler/Optimize/InnerLambdasToTopLevelFuncs.fs b/src/Compiler/Optimize/InnerLambdasToTopLevelFuncs.fs index 0e2ced16da4..0b1f58713ba 100644 --- a/src/Compiler/Optimize/InnerLambdasToTopLevelFuncs.fs +++ b/src/Compiler/Optimize/InnerLambdasToTopLevelFuncs.fs @@ -330,8 +330,8 @@ type ReqdItem = let reqdItemOrder = let rep = function - | ReqdSubEnv v -> true, v - | ReqdVal v -> false, v + | ReqdSubEnv v -> struct (true, v) + | ReqdVal v -> struct (false, v) Order.orderOn rep (Pair.order (Bool.order, valOrder)) diff --git a/src/Compiler/Utilities/lib.fs b/src/Compiler/Utilities/lib.fs index 609245f636e..8acde600ec4 100755 --- a/src/Compiler/Utilities/lib.fs +++ b/src/Compiler/Utilities/lib.fs @@ -59,12 +59,11 @@ module Int64 = module Pair = let order (compare1: IComparer<'T1>, compare2: IComparer<'T2>) = - { new IComparer<'T1 * 'T2> with + { new IComparer with member _.Compare((a1, a2), (aa1, aa2)) = let res1 = compare1.Compare (a1, aa1) if res1 <> 0 then res1 else compare2.Compare (a2, aa2) } - type NameSet = Zset module NameSet = diff --git a/src/Compiler/Utilities/lib.fsi b/src/Compiler/Utilities/lib.fsi index 1dfd610d55a..5d82031642f 100644 --- a/src/Compiler/Utilities/lib.fsi +++ b/src/Compiler/Utilities/lib.fsi @@ -52,7 +52,7 @@ module Int64 = val order: IComparer module Pair = - val order: compare1: IComparer<'T1> * compare2: IComparer<'T2> -> IComparer<'T1 * 'T2> + val order: compare1: IComparer<'T1> * compare2: IComparer<'T2> -> IComparer type NameSet = Zset diff --git a/src/Compiler/Utilities/range.fs b/src/Compiler/Utilities/range.fs index 5e13752df0b..0857d7c4d7c 100755 --- a/src/Compiler/Utilities/range.fs +++ b/src/Compiler/Utilities/range.fs @@ -449,7 +449,7 @@ module Range = let posOrder = let pairOrder = Pair.order (Int32.order, Int32.order) - let lineAndColumn = fun (p: pos) -> p.Line, p.Column + let lineAndColumn = fun (p: pos) -> struct (p.Line, p.Column) { new IComparer with member _.Compare(x, xx) = @@ -458,7 +458,7 @@ module Range = let rangeOrder = let tripleOrder = Pair.order (String.order, Pair.order (posOrder, posOrder)) - let fileLineColumn = fun (r: range) -> r.FileName, (r.Start, r.End) + let fileLineColumn = fun (r: range) -> struct (r.FileName, struct (r.Start, r.End)) { new IComparer with member _.Compare(x, xx) =