jmacro-0.1.2: QuasiQuotation library for programmatic generation of Javascript code.
Source code
Contents
Index
Language.Javascript.JMacro.Typed
Documentation
runTypecheck
::
JTypeCheck
a => a ->
IO
()
Source
data
JType
Source
Constructors
JTNum
JTStr
JTBool
JTRec
Int
JTFunc
[
JType
]
JType
JTList
(
Maybe
Int
) (
Maybe
JType
)
JTStat
JTSat
Int
BotOf
JType
JTVar
Int
Instances
Eq
JType
Show
JType
data
JConstr
Source
Constructors
Sub
JType
Super
JType
Instances
Show
JConstr
data
TCState
Source
Constructors
TCS
tc_env
:: [
Map
Ident
JType
]
tc_vars
::
Map
Int
JType
tc_constrs
::
Map
Int
[
JConstr
]
tc_recs
::
Map
Int
[(
Ident
,
JType
)]
tc_scopedSat
:: [
Set
Int
]
tc_varCt
::
Int
tc_strictnull
::
Bool
tc_canextend
::
Bool
tc_debug
::
Bool
tc_expandFree
::
Bool
Instances
Show
TCState
tcStateEmpty
::
TCState
Source
type
JMonad
a =
ErrorT
String
(
State
TCState
) a
Source
orElse
::
JMonad
a ->
JMonad
a ->
JMonad
a
Source
lookupEnvErr
::
Ident
->
JMonad
JType
Source
withLocalScope
:: [
Ident
] ->
JMonad
a ->
JMonad
a
Source
withLocalScope'
:: [
Ident
] ->
JMonad
a ->
JMonad
a
Source
inConditional
::
JMonad
a ->
JMonad
a
Source
addEnv
::
Ident
->
JType
->
JMonad
()
Source
addTopEnv
::
Ident
->
JType
->
JMonad
()
Source
newV
::
JMonad
Int
Source
newVar
::
JMonad
JType
Source
newSat
::
JMonad
JType
Source
addNewSat
::
Ident
->
JMonad
()
Source
addNewVar
::
Ident
->
JMonad
()
Source
newTopSat
::
JMonad
JType
Source
killSats
::
JMonad
()
Source
newSatAtScope
:: [
Int
] ->
JMonad
JType
Source
satInScope
::
Int
->
JMonad
Bool
Source
incScope
::
Int
->
Int
->
JMonad
()
Source
bumpScope
::
Int
->
JType
->
JMonad
()
Source
getRec
::
Int
->
JMonad
[(
Ident
,
JType
)]
Source
putRec
::
Int
-> [(
Ident
,
JType
)] ->
JMonad
()
Source
recLookup
::
Ident
->
JType
->
JMonad
(
Maybe
JType
)
Source
newRec
::
JMonad
JType
Source
unzipConstrs
:: [
JConstr
] -> ([
JType
], [
JType
])
Source
zipConstrs
:: [
JType
] -> [
JType
] -> [
JConstr
]
Source
lookupConstraints
::
Int
->
JMonad
[
JConstr
]
Source
addConstraint
::
Int
->
JConstr
->
JMonad
()
Source
chkNoNull
:: [
JType
] ->
JMonad
()
Source
showType
::
JType
->
JMonad
String
Source
prettyType
::
JType
->
JMonad
String
Source
prettyType'
::
JType
->
JMonad
String
Source
resolveType
::
JType
->
JMonad
JType
Source
resolveState
::
JMonad
()
Source
ifDbg
::
JMonad
()
->
JMonad
()
Source
traceSats
::
JMonad
()
Source
traceVars
::
JMonad
()
Source
traceConstrs
::
JMonad
()
Source
tyErr1
::
String
->
JType
->
JMonad
a
Source
tyErr2
::
String
->
JType
->
JType
->
JMonad
a
Source
tyErr2l
::
String
-> [
JType
] -> [
JType
] ->
JMonad
a
Source
traceTy
::
String
->
JType
->
JMonad
()
Source
traceTys
::
String
->
JType
->
JType
->
JMonad
()
Source
(<:)
::
JType
->
JType
->
JMonad
()
Source
subtype
::
JType
->
JType
->
JMonad
()
Source
occursCheck
::
Int
->
JType
->
JMonad
()
Source
(<=.=)
::
JType
->
JType
->
JMonad
()
Source
(=.=)
::
JType
->
JType
->
JMonad
()
Source
type
JMonadClone
a =
StateT
[(
Int
,
JType
)] (
ErrorT
String
(
State
TCState
)) a
Source
addSub
:: (
Int
,
JType
) ->
JMonadClone
()
Source
findSub
::
Int
->
JMonadClone
(
Maybe
JType
)
Source
traceSubs
::
JMonadClone
()
Source
traceC
::
JConstr
->
JMonadClone
()
Source
clone
::
JType
->
JMonad
JType
Source
cloneMany
:: [
JType
] ->
JMonad
[
JType
]
Source
clone''
::
JType
->
JMonadClone
JType
Source
clone'
::
JType
->
JMonadClone
JType
Source
substitute
::
JType
->
JMonadClone
JType
Source
resC
::
Bool
->
JType
->
JMonad
JType
Source
resC'
::
Bool
->
Bool
->
JType
->
JMonadClone
JType
Source
simplifyCs
:: [
JConstr
] ->
JMonadClone
[
JConstr
]
Source
simplifyC
::
JConstr
->
JMonadClone
[
JConstr
]
Source
(\/)
::
JType
->
JType
->
JMonad
JType
Source
lub
::
JType
->
JType
->
JMonad
JType
Source
luball
:: [
JType
] ->
JMonad
JType
Source
(/\)
::
JType
->
JType
->
JMonad
JType
Source
glb
::
JType
->
JType
->
JMonad
JType
Source
glball
:: [
JType
] ->
JMonad
JType
Source
class
JTypeCheck
a
where
Source
Methods
typecheck
:: a ->
JMonad
JType
Source
Instances
JTypeCheck
JVal
JTypeCheck
JExpr
JTypeCheck
JStat
JTypeCheck
([]
JStat
)
typecheckLhs
::
JExpr
->
JMonad
JType
Source
appFun
::
JType
-> [
JType
] ->
JMonad
JType
Source
typecheckAnnotated
:: (
JMacro
a,
JsToDoc
a,
JTypeCheck
a) => a ->
JMonad
JType
Source
Produced by
Haddock
version 2.4.2