anchor.diff:                  let typ, meth = getTypeAndMethod m
                   NewDelegate(Some This, typ, meth)
               else failwithf "TransformIdentifierName: unhandled IMethodSymbol conversion: %A" conv 
  +        | :? IDiscardSymbol ->
  +            Undefined
           | null -> 
               err x.Node "TransformIdentifierName: Symbol is null. This is possibly a Roslyn bug, putting it in parentheses can help."
           | _ -> 
  
positive.code:     member this.TransformDeclarationPattern (x: DeclarationPatternData) : (Id -> Expression) =
          let typ = env.SemanticModel.GetTypeInfo(x.Type.Node).Type |> sr.ReadType
          let designation = x.Designation |> this.TransformVariableDesignation
          fun v -> 
              let c = Id.New("$c", mut = false)
              Let (c, 
                  TypeCheck(Var v, typ), 
                  Conditional(
                      Var c, 
                      Sequential [ this.PatternSet(designation, Var v, null); Value (Bool true) ],
                      Value (Bool false)
                  )
              )
  
negative.code:         | :? IPropertySymbol as leftSymbol ->
              let typ, setter = getTypeAndMethod leftSymbol.SetMethod
              //if leftSymbol.IsIndexer // TODO property indexers
              match x.Kind with
              | AssignmentExpressionKind.SimpleAssignmentExpression ->
                  let right = x.Right |> trR.TransformExpression
  