module Main where import Control.Monad import Data.Function import Data.Semigroup import Options.Applicative import System.IO (IO) import Testnet.Commands main :: IO () main :: IO () main = IO (IO ()) -> IO () forall (m :: * -> *) a. Monad m => m (m a) -> m a join (IO (IO ()) -> IO ()) -> IO (IO ()) -> IO () forall a b. (a -> b) -> a -> b $ ParserPrefs -> ParserInfo (IO ()) -> IO (IO ()) forall a. ParserPrefs -> ParserInfo a -> IO a customExecParser (PrefsMod -> ParserPrefs prefs (PrefsMod -> ParserPrefs) -> PrefsMod -> ParserPrefs forall a b. (a -> b) -> a -> b $ PrefsMod showHelpOnEmpty PrefsMod -> PrefsMod -> PrefsMod forall a. Semigroup a => a -> a -> a <> PrefsMod showHelpOnError) (Parser (IO ()) -> InfoMod (IO ()) -> ParserInfo (IO ()) forall a. Parser a -> InfoMod a -> ParserInfo a info (Parser (IO ()) commands Parser (IO ()) -> Parser (IO () -> IO ()) -> Parser (IO ()) forall (f :: * -> *) a b. Applicative f => f a -> f (a -> b) -> f b <**> Parser (IO () -> IO ()) forall a. Parser (a -> a) helper) InfoMod (IO ()) forall m. Monoid m => m idm)