anchor.diff:  type ShapeFSharpUnionCase<'U> private (uci : UnionCaseInfo) =
       let properties = uci.GetFields()
       let ctorInfo = FSharpValue.PreComputeUnionConstructorInfo(uci, allMembers)
  -    let ctorParams = 
  -        properties 
  -        |> Array.map (fun p -> 
  -            let pts = TypeShape.Create(p.PropertyType)
  -            pts.Accept{ new ITypeShapeVisitor<obj> with 
  -                member __.Visit<'T>() = 
  -                    Unchecked.defaultof<'T> :> obj })
  +    let ctorf = mkUninitializedCtor<'U> ctorInfo
  +
  +//    let ctorParams = properties |> Array.map (fun p -> defaultOfUntyped p.PropertyType)
   
       let caseFields =
           match properties with
  
positive.code:                 
          Expr.Cast<unit>(aux 0 r)
  
  //-------------------------
  // Member Shape Definitions
  
  
negative.code: 
      /// Injects a value to member of given instance
      member __.Inject (instance : 'DeclaringType) (field : 'MemberType) : 'DeclaringType =
          injectFunc.Value.Invoke(instance, field)
  
      /// Injects a value to member of given instance
      member __.InjectExpr (instance : Expr<'DeclaringType>) (field : Expr<'MemberType>) =
  