symantic-cli-0.0.0.20180410: Library for Command Line Interface (CLI)

Safe HaskellSafe
LanguageHaskell2010

Language.Symantic.CLI.Sym

Contents

Synopsis

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 #

Minimal complete definition

(<$$>)

Methods

(<$$>) :: (a -> b) -> repr e t a -> repr e t b infixl 4 Source #

(<$$) :: a -> repr e t b -> repr e t a Source #

($$>) :: repr e t b -> a -> repr e t a Source #

Instances
Sym_Fun Parser Source # 
Instance details

Defined in Language.Symantic.CLI.Read

Methods

(<$$>) :: (a -> b) -> Parser e t a -> Parser e t b Source #

(<$$) :: a -> Parser e t b -> Parser e t a Source #

($$>) :: Parser e t b -> a -> Parser e t a Source #

Doc d => Sym_Fun (Plain d) Source # 
Instance details

Defined in Language.Symantic.CLI.Plain

Methods

(<$$>) :: (a -> b) -> Plain d e t a -> Plain d e t b Source #

(<$$) :: a -> Plain d e t b -> Plain d e t a Source #

($$>) :: Plain d e t b -> a -> Plain d e t a Source #

Doc d => Sym_Fun (Help d) Source # 
Instance details

Defined in Language.Symantic.CLI.Help

Methods

(<$$>) :: (a -> b) -> Help d e t a -> Help d e t b Source #

(<$$) :: a -> Help d e t b -> Help d e t a Source #

($$>) :: Help d e t b -> a -> Help d e t a Source #

Class Sym_App

class Sym_Fun repr => Sym_App repr where Source #

Minimal complete definition

value, (<**>), end

Methods

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 #

(<**) :: repr e t a -> repr e u b -> repr e u a Source #

end :: repr e t () Source #

Instances
Sym_App Parser Source # 
Instance details

Defined in Language.Symantic.CLI.Read

Methods

value :: a -> Parser e ArgValue a Source #

(<**>) :: Parser e t (a -> b) -> Parser e u a -> Parser e u b Source #

(**>) :: Parser e t a -> Parser e u b -> Parser e u b Source #

(<**) :: Parser e t a -> Parser e u b -> Parser e u a Source #

end :: Parser e t () Source #

Doc d => Sym_App (Plain d) Source # 
Instance details

Defined in Language.Symantic.CLI.Plain

Methods

value :: a -> Plain d e ArgValue a Source #

(<**>) :: Plain d e t (a -> b) -> Plain d e u a -> Plain d e u b Source #

(**>) :: Plain d e t a -> Plain d e u b -> Plain d e u b Source #

(<**) :: Plain d e t a -> Plain d e u b -> Plain d e u a Source #

end :: Plain d e t () Source #

Doc d => Sym_App (Help d) Source # 
Instance details

Defined in Language.Symantic.CLI.Help

Methods

value :: a -> Help d e ArgValue a Source #

(<**>) :: Help d e t (a -> b) -> Help d e u a -> Help d e u b Source #

(**>) :: Help d e t a -> Help d e u b -> Help d e u b Source #

(<**) :: Help d e t a -> Help d e u b -> Help d e u a Source #

end :: Help d e t () Source #

Class Sym_Alt

class Sym_Fun repr => Sym_Alt repr where Source #

Minimal complete definition

(<||>), choice, option, try

Methods

(<||>) :: 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 #

option :: a -> repr e t a -> repr e t a Source #

try :: repr e t a -> repr e t a Source #

Instances
Sym_Alt Parser Source # 
Instance details

Defined in Language.Symantic.CLI.Read

Methods

(<||>) :: Parser e t a -> Parser e t a -> Parser e t a Source #

choice :: [Parser e t a] -> Parser e t a Source #

optional :: Parser e t a -> Parser e t (Maybe a) Source #

option :: a -> Parser e t a -> Parser e t a Source #

try :: Parser e t a -> Parser e t a Source #

Doc d => Sym_Alt (Plain d) Source # 
Instance details

Defined in Language.Symantic.CLI.Plain

Methods

(<||>) :: Plain d e t a -> Plain d e t a -> Plain d e t a Source #

choice :: [Plain d e t a] -> Plain d e t a Source #

optional :: Plain d e t a -> Plain d e t (Maybe a) Source #

option :: a -> Plain d e t a -> Plain d e t a Source #

try :: Plain d e t a -> Plain d e t a Source #

Doc d => Sym_Alt (Help d) Source # 
Instance details

Defined in Language.Symantic.CLI.Help

Methods

(<||>) :: Help d e t a -> Help d e t a -> Help d e t a Source #

choice :: [Help d e t a] -> Help d e t a Source #

optional :: Help d e t a -> Help d e t (Maybe a) Source #

option :: a -> Help d e t a -> Help d e t a Source #

try :: Help d e t a -> Help d e t a Source #

Class Sym_AltApp

class (Sym_Alt repr, Sym_App repr) => Sym_AltApp repr where Source #

Minimal complete definition

many, some

Methods

many :: repr e t a -> repr e t [a] Source #

some :: repr e t a -> repr e t [a] Source #

intermany :: [repr e t a] -> repr e t [a] Source #

Instances
Sym_AltApp Parser Source # 
Instance details

Defined in Language.Symantic.CLI.Read

Methods

many :: Parser e t a -> Parser e t [a] Source #

some :: Parser e t a -> Parser e t [a] Source #

intermany :: [Parser e t a] -> Parser e t [a] Source #

Doc d => Sym_AltApp (Plain d) Source # 
Instance details

Defined in Language.Symantic.CLI.Plain

Methods

many :: Plain d e t a -> Plain d e t [a] Source #

some :: Plain d e t a -> Plain d e t [a] Source #

intermany :: [Plain d e t a] -> Plain d e t [a] Source #

Doc d => Sym_AltApp (Help d) Source # 
Instance details

Defined in Language.Symantic.CLI.Help

Methods

many :: Help d e t a -> Help d e t [a] Source #

some :: Help d e t a -> Help d e t [a] Source #

intermany :: [Help d e t a] -> Help d e t [a] Source #

Class Sym_Interleaved

class Sym_Interleaved repr where Source #

Minimal complete definition

interleaved, (<<$>>), (<<$?>>), (<<$*>>), (<<|>>), (<<|?>>), (<<|*>>)

Methods

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 # 
Instance details

Defined in Language.Symantic.CLI.Read

Methods

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 # 
Instance details

Defined in Language.Symantic.CLI.Plain

Methods

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 # 
Instance details

Defined in Language.Symantic.CLI.Help

Methods

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 # 
Instance details

Defined in Language.Symantic.CLI.Read

type Perm (Parser e s) = PermParser Args (Parser e s)
type Perm (Plain d e t) Source # 
Instance details

Defined in Language.Symantic.CLI.Plain

type Perm (Plain d e t) = Compose [] (Plain d e t)
type Perm (Help d e t) Source # 
Instance details

Defined in Language.Symantic.CLI.Help

type Perm (Help d e t) = PermHelp d e t

Class Sym_Rule

class Sym_Rule repr where Source #

Minimal complete definition

rule

Methods

rule :: String -> repr e t a -> repr e t a Source #

Instances
Sym_Rule Parser Source # 
Instance details

Defined in Language.Symantic.CLI.Read

Methods

rule :: String -> Parser e t a -> Parser e t a Source #

Doc d => Sym_Rule (Plain d) Source # 
Instance details

Defined in Language.Symantic.CLI.Plain

Methods

rule :: String -> Plain d e t a -> Plain d e t a Source #

Doc d => Sym_Rule (Help d) Source # 
Instance details

Defined in Language.Symantic.CLI.Help

Methods

rule :: String -> Help d e t a -> Help d e t a Source #

Class Sym_Command

class Sym_Command repr where Source #

Minimal complete definition

main, command

Methods

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 # 
Instance details

Defined in Language.Symantic.CLI.Read

Methods

main :: Name -> Parser e t a -> Parser e ArgCommand a Source #

command :: Name -> Parser e t a -> Parser e ArgCommand a Source #

Doc d => Sym_Command (Plain d) Source # 
Instance details

Defined in Language.Symantic.CLI.Plain

Methods

main :: Name -> Plain d e t a -> Plain d e ArgCommand a Source #

command :: Name -> Plain d e t a -> Plain d e ArgCommand a Source #

Doc d => Sym_Command (Help d) Source # 
Instance details

Defined in Language.Symantic.CLI.Help

Methods

main :: Name -> Help d e t a -> Help d e ArgCommand a Source #

command :: Name -> Help d e t a -> Help d e ArgCommand a Source #

Class Sym_Option

class Sym_AltApp repr => Sym_Option repr where Source #

Minimal complete definition

opt, var, tag

Methods

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 #

endOpt :: repr e ArgOption () Source #

string :: Name -> repr e ArgValue String Source #

Instances
Sym_Option Parser Source # 
Instance details

Defined in Language.Symantic.CLI.Read

Doc d => Sym_Option (Plain d) Source # 
Instance details

Defined in Language.Symantic.CLI.Plain

Doc d => Sym_Option (Help d) Source # 
Instance details

Defined in Language.Symantic.CLI.Help

Type OptionName

Class Sym_Help

class Sym_Help d repr where Source #

Minimal complete definition

help

Methods

help :: d -> repr e t a -> repr e t a Source #

Instances
Sym_Help d Parser Source # 
Instance details

Defined in Language.Symantic.CLI.Read

Methods

help :: d -> Parser e t a -> Parser e t a Source #

Doc d => Sym_Help d (Plain d) Source # 
Instance details

Defined in Language.Symantic.CLI.Plain

Methods

help :: d -> Plain d e t a -> Plain d e t a Source #

Doc d => Sym_Help d (Help d) Source # 
Instance details

Defined in Language.Symantic.CLI.Help

Methods

help :: d -> Help d e t a -> Help d e t a Source #

Class Sym_Exit

class Sym_Exit repr where Source #

Minimal complete definition

exit

Methods

exit :: e -> repr e t () Source #

Instances
Sym_Exit Parser Source # 
Instance details

Defined in Language.Symantic.CLI.Read

Methods

exit :: e -> Parser e t () Source #

Doc d => Sym_Exit (Plain d) Source # 
Instance details

Defined in Language.Symantic.CLI.Plain

Methods

exit :: e -> Plain d e t () Source #

Doc d => Sym_Exit (Help d) Source # 
Instance details

Defined in Language.Symantic.CLI.Help

Methods

exit :: e -> Help d e t () Source #