-- | Read the value of a directory flag.
runFlagDir :: F.FlagSpec -> Experiment String
runFlagDir (F.FlagSpec { F.long = k }) = flagValue k >>= \flagv ->
  case flagv of F.FDir s -> return s
                _        -> error $ printf "BUG: Flag '%s' is not a directory." k
runFlagDir :: F.FlagSpec -> Experiment String
runFlagDir (F.FlagSpec { F.long = k }) = flagValue k >>= \flagv ->
  case flagv of F.FDir s -> return s
                _        -> error $ printf "BUG: Flag '%s' is not a directory." k
runFlagDir (F.FlagSpec { F.long = k }) = flagValue k >>= \flagv ->
  case flagv of F.FDir s -> return s
                _        -> error $ printf "BUG: Flag '%s' is not a directory." k