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

-- | Declare a dependency on an int command line flag. Int flags
-- are always satisfied.
runFlagString :: F.FlagSpec -> Experiment String
runFlagString (F.FlagSpec { F.long = k }) = flagValue k >>= \flagv ->
  case flagv of F.FString s -> return s
                _           -> error $ printf "BUG: Flag '%s' is not a string." k

-- | Declare a dependency on an int command line flag. Int flags
-- are always satisfied.
runFlagString (F.FlagSpec { F.long = k }) = flagValue k >>= \flagv ->
  case flagv of F.FString s -> return s
                _           -> error $ printf "BUG: Flag '%s' is not a string." k

-- | Declare a dependency on an int command line flag. Int flags
-- are always satisfied.