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