@@ -158,14 +158,20 @@ type Fold =
158
158
159
159
static member inline FromFoldMap f z t = let ( f : _Dual < _Endo < 't >>) = FoldMap.Invoke (_ Dual << _ Endo << flip f) t in f.Value.Value z
160
160
161
- static member inline Fold ( x , f , z , [<Optional>] _impl : Default2 ) = Seq.fold f z ( ToSeq.Invoke x)
162
- static member inline Fold ( x : 'F , f : 'b -> 'a -> 'b , z : 'b , [<Optional>] _impl : Default1 ) = ( ^F : ( static member Fold : ^F -> _ -> _ -> ^b ) x, f, z)
163
- static member Fold ( x : option < _ >, f , z , [<Optional>] _impl : Fold ) = match x with Some x -> f z x | _ -> z
164
- static member Fold ( x : Id < _ > , f , z , [<Optional>] _impl : Fold ) = f z x.getValue
165
- static member Fold ( x : seq < _ > , f , z , [<Optional>] _impl : Fold ) = Seq.fold f z x
166
- static member Fold ( x : list < _ > , f , z , [<Optional>] _impl : Fold ) = List.fold f z x
167
- static member Fold ( x : Set < _ > , f , z , [<Optional>] _impl : Fold ) = Set.fold f z x
168
- static member Fold ( x : _ [] , f , z , [<Optional>] _impl : Fold ) = Array.fold f z x
161
+ static member inline Fold ( x , f , z , [<Optional>] _impl : Default2 ) =
162
+ #if TEST_ TRACE
163
+ Traces.add " Fold Default"
164
+ #endif
165
+ Seq.fold f z ( ToSeq.Invoke x)
166
+
167
+ static member inline Fold ( x : 'F , f : 'b -> 'a -> 'b , z : 'b , [<Optional>] _impl : Default1 ) = ( ^F : ( static member Fold : ^F -> _ -> _ -> ^b ) x, f, z)
168
+ static member Fold ( x : option < _ > , f , z , [<Optional>] _impl : Fold ) = match x with Some x -> f z x | _ -> z
169
+ static member Fold ( x : voption < _ >, f , z , [<Optional>] _impl : Fold ) = match x with ValueSome x -> f z x | _ -> z
170
+ static member Fold ( x : Id < _ > , f , z , [<Optional>] _impl : Fold ) = f z x.getValue
171
+ static member Fold ( x : seq < _ > , f , z , [<Optional>] _impl : Fold ) = Seq.fold f z x
172
+ static member Fold ( x : list < _ > , f , z , [<Optional>] _impl : Fold ) = List.fold f z x
173
+ static member Fold ( x : Set < _ > , f , z , [<Optional>] _impl : Fold ) = Set.fold f z x
174
+ static member Fold ( x : _ [] , f , z , [<Optional>] _impl : Fold ) = Array.fold f z x
169
175
170
176
static member inline Invoke ( folder : 'State -> 'T -> 'State ) ( state : 'State ) ( foldable : '``Foldable' < T > ``) : 'State =
171
177
let inline call_2 ( a : ^a , b : ^b , f , z ) = (( ^a or ^b ) : ( static member Fold : _*_*_*_ -> _) b, f, z, a)
0 commit comments