anchor.diff:          |> (substitute "\\s+" " ")
           |> (substitute "https{0,1}://t.co/\\S*" "")
           |> (fun y -> y.Trim(' ').TrimEnd(' '))
  -
  -    let mutable utiCache = 
  -        let config = System.Collections.Specialized.NameValueCollection()
  -        config.Add("pollingInterval", "00:01:00")
  -        config.Add("physicalMemoryLimitPercentage", "0")
  -        config.Add("cacheMemoryLimitMegabytes", "1024")
  -        new MemoryCache("utiCache",config)
  -
  -    let mutable loginCache = 
  -        let config = System.Collections.Specialized.NameValueCollection()
  -        config.Add("pollingInterval", "00:01:00")
  -        config.Add("physicalMemoryLimitPercentage", "0")
  -        config.Add("cacheMemoryLimitMegabytes", "256")
  -        new MemoryCache("loginCache",config)
  -
  -
               
       ///A function to get a user _and their tweets_ from the Twitter API using Tweetinvi. If no credentials are provided then the app credentials are used. Also uses a cache
       let getTweetsAndUserInfo (credentials: Models.ITwitterCredentials option) (username:string) = 
  
positive.code:         let config = System.Collections.Specialized.NameValueCollection()
          config.Add("pollingInterval", "00:01:00")
          config.Add("physicalMemoryLimitPercentage", "0")
          config.Add("cacheMemoryLimitMegabytes", "64")
          new MemoryCache("partialLoginInfoCache",config)
  
      let mutable loginInfoCache = 
          let config = System.Collections.Specialized.NameValueCollection()
          config.Add("pollingInterval", "00:01:00")
          config.Add("physicalMemoryLimitPercentage", "0")
          config.Add("cacheMemoryLimitMegabytes", "256")
          new MemoryCache("loginInfoCache",config)
          
      let mutable userInfoCache = 
          let config = System.Collections.Specialized.NameValueCollection()
          config.Add("pollingInterval", "00:01:00")
          config.Add("physicalMemoryLimitPercentage", "0")
          config.Add("cacheMemoryLimitMegabytes", "128")
          new MemoryCache("userInfoCache",config)
  
      let getFromCache (cache: byref<MemoryCache>) (getValue: string -> 'V option) (expirationDays: float option) (key:string)=
          let newValue = new Lazy<'V option>(fun () -> getValue key)
  
negative.code:                         | _ -> None
                         )
          
          getFromCache &userTweetInfoCache getCombinedInfo (Some 1.0) username
          
      ///Takes a tweet and makes it good for the "tweet this!" button. (adds usernames and a link)
      let tweetWithContext (username1:string) (username2:string) (text:string) : string*int =
  