-----------------------------------------------------------------------------
--
-- Module      :  Uniform.CmdLineArgs
--
-----------------------------------------------------------------------------
{-# LANGUAGE BangPatterns #-}
{-# LANGUAGE DoAndIfThenElse #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE PackageImports #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeSynonymInstances #-}
{-# LANGUAGE UndecidableInstances #-}
-- {-# OPTIONS_GHC  -fno-warn-warnings-deprecations #-}
-- runErrorT is  but used in monads-tf
{-# OPTIONS_GHC -w #-}

-- | a miniaml set of
module Uniform.CmdLineArgs (
    module Uniform.CmdLineArgs,
    (<>),
    (<*>),
    Parser (..),
    switch,
    long,
    short,
    help,
    metavar,
    argument,
    str,
    strOption,
    value,
    header,
    helper,
    fullDesc,
    progDesc,
    info,
    execParser,
) where

import Options.Applicative
import Options.Applicative.Builder()
import UniformBase

-- opts :: ParserInfo a
opts2 :: Parser a -> Text -> Text -> ParserInfo a
opts2 :: forall a. Parser a -> Text -> Text -> ParserInfo a
opts2 Parser a
cmdArgs Text
t1 Text
t2 = forall a. Parser a -> InfoMod a -> ParserInfo a
info (forall a. Parser (a -> a)
helper forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser a
cmdArgs)
              (forall a. InfoMod a
fullDesc forall a. Semigroup a => a -> a -> a
<> (forall a. String -> InfoMod a
progDesc forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> String
t2s forall a b. (a -> b) -> a -> b
$ Text
t1) forall a. Semigroup a => a -> a -> a
<> (forall a. String -> InfoMod a
header forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> String
t2s forall a b. (a -> b) -> a -> b
$ Text
t2))