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 $c== :: CmdName -> CmdName -> Bool == :: CmdName -> CmdName -> Bool $c/= :: CmdName -> CmdName -> Bool /= :: 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 $cshowsPrec :: Int -> CmdName -> ShowS showsPrec :: Int -> CmdName -> ShowS $cshow :: CmdName -> String show :: CmdName -> String $cshowList :: [CmdName] -> ShowS showList :: [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 $c== :: CmdArgs -> CmdArgs -> Bool == :: CmdArgs -> CmdArgs -> Bool $c/= :: CmdArgs -> CmdArgs -> Bool /= :: 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 $cshowsPrec :: Int -> CmdArgs -> ShowS showsPrec :: Int -> CmdArgs -> ShowS $cshow :: CmdArgs -> String show :: CmdArgs -> String $cshowList :: [CmdArgs] -> ShowS showList :: [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 $c== :: Cmd -> Cmd -> Bool == :: Cmd -> Cmd -> Bool $c/= :: Cmd -> Cmd -> Bool /= :: 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 $cshowsPrec :: Int -> Cmd -> ShowS showsPrec :: Int -> Cmd -> ShowS $cshow :: Cmd -> String show :: Cmd -> String $cshowList :: [Cmd] -> ShowS showList :: [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 $c== :: Cmds -> Cmds -> Bool == :: Cmds -> Cmds -> Bool $c/= :: Cmds -> Cmds -> Bool /= :: 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 $cshowsPrec :: Int -> Cmds -> ShowS showsPrec :: Int -> Cmds -> ShowS $cshow :: Cmds -> String show :: Cmds -> String $cshowList :: [Cmds] -> ShowS showList :: [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)