anchor.diff:              fieldIds
               |> Array.mapToList (fun id ->
                   let ta, _ = typeAnnotation com ctx None id.Type
  -                let identifier = ident com ctx id
  -                Arg.arg(identifier, annotation=ta))
  +                Arg.arg(ident com ctx id, annotation=ta))
               |> (fun args -> Arguments.arguments(args=args))
           declareType com ctx ent entName args body baseExpr classMembers
   
  
positive.code:         // printfn "getMemberArgsAndBody: %A" hasSpread
          let funcName, genTypeParams, args, body =
              match kind, args with
              | Attached(isStatic=false), (thisArg::args) ->
                  let genTypeParams = Set.difference (getGenericTypeParams [thisArg.Type]) ctx.ScopedTypeParams
                  let body =
                      // TODO: If ident is not captured maybe we can just replace it with "this"
  
negative.code:         let reflectionDeclaration, stmts =
              let ta = fableModuleAnnotation com ctx "Reflection" "TypeInfo" []
              let genArgs = Array.init ent.GenericParameters.Length (fun i -> "gen" + string i |> makeIdent)
              let args = genArgs |> Array.mapToList (fun id -> Arg.arg(ident com ctx id, annotation=ta))
              let args = Arguments.arguments(args)
  
              let generics = genArgs |> Array.mapToList (identAsExpr com ctx)
              let body, stmts = transformReflectionInfo com ctx None ent generics
              let expr, stmts' = makeFunctionExpression com ctx None (args, body, ta)
              let name = com.GetIdentifier(ctx, entName + Naming.reflectionSuffix)
              expr |> declareModuleMember ctx ent.IsPublic name false, stmts @ stmts'
  