module Lambdabot.Plugin.Haskell.Pl.Names where
import Lambdabot.Plugin.Haskell.Pl.Common
data MExpr
= MApp !MExpr !MExpr
| Hole !Int
| Quote !Expr
deriving MExpr -> MExpr -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MExpr -> MExpr -> Bool
$c/= :: MExpr -> MExpr -> Bool
== :: MExpr -> MExpr -> Bool
$c== :: MExpr -> MExpr -> Bool
Eq
idE, flipE, bindE, extE, returnE, consE, appendE, nilE, foldrE, foldlE, fstE,
sndE, dollarE, constE, uncurryE, curryE, compE, headE, tailE, sE, commaE,
fixE, foldl1E, notE, equalsE, nequalsE, plusE, multE, zeroE, oneE, lengthE,
sumE, productE, concatE, concatMapE, joinE, mapE, fmapE, fmapIE, subtractE,
minusE, liftME, apE, liftM2E, seqME, zipE, zipWithE,
crossE, firstE, secondE, andE, orE, allE, anyE :: MExpr
idE :: MExpr
idE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"id"
flipE :: MExpr
flipE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"flip"
constE :: MExpr
constE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"const"
compE :: MExpr
compE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Inf String
"."
sE :: MExpr
sE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"ap"
fixE :: MExpr
fixE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"fix"
bindE :: MExpr
bindE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Inf String
">>="
extE :: MExpr
extE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Inf String
"=<<"
returnE :: MExpr
returnE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"return"
consE :: MExpr
consE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Inf String
":"
nilE :: MExpr
nilE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"[]"
appendE :: MExpr
appendE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Inf String
"++"
foldrE :: MExpr
foldrE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"foldr"
foldlE :: MExpr
foldlE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"foldl"
fstE :: MExpr
fstE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"fst"
sndE :: MExpr
sndE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"snd"
dollarE :: MExpr
dollarE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Inf String
"$"
uncurryE :: MExpr
uncurryE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"uncurry"
curryE :: MExpr
curryE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"curry"
headE :: MExpr
headE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"head"
tailE :: MExpr
tailE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"tail"
commaE :: MExpr
commaE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Inf String
","
foldl1E :: MExpr
foldl1E = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"foldl1"
equalsE :: MExpr
equalsE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Inf String
"=="
nequalsE :: MExpr
nequalsE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Inf String
"/="
notE :: MExpr
notE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"not"
plusE :: MExpr
plusE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Inf String
"+"
multE :: MExpr
multE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Inf String
"*"
zeroE :: MExpr
zeroE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"0"
oneE :: MExpr
oneE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"1"
lengthE :: MExpr
lengthE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"length"
sumE :: MExpr
sumE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"sum"
productE :: MExpr
productE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"product"
concatE :: MExpr
concatE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"concat"
concatMapE :: MExpr
concatMapE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"concatMap"
joinE :: MExpr
joinE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"join"
mapE :: MExpr
mapE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"map"
fmapE :: MExpr
fmapE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"fmap"
fmapIE :: MExpr
fmapIE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Inf String
"fmap"
subtractE :: MExpr
subtractE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"subtract"
minusE :: MExpr
minusE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Inf String
"-"
liftME :: MExpr
liftME = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"liftM"
liftM2E :: MExpr
liftM2E = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"liftM2"
apE :: MExpr
apE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Inf String
"ap"
seqME :: MExpr
seqME = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Inf String
">>"
zipE :: MExpr
zipE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"zip"
zipWithE :: MExpr
zipWithE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"zipWith"
crossE :: MExpr
crossE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Inf String
"***"
firstE :: MExpr
firstE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"first"
secondE :: MExpr
secondE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"second"
andE :: MExpr
andE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"and"
orE :: MExpr
orE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"or"
allE :: MExpr
allE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"all"
anyE :: MExpr
anyE = Expr -> MExpr
Quote forall a b. (a -> b) -> a -> b
$ Fixity -> String -> Expr
Var Fixity
Pref String
"any"
a, c :: MExpr -> MExpr -> MExpr
a :: MExpr -> MExpr -> MExpr
a = MExpr -> MExpr -> MExpr
MApp
c :: MExpr -> MExpr -> MExpr
c MExpr
e1 MExpr
e2 = MExpr
compE MExpr -> MExpr -> MExpr
`a` MExpr
e1 MExpr -> MExpr -> MExpr
`a` MExpr
e2
infixl 9 `a`
infixr 8 `c`