anchor.diff:      let apiDomain = Env.varDefault "ARTIST_TALLY_API_DOMAIN" "localhost:3000"
       let isLive = (Env.varDefault "ARTIST_TALLY_ENV" "development") = "production"
   
  -    let buildMessage<'bodyType> method url authHeader (body: 'bodyType option) = 
  -        let uri = Uri url
  -        let message = new Http.HttpRequestMessage ()
  -        message.Method <- method
  -        message.RequestUri <- uri
  +    let buildMessage method url authHeader body = 
  +        let message = new Http.HttpRequestMessage (Method = method, RequestUri = Uri url)
   
  -        if body.IsSome then
  -            let serialized = JsonConvert.SerializeObject body.Value
  +        body
  +        |> Option.iter (fun body ->
  +            let serialized = JsonConvert.SerializeObject body
               let content = new Http.StringContent (serialized, Text.Encoding.UTF8, "application/json")
   
  -            message.Content <- content
  +            message.Content <- content)
   
  -        match authHeader with
  -        | Some header -> message.Headers.Authorization <- header
  -        | None -> ignore ()    
  +        authHeader
  +        |> Option.iter (fun header -> message.Headers.Authorization <- header)
   
           message
   
  
positive.code:                         tally = tally
                      }
              }
          let! response = buildMessage Http.HttpMethod.Post url (Some header) (Some message) |> makeRequest
          
          return response |> deserialize<SwuResponse>
      }
  
      [<EntryPoint>]
      let main argv =
          let mayFifth2017 = 1493614800000L
          let since = midnightYesterday () |> toUnixTimestamp
          let until = midnight () |> toUnixTimestamp
          let protocol = if isLive then "https" else "http"
          let url = sprintf "%s://%s/api/v1/orders/portraits/artist-tally?since=%i&until=%i" protocol apiDomain since until
          let summaryResponse = buildMessage Http.HttpMethod.Get url None None |> makeRequest |> Async.RunSynchronously |> deserialize
  
          if summaryResponse.summary.Count = 0 then 
              printfn "Tally response contained an empty summary. Was the `since` parameter (%i) incorrect?" since
          else 
              for kvp in summaryResponse.summary do printfn "%s: %i portraits" kvp.Key kvp.Value
  
          let emailResponse = summaryResponse.summary |> convertResponseToTally |> sendEmailMessage |> Async.RunSynchronously
  
          0 // return an integer exit code
  
negative.code:     let sendEmailMessage (tally: seq<EmailTally>) = async {
          let base64HeaderValue = sprintf "%s:" swuKey |> Text.Encoding.UTF8.GetBytes |> Convert.ToBase64String
          let header = Http.Headers.AuthenticationHeaderValue ("Basic", base64HeaderValue)
          let url = "https://api.sendwithus.com/api/v1/send"
          let date = DateTime.Now.ToString ("MMM dd, yyyy")
          let message = 
              {
  