anchor.diff:          | _ -> //failwithf "Component, %s, has an invalid property type. Property Name: %s. Type: %s." typeof<'T>.Name meth.Name typ.Name
   
               let helperMethods = moduleType.GetRuntimeMethods ()
  -            let createCloneMeth = helperMethods |> Seq.find (fun x -> x.Name = "createCloneMethod")
  +            let createCloneMeth = helperMethods |> Seq.find (fun x -> x.Name = "createCloneDynamicMethod")
   
               let generic = createCloneMeth.MakeGenericMethod ([|typ|])
               let ret = generic.Invoke (null, [||])
  -            let ret = ret :?> Delegate
  -            Clone (ret.Method, meth)
  +            let ret = ret :?> DynamicMethod
  +            Clone (ret, meth)
   
       let createSet<'T> (meth : MethodInfo) = meth
   
  -    let createCloneMethod<'T> () =
  +    let createCloneDynamicMethod<'T> () =
           let typ = typeof<'T>
   
           if typ.IsValueType then
  
positive.code:         il.Emit (OpCodes.Ldloc_0)
          il.Emit (OpCodes.Ret)
  
          cloneMeth.CreateDelegate (typeof<Func<'T, 'T>>) :?> Func<'T, 'T>
  #else
      type GetMethod<'T> =
          | GetReference of Func<'T, obj>
  
negative.code:                     il.Emit (OpCodes.Callvirt, ctorGet)
                  | Clone (clone, ctorGet) ->
                      il.Emit (OpCodes.Callvirt, ctorGet)
                      il.Emit (OpCodes.Call, clone)
              )
          il.Emit (OpCodes.Newobj, ctor)
  