readOneFile :: Summary -> FilePath -> Task.Task (Maybe Module.Raw, Info)
readOneFile summary path =
  Task.mapError Error.Crawl $
  do  (time, source) <- readOneHelp path
      atRoot $ parse (_project summary) path time source
readOneFile :: Summary -> FilePath -> Task.Task (Maybe Module.Raw, Info)
readOneFile summary path =
  Task.mapError Error.Crawl $
  do  (time, source) <- readOneHelp path
      atRoot $ parse (_project summary) path time source
readOneFile summary path =
  Task.mapError Error.Crawl $
  do  (time, source) <- readOneHelp path
      atRoot $ parse (_project summary) path time source