@@ -2162,6 +2162,7 @@ namespace Microsoft.FSharp.Core
21622162let FloatComparer = MakeGenericComparer< float>()
21632163let Float32Comparer = MakeGenericComparer< float32>()
21642164let DecimalComparer = MakeGenericComparer< decimal>()
2165+ let BoolComparer = MakeGenericComparer< bool>()
21652166
21662167/// Use a type-indexed table to ensure we only create a single FastStructuralComparison function
21672168/// for each type
@@ -2199,6 +2200,7 @@ namespace Microsoft.FSharp.Core
21992200| tywhen ty.Equals( typeof< float32>) -> null
22002201| tywhen ty.Equals( typeof< decimal>) -> null
22012202| tywhen ty.Equals( typeof< string>) -> unboxPrim( box StringComparer)
2203+ | tywhen ty.Equals( typeof< bool>) -> null
22022204| _ -> MakeGenericComparer< 'T>()
22032205
22042206static let f : System.Collections.Generic.IComparer < 'T > =
@@ -2218,6 +2220,7 @@ namespace Microsoft.FSharp.Core
22182220| tywhen ty.Equals( typeof< float32>) -> unboxPrim( box Float32Comparer)
22192221| tywhen ty.Equals( typeof< decimal>) -> unboxPrim( box DecimalComparer)
22202222| tywhen ty.Equals( typeof< string>) -> unboxPrim( box StringComparer)
2223+ | tywhen ty.Equals( typeof< bool>) -> unboxPrim( box BoolComparer)
22212224| _ ->
22222225// Review: There are situations where we should be able
22232226// to return System.Collections.Generic.Comparer<'T>.Default here.