anchor.diff:              Define.Field("live", String, (fun _ d -> d.live))
               Define.Field("iface", InterfaceType, (fun _ d -> d.iface))
               Define.Field("ifaceList", ListOf InterfaceType, (fun _ d -> d.ifaceList))
  -            Define.AsyncField("delayed", String, (fun _ d -> d.delayed))
  +            Define.Field("delayed", DelayedDataType, (fun _ d -> d.delayed))
  +            Define.Field("delayedList", ListOf DelayedDataType, (fun _ d -> d.delayedList))
           ])
  +
  +let delay secs x = async {
  +    do! Async.Sleep(secs * 1000)
  +    return x
  +}
   
   let data = {
          id = "1"
  
positive.code:     iface : InterfaceSubject
      ifaceList : InterfaceSubject list
      mutable live: string
      delayed : Async<string>
  }
  
  and InnerTestSubject = {
  
negative.code:             Define.Field("a", String, (fun _ d -> d.a))
              Define.Field("innerList", ListOf InnerDataType, (fun _ d -> d.innerList))
          ])
  
  let DelayedDataType =
      Define.Object<DelayedTestSubject>(
          name = "DelayedData",
          fieldsFn = fun () -> [ Define.AsyncField("value", String, (fun _ d -> d.value)) ])
  
  let DataType =
      Define.Object<TestSubject>(
  