anchor.diff:      |> printfn "%s"
       if File.Exists "../deluge.json" then
           getPages "../deluge.json" |> Array.iter (fun p -> printfn "%A" p)
  -    async {
  -        let! russianCities = getCityData "ru"
  -        russianCities |> Seq.head |> printfn "%s"
  -    } |> Async.RunSynchronously
  +    getRandomCity "ru"
  +    |> Seq.head
  +    |> printfn "%s"
   
       // Pass our web part to our server.
       startServer getACityWebPart
  
positive.code:         return readLines s
      }
  
  
  /// Random number generator - we just need one of these for our application.
  let private rng = System.Random ()
  
  let getCityData language = 
      async {
          return!
              sprintf "https://raw.githubusercontent.com/icrowley/fake/master/data/%s/cities" language 
              |> getLines
      }
  
  /// Start the server, passing it a web part, basically an HTTP handler function.
  let startServer getACityByLanguage =
  
negative.code:     let address = System.Net.IPAddress.Any
      startWebServer { defaultConfig with hideHeader=true; bindings = [HttpBinding.create HTTP address (Sockets.Port.Parse port)] } app
  
  /// The Suave web part - an HTTP handler.  Deals with input checks and the HTTP response codes.
  let getACityWebPart lang = 
      fun (ctx:HttpContext) ->
          async {
              match lang with 
              | "en" | "ru" as lang ->
                  let city = getRandomCity lang |> Seq.head
                  return! OK city ctx
              | _ -> return! BAD_REQUEST "Only 'en' or 'ru' language are supported." ctx
          }
  