Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Synopsis
- data ArgCommand
- data ArgOption
- data ArgValue
- data ArgRule t
- type Name = String
- class Sym_Fun repr where
- class Sym_Fun repr => Sym_App repr where
- class Sym_Fun repr => Sym_Alt repr where
- class (Sym_Alt repr, Sym_App repr) => Sym_AltApp repr where
- class Sym_Interleaved repr where
- type family Perm (repr :: * -> *) = (r :: * -> *) | r -> repr
- class Sym_Rule repr where
- class Sym_Command repr where
- class Sym_AltApp repr => Sym_Option repr where
- data OptionName
- class Sym_Help d repr where
- class Sym_Exit repr where
Arg
types
data ArgCommand Source #
Types to type the symantics: eg. to segregate options from commands.
Type Name
Class Sym_Fun
class Sym_Fun repr where Source #
(<$$>) :: (a -> b) -> repr e t a -> repr e t b infixl 4 Source #
Class Sym_App
class Sym_Fun repr => Sym_App repr where Source #
value :: a -> repr e ArgValue a Source #
(<**>) :: repr e t (a -> b) -> repr e u a -> repr e u b infixl 4 Source #
(**>) :: repr e t a -> repr e u b -> repr e u b Source #
Class Sym_Alt
class Sym_Fun repr => Sym_Alt repr where Source #
(<||>) :: repr e t a -> repr e t a -> repr e t a infixl 3 Source #
choice :: [repr e t a] -> repr e t a Source #
optional :: repr e t a -> repr e t (Maybe a) Source #
Class Sym_AltApp
class (Sym_Alt repr, Sym_App repr) => Sym_AltApp repr where Source #
Instances
Sym_AltApp Parser Source # | |
Doc d => Sym_AltApp (Plain d) Source # | |
Doc d => Sym_AltApp (Help d) Source # | |
Class Sym_Interleaved
class Sym_Interleaved repr where Source #
interleaved :: Perm (repr e t) a -> repr e t a Source #
(<<$>>) :: (a -> b) -> repr e t a -> Perm (repr e t) b infixl 2 Source #
(<<$?>>) :: (a -> b) -> (a, repr e t a) -> Perm (repr e t) b infixl 2 Source #
(<<$*>>) :: ([a] -> b) -> repr e t a -> Perm (repr e t) b infixl 2 Source #
(<<|>>) :: Perm (repr e t) (a -> b) -> repr e t a -> Perm (repr e t) b infixl 1 Source #
(<<|?>>) :: Perm (repr e t) (a -> b) -> (a, repr e t a) -> Perm (repr e t) b infixl 1 Source #
(<<|*>>) :: Perm (repr e t) ([a] -> b) -> repr e t a -> Perm (repr e t) b infixl 1 Source #
(<<$) :: a -> repr e t b -> Perm (repr e t) a Source #
(<<$?) :: a -> (b, repr e t b) -> Perm (repr e t) a Source #
Instances
Sym_Interleaved Parser Source # | |
Defined in Language.Symantic.CLI.Read interleaved :: Perm (Parser e t) a -> Parser e t a Source # (<<$>>) :: (a -> b) -> Parser e t a -> Perm (Parser e t) b Source # (<<$?>>) :: (a -> b) -> (a, Parser e t a) -> Perm (Parser e t) b Source # (<<$*>>) :: ([a] -> b) -> Parser e t a -> Perm (Parser e t) b Source # (<<|>>) :: Perm (Parser e t) (a -> b) -> Parser e t a -> Perm (Parser e t) b Source # (<<|?>>) :: Perm (Parser e t) (a -> b) -> (a, Parser e t a) -> Perm (Parser e t) b Source # (<<|*>>) :: Perm (Parser e t) ([a] -> b) -> Parser e t a -> Perm (Parser e t) b Source # (<<$) :: a -> Parser e t b -> Perm (Parser e t) a Source # (<<$?) :: a -> (b, Parser e t b) -> Perm (Parser e t) a Source # | |
Doc d => Sym_Interleaved (Plain d) Source # | |
Defined in Language.Symantic.CLI.Plain interleaved :: Perm (Plain d e t) a -> Plain d e t a Source # (<<$>>) :: (a -> b) -> Plain d e t a -> Perm (Plain d e t) b Source # (<<$?>>) :: (a -> b) -> (a, Plain d e t a) -> Perm (Plain d e t) b Source # (<<$*>>) :: ([a] -> b) -> Plain d e t a -> Perm (Plain d e t) b Source # (<<|>>) :: Perm (Plain d e t) (a -> b) -> Plain d e t a -> Perm (Plain d e t) b Source # (<<|?>>) :: Perm (Plain d e t) (a -> b) -> (a, Plain d e t a) -> Perm (Plain d e t) b Source # (<<|*>>) :: Perm (Plain d e t) ([a] -> b) -> Plain d e t a -> Perm (Plain d e t) b Source # (<<$) :: a -> Plain d e t b -> Perm (Plain d e t) a Source # (<<$?) :: a -> (b, Plain d e t b) -> Perm (Plain d e t) a Source # | |
Doc d => Sym_Interleaved (Help d) Source # | |
Defined in Language.Symantic.CLI.Help interleaved :: Perm (Help d e t) a -> Help d e t a Source # (<<$>>) :: (a -> b) -> Help d e t a -> Perm (Help d e t) b Source # (<<$?>>) :: (a -> b) -> (a, Help d e t a) -> Perm (Help d e t) b Source # (<<$*>>) :: ([a] -> b) -> Help d e t a -> Perm (Help d e t) b Source # (<<|>>) :: Perm (Help d e t) (a -> b) -> Help d e t a -> Perm (Help d e t) b Source # (<<|?>>) :: Perm (Help d e t) (a -> b) -> (a, Help d e t a) -> Perm (Help d e t) b Source # (<<|*>>) :: Perm (Help d e t) ([a] -> b) -> Help d e t a -> Perm (Help d e t) b Source # (<<$) :: a -> Help d e t b -> Perm (Help d e t) a Source # (<<$?) :: a -> (b, Help d e t b) -> Perm (Help d e t) a Source # |
Type family Perm
type family Perm (repr :: * -> *) = (r :: * -> *) | r -> repr Source #
Instances
type Perm (Parser e s) Source # | |
Defined in Language.Symantic.CLI.Read | |
type Perm (Plain d e t) Source # | |
Defined in Language.Symantic.CLI.Plain | |
type Perm (Help d e t) Source # | |
Defined in Language.Symantic.CLI.Help |
Class Sym_Rule
Class Sym_Command
class Sym_Command repr where Source #
main :: Name -> repr e t a -> repr e ArgCommand a Source #
command :: Name -> repr e t a -> repr e ArgCommand a Source #
Instances
Sym_Command Parser Source # | |
Defined in Language.Symantic.CLI.Read | |
Doc d => Sym_Command (Plain d) Source # | |
Defined in Language.Symantic.CLI.Plain | |
Doc d => Sym_Command (Help d) Source # | |
Defined in Language.Symantic.CLI.Help |
Class Sym_Option
class Sym_AltApp repr => Sym_Option repr where Source #
opt :: OptionName -> repr e s a -> repr e ArgOption a Source #
var :: Name -> (String -> Either e a) -> repr e ArgValue a Source #
tag :: String -> repr e ArgValue () Source #
long :: Name -> repr e ArgValue a -> repr e ArgOption a Source #
short :: Char -> repr e ArgValue a -> repr e ArgOption a Source #
flag :: OptionName -> (Bool, repr e ArgOption Bool) Source #
Instances
Type OptionName
data OptionName Source #
Instances
Eq OptionName Source # | |
Defined in Language.Symantic.CLI.Sym (==) :: OptionName -> OptionName -> Bool # (/=) :: OptionName -> OptionName -> Bool # | |
Ord OptionName Source # | |
Defined in Language.Symantic.CLI.Sym compare :: OptionName -> OptionName -> Ordering # (<) :: OptionName -> OptionName -> Bool # (<=) :: OptionName -> OptionName -> Bool # (>) :: OptionName -> OptionName -> Bool # (>=) :: OptionName -> OptionName -> Bool # max :: OptionName -> OptionName -> OptionName # min :: OptionName -> OptionName -> OptionName # | |
Show OptionName Source # | |
Defined in Language.Symantic.CLI.Sym showsPrec :: Int -> OptionName -> ShowS # show :: OptionName -> String # showList :: [OptionName] -> ShowS # |