Skip to content

Commit bfa151d

Browse files
committed
Change overload priority for OfSeq / OfList
1 parent 9880456 commit bfa151d

File tree

2 files changed

+14
-14
lines changed

2 files changed

+14
-14
lines changed

src/FSharpPlus/Control/Collection.fs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,24 +12,24 @@ open FSharpPlus.Internals
1212

1313
type OfSeq =
1414
inherit Default1
15-
16-
static member inline OfSeq ((x: seq<'t>, _: 'R), _: Default5) : 'R =
15+
16+
static member inline OfSeq ((x: seq<'t>, _: '``Foldable'<T>``), _: Default5) : '``Foldable'<T>`` =
1717
#if TEST_TRACE
18-
Traces.add "OfSeq, Default5-seq<'t>"
18+
Traces.add "OfSeq, Return+Sum<'t>"
1919
#endif
20-
(^R : (new : seq<'t> -> ^R) x)
20+
x |> Seq.map Return.Invoke |> Sum.Invoke
2121

22-
static member inline OfSeq ((x: seq<KeyValuePair<'k,'v>>, _: 'R), _: Default5) : 'R =
22+
static member inline OfSeq ((x: seq<'t>, _: 'R), _: Default4) : 'R =
2323
#if TEST_TRACE
24-
Traces.add "OfSeq, Default5-seq<KeyValuePair<'k,'v>>"
24+
Traces.add "OfSeq, #new seq<'t>"
2525
#endif
26-
(^R : (new : seq<'k*'v> -> ^R) (Seq.map (|KeyValue|) x))
26+
(^R : (new : seq<'t> -> ^R) x)
2727

28-
static member inline OfSeq ((x: seq<'t>, _: '``Foldable'<T>``), _: Default4) : '``Foldable'<T>`` =
28+
static member inline OfSeq ((x: seq<KeyValuePair<'k,'v>>, _: 'R), _: Default4) : 'R =
2929
#if TEST_TRACE
30-
Traces.add "OfSeq, Default4-seq<'t>"
30+
Traces.add "OfSeq, #new seq<KeyValuePair<'k,'v>>"
3131
#endif
32-
x |> Seq.map Return.Invoke |> Sum.Invoke
32+
(^R : (new : seq<'k*'v> -> ^R) (Seq.map (|KeyValue|) x))
3333

3434
static member OfSeq ((x: seq<'t> , _: seq<'t> ), _: Default3) = x
3535
static member OfSeq ((x: seq<'t> , _: ICollection<'t> ), _: Default3) = let d = ResizeArray () in Seq.iter d.Add x; d :> ICollection<'t>
@@ -81,10 +81,10 @@ type OfSeq =
8181
type OfList =
8282
inherit Default1
8383

84-
static member inline OfList ((x: list<'t> , _: 'R ), _: Default6) = (^R : (new : seq<'t> -> ^R) (List.toSeq x)) : 'R
85-
static member inline OfList ((x: list<KeyValuePair<'k,'v>>, _: 'R ), _: Default6) = (^R : (new : seq<'k*'v> -> ^R) (Seq.map (|KeyValue|) x)) : 'R
84+
static member inline OfList ((x: list<'t> , _: '``Foldable'<T>`` ), _: Default6) = x |> List.map Return.Invoke |> Sum.Invoke : '``Foldable'<T>``
8685

87-
static member inline OfList ((x: list<'t> , _: '``Foldable'<T>`` ), _: Default5) = x |> List.map Return.Invoke |> Sum.Invoke : '``Foldable'<T>``
86+
static member inline OfList ((x: list<'t> , _: 'R ), _: Default5) = (^R : (new : seq<'t> -> ^R) (List.toSeq x)) : 'R
87+
static member inline OfList ((x: list<KeyValuePair<'k,'v>>, _: 'R ), _: Default5) = (^R : (new : seq<'k*'v> -> ^R) (Seq.map (|KeyValue|) x)) : 'R
8888

8989
static member OfList ((x: list<'t> , _: seq<'t> ), _: Default4) = List.toSeq x
9090
#if !FABLE_COMPILER

tests/FSharpPlus.Tests/Collections.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ module Collections =
149149

150150
let _12: WrappedListI<_> = seq [1;2] |> ofSeq
151151
#if TEST_TRACE
152-
CollectionAssert.AreEqual (["OfSeq, Default2-#Add"; "OfSeq, Default2-#Add"; "OfSeq, Default2-#Add"; "OfSeq, Default4-seq<'t>"], Traces.get())
152+
CollectionAssert.AreEqual (["OfSeq, Default2-#Add"; "OfSeq, Default2-#Add"; "OfSeq, Default2-#Add"; "OfSeq, Return+Sum"], Traces.get())
153153
#endif
154154

155155
()

0 commit comments

Comments
 (0)