anchor.diff:         let rec find (t: Type) =
            match t.GetField name with // Only public is ok here.
             | null ->
  -            if t <> typeof<obj> then
  -              find t.BaseType
  -            else
  +            if t = typeof<obj> then
                 failwithf "Type %A :> %A has no field named %s"
                  metaType baseType name
  +            find t.BaseType
             | field ->
  -            if field.IsStatic then
  -              field.SetValue (null, value)
  -            else
  +            if not field.IsStatic then
                 failwithf "Field %s of type %A :> %A is not static"
                  name metaType baseType
  +            field.SetValue (null, value)
          find metaType)
       let ctor = metaType.GetConstructor baseArgTypes
       ctor.Invoke basePars
  
positive.code:     let typeBuilder = repModule.DefineType (uniqueName (), T.Public, baseType)
      let (values, ()) = builder (typeBuilder, [])
      let baseArgTypes =
        match baseType.GetConstructors
               (B.Instance ||| B.Public ||| B.NonPublic) with
         | [|baseCtor|] when baseCtor.GetParameters().Length = basePars.Length ->
           let baseArgTypes =
             baseCtor.GetParameters () |> Array.map (fun p -> p.ParameterType)
  
negative.code:                | (_, Some _) -> failwith "XXX"))
             props
             products
             (Builder.forTo 0 (elems.Length-1) <| fun i ->
               let elemType =
                 typedefof<Item<_, _, _>>.MakeGenericType
                  [|elems.[i]; products.[i]; t|]
               Builder.metaField elemType [|box i|]
                (Builder.overrideGetMethod "Get" t props.[i])))
        else
          Builder.metaType typeof<Prim<'t>> [||]
           (Builder.result ()) with
  