@@ -20,7 +20,7 @@ module CEs =
2020 Variables: 'Vars
2121 }
2222
23- type M < 'T > = M< 'T, unit >
23+ type M < 'T > = M< 'T, obj List >
2424
2525 type CE () =
2626
@@ -29,7 +29,7 @@ module CEs =
2929 IsMember = None
3030 IsMember2 = false
3131 Members = []
32- Variables = ()
32+ Variables = []
3333 }
3434
3535 member _.Combine ( model1 : M < 'T >, model2 : M < 'T >) : M < 'T > =
@@ -53,7 +53,7 @@ module CEs =
5353 IsMember = newIsMember
5454 IsMember2 = newIsMember2
5555 Members = List.append model1.Members model2.Members
56- Variables = ()
56+ Variables = []
5757 }
5858
5959 member _.Delay ( f ) : M < 'T , 'Vars > = f ()
@@ -63,7 +63,7 @@ module CEs =
6363 IsMember = model.IsMember
6464 IsMember2 = model.IsMember2
6565 Members = model.Members
66- Variables = ()
66+ Variables = []
6767 }
6868
6969 member this.For ( methods , f ) : M < 'T > =
@@ -85,7 +85,7 @@ module CEs =
8585 IsMember = None
8686 IsMember2 = false
8787 Members = [ item ]
88- Variables = ()
88+ Variables = []
8989 }
9090
9191 // Only for packing/unpacking the implicit variable space
@@ -127,9 +127,12 @@ module CEs =
127127 [<CustomOperation( " Name" , MaintainsVariableSpaceUsingBind = true ) >]
128128 member _.setName ( model : M < 'T , 'Vars >, [<ProjectionParameter>] name : ( 'Vars -> string )) : M < 'T , 'Vars > = {
129129 model with
130- Name = Some( name model .Variables)
130+ Name = let m = Unchecked.defaultof < M <_, _>> in Some( name m .Variables)
131131 }
132132
133+ //[<CustomOperation("Name", MaintainsVariableSpaceUsingBind = true)>]
134+ //member _.setName(model: M<'T, 'Vars * 'Vars2>, [<ProjectionParameter>] name: ('Vars -> string)) : M<'T, 'Vars> = Unchecked.defaultof<_>
135+
133136 [<CustomOperation( " IsMember" , MaintainsVariableSpaceUsingBind = true ) >]
134137 member _.setIsMember ( model : M < 'T , 'Vars >, [<ProjectionParameter>] isMember : ( 'Vars -> bool )) : M < 'T , 'Vars > = {
135138 model with
@@ -161,6 +164,14 @@ module CEs =
161164 module Test =
162165 let x : M < double > = ce { Name " Fred" }
163166
167+ let queryTest = query {
168+ for i in [ 1 .. 10 ] do
169+ where ( i < 10 )
170+ minBy ( i + - i)
171+ //headOrDefault
172+ //sumBy 10
173+ }
174+
164175 let x2 : M < double > = ce {
165176 Name " Fred"
166177 IsMember true
@@ -186,7 +197,7 @@ module CEs =
186197 }
187198
188199 let z5 : M < double > = ce {
189- Name " a"
200+ Name( " a" + " b " )
190201 Name " b"
191202 //42 // removing this line results in compiler error
192203 }
@@ -203,9 +214,18 @@ module CEs =
203214 }
204215
205216 let z7 : M < double > = ce {
206- let x = " a"
207- Name( x + " b" )
208- Member 4.0
217+ let a = " a"
218+ let b = " b"
219+ let c = " c"
220+ let! ( d : int ) = Unchecked.defaultof<_>
221+ let e = " "
222+ let! ( f : System.Guid ) = Unchecked.defaultof<_>
223+ //Name("b")
224+ //Member 4.0
225+ //return ()
226+ //let x = "b"
227+ //let! x = Unchecked.defaultof<_>
228+ return []
209229 }
210230
211231 let z8 : M < double > = ce {
0 commit comments