ltext-0.1.2.2: Parameterized file evaluator

Safe HaskellNone
LanguageHaskell2010

LText.Expr

Contents

Synopsis

Documentation

data Expr Source #

Constructors

Abs String Expr 
App Expr Expr 
Var String 
Lit [Text] 
Concat Expr Expr 

Instances

Eq Expr Source # 

Methods

(==) :: Expr -> Expr -> Bool #

(/=) :: Expr -> Expr -> Bool #

Show Expr Source # 

Methods

showsPrec :: Int -> Expr -> ShowS #

show :: Expr -> String #

showList :: [Expr] -> ShowS #

Arbitrary Expr Source #

Only considers Abs, App and Var

Methods

arbitrary :: Gen Expr

shrink :: Expr -> [Expr]

type MonadPrettyPrint m = (MonadThrow m, MonadIO m) Source #

ppExpr :: MonadPrettyPrint m => Expr -> m String Source #

TODO: pretty print exceptions

data ParseError Source #

Instances

Eq ParseError Source # 
Show ParseError Source # 
Generic ParseError Source # 

Associated Types

type Rep ParseError :: * -> * #

Exception ParseError Source # 
type Rep ParseError Source # 

type MonadParse m = (MonadState ParseState m, MonadThrow m, MonadIO m) Source #

runParse :: Text -> IO Expr Source #

parseExpr :: MonadParse m => Text -> m Expr Source #

Lexing

data Lexeme Source #

Constructors

Lambda 
Arrow 
Ident String 
Bracketed 

Fields

Instances

lex :: Parser [Lexeme] Source #

Expects to be wrapped in parens

lambda :: Parser Lexeme Source #

arrow :: Parser Lexeme Source #

ident :: Parser Lexeme Source #