anchor.diff:    let structTuple self typeParser =
       let elems = attempt self <|> typeParser
       parse {
  +      let! begin' = getIndex
         do! skipChar '('
         let! xs = sepBy2 (trim elems) (skipChar ',')
         do! skipChar ')'
  -      let range = { Begin = minBeginRange xs; End = maxEndRange xs }
  +      let! end' = getIndex
  +      let range = { Begin = begin'; End = end' }
         return Tuple ({ Elements = xs; IsStruct = true }, atQuery range)
       }
   
  
positive.code:   let ptype =
      choice [
        attempt punit
        attempt (between (skipChar '(') (skipChar ')') (trim csharpSignature))
        attempt generic
        attempt lowerOnlyVariable
        attempt userInputType
  
negative.code: 
    let ptype =
      choice [
        attempt (inParen (trim fsharpSignature))
        attempt dotNetGeneric
        attempt userInputType
        attempt variable
  