AD
Size: a a a
AD
AH
PD
unit -> M<'T>AH
unit -> M<'T>PD
AH
PD
AH
AH
AH
PD
type FooBuilder() =
member _.Yield(x) = x
member _.Zero() = ()
let foo = FooBuilder()
let x = foo { 3 }
val x : unit = ()
PD
3AH
AD
AD
AH
PD
type FooBuilder() =
member _.Yield(x: int) = x
member _.Combine(u: unit, x: int) = x
member _.Zero() = ()
let foo = FooBuilder()
let x = foo { 3 }
x есть unitAH
AD
AH
type BBBbuilder() =
member _.Zero() = []
member _.Yield x = [x]
member _.Combine (x,y) = x @ y
member _.Delay f = f()
let b = BBBbuilder()
let c =
b {
1
2
3
}