anchor.diff:  // Break a line of text into a tuple, where
   // the first part is the label, the second the SMS.
   // Each line is split by Tabs ('\t'),
  -// the first part parsed as either ham or spam, 
  +// the first part parsed as either ham or spam,
   // and the rest of the string is the SMS itself.
   let parseLine (line:string) =
       let split = line.Split('\t')
       (split.[0] |> parseDoc, split.[1])
   
  -// The original can be found in the 
  +// The original can be found in the
   // University of California Irvine
   // Machine Learning Repository:
   // http://archive.ics.uci.edu/ml/datasets/SMS+Spam+Collection
   // Path to the dataset:
  -let path = __SOURCE_DIRECTORY__ + @"../../Data/SMSSpamCollection"
  +let path = Path.Combine(__SOURCE_DIRECTORY__, "../../Data/SMSSpamCollection")
   
   // Read the file into an array of strings,
   // and parse each of them into a tuple
  
positive.code: let rareTokens n (tokenizer:Tokenizer) (docs:string []) =
      let tokenized = docs |> Array.map tokenizer
      let tokens = tokenized |> Set.unionMany
      tokens 
      |> Seq.sortBy (fun t -> countIn tokenized t)
      |> Seq.take n
      |> Set.ofSeq
  
negative.code: // making tokens out of phone and sms numbers
  
  let phoneWords = Regex(@"0[7-9]\d{9}")
  let phone (text:string) =
      match (phoneWords.IsMatch text) with
      | true -> "__PHONE__"
      | false -> text
  