anchor.diff:                  | AutoUpdate _   -> "set whether or not airport data will be automatically updated"
                   | MaxRoutes _    -> "set the maximum number of routes to display"
   
  +//** These serve as a hack to get the type system to automatically infer the type of args when called
  +let getArgValue (arg : Quotations.Expr<('Field -> _)>) (args : ParseResults<_>) =
  +    args.GetResult arg
  +
  +let tryGetArgValue (arg : Quotations.Expr<('Field -> _)>) (args : ParseResults<_>) =
  +    args.TryGetResult arg
  +//**
  +
   let (|Time|_|) v =
       match TimeSpan.TryParse v with
       | (true, x) -> Some x
  
positive.code:         |> Seq.toArray
  
      let routeInfo = {
          Mach     = List.pick (function | Mach m -> Some m | _ -> None) args
          Filters  = filters
          SortType =
              args
              |> List.tryPick (function | Sort s -> Some s | _ -> None)
              |> Option.bind Route.getSortType
              |> Option.defaultArg Time
          SortOrder =
              args
              |> List.tryPick (function | SortOrder o -> Some o | _ -> None)
              |> Option.bind Route.getSortOrder
              |> Option.defaultArg Ascending
      }
  
      let result =
          let departure = List.tryPick (function | Departure d -> Some d | _ -> None) args
          let maxRoutes = List.tryPick (function | MaxRoutes m -> Some m | _ -> None) args
  
          match departure with
          | Some dep -> Route.filterAndDisplay maxRoutes routeInfo dep airports
  
negative.code:         AppDomain.CurrentDomain.BaseDirectory
          "airports.csv"
  
  let processAirports (args : ParseResults<_>) =
      let filters =
          args.GetAllResults()
          |> List.choose (function
              | Min          (Time t)   -> Filter.MinTime t            |> Some
              | Max          (Time t)   -> Filter.MaxTime t            |> Some
  