anchor.diff:          | FailedWith e -> m
   
   module Parser =
  -    let identToString (ident: LongIdentWithDots) = ident.Lid |> List.map (fun x -> x.idText) |> String.concat "."
  +    let identToString (ident: LongIdentWithDots) = ident.Lid |> List.map (fun x -> x.idText) |> String.concat "." 
  +
  +    let nothing = ()
   
       let checker = FSharpChecker.Create(keepAssemblyContents=true)
   
  
positive.code:                         printf " : %s" (typeToString synType)
                      | None -> ()
                      do printf " = "
                      do visitExpression body
                      printfn ""
                  // do printfn "%A" bindings
              | SynModuleDecl.Open(longIdentWithDots, range) ->
                  do printfn "open %s" (longIdentWithDots.Lid |> List.map (fun x -> x.idText) |> String.concat ".")
                  
              | SynModuleDecl.DoExpr(sequencePointInfo, expression, range) ->
                  do printfn "do %A" expression
                  do printfn "with sequence point info %A" sequencePointInfo
              | _ -> ()
  
  
negative.code: 
      let visitPattern pattern = printf "pattern"
      
      let rec visitExpression = function
      | SynExpr.IfThenElse (cond, trueBranch, falseBranchOpt, seqPointIfToThen, isFromErrorRecovery, ifToThenRange, ifToEndRange) ->
          do printf "if "
          do visitExpression cond |> ignore
          do printf " then "
          do visitExpression trueBranch |> ignore
          match falseBranchOpt with
          | Some expr -> 
              do printf " else "
              do visitExpression expr |> ignore
          | None -> do nothing
          Succeeded ()
      | SynExpr.LetOrUse (isRec, isUse, bindings, body, wholeRange) -> Succeeded ()
      | SynExpr.Lambda (isFromMethod, isLaterPart, simplePatterns, body, range) -> Succeeded ()
      | SynExpr.App (isAtomic, isInfix, funcExpr, argExpr, range) -> Succeeded () // function call (application)
      | SynExpr.ArrayOrList (isList, exprs, range) -> Succeeded ()
      | SynExpr.Tuple (exprs, commaRanges, range) -> Succeeded ()
      | SynExpr.Typed (expr, typeName, range) -> Succeeded ()
      | SynExpr.Record (baseOpt, copyInfoOpt, recordFields, range) -> Succeeded ()
      | SynExpr.Paren (expr, leftRange, rightRangeOpt, wholeRange) -> Succeeded () // (expr)
      | SynExpr.Match (seqPoint, expr, matchClauses, isExnMatch, range) -> Succeeded () // (match expr with pat1 -> expr1 | ... | patN -> exprN)
      | SynExpr.LongIdent (isOptional, ident, altNameRefCell, range) -> Succeeded ()
      | SynExpr.Ident (ident) -> Succeeded () // Same as LongIdent (false, ident, None, ident.Range)
      | SynExpr.FromParseError (expr, range) -> Succeeded () // For error recovery
      | _ -> FailedWith "Unsupported expression"
      
      
      let rec typeToString = function
      | SynType.LongIdent (ident) -> identToString ident  
  