 
 extension Reward: StringEnumArgument {
   public static var completion: ShellCompletion {
-    return .values([
+    .values([
       (Reward.collectJellyBeans.rawValue, "Each collected jelly bean is worth 1 point."),
       (Reward.collectOnions.rawValue, "Each collected onion is worth 1 point."),
       (Reward.collectJellyBeansAvoidOnions.rawValue, "Each collected jelly bean is worth 1 point and each collected onion -1 point."),

  if let argument = parsedArguments.get(resultsDirArg) {
    return URL(fileURLWithPath: argument.path.pathString)
  }
  return currentDir.appendingPathComponent("temp/results")
}()
guard let reward = parsedArguments.get(rewardArg) else { throw Error.invalidArgument }
guard let agent = parsedArguments.get(agentArg) else { throw Error.invalidArgument }


extension Observation: StringEnumArgument {
  public static var completion: ShellCompletion {
    .values([
      (Observation.vision.rawValue, "Visual field."),
      (Observation.scent.rawValue, "Scent vector at the current cell."),
      (Observation.visionAndScent.rawValue, "Visual field and scent vector at the current cell.")
