proto3-suite-0.9.4: A higher-level API to the proto3-wire library
Safe HaskellNone
LanguageHaskell2010

Proto3.Suite.DotProto.Generate.Syntax

Description

Utilities to manipulate Haskell AST

Synopsis

Documentation

class SyntaxDefault a where Source #

Methods

synDef :: a Source #

Instances

Instances details
SyntaxDefault AnnSig Source # 
Instance details

Defined in Proto3.Suite.DotProto.Generate.Syntax

Methods

synDef :: AnnSig Source #

SyntaxDefault AnnsIf Source # 
Instance details

Defined in Proto3.Suite.DotProto.Generate.Syntax

Methods

synDef :: AnnsIf Source #

SyntaxDefault EpAnnHsCase Source # 
Instance details

Defined in Proto3.Suite.DotProto.Generate.Syntax

SyntaxDefault AnnParen Source # 
Instance details

Defined in Proto3.Suite.DotProto.Generate.Syntax

SyntaxDefault AnnPragma Source # 
Instance details

Defined in Proto3.Suite.DotProto.Generate.Syntax

SyntaxDefault IsUnicodeSyntax Source # 
Instance details

Defined in Proto3.Suite.DotProto.Generate.Syntax

SyntaxDefault SourceText Source # 
Instance details

Defined in Proto3.Suite.DotProto.Generate.Syntax

SyntaxDefault SrcSpan Source # 
Instance details

Defined in Proto3.Suite.DotProto.Generate.Syntax

SyntaxDefault NoExtField Source # 
Instance details

Defined in Proto3.Suite.DotProto.Generate.Syntax

SyntaxDefault () Source # 
Instance details

Defined in Proto3.Suite.DotProto.Generate.Syntax

Methods

synDef :: () Source #

SyntaxDefault (AnnSortKey tag) Source # 
Instance details

Defined in Proto3.Suite.DotProto.Generate.Syntax

Methods

synDef :: AnnSortKey tag Source #

NoAnn a => SyntaxDefault (EpAnn a) Source # 
Instance details

Defined in Proto3.Suite.DotProto.Generate.Syntax

Methods

synDef :: EpAnn a Source #

SyntaxDefault (EpToken token) Source # 
Instance details

Defined in Proto3.Suite.DotProto.Generate.Syntax

Methods

synDef :: EpToken token Source #

SyntaxDefault (HsBndrVis GhcPs) Source # 
Instance details

Defined in Proto3.Suite.DotProto.Generate.Syntax

SyntaxDefault (Maybe a) Source # 
Instance details

Defined in Proto3.Suite.DotProto.Generate.Syntax

Methods

synDef :: Maybe a Source #

SyntaxDefault [a] Source # 
Instance details

Defined in Proto3.Suite.DotProto.Generate.Syntax

Methods

synDef :: [a] Source #

SyntaxDefault (EpUniToken token utoken) Source # 
Instance details

Defined in Proto3.Suite.DotProto.Generate.Syntax

Methods

synDef :: EpUniToken token utoken Source #

SyntaxDefault a => SyntaxDefault (GenLocated TokenLocation a) Source # 
Instance details

Defined in Proto3.Suite.DotProto.Generate.Syntax

(SyntaxDefault a, SyntaxDefault b) => SyntaxDefault (a, b) Source # 
Instance details

Defined in Proto3.Suite.DotProto.Generate.Syntax

Methods

synDef :: (a, b) Source #

(SyntaxDefault a, SyntaxDefault b, SyntaxDefault c) => SyntaxDefault (a, b, c) Source # 
Instance details

Defined in Proto3.Suite.DotProto.Generate.Syntax

Methods

synDef :: (a, b, c) Source #

pattern PfxCon :: [arg] -> HsConDetails Void arg r Source #

Wrappers around ghc constructors

splitTyApp :: HsType -> (HsType, [HsType]) Source #

Whenever f is not itself a type application, splitTyApp (tyApply f as) = (f, as).

splitTyConApp :: HsType -> Maybe (HsName, [HsType]) Source #

splitTyConApp (tyApply (L _ (GHC.HsTyVar _ NotPromoted tc)) as) = Just (tc, as).

valDecl_ :: HsBind -> HsDecl Source #

HsBind includes a location, and this is one of the few places where we do not need a location. Rather than distinguishing in the type between bindings that have a location and those that do not, we simply ignore any binding location given here.

function_ :: HsName -> [([HsPat], HsExp)] -> HsBind Source #

A function with prefix syntax (as opposed to infix).

let_ :: [HsBind] -> HsExp -> HsExp Source #

Simple let expression for ordinary bindings.

lambda_ :: [HsPat] -> HsExp -> HsExp Source #

Lambda abstraction.

tuple_ :: [HsExp] -> HsExp Source #

A boxed tuple with all components present.

tupleT_ :: [HsType] -> HsType Source #

A promoted boxed tuple value with all components present.

Common Haskell expressions, constructors, and operators

intE :: Integral a => a -> HsExp Source #

intP :: Integral a => a -> HsPat Source #