module Evoke.Hs
  ( app,
    bindStmt,
    doExpr,
    explicitList,
    explicitTuple,
    fieldOcc,
    funBind,
    grhs,
    grhss,
    importDecls,
    lam,
    lastStmt,
    lit,
    match,
    mg,
    opApp,
    par,
    qual,
    qualTyVar,
    qualVar,
    recField,
    recFields,
    recordCon,
    string,
    tupArg,
    tyVar,
    unqual,
    var,
    varPat,
  )
where

import qualified GHC.Hs as Ghc
import qualified GHC.Plugins as Ghc
import qualified GHC.Types.SourceText as Ghc

app ::
  Ghc.SrcSpan ->
  Ghc.LHsExpr Ghc.GhcPs ->
  Ghc.LHsExpr Ghc.GhcPs ->
  Ghc.LHsExpr Ghc.GhcPs
app :: SrcSpan -> LHsExpr GhcPs -> LHsExpr GhcPs -> LHsExpr GhcPs
app SrcSpan
s LHsExpr GhcPs
f = forall e ann. Located e -> LocatedAn ann e
Ghc.reLocA forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall l e. l -> e -> GenLocated l e
Ghc.L SrcSpan
s forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall p. XApp p -> LHsExpr p -> LHsExpr p -> HsExpr p
Ghc.HsApp forall a. EpAnn a
Ghc.noAnn LHsExpr GhcPs
f

bindStmt ::
  Ghc.SrcSpan ->
  Ghc.LPat Ghc.GhcPs ->
  Ghc.LHsExpr Ghc.GhcPs ->
  Ghc.LStmt Ghc.GhcPs (Ghc.LHsExpr Ghc.GhcPs)
bindStmt :: SrcSpan
-> LPat GhcPs -> LHsExpr GhcPs -> LStmt GhcPs (LHsExpr GhcPs)
bindStmt SrcSpan
s LPat GhcPs
p LHsExpr GhcPs
e =
  forall e ann. Located e -> LocatedAn ann e
Ghc.reLocA forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall l e. l -> e -> GenLocated l e
Ghc.L SrcSpan
s forall a b. (a -> b) -> a -> b
$ forall idL idR body.
XBindStmt idL idR body -> LPat idL -> body -> StmtLR idL idR body
Ghc.BindStmt forall a. EpAnn a
Ghc.noAnn LPat GhcPs
p LHsExpr GhcPs
e

doExpr :: Ghc.SrcSpan -> [Ghc.ExprLStmt Ghc.GhcPs] -> Ghc.LHsExpr Ghc.GhcPs
doExpr :: SrcSpan -> [LStmt GhcPs (LHsExpr GhcPs)] -> LHsExpr GhcPs
doExpr SrcSpan
s = forall e ann. Located e -> LocatedAn ann e
Ghc.reLocA forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall l e. l -> e -> GenLocated l e
Ghc.L SrcSpan
s forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall p.
XDo p
-> HsStmtContext (HsDoRn p) -> XRec p [ExprLStmt p] -> HsExpr p
Ghc.HsDo forall a. EpAnn a
Ghc.noAnn (forall p. Maybe ModuleName -> HsStmtContext p
Ghc.DoExpr forall a. Maybe a
Nothing) forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall e ann. Located e -> LocatedAn ann e
Ghc.reLocA forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall l e. l -> e -> GenLocated l e
Ghc.L SrcSpan
s

explicitList ::
  Ghc.SrcSpan -> [Ghc.LHsExpr Ghc.GhcPs] -> Ghc.LHsExpr Ghc.GhcPs
explicitList :: SrcSpan -> [LHsExpr GhcPs] -> LHsExpr GhcPs
explicitList SrcSpan
s = forall e ann. Located e -> LocatedAn ann e
Ghc.reLocA forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall l e. l -> e -> GenLocated l e
Ghc.L SrcSpan
s forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall p. XExplicitList p -> [LHsExpr p] -> HsExpr p
Ghc.ExplicitList forall a. EpAnn a
Ghc.noAnn

explicitTuple ::
  Ghc.SrcSpan -> [Ghc.HsTupArg Ghc.GhcPs] -> Ghc.LHsExpr Ghc.GhcPs
explicitTuple :: SrcSpan -> [HsTupArg GhcPs] -> LHsExpr GhcPs
explicitTuple SrcSpan
s [HsTupArg GhcPs]
xs = forall e ann. Located e -> LocatedAn ann e
Ghc.reLocA forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall l e. l -> e -> GenLocated l e
Ghc.L SrcSpan
s forall a b. (a -> b) -> a -> b
$ forall p. XExplicitTuple p -> [HsTupArg p] -> Boxity -> HsExpr p
Ghc.ExplicitTuple forall a. EpAnn a
Ghc.noAnn [HsTupArg GhcPs]
xs Boxity
Ghc.Boxed

fieldOcc :: Ghc.SrcSpan -> Ghc.LIdP Ghc.GhcPs -> Ghc.LFieldOcc Ghc.GhcPs
fieldOcc :: SrcSpan -> LIdP GhcPs -> LFieldOcc GhcPs
fieldOcc SrcSpan
s = forall l e. l -> e -> GenLocated l e
Ghc.L SrcSpan
s forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall pass. XCFieldOcc pass -> LocatedN RdrName -> FieldOcc pass
Ghc.FieldOcc NoExtField
Ghc.noExtField

funBind ::
  Ghc.SrcSpan ->
  Ghc.OccName ->
  Ghc.MatchGroup Ghc.GhcPs (Ghc.LHsExpr Ghc.GhcPs) ->
  Ghc.LHsBind Ghc.GhcPs
funBind :: SrcSpan
-> OccName -> MatchGroup GhcPs (LHsExpr GhcPs) -> LHsBind GhcPs
funBind SrcSpan
s OccName
f MatchGroup GhcPs (LHsExpr GhcPs)
g =
  forall e ann. Located e -> LocatedAn ann e
Ghc.reLocA forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall l e. l -> e -> GenLocated l e
Ghc.L SrcSpan
s forall a b. (a -> b) -> a -> b
$ forall idL idR.
XFunBind idL idR
-> LIdP idL
-> MatchGroup idR (LHsExpr idR)
-> [CoreTickish]
-> HsBindLR idL idR
Ghc.FunBind NoExtField
Ghc.noExtField (SrcSpan -> OccName -> LIdP GhcPs
unqual SrcSpan
s OccName
f) MatchGroup GhcPs (LHsExpr GhcPs)
g []

grhs ::
  Ghc.SrcSpan ->
  Ghc.LHsExpr Ghc.GhcPs ->
  Ghc.LGRHS Ghc.GhcPs (Ghc.LHsExpr Ghc.GhcPs)
grhs :: SrcSpan -> LHsExpr GhcPs -> LGRHS GhcPs (LHsExpr GhcPs)
grhs SrcSpan
s = forall l e. l -> e -> GenLocated l e
Ghc.L SrcSpan
s forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall p body.
XCGRHS p body -> [GuardLStmt p] -> body -> GRHS p body
Ghc.GRHS forall a. EpAnn a
Ghc.noAnn []

grhss ::
  Ghc.SrcSpan ->
  [Ghc.LGRHS Ghc.GhcPs (Ghc.LHsExpr Ghc.GhcPs)] ->
  Ghc.GRHSs Ghc.GhcPs (Ghc.LHsExpr Ghc.GhcPs)
grhss :: SrcSpan
-> [LGRHS GhcPs (LHsExpr GhcPs)] -> GRHSs GhcPs (LHsExpr GhcPs)
grhss SrcSpan
_ [LGRHS GhcPs (LHsExpr GhcPs)]
xs =
  forall p body.
XCGRHSs p body -> [LGRHS p body] -> HsLocalBinds p -> GRHSs p body
Ghc.GRHSs EpAnnComments
Ghc.emptyComments [LGRHS GhcPs (LHsExpr GhcPs)]
xs forall a b. (a -> b) -> a -> b
$ forall idL idR. XEmptyLocalBinds idL idR -> HsLocalBindsLR idL idR
Ghc.EmptyLocalBinds NoExtField
Ghc.noExtField

importDecl ::
  Ghc.SrcSpan ->
  Ghc.ModuleName ->
  Ghc.ModuleName ->
  Ghc.LImportDecl Ghc.GhcPs
importDecl :: SrcSpan -> ModuleName -> ModuleName -> LImportDecl GhcPs
importDecl SrcSpan
s ModuleName
m ModuleName
n =
  forall e ann. Located e -> LocatedAn ann e
Ghc.reLocA forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall l e. l -> e -> GenLocated l e
Ghc.L SrcSpan
s forall a b. (a -> b) -> a -> b
$
    forall pass.
XCImportDecl pass
-> SourceText
-> XRec pass ModuleName
-> Maybe StringLiteral
-> IsBootInterface
-> Bool
-> ImportDeclQualifiedStyle
-> Bool
-> Maybe (XRec pass ModuleName)
-> Maybe (Bool, XRec pass [LIE pass])
-> ImportDecl pass
Ghc.ImportDecl
      forall a. EpAnn a
Ghc.noAnn
      SourceText
Ghc.NoSourceText
      (forall e ann. Located e -> LocatedAn ann e
Ghc.reLocA forall a b. (a -> b) -> a -> b
$ forall l e. l -> e -> GenLocated l e
Ghc.L SrcSpan
s ModuleName
m)
      forall a. Maybe a
Nothing
      IsBootInterface
Ghc.NotBoot
      Bool
False
      ImportDeclQualifiedStyle
Ghc.QualifiedPre
      Bool
False
      (forall a. a -> Maybe a
Just forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall e ann. Located e -> LocatedAn ann e
Ghc.reLocA forall a b. (a -> b) -> a -> b
$ forall l e. l -> e -> GenLocated l e
Ghc.L SrcSpan
s ModuleName
n)
      forall a. Maybe a
Nothing

importDecls ::
  Ghc.SrcSpan ->
  [(Ghc.ModuleName, Ghc.ModuleName)] ->
  [Ghc.LImportDecl Ghc.GhcPs]
importDecls :: SrcSpan -> [(ModuleName, ModuleName)] -> [LImportDecl GhcPs]
importDecls = forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b c. (a -> b -> c) -> (a, b) -> c
uncurry forall b c a. (b -> c) -> (a -> b) -> a -> c
. SrcSpan -> ModuleName -> ModuleName -> LImportDecl GhcPs
importDecl

lam ::
  Ghc.SrcSpan ->
  Ghc.MatchGroup Ghc.GhcPs (Ghc.LHsExpr Ghc.GhcPs) ->
  Ghc.LHsExpr Ghc.GhcPs
lam :: SrcSpan -> MatchGroup GhcPs (LHsExpr GhcPs) -> LHsExpr GhcPs
lam SrcSpan
s = forall e ann. Located e -> LocatedAn ann e
Ghc.reLocA forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall l e. l -> e -> GenLocated l e
Ghc.L SrcSpan
s forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall p. XLam p -> MatchGroup p (LHsExpr p) -> HsExpr p
Ghc.HsLam NoExtField
Ghc.noExtField

lastStmt ::
  Ghc.SrcSpan ->
  Ghc.LHsExpr Ghc.GhcPs ->
  Ghc.LStmt Ghc.GhcPs (Ghc.LHsExpr Ghc.GhcPs)
lastStmt :: SrcSpan -> LHsExpr GhcPs -> LStmt GhcPs (LHsExpr GhcPs)
lastStmt SrcSpan
s LHsExpr GhcPs
e = forall e ann. Located e -> LocatedAn ann e
Ghc.reLocA forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall l e. l -> e -> GenLocated l e
Ghc.L SrcSpan
s forall a b. (a -> b) -> a -> b
$ forall idL idR body.
XLastStmt idL idR body
-> body -> Maybe Bool -> SyntaxExpr idR -> StmtLR idL idR body
Ghc.LastStmt NoExtField
Ghc.noExtField LHsExpr GhcPs
e forall a. Maybe a
Nothing SyntaxExpr GhcPs
noSyntaxExpr

lit :: Ghc.SrcSpan -> Ghc.HsLit Ghc.GhcPs -> Ghc.LHsExpr Ghc.GhcPs
lit :: SrcSpan -> HsLit GhcPs -> LHsExpr GhcPs
lit SrcSpan
s = forall e ann. Located e -> LocatedAn ann e
Ghc.reLocA forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall l e. l -> e -> GenLocated l e
Ghc.L SrcSpan
s forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall p. XLitE p -> HsLit p -> HsExpr p
Ghc.HsLit forall a. EpAnn a
Ghc.noAnn

noSyntaxExpr :: Ghc.SyntaxExpr Ghc.GhcPs
noSyntaxExpr :: SyntaxExpr GhcPs
noSyntaxExpr = forall (p :: Pass). IsPass p => SyntaxExpr (GhcPass p)
Ghc.noSyntaxExpr

match ::
  Ghc.SrcSpan ->
  Ghc.HsMatchContext (Ghc.NoGhcTc Ghc.GhcPs) ->
  [Ghc.LPat Ghc.GhcPs] ->
  Ghc.GRHSs Ghc.GhcPs (Ghc.LHsExpr Ghc.GhcPs) ->
  Ghc.LMatch Ghc.GhcPs (Ghc.LHsExpr Ghc.GhcPs)
match :: SrcSpan
-> HsMatchContext (NoGhcTc GhcPs)
-> [LPat GhcPs]
-> GRHSs GhcPs (LHsExpr GhcPs)
-> LMatch GhcPs (LHsExpr GhcPs)
match SrcSpan
s HsMatchContext (NoGhcTc GhcPs)
c [LPat GhcPs]
ps = forall e ann. Located e -> LocatedAn ann e
Ghc.reLocA forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall l e. l -> e -> GenLocated l e
Ghc.L SrcSpan
s forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall p body.
XCMatch p body
-> HsMatchContext (NoGhcTc p)
-> [LPat p]
-> GRHSs p body
-> Match p body
Ghc.Match forall a. EpAnn a
Ghc.noAnn HsMatchContext (NoGhcTc GhcPs)
c [LPat GhcPs]
ps

mg ::
  Ghc.Located [Ghc.LMatch Ghc.GhcPs (Ghc.LHsExpr Ghc.GhcPs)] ->
  Ghc.MatchGroup Ghc.GhcPs (Ghc.LHsExpr Ghc.GhcPs)
mg :: Located [LMatch GhcPs (LHsExpr GhcPs)]
-> MatchGroup GhcPs (LHsExpr GhcPs)
mg Located [LMatch GhcPs (LHsExpr GhcPs)]
ms = forall p body.
XMG p body -> XRec p [LMatch p body] -> Origin -> MatchGroup p body
Ghc.MG NoExtField
Ghc.noExtField (forall e ann. Located e -> LocatedAn ann e
Ghc.reLocA Located [LMatch GhcPs (LHsExpr GhcPs)]
ms) Origin
Ghc.Generated

opApp ::
  Ghc.SrcSpan ->
  Ghc.LHsExpr Ghc.GhcPs ->
  Ghc.LHsExpr Ghc.GhcPs ->
  Ghc.LHsExpr Ghc.GhcPs ->
  Ghc.LHsExpr Ghc.GhcPs
opApp :: SrcSpan
-> LHsExpr GhcPs -> LHsExpr GhcPs -> LHsExpr GhcPs -> LHsExpr GhcPs
opApp SrcSpan
s LHsExpr GhcPs
l LHsExpr GhcPs
o = forall e ann. Located e -> LocatedAn ann e
Ghc.reLocA forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall l e. l -> e -> GenLocated l e
Ghc.L SrcSpan
s forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall p.
XOpApp p -> LHsExpr p -> LHsExpr p -> LHsExpr p -> HsExpr p
Ghc.OpApp forall a. EpAnn a
Ghc.noAnn LHsExpr GhcPs
l LHsExpr GhcPs
o

par :: Ghc.SrcSpan -> Ghc.LHsExpr Ghc.GhcPs -> Ghc.LHsExpr Ghc.GhcPs
par :: SrcSpan -> LHsExpr GhcPs -> LHsExpr GhcPs
par SrcSpan
s = forall e ann. Located e -> LocatedAn ann e
Ghc.reLocA forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall l e. l -> e -> GenLocated l e
Ghc.L SrcSpan
s forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall p. XPar p -> LHsExpr p -> HsExpr p
Ghc.HsPar forall a. EpAnn a
Ghc.noAnn

qual :: Ghc.SrcSpan -> Ghc.ModuleName -> Ghc.OccName -> Ghc.LIdP Ghc.GhcPs
qual :: SrcSpan -> ModuleName -> OccName -> LIdP GhcPs
qual SrcSpan
s ModuleName
m = forall e ann. Located e -> LocatedAn ann e
Ghc.reLocA forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall l e. l -> e -> GenLocated l e
Ghc.L SrcSpan
s forall b c a. (b -> c) -> (a -> b) -> a -> c
. ModuleName -> OccName -> RdrName
Ghc.mkRdrQual ModuleName
m

qualTyVar ::
  Ghc.SrcSpan -> Ghc.ModuleName -> Ghc.OccName -> Ghc.LHsType Ghc.GhcPs
qualTyVar :: SrcSpan -> ModuleName -> OccName -> LHsType GhcPs
qualTyVar SrcSpan
s ModuleName
m = SrcSpan -> LIdP GhcPs -> LHsType GhcPs
tyVar SrcSpan
s forall b c a. (b -> c) -> (a -> b) -> a -> c
. SrcSpan -> ModuleName -> OccName -> LIdP GhcPs
qual SrcSpan
s ModuleName
m

qualVar ::
  Ghc.SrcSpan -> Ghc.ModuleName -> Ghc.OccName -> Ghc.LHsExpr Ghc.GhcPs
qualVar :: SrcSpan -> ModuleName -> OccName -> LHsExpr GhcPs
qualVar SrcSpan
s ModuleName
m = SrcSpan -> LIdP GhcPs -> LHsExpr GhcPs
var SrcSpan
s forall b c a. (b -> c) -> (a -> b) -> a -> c
. SrcSpan -> ModuleName -> OccName -> LIdP GhcPs
qual SrcSpan
s ModuleName
m

recFields ::
  [Ghc.LHsRecField Ghc.GhcPs (Ghc.LHsExpr Ghc.GhcPs)] ->
  Ghc.HsRecFields Ghc.GhcPs (Ghc.LHsExpr Ghc.GhcPs)
recFields :: [LHsRecField GhcPs (LHsExpr GhcPs)]
-> HsRecFields GhcPs (LHsExpr GhcPs)
recFields = forall a b c. (a -> b -> c) -> b -> a -> c
flip forall p arg.
[LHsRecField p arg] -> Maybe (Located Int) -> HsRecFields p arg
Ghc.HsRecFields forall a. Maybe a
Nothing

recField ::
  Ghc.SrcSpan ->
  Ghc.LFieldOcc Ghc.GhcPs ->
  Ghc.LHsExpr Ghc.GhcPs ->
  Ghc.LHsRecField Ghc.GhcPs (Ghc.LHsExpr Ghc.GhcPs)
recField :: SrcSpan
-> LFieldOcc GhcPs
-> LHsExpr GhcPs
-> LHsRecField GhcPs (LHsExpr GhcPs)
recField SrcSpan
s LFieldOcc GhcPs
f LHsExpr GhcPs
e = forall e ann. Located e -> LocatedAn ann e
Ghc.reLocA forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall l e. l -> e -> GenLocated l e
Ghc.L SrcSpan
s forall a b. (a -> b) -> a -> b
$ forall id arg.
XHsRecField id -> Located id -> arg -> Bool -> HsRecField' id arg
Ghc.HsRecField forall a. EpAnn a
Ghc.noAnn LFieldOcc GhcPs
f LHsExpr GhcPs
e Bool
False

recordCon ::
  Ghc.SrcSpan ->
  Ghc.LIdP Ghc.GhcPs ->
  Ghc.HsRecordBinds Ghc.GhcPs ->
  Ghc.LHsExpr Ghc.GhcPs
recordCon :: SrcSpan
-> LIdP GhcPs -> HsRecFields GhcPs (LHsExpr GhcPs) -> LHsExpr GhcPs
recordCon SrcSpan
s LIdP GhcPs
c = forall e ann. Located e -> LocatedAn ann e
Ghc.reLocA forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall l e. l -> e -> GenLocated l e
Ghc.L SrcSpan
s forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall p.
XRecordCon p -> XRec p (ConLikeP p) -> HsRecordBinds p -> HsExpr p
Ghc.RecordCon forall a. EpAnn a
Ghc.noAnn LIdP GhcPs
c

string :: String -> Ghc.HsLit Ghc.GhcPs
string :: String -> HsLit GhcPs
string = forall x. XHsString x -> FastString -> HsLit x
Ghc.HsString SourceText
Ghc.NoSourceText forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> FastString
Ghc.mkFastString

tupArg :: Ghc.LHsExpr Ghc.GhcPs -> Ghc.HsTupArg Ghc.GhcPs
tupArg :: LHsExpr GhcPs -> HsTupArg GhcPs
tupArg = forall id. XPresent id -> LHsExpr id -> HsTupArg id
Ghc.Present forall a. EpAnn a
Ghc.noAnn

tyVar :: Ghc.SrcSpan -> Ghc.LIdP Ghc.GhcPs -> Ghc.LHsType Ghc.GhcPs
tyVar :: SrcSpan -> LIdP GhcPs -> LHsType GhcPs
tyVar SrcSpan
s = forall e ann. Located e -> LocatedAn ann e
Ghc.reLocA forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall l e. l -> e -> GenLocated l e
Ghc.L SrcSpan
s forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall pass.
XTyVar pass -> PromotionFlag -> LIdP pass -> HsType pass
Ghc.HsTyVar forall a. EpAnn a
Ghc.noAnn PromotionFlag
Ghc.NotPromoted

unqual :: Ghc.SrcSpan -> Ghc.OccName -> Ghc.LIdP Ghc.GhcPs
unqual :: SrcSpan -> OccName -> LIdP GhcPs
unqual SrcSpan
s = forall e ann. Located e -> LocatedAn ann e
Ghc.reLocA forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall l e. l -> e -> GenLocated l e
Ghc.L SrcSpan
s forall b c a. (b -> c) -> (a -> b) -> a -> c
. OccName -> RdrName
Ghc.mkRdrUnqual

var :: Ghc.SrcSpan -> Ghc.LIdP Ghc.GhcPs -> Ghc.LHsExpr Ghc.GhcPs
var :: SrcSpan -> LIdP GhcPs -> LHsExpr GhcPs
var SrcSpan
s = forall e ann. Located e -> LocatedAn ann e
Ghc.reLocA forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall l e. l -> e -> GenLocated l e
Ghc.L SrcSpan
s forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall p. XVar p -> LIdP p -> HsExpr p
Ghc.HsVar NoExtField
Ghc.noExtField

varPat :: Ghc.SrcSpan -> Ghc.LIdP Ghc.GhcPs -> Ghc.LPat Ghc.GhcPs
varPat :: SrcSpan -> LIdP GhcPs -> LPat GhcPs
varPat SrcSpan
s = forall e ann. Located e -> LocatedAn ann e
Ghc.reLocA forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall l e. l -> e -> GenLocated l e
Ghc.L SrcSpan
s forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall p. XVarPat p -> LIdP p -> Pat p
Ghc.VarPat NoExtField
Ghc.noExtField