jmacro-0.6.17.1: QuasiQuotation library for programmatic generation of Javascript code.
Safe HaskellNone
LanguageHaskell2010

Language.Javascript.JMacro.TypeCheck

Documentation

partitionOut :: (a -> Maybe b) -> [a] -> ([b], [a]) Source #

zipWithOrChange :: (a -> a -> b) -> (a -> b) -> [a] -> [a] -> [b] Source #

zipWithOrIdM :: Monad m => (a -> a -> m a) -> [a] -> [a] -> m [a] Source #

unionWithM :: (Monad m, Ord key) => (val -> val -> m val) -> Map key val -> Map key val -> m (Map key val) Source #

intersectionWithM :: (Monad m, Ord key) => (val -> val -> m b) -> Map key val -> Map key val -> m (Map key b) Source #

class Compos1 t where Source #

Methods

compos1 :: (forall a. a -> m a) -> (forall a b. m (a -> b) -> m a -> m b) -> (t -> m t) -> t -> m t Source #

Instances

Instances details
Compos1 JType Source # 
Instance details

Defined in Language.Javascript.JMacro.TypeCheck

Methods

compos1 :: (forall a. a -> m a) -> (forall a b. m (a -> b) -> m a -> m b) -> (JType -> m JType) -> JType -> m JType Source #

composOp1 :: Compos1 t => (t -> t) -> t -> t Source #

composOpM1 :: (Compos1 t, Monad m) => (t -> m t) -> t -> m t Source #

composOpM1_ :: (Compos1 t, Monad m) => (t -> m ()) -> t -> m () Source #

composOpFold1 :: Compos1 t => b -> (b -> b -> b) -> (t -> b) -> t -> b Source #

newtype C b a Source #

Constructors

C 

Fields

data StoreVal Source #

Instances

Instances details
Show StoreVal Source # 
Instance details

Defined in Language.Javascript.JMacro.TypeCheck

data TCState Source #

Instances

Instances details
Show TCState Source # 
Instance details

Defined in Language.Javascript.JMacro.TypeCheck

MonadState TCState TMonad Source # 
Instance details

Defined in Language.Javascript.JMacro.TypeCheck

Methods

get :: TMonad TCState #

put :: TCState -> TMonad () #

state :: (TCState -> (a, TCState)) -> TMonad a #

newtype TMonad a Source #

Constructors

TMonad (ErrorT String (State TCState) a) 

Instances

Instances details
Monad TMonad Source # 
Instance details

Defined in Language.Javascript.JMacro.TypeCheck

Methods

(>>=) :: TMonad a -> (a -> TMonad b) -> TMonad b #

(>>) :: TMonad a -> TMonad b -> TMonad b #

return :: a -> TMonad a #

Functor TMonad Source # 
Instance details

Defined in Language.Javascript.JMacro.TypeCheck

Methods

fmap :: (a -> b) -> TMonad a -> TMonad b #

(<$) :: a -> TMonad b -> TMonad a #

Applicative TMonad Source # 
Instance details

Defined in Language.Javascript.JMacro.TypeCheck

Methods

pure :: a -> TMonad a #

(<*>) :: TMonad (a -> b) -> TMonad a -> TMonad b #

liftA2 :: (a -> b -> c) -> TMonad a -> TMonad b -> TMonad c #

(*>) :: TMonad a -> TMonad b -> TMonad b #

(<*) :: TMonad a -> TMonad b -> TMonad a #

MonadState TCState TMonad Source # 
Instance details

Defined in Language.Javascript.JMacro.TypeCheck

Methods

get :: TMonad TCState #

put :: TCState -> TMonad () #

state :: (TCState -> (a, TCState)) -> TMonad a #

MonadError String TMonad Source # 
Instance details

Defined in Language.Javascript.JMacro.TypeCheck

Methods

throwError :: String -> TMonad a #

catchError :: TMonad a -> (String -> TMonad a) -> TMonad a #

class JTypeCheck a where Source #

Methods

typecheck :: a -> TMonad JType Source #

Instances

Instances details
JTypeCheck JVal Source # 
Instance details

Defined in Language.Javascript.JMacro.TypeCheck

JTypeCheck JExpr Source # 
Instance details

Defined in Language.Javascript.JMacro.TypeCheck

JTypeCheck JStat Source # 
Instance details

Defined in Language.Javascript.JMacro.TypeCheck

traversem_ :: (Foldable t, Monad f) => (a -> f b) -> t a -> f () Source #

addToStack :: Ord a => a -> [Set a] -> [Set a] Source #

frame2VarRefs :: Set t -> [(Maybe a, t)] Source #