anchor.diff:      then stripBrackets (body.[1..(String.length body)-2])
       else body
   
  +let formatArguments functionName arguments =
  +    List.map (fun s -> " " + s) arguments
  +    |> List.fold (+) functionName
  +
   let DefaultInScopeTree (tree : Ast.AstNode) (expressionRange : range) =
       let outermostBinding = TryFindBindingAroundRange expressionRange tree
       let outermostExpression = TryFindExpressionAroundRange expressionRange tree
  
positive.code:     else outermostExpression
  
  let CreateFunction functionName arguments body isMultiLine indentString (declarationRange : range) : Refactoring<unit,Identifier> =
      let transform (source,()) =
          let parametersChange =
              if List.isEmpty arguments then
                  FunctionDefinition.ParameterRange isMultiLine, ""
              else
                  FunctionDefinition.ParameterRange isMultiLine, " " + (String.concat " " arguments);
          let bodyChange =
              if isMultiLine then
                  FunctionDefinition.BodyRange isMultiLine, Indent (stripBrackets body) "    "
              else
                  FunctionDefinition.BodyRange isMultiLine, stripBrackets body
          let nameChange = FunctionDefinition.NameRange isMultiLine, functionName
          source, [parametersChange; bodyChange; nameChange], ()
      let declarationSource =
          RunRefactoring { analysis = (fun (_,_) -> Valid); transform = transform } () (FunctionDefinition.Template isMultiLine)
  
      let transform (source,()) =
          let nameRange =
  
negative.code:  
  let CallFunction functionName arguments callRange : Refactoring<unit,unit> =
      //TODO: don't always put brackets around function body
      let transform (source, ()) =
          let functionCall =
              formatArguments functionName arguments
          if List.isEmpty arguments then
              source, [callRange, functionCall], ()
          else
  