anchor.diff:                             Hour: int;
                              DayOfWeek: string}
   
  -    let moveResultsIndexName = "move-results"
       let processedMovesIndexName = "processed-moves"
   
       let private processedMove quotation =
  
positive.code:             |> LeafExpressionConverter.QuotationToLambdaExpression
              |> unbox<Expression<Func<ProcessedMove, obj>>>
  
      let private moveResult quotation =
          quotation
          |> LeafExpressionConverter.QuotationToLambdaExpression
          |> unbox<Expression<Func<MoveResult, obj>>>
  
      let private createProcessedMovesIndex (client:ElasticClient) =
          let moveRequestDestination =
              <@ System.Func<_, _>(fun n -> box n.MoveRequest.Destination) @>
  
  
negative.code:                         s.Name(processedMove dayOfWeek)
                           .Index(Nest.FieldIndexOption.NotAnalyzed)))))
  
      let indexMoves (client:ElasticClient) report =
          let create success =
              let taken = success.TimeTaken
              {MoveRequest = success; Year = taken.Year; Month = taken.Month; Day = taken.Day; Hour = taken.Hour; DayOfWeek = Enum.GetName(taken.DayOfWeek.GetType(), taken.DayOfWeek)}
  
          report.Successes
          |> List.map(fun success -> client.Index(create success, fun idx -> idx.Index(processedMovesIndexName)))
          |> ignore
  
  
  module ElasticReporter =
  
      open ProcessedMovesIndex
      open MoveResultsIndex
      open Rop
  
      let private reportToElastic' elasticUri report =
          let node = new Uri(elasticUri.ToString())
  