{-# LANGUAGE DataKinds #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE MultiParamTypeClasses #-}
module Analysis.Adjectives.Adjectives where
import Analysis.Adjectives.Signature
import Framework.Grammar.CCG
import Framework.Grammar.Lexica.SynSem
import Framework.Grammar.Lexica.SynSem.Convenience as Convenience
import Framework.Lambda
instance Interpretation Adjectives SynSem where
combineR :: SynSem -> SynSem -> [SynSem]
combineR = SynSem -> SynSem -> [SynSem]
Convenience.combineR
combineL :: SynSem -> SynSem -> [SynSem]
combineL = SynSem -> SynSem -> [SynSem]
Convenience.combineL
lexica :: [Lexicon SynSem]
lexica = [Lexicon SynSem
lex]
where lex :: Lexicon SynSem
lex = \case
String
"soccer player" -> [ SynSem {
syn :: Cat
syn = String -> Cat
Base String
"n",
sem :: Typed
sem = Sig -> Term -> Typed
ty Sig
tauAdj (Term -> Term
purePP (Term -> Term -> Term
lam Term
x (Term -> Term -> Term
lam Term
i (String -> Term
sCon String
"soc_pla" Term -> Term -> Term
@@ Term
i Term -> Term -> Term
@@ Term
x))))
} ]
String
"linguist" -> [ SynSem {
syn :: Cat
syn = String -> Cat
Base String
"n",
sem :: Typed
sem = Sig -> Term -> Typed
ty Sig
tauAdj (Term -> Term
purePP (Term -> Term -> Term
lam Term
x (Term -> Term -> Term
lam Term
i (Term -> Term
ling Term
i Term -> Term -> Term
@@ Term
x))))
} ]
String
"philosopher" -> [ SynSem {
syn :: Cat
syn = String -> Cat
Base String
"n",
sem :: Typed
sem = Sig -> Term -> Typed
ty Sig
tauAdj (Term -> Term
purePP (Term -> Term -> Term
lam Term
x (Term -> Term -> Term
lam Term
i (Term -> Term
phil Term
i Term -> Term -> Term
@@ Term
x))))
} ]
String
"full" -> [ SynSem {
syn :: Cat
syn = String -> Cat
Base String
"ap" Cat -> Cat -> Cat
\\ String -> Cat
Base String
"deg",
sem :: Typed
sem = Sig -> Term -> Typed
ty Sig
tauAdj (Term -> Term
purePP (Term -> Term -> Term
lam Term
d (Term -> Term -> Term
lam Term
x (Term -> Term -> Term
lam Term
i (String -> Term
sCon String
"(≥)" Term -> Term -> Term
@@ (String -> Term
sCon String
"height" Term -> Term -> Term
@@ Term
i Term -> Term -> Term
@@ Term
x) Term -> Term -> Term
@@ Term
d)))))
}
, SynSem {
syn :: Cat
syn = String -> Cat
Base String
"ap",
sem :: Typed
sem = Sig -> Term -> Typed
ty Sig
tauAdj (Term -> Term -> Term
lam Term
s (Term -> Term
purePP (Term -> Term -> Term
lam Term
x (Term -> Term -> Term
lam Term
i (String -> Term
sCon String
"(≥)" Term -> Term -> Term
@@ (String -> Term
sCon String
"height" Term -> Term -> Term
@@ Term
i Term -> Term -> Term
@@ Term
x) Term -> Term -> Term
@@ (String -> Term
sCon String
"d_tall" Term -> Term -> Term
@@ Term
s)))) Term -> Term -> Term
@@ Term
s))
} ]
String
"tall" -> [ SynSem {
syn :: Cat
syn = String -> Cat
Base String
"ap" Cat -> Cat -> Cat
\\ String -> Cat
Base String
"deg",
sem :: Typed
sem = Sig -> Term -> Typed
ty Sig
tauAdj (Term -> Term
purePP (Term -> Term -> Term
lam Term
d (Term -> Term -> Term
lam Term
x (Term -> Term -> Term
lam Term
i (String -> Term
sCon String
"(≥)" Term -> Term -> Term
@@ (String -> Term
sCon String
"height" Term -> Term -> Term
@@ Term
i Term -> Term -> Term
@@ Term
x) Term -> Term -> Term
@@ Term
d)))))
}
, SynSem {
syn :: Cat
syn = String -> Cat
Base String
"ap",
sem :: Typed
sem = Sig -> Term -> Typed
ty Sig
tauAdj (Term -> Term -> Term
lam Term
s (Term -> Term
purePP (Term -> Term -> Term
lam Term
x (Term -> Term -> Term
lam Term
i (String -> Term
sCon String
"(≥)" Term -> Term -> Term
@@ (String -> Term
sCon String
"height" Term -> Term -> Term
@@ Term
i Term -> Term -> Term
@@ Term
x) Term -> Term -> Term
@@ (String -> Term
sCon String
"d_tall" Term -> Term -> Term
@@ Term
i)))) Term -> Term -> Term
@@ Term
s))
} ]
String
"jo" -> [ SynSem {
syn :: Cat
syn = String -> Cat
Base String
"np",
sem :: Typed
sem = Sig -> Term -> Typed
ty Sig
tauAdj (Term -> Term
purePP (String -> Term
sCon String
"j"))
}
, SynSem {
syn :: Cat
syn = String -> Cat
Base String
"s" Cat -> Cat -> Cat
// (String -> Cat
Base String
"s" Cat -> Cat -> Cat
\\ String -> Cat
Base String
"np"),
sem :: Typed
sem = Sig -> Term -> Typed
ty Sig
tauAdj (Term -> Term
purePP (Term -> Term -> Term
lam Term
x (Term
x Term -> Term -> Term
@@ String -> Term
sCon String
"j")))
} ]
String
"bo" -> [ SynSem {
syn :: Cat
syn = String -> Cat
Base String
"np",
sem :: Typed
sem = Sig -> Term -> Typed
ty Sig
tauAdj (Term -> Term
purePP (String -> Term
sCon String
"b"))
}
, SynSem {
syn :: Cat
syn = String -> Cat
Base String
"s" Cat -> Cat -> Cat
// (String -> Cat
Base String
"s" Cat -> Cat -> Cat
\\ String -> Cat
Base String
"np"),
sem :: Typed
sem = Sig -> Term -> Typed
ty Sig
tauAdj (Term -> Term
purePP (Term -> Term -> Term
lam Term
x (Term
x Term -> Term -> Term
@@ String -> Term
sCon String
"b")))
} ]
String
"every" -> [ SynSem {
syn :: Cat
syn = (String -> Cat
Base String
"s" Cat -> Cat -> Cat
\\ String -> Cat
Base String
"np") Cat -> Cat -> Cat
\\ (String -> Cat
Base String
"s" Cat -> Cat -> Cat
\\ String -> Cat
Base String
"np" Cat -> Cat -> Cat
// String -> Cat
Base String
"np") Cat -> Cat -> Cat
// String -> Cat
Base String
"n",
sem :: Typed
sem = Sig -> Term -> Typed
ty Sig
tauAdj (Term -> Term
purePP (Term -> Term -> Term
lam Term
c (Term -> Term -> Term
lam Term
k (Term -> Term -> Term
lam Term
y (Term -> Term -> Term
lam Term
i (String -> Term
sCon String
"∀" Term -> Term -> Term
@@ (Term -> Term -> Term
lam Term
x (String -> Term
sCon String
"(⇒)" Term -> Term -> Term
@@ (Term
c Term -> Term -> Term
@@ Term
x Term -> Term -> Term
@@ Term
i) Term -> Term -> Term
@@ (Term
k Term -> Term -> Term
@@ Term
x Term -> Term -> Term
@@ Term
y Term -> Term -> Term
@@ Term
i)))))))))
}
, SynSem {
syn :: Cat
syn = String -> Cat
Base String
"s" Cat -> Cat -> Cat
// (String -> Cat
Base String
"s" Cat -> Cat -> Cat
\\ String -> Cat
Base String
"np") Cat -> Cat -> Cat
// String -> Cat
Base String
"n",
sem :: Typed
sem = Sig -> Term -> Typed
ty Sig
tauAdj (Term -> Term
purePP (Term -> Term -> Term
lam Term
c (Term -> Term -> Term
lam Term
k (Term -> Term -> Term
lam Term
i (String -> Term
sCon String
"∀" Term -> Term -> Term
@@ (Term -> Term -> Term
lam Term
x (String -> Term
sCon String
"(⇒)" Term -> Term -> Term
@@ (Term
c Term -> Term -> Term
@@ Term
x Term -> Term -> Term
@@ Term
i) Term -> Term -> Term
@@ (Term
k Term -> Term -> Term
@@ Term
x Term -> Term -> Term
@@ Term
i))))))))
}
, SynSem {
syn :: Cat
syn = String -> Cat
Base String
"s" Cat -> Cat -> Cat
\\ (String -> Cat
Base String
"s" Cat -> Cat -> Cat
// String -> Cat
Base String
"np") Cat -> Cat -> Cat
// String -> Cat
Base String
"n",
sem :: Typed
sem = Sig -> Term -> Typed
ty Sig
tauAdj (Term -> Term
purePP (Term -> Term -> Term
lam Term
c (Term -> Term -> Term
lam Term
k (Term -> Term -> Term
lam Term
i (String -> Term
sCon String
"∀" Term -> Term -> Term
@@ (Term -> Term -> Term
lam Term
x (String -> Term
sCon String
"(⇒)" Term -> Term -> Term
@@ (Term
c Term -> Term -> Term
@@ Term
x Term -> Term -> Term
@@ Term
i) Term -> Term -> Term
@@ (Term
k Term -> Term -> Term
@@ Term
x Term -> Term -> Term
@@ Term
i))))))))
} ]
String
"a" -> [ SynSem {
syn :: Cat
syn = (String -> Cat
Base String
"s" Cat -> Cat -> Cat
\\ String -> Cat
Base String
"np") Cat -> Cat -> Cat
\\ (String -> Cat
Base String
"s" Cat -> Cat -> Cat
\\ String -> Cat
Base String
"np" Cat -> Cat -> Cat
// String -> Cat
Base String
"np") Cat -> Cat -> Cat
// String -> Cat
Base String
"n",
sem :: Typed
sem = Sig -> Term -> Typed
ty Sig
tauAdj (Term -> Term
purePP (Term -> Term -> Term
lam Term
c (Term -> Term -> Term
lam Term
k (Term -> Term -> Term
lam Term
y (Term -> Term -> Term
lam Term
i (String -> Term
sCon String
"∃" Term -> Term -> Term
@@ (Term -> Term -> Term
lam Term
x (String -> Term
sCon String
"(∧)" Term -> Term -> Term
@@ (Term
c Term -> Term -> Term
@@ Term
x Term -> Term -> Term
@@ Term
i) Term -> Term -> Term
@@ (Term
k Term -> Term -> Term
@@ Term
x Term -> Term -> Term
@@ Term
y Term -> Term -> Term
@@ Term
i)))))))))
}
, SynSem {
syn :: Cat
syn = String -> Cat
Base String
"s" Cat -> Cat -> Cat
// (String -> Cat
Base String
"s" Cat -> Cat -> Cat
\\ String -> Cat
Base String
"np") Cat -> Cat -> Cat
// String -> Cat
Base String
"n",
sem :: Typed
sem = Sig -> Term -> Typed
ty Sig
tauAdj (Term -> Term
purePP (Term -> Term -> Term
lam Term
c (Term -> Term -> Term
lam Term
k (Term -> Term -> Term
lam Term
i (String -> Term
sCon String
"∃" Term -> Term -> Term
@@ (Term -> Term -> Term
lam Term
x (String -> Term
sCon String
"(∧)" Term -> Term -> Term
@@ (Term
c Term -> Term -> Term
@@ Term
x Term -> Term -> Term
@@ Term
i) Term -> Term -> Term
@@ (Term
k Term -> Term -> Term
@@ Term
x Term -> Term -> Term
@@ Term
i))))))))
}
, SynSem {
syn :: Cat
syn = String -> Cat
Base String
"s" Cat -> Cat -> Cat
\\ (String -> Cat
Base String
"s" Cat -> Cat -> Cat
// String -> Cat
Base String
"np") Cat -> Cat -> Cat
// String -> Cat
Base String
"n",
sem :: Typed
sem = Sig -> Term -> Typed
ty Sig
tauAdj (Term -> Term
purePP (Term -> Term -> Term
lam Term
c (Term -> Term -> Term
lam Term
k (Term -> Term -> Term
lam Term
i (String -> Term
sCon String
"∃" Term -> Term -> Term
@@ (Term -> Term -> Term
lam Term
x (String -> Term
sCon String
"(∧)" Term -> Term -> Term
@@ (Term
c Term -> Term -> Term
@@ Term
x Term -> Term -> Term
@@ Term
i) Term -> Term -> Term
@@ (Term
k Term -> Term -> Term
@@ Term
x Term -> Term -> Term
@@ Term
i))))))))
}
, SynSem {
syn :: Cat
syn = String -> Cat
Base String
"np" Cat -> Cat -> Cat
// String -> Cat
Base String
"n",
sem :: Typed
sem = Sig -> Term -> Typed
ty Sig
tauAdj (Term -> Term
purePP (Term -> Term -> Term
lam Term
x Term
x))
} ]
String
"likely" -> [ SynSem {
syn :: Cat
syn = String -> Cat
Base String
"s" Cat -> Cat -> Cat
\\ String -> Cat
Base String
"deg" Cat -> Cat -> Cat
// String -> Cat
Base String
"s",
sem :: Typed
sem = Sig -> Term -> Typed
ty Sig
tauAdj (
Term -> Term -> Term
lam Term
s (Term -> Term
purePP (Term -> Term -> Term
lam Term
p (Term -> Term -> Term
lam Term
d (Term -> Term -> Term
lam Term
i (
String -> Term
sCon String
"(≥)" Term -> Term -> Term
@@ (
Term -> Term
Pr (Term -> Term -> Term -> Term
let' Term
j (Term -> Term
CG Term
s) (Term -> Term
Return (Term
p Term -> Term -> Term
@@ ([String] -> Term -> Term -> Term
overwrite [String]
contextParams Term
i Term
j))))
) Term -> Term -> Term
@@ Term
d
)))) Term -> Term -> Term
@@ Term
s)
)
} ]
String
"how" -> [ SynSem {
syn :: Cat
syn = String -> Cat
Base String
"qDeg" Cat -> Cat -> Cat
// (String -> Cat
Base String
"s" Cat -> Cat -> Cat
// String -> Cat
Base String
"ap") Cat -> Cat -> Cat
// (String -> Cat
Base String
"ap" Cat -> Cat -> Cat
\\ String -> Cat
Base String
"deg"),
sem :: Typed
sem = Sig -> Term -> Typed
ty Sig
tauAdj (Term -> Term
purePP (Term -> Term -> Term
lam Term
x (Term -> Term -> Term
lam Term
y (Term -> Term -> Term
lam Term
z (Term
y Term -> Term -> Term
@@ (Term
x Term -> Term -> Term
@@ Term
z))))))
}
, SynSem {
syn :: Cat
syn = String -> Cat
Base String
"qDeg" Cat -> Cat -> Cat
// (String -> Cat
Base String
"s" Cat -> Cat -> Cat
\\ String -> Cat
Base String
"deg"),
sem :: Typed
sem = Sig -> Term -> Typed
ty Sig
tauAdj (Term -> Term
purePP (Term -> Term -> Term
lam Term
x Term
x))
} ]
String
"is" -> [ SynSem {
syn :: Cat
syn = String -> Cat
Base String
"s" Cat -> Cat -> Cat
\\ String -> Cat
Base String
"np" Cat -> Cat -> Cat
// String -> Cat
Base String
"ap",
sem :: Typed
sem = Sig -> Term -> Typed
ty Sig
tauAdj (Term -> Term
purePP (Term -> Term -> Term
lam Term
x Term
x))
}
, SynSem {
syn :: Cat
syn = String -> Cat
Base String
"s" Cat -> Cat -> Cat
\\ String -> Cat
Base String
"np" Cat -> Cat -> Cat
// String -> Cat
Base String
"np",
sem :: Typed
sem = Sig -> Term -> Typed
ty Sig
tauAdj (Term -> Term
purePP (Term -> Term -> Term
lam Term
x Term
x))
} ]
String
"and" -> [ SynSem {
syn :: Cat
syn = String -> Cat
Base String
"s" Cat -> Cat -> Cat
// (String -> Cat
Base String
"s" Cat -> Cat -> Cat
\\ String -> Cat
Base String
"np") Cat -> Cat -> Cat
\\ (String -> Cat
Base String
"s" Cat -> Cat -> Cat
// (String -> Cat
Base String
"s" Cat -> Cat -> Cat
\\ String -> Cat
Base String
"np")) Cat -> Cat -> Cat
// (String -> Cat
Base String
"s" Cat -> Cat -> Cat
// (String -> Cat
Base String
"s" Cat -> Cat -> Cat
\\ String -> Cat
Base String
"np")),
sem :: Typed
sem = Sig -> Term -> Typed
ty Sig
tauAdj (Term -> Term
purePP (Term -> Term -> Term
lam Term
m (Term -> Term -> Term
lam Term
n (Term -> Term -> Term
lam Term
k (Term -> Term -> Term
lam Term
i (String -> Term
sCon String
"(∧)" Term -> Term -> Term
@@ (Term
n Term -> Term -> Term
@@ Term
k Term -> Term -> Term
@@ Term
i) Term -> Term -> Term
@@ (Term
m Term -> Term -> Term
@@ Term
k Term -> Term -> Term
@@ Term
i)))))))
}
, SynSem {
syn :: Cat
syn = String -> Cat
Base String
"s" Cat -> Cat -> Cat
\\ (String -> Cat
Base String
"s" Cat -> Cat -> Cat
// String -> Cat
Base String
"np") Cat -> Cat -> Cat
\\ (String -> Cat
Base String
"s" Cat -> Cat -> Cat
\\ (String -> Cat
Base String
"s" Cat -> Cat -> Cat
// String -> Cat
Base String
"np")) Cat -> Cat -> Cat
// (String -> Cat
Base String
"s" Cat -> Cat -> Cat
\\ (String -> Cat
Base String
"s" Cat -> Cat -> Cat
// String -> Cat
Base String
"np")),
sem :: Typed
sem = Sig -> Term -> Typed
ty Sig
tauAdj (Term -> Term
purePP (Term -> Term -> Term
lam Term
m (Term -> Term -> Term
lam Term
n (Term -> Term -> Term
lam Term
k (Term -> Term -> Term
lam Term
i (String -> Term
sCon String
"(∧)" Term -> Term -> Term
@@ (Term
n Term -> Term -> Term
@@ Term
k Term -> Term -> Term
@@ Term
i) Term -> Term -> Term
@@ (Term
m Term -> Term -> Term
@@ Term
k Term -> Term -> Term
@@ Term
i)))))))
}
, SynSem {
syn :: Cat
syn = (String -> Cat
Base String
"s" Cat -> Cat -> Cat
\\ String -> Cat
Base String
"np") Cat -> Cat -> Cat
\\ (String -> Cat
Base String
"s" Cat -> Cat -> Cat
\\ String -> Cat
Base String
"np" Cat -> Cat -> Cat
// String -> Cat
Base String
"np") Cat -> Cat -> Cat
\\ ((String -> Cat
Base String
"s" Cat -> Cat -> Cat
\\ String -> Cat
Base String
"np") Cat -> Cat -> Cat
\\ (String -> Cat
Base String
"s" Cat -> Cat -> Cat
\\ String -> Cat
Base String
"np" Cat -> Cat -> Cat
// String -> Cat
Base String
"np")) Cat -> Cat -> Cat
// ((String -> Cat
Base String
"s" Cat -> Cat -> Cat
\\ String -> Cat
Base String
"np") Cat -> Cat -> Cat
\\ (String -> Cat
Base String
"s" Cat -> Cat -> Cat
\\ String -> Cat
Base String
"np" Cat -> Cat -> Cat
// String -> Cat
Base String
"np")),
sem :: Typed
sem = Sig -> Term -> Typed
ty Sig
tauAdj (Term -> Term
purePP (Term -> Term -> Term
lam Term
m (Term -> Term -> Term
lam Term
n (Term -> Term -> Term
lam Term
k (Term -> Term -> Term
lam Term
x (Term -> Term -> Term
lam Term
i (String -> Term
sCon String
"(∧)" Term -> Term -> Term
@@ (Term
n Term -> Term -> Term
@@ Term
k Term -> Term -> Term
@@ Term
x Term -> Term -> Term
@@ Term
i) Term -> Term -> Term
@@ (Term
m Term -> Term -> Term
@@ Term
k Term -> Term -> Term
@@ Term
x Term -> Term -> Term
@@ Term
i))))))))
}
, SynSem {
syn :: Cat
syn = String -> Cat
Base String
"s" Cat -> Cat -> Cat
\\ String -> Cat
Base String
"s" Cat -> Cat -> Cat
// String -> Cat
Base String
"s",
sem :: Typed
sem = Sig -> Term -> Typed
ty Sig
tauAdj (Term -> Term
purePP (Term -> Term -> Term
lam Term
m (Term -> Term -> Term
lam Term
n (Term -> Term -> Term
lam Term
i (String -> Term
sCon String
"(∧)" Term -> Term -> Term
@@ (Term
n Term -> Term -> Term
@@ Term
i) Term -> Term -> Term
@@ (Term
m Term -> Term -> Term
@@ Term
i))))))
}
, SynSem {
syn :: Cat
syn = String -> Cat
Base String
"s" Cat -> Cat -> Cat
\\ String -> Cat
Base String
"np" Cat -> Cat -> Cat
\\ (String -> Cat
Base String
"s" Cat -> Cat -> Cat
\\ String -> Cat
Base String
"np") Cat -> Cat -> Cat
// (String -> Cat
Base String
"s" Cat -> Cat -> Cat
\\ String -> Cat
Base String
"np"),
sem :: Typed
sem = Sig -> Term -> Typed
ty Sig
tauAdj (Term -> Term
purePP (Term -> Term -> Term
lam Term
m (Term -> Term -> Term
lam Term
n (Term -> Term -> Term
lam Term
x (Term -> Term -> Term
lam Term
i (String -> Term
sCon String
"(∧)" Term -> Term -> Term
@@ (Term
n Term -> Term -> Term
@@ Term
x Term -> Term -> Term
@@ Term
i) Term -> Term -> Term
@@ (Term
m Term -> Term -> Term
@@ Term
x Term -> Term -> Term
@@ Term
i)))))))
}
, SynSem {
syn :: Cat
syn = String -> Cat
Base String
"s" Cat -> Cat -> Cat
\\ String -> Cat
Base String
"np" Cat -> Cat -> Cat
// String -> Cat
Base String
"np" Cat -> Cat -> Cat
\\ (String -> Cat
Base String
"s" Cat -> Cat -> Cat
\\ String -> Cat
Base String
"np" Cat -> Cat -> Cat
// String -> Cat
Base String
"np") Cat -> Cat -> Cat
// (String -> Cat
Base String
"s" Cat -> Cat -> Cat
\\ String -> Cat
Base String
"np" Cat -> Cat -> Cat
// String -> Cat
Base String
"np"),
sem :: Typed
sem = Sig -> Term -> Typed
ty Sig
tauAdj (Term -> Term
purePP (Term -> Term -> Term
lam Term
m (Term -> Term -> Term
lam Term
n (Term -> Term -> Term
lam Term
x (Term -> Term -> Term
lam Term
y (Term -> Term -> Term
lam Term
i (String -> Term
sCon String
"(∧)" Term -> Term -> Term
@@ (Term
n Term -> Term -> Term
@@ Term
x Term -> Term -> Term
@@ Term
y Term -> Term -> Term
@@ Term
i) Term -> Term -> Term
@@ (Term
m Term -> Term -> Term
@@ Term
x Term -> Term -> Term
@@ Term
y Term -> Term -> Term
@@ Term
i))))))))
} ]
String
"that" -> [ SynSem {
syn :: Cat
syn = String -> Cat
Base String
"s" Cat -> Cat -> Cat
// String -> Cat
Base String
"s",
sem :: Typed
sem = Sig -> Term -> Typed
ty Sig
tauAdj (Term -> Term
purePP (Term -> Term -> Term
lam Term
x Term
x))
} ]
scaleNormingPrior :: Term
scaleNormingPrior :: Term
scaleNormingPrior = Term -> Term
Return (Term -> Term -> Term
upd_CG Term
cg' Term
ϵ)
where cg' :: Term
cg' = Term -> Term -> Term -> Term
let' Term
b (Term -> Term
Bern (Double -> Term
dCon Double
0.5)) (Term -> Term -> Term -> Term
let' Term
x (Term -> Term -> Term
normal Term
0 Term
1) (Term -> Term -> Term -> Term
let' Term
y (Term -> Term -> Term
normal Term
0 Term
1) Term
j'))
j' :: Term
j' = Term -> Term
Return (Term -> Term -> Term
UpdHeight (Term -> Term -> Term
lam Term
z (Term -> Term -> Term -> Term
ITE (Term -> Term
SocPla Term
i' Term -> Term -> Term
@@ Term
z) Term
x Term
y)) Term
i')
i' :: Term
i' = Term -> Term -> Term
UpdSocPla (Term -> Term -> Term
lam Term
x Term
b) Term
_0
likelihoodPrior :: Term
likelihoodPrior :: Term
likelihoodPrior = Term -> Term
Return (Term -> Term -> Term
upd_CG Term
cg' Term
ϵ)
where cg' :: Term
cg' = Term -> Term -> Term -> Term
let' Term
x (Term -> Term -> Term
normal Term
0 Term
1) (Term -> Term -> Term -> Term
let' Term
y (Term -> Term -> Term
normal Term
0 Term
1) (Term -> Term -> Term -> Term
let' Term
w (Term -> Term -> Term
LogitNormal Term
0 Term
1) (Term -> Term -> Term -> Term
let' Term
b (Term -> Term
Bern Term
w) (Term -> Term
Return (String -> Term -> Term -> Term
Upd String
"d_tall" Term
x (String -> Term -> Term -> Term
Upd String
"height" (Term -> Term -> Term
lam Term
z Term
y) (String -> Term -> Term -> Term
Upd String
"soc_pla" (Term -> Term -> Term
lam Term
z Term
b) Term
_0)))))))
adjectivesRespond :: Term -> Term -> Term
adjectivesRespond :: Term -> Term -> Term
adjectivesRespond = Term -> Term -> Term -> Term
respond (Term -> Term -> Term
lam Term
x (Term -> Term -> Term
Normal Term
x (String -> Term
Var String
"sigma")))