anchor.diff:      [<Literal>]
       let CloseCharacter = '"'
   
  +(* This is for [| |] and {| |} , since the implementation deals with chars only. 
  +   We have to test if there is a { or [ before the cursor position and insert the closing '|'. *)
   module private VerticalBar =
   
       [<Literal>]
  
positive.code:     member __.IsSupportedOpeningBrace openingBrace =
          match openingBrace with
          | Parenthesis.OpenCharacter | CurlyBrackets.OpenCharacter | SquareBrackets.OpenCharacter
          | DoubleQuote.OpenCharacter | VerticalBar.OpenCharacter -> true
          | _ -> false
  
      member this.CheckCodeContext(_document : Document, _position : int, _openingBrace, _cancellationToken) =
          this.AssertIsForeground()
      // TODO: We need to know if we are inside a F# comment. If we are, then don't do automatic completion.
          let sourceCodeTask = _document.GetTextAsync(_cancellationToken)
          sourceCodeTask.Wait(_cancellationToken)
          let sourceCode = sourceCodeTask.Result
          let colorizationData = Tokenizer.getColorizationData(_document.Id, sourceCode, TextSpan(_position-1, 1), Some (_document.FilePath), [], _cancellationToken)
          colorizationData.Exists (fun classifiedSpan -> 
              classifiedSpan.TextSpan.IntersectsWith _position &&
              (
                  match classifiedSpan.ClassificationType with
                  | ClassificationTypeNames.Comment
                  | ClassificationTypeNames.StringLiteral -> false
                  | _ -> true // anything else is a valid classification type
              ))                
  
      member this.CreateEditorSession(_document: Document, _openingPosition: int, openingBrace: char, _cancellationToken: CancellationToken) =
          match openingBrace with
  
negative.code:         | CurlyBrackets.OpenCharacter -> ParenthesisCompletionSession() :> IEditorBraceCompletionSession
          | SquareBrackets.OpenCharacter -> ParenthesisCompletionSession() :> IEditorBraceCompletionSession
          | VerticalBar.OpenCharacter -> VerticalBarCompletionSession() :> IEditorBraceCompletionSession
          | AngleBrackets.OpenCharacter -> AngleBracketCompletionSession() :> IEditorBraceCompletionSession
          | DoubleQuote.OpenCharacter -> DoubleQuoteCompletionSession() :> IEditorBraceCompletionSession
          | Asterisk.OpenCharacter -> DoubleQuoteCompletionSession() :> IEditorBraceCompletionSession
          | _ -> null
  
      interface IEditorBraceCompletionSessionFactory with
  