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