jmacro-0.1.2: QuasiQuotation library for programmatic generation of Javascript code.Source codeContentsIndex
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
show/hide Instances
data JConstr Source
Constructors
Sub JType
Super JType
show/hide Instances
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
show/hide Instances
tcStateEmpty :: TCStateSource
type JMonad a = ErrorT String (State TCState) aSource
orElse :: JMonad a -> JMonad a -> JMonad aSource
lookupEnvErr :: Ident -> JMonad JTypeSource
withLocalScope :: [Ident] -> JMonad a -> JMonad aSource
withLocalScope' :: [Ident] -> JMonad a -> JMonad aSource
inConditional :: JMonad a -> JMonad aSource
addEnv :: Ident -> JType -> JMonad ()Source
addTopEnv :: Ident -> JType -> JMonad ()Source
newV :: JMonad IntSource
newVar :: JMonad JTypeSource
newSat :: JMonad JTypeSource
addNewSat :: Ident -> JMonad ()Source
addNewVar :: Ident -> JMonad ()Source
newTopSat :: JMonad JTypeSource
killSats :: JMonad ()Source
newSatAtScope :: [Int] -> JMonad JTypeSource
satInScope :: Int -> JMonad BoolSource
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 JTypeSource
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 StringSource
prettyType :: JType -> JMonad StringSource
prettyType' :: JType -> JMonad StringSource
resolveType :: JType -> JMonad JTypeSource
resolveState :: JMonad ()Source
ifDbg :: JMonad () -> JMonad ()Source
traceSats :: JMonad ()Source
traceVars :: JMonad ()Source
traceConstrs :: JMonad ()Source
tyErr1 :: String -> JType -> JMonad aSource
tyErr2 :: String -> JType -> JType -> JMonad aSource
tyErr2l :: String -> [JType] -> [JType] -> JMonad aSource
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)) aSource
addSub :: (Int, JType) -> JMonadClone ()Source
findSub :: Int -> JMonadClone (Maybe JType)Source
traceSubs :: JMonadClone ()Source
traceC :: JConstr -> JMonadClone ()Source
clone :: JType -> JMonad JTypeSource
cloneMany :: [JType] -> JMonad [JType]Source
clone'' :: JType -> JMonadClone JTypeSource
clone' :: JType -> JMonadClone JTypeSource
substitute :: JType -> JMonadClone JTypeSource
resC :: Bool -> JType -> JMonad JTypeSource
resC' :: Bool -> Bool -> JType -> JMonadClone JTypeSource
simplifyCs :: [JConstr] -> JMonadClone [JConstr]Source
simplifyC :: JConstr -> JMonadClone [JConstr]Source
(\/) :: JType -> JType -> JMonad JTypeSource
lub :: JType -> JType -> JMonad JTypeSource
luball :: [JType] -> JMonad JTypeSource
(/\) :: JType -> JType -> JMonad JTypeSource
glb :: JType -> JType -> JMonad JTypeSource
glball :: [JType] -> JMonad JTypeSource
class JTypeCheck a whereSource
Methods
typecheck :: a -> JMonad JTypeSource
show/hide Instances
typecheckLhs :: JExpr -> JMonad JTypeSource
appFun :: JType -> [JType] -> JMonad JTypeSource
typecheckAnnotated :: (JMacro a, JsToDoc a, JTypeCheck a) => a -> JMonad JTypeSource
Produced by Haddock version 2.4.2