appendFlag :: Options -> String -> OptionValue -> Options
appendFlag opts str val = addFlag (appendValue jFlag val) (removeFlag (getFlagOrPrefix str) opts)
  where jFlag = case (getFlag (getFlagOrPrefix str) opts) of
                 (Just f) -> f
                 Nothing -> (Option "<<ERROR>>" (Flags [] []) "" (BoolOpt False) (OptionEffect (\x _ u -> (x,u))))
appendFlag :: Options -> String -> OptionValue -> Options
appendFlag opts str val = addFlag (appendValue jFlag val) (removeFlag (getFlagOrPrefix str) opts)
  where jFlag = case (getFlag (getFlagOrPrefix str) opts) of
                 (Just f) -> f
                 Nothing -> (Option "<<ERROR>>" (Flags [] []) "" (BoolOpt False) (OptionEffect (\x _ u -> (x,u))))
appendFlag opts str val = addFlag (appendValue jFlag val) (removeFlag (getFlagOrPrefix str) opts)
  where jFlag = case (getFlag (getFlagOrPrefix str) opts) of
                 (Just f) -> f
                 Nothing -> (Option "<<ERROR>>" (Flags [] []) "" (BoolOpt False) (OptionEffect (\x _ u -> (x,u))))