anchor.diff:  
   
   module HashDirectiveInfo =
  -    
  +    open System.IO
       type IncludeDirective =
           | ResolvedDirectory of string
   
       type LoadDirective =
           | ExistingFile of string
  -        | UnresolvableFile of string * (* previous includes *) string array
  +        | UnresolvableFile of string * previousIncludes : string array
   
       [<NoComparison>]
       type Directive =
  
positive.code:     /// returns the Some (complete file name of a resolved #load directive at position) or None
      let getHashLoadDirectiveResolvedPathAtPosition (pos: pos) (ast: ParsedInput) : string option =
          let l = pos.Line
          let directive = 
              getIncludeAndLoadDirectives ast
              |> Array.tryFind (function
                  | Load(ExistingFile _, range) 
                    // check the line is within the range 
                    // (doesn't work when there are multiple files given to a single #load directive)
                    when range.StartLine <= l && range.EndLine >= l 
                      -> true
                  | _ -> false
              )
          match directive with
          | Some ( Load( ExistingFile f, _) ) -> Some f
          | _ -> None
  
negative.code: 
                                  // I'm not sure if the order is correct, first checking relative to file containing the #load directive
                                  // then checking for undocumented resolution using previously parsed #I directives
                                  let fileRelativeToCurrentFile = baseDirectory </> f
                                  if fileExists fileRelativeToCurrentFile then
  
                                      // this is existing file relative to current file
  