module WithCli.Pure (
withCliPure,
WithCliPure(),
Result(..),
handleResult,
HasArguments(argumentsParser),
atomicArgumentsParser,
Argument(argumentType, parseArgument),
Modifier(..),
GHC.Generic,
Typeable,
Proxy(..),
) where
import Data.Proxy
import Data.Typeable
import GHC.Generics as GHC
import WithCli.Argument
import WithCli.HasArguments
import WithCli.Modifier
import WithCli.Parser
import WithCli.Pure.Internal
import WithCli.Result
withCliPure :: WithCliPure function a => String -> [Modifier] -> [String]
-> function
-> Result a
withCliPure progName modifiers args function = sanitize $ do
modifiers <- mkModifiers modifiers
run progName modifiers (return $ emptyParser ()) (\ () -> function) args