anchor.diff:          | Method of GenericParameter list * GenericConstraint list * FFIMemberParameter list * ReturnType
           | Index of ParameterType * ReturnType
           | Property of ReturnType
  +        | FunWrapper
   
       type FFIPropertyName =
           | Invoker
  
positive.code:                             let name = getOverloadName name (Index(fixedP, fixedR))
                              sprintf "%s with get(i : %s) : %s = failwith \"never\" and set (i : %s) (v : %s) : unit = failwith \"never\"" name pCode rCode pCode rCode,
                              None
                      let root =
                          match s with
                          | Static -> "static member "
  
negative.code:                             sprintf "%s(%s)" fullAccess parameterCode
                          | Index _ ->
                              sprintf "%s[{%i}]" fullAccess seedI
                          | FunWrapper ->
                              let n = (List.length gps - 1)
                              let args = [ for i in 0..n-2 -> sprintf "x%d" i ] 
                              sprintf "function(%s) { return {0}%s([].slice.call(arguments, %i)); }" 
                                  (args |> String.concat ", ")
                                  (args |> List.map (sprintf "(%s)") |> String.concat "")
                                  (n-1)
                      let getOverloadName specializedName memberElement =
                          let memberElementKey =
                              match memberElement with
                              | Property _ | Index _ | FunWrapper -> memberElement
                              | Method(gps, gcs, ps, r) ->
                                  let requiredParameters =
                                      ps |> List.choose (function
  