module Chiasma.Data.Cmd( CmdName(..), CmdArgs(..), Cmd(..), Cmds(..), cmd, ) where newtype CmdName = CmdName Text deriving stock (CmdName -> CmdName -> Bool (CmdName -> CmdName -> Bool) -> (CmdName -> CmdName -> Bool) -> Eq CmdName forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: CmdName -> CmdName -> Bool $c/= :: CmdName -> CmdName -> Bool == :: CmdName -> CmdName -> Bool $c== :: CmdName -> CmdName -> Bool Eq, Int -> CmdName -> ShowS [CmdName] -> ShowS CmdName -> String (Int -> CmdName -> ShowS) -> (CmdName -> String) -> ([CmdName] -> ShowS) -> Show CmdName forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [CmdName] -> ShowS $cshowList :: [CmdName] -> ShowS show :: CmdName -> String $cshow :: CmdName -> String showsPrec :: Int -> CmdName -> ShowS $cshowsPrec :: Int -> CmdName -> ShowS Show) newtype CmdArgs = CmdArgs [Text] deriving stock (CmdArgs -> CmdArgs -> Bool (CmdArgs -> CmdArgs -> Bool) -> (CmdArgs -> CmdArgs -> Bool) -> Eq CmdArgs forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: CmdArgs -> CmdArgs -> Bool $c/= :: CmdArgs -> CmdArgs -> Bool == :: CmdArgs -> CmdArgs -> Bool $c== :: CmdArgs -> CmdArgs -> Bool Eq, Int -> CmdArgs -> ShowS [CmdArgs] -> ShowS CmdArgs -> String (Int -> CmdArgs -> ShowS) -> (CmdArgs -> String) -> ([CmdArgs] -> ShowS) -> Show CmdArgs forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [CmdArgs] -> ShowS $cshowList :: [CmdArgs] -> ShowS show :: CmdArgs -> String $cshow :: CmdArgs -> String showsPrec :: Int -> CmdArgs -> ShowS $cshowsPrec :: Int -> CmdArgs -> ShowS Show) data Cmd = Cmd CmdName CmdArgs deriving stock (Cmd -> Cmd -> Bool (Cmd -> Cmd -> Bool) -> (Cmd -> Cmd -> Bool) -> Eq Cmd forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: Cmd -> Cmd -> Bool $c/= :: Cmd -> Cmd -> Bool == :: Cmd -> Cmd -> Bool $c== :: Cmd -> Cmd -> Bool Eq, Int -> Cmd -> ShowS [Cmd] -> ShowS Cmd -> String (Int -> Cmd -> ShowS) -> (Cmd -> String) -> ([Cmd] -> ShowS) -> Show Cmd forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [Cmd] -> ShowS $cshowList :: [Cmd] -> ShowS show :: Cmd -> String $cshow :: Cmd -> String showsPrec :: Int -> Cmd -> ShowS $cshowsPrec :: Int -> Cmd -> ShowS Show) newtype Cmds = Cmds [Cmd] deriving stock (Cmds -> Cmds -> Bool (Cmds -> Cmds -> Bool) -> (Cmds -> Cmds -> Bool) -> Eq Cmds forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: Cmds -> Cmds -> Bool $c/= :: Cmds -> Cmds -> Bool == :: Cmds -> Cmds -> Bool $c== :: Cmds -> Cmds -> Bool Eq, Int -> Cmds -> ShowS [Cmds] -> ShowS Cmds -> String (Int -> Cmds -> ShowS) -> (Cmds -> String) -> ([Cmds] -> ShowS) -> Show Cmds forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [Cmds] -> ShowS $cshowList :: [Cmds] -> ShowS show :: Cmds -> String $cshow :: Cmds -> String showsPrec :: Int -> Cmds -> ShowS $cshowsPrec :: Int -> Cmds -> ShowS Show) cmd :: Text -> [Text] -> Cmd cmd :: Text -> [Text] -> Cmd cmd Text name [Text] args = CmdName -> CmdArgs -> Cmd Cmd (Text -> CmdName CmdName Text name) ([Text] -> CmdArgs CmdArgs [Text] args)