| Safe Haskell | None |
|---|---|
| Language | Haskell98 |
Language.Javascript.JMacro.TypeCheck
Documentation
eitherIsLeft :: Either a b -> Bool #
partitionOut :: (a -> Maybe b) -> [a] -> ([b], [a]) #
zipWithOrChange :: (a -> a -> b) -> (a -> b) -> [a] -> [a] -> [b] #
zipWithOrIdM :: Monad m => (a -> a -> m a) -> [a] -> [a] -> m [a] #
unionWithM :: (Monad m, Ord key) => (val -> val -> m val) -> Map key val -> Map key val -> m (Map key val) #
intersectionWithM :: (Monad m, Ord key) => (val -> val -> m b) -> Map key val -> Map key val -> m (Map key b) #
Minimal complete definition
composOpM1 :: (Compos1 t, Monad m) => (t -> m t) -> t -> m t #
composOpM1_ :: (Compos1 t, Monad m) => (t -> m ()) -> t -> m () #
composOpFold1 :: Compos1 t => b -> (b -> b -> b) -> (t -> b) -> t -> b #
Constructors
| SVType JType | |
| SVConstrained (Set Constraint) |
tcStateEmpty :: TCState #
Instances
| Monad TMonad # | |
| Functor TMonad # | |
| Applicative TMonad # | |
| MonadState TCState TMonad # | |
| MonadError String TMonad # | |
Defined in Language.Javascript.JMacro.TypeCheck Methods throwError :: String -> TMonad a # catchError :: TMonad a -> (String -> TMonad a) -> TMonad a # | |
class JTypeCheck a where #
Minimal complete definition
Instances
| JTypeCheck JVal # | |
| JTypeCheck JExpr # | |
| JTypeCheck JStat # | |
evalTMonad :: TMonad a -> Either String a #
traversem_ :: (Foldable t, Monad f) => (a -> f b) -> t a -> f () #
prettyType :: JType -> TMonad String #
runTypecheckRaw :: JTypeCheck a => a -> (Either String JType, TCState) #
runTypecheckFull :: JTypeCheck a => a -> (Either String (String, [Map Ident String]), TCState) #
runTypecheck :: JTypeCheck a => a -> Either String String #
evalTypecheck :: JTypeCheck a => a -> Either String [Map Ident String] #
typecheckMain :: JTypeCheck a => a -> TMonad JType #
addToStack :: Ord a => a -> [Set a] -> [Set a] #
mapConstraint :: (Monad m, Functor m) => (JType -> m JType) -> Constraint -> m Constraint #
partitionCs :: [Constraint] -> ([JType], [JType]) #
lookupConstraintsList :: VarRef -> TMonad [Constraint] #
instantiateVarRef :: VarRef -> JType -> TMonad () #
occursCheck :: Int -> JType -> TMonad () #
checkConstraints :: JType -> [Constraint] -> TMonad () #
addConstraint :: VarRef -> Constraint -> TMonad () #
cannonicalizeConstraints :: [Constraint] -> TMonad [Constraint] #
tryCloseFrozenVars :: TMonad () #
frame2VarRefs :: Set t -> [(Maybe a, t)] #
newVarDecl :: Ident -> TMonad JType #
resolveType :: JType -> TMonad JType #
resolveTypeShallow :: JType -> TMonad JType #
integrateLocalType :: JLocalType -> TMonad JType #
checkEscapedVars :: [VarRef] -> JType -> TMonad () #
someUpperBound :: [JType] -> TMonad JType #
someLowerBound :: [JType] -> TMonad JType #
typecheckWithBlock :: (JsToDoc a, JMacro a, JTypeCheck a) => a -> TMonad JType #