|  | 
|  | 
|  | 
|  | 
|  | 
|  | 
| Synopsis | 
|  | 
| | type ArrayIndex = Int |  |  |  | class Typeable a => ArrayClass a  where |  |  |  |  |  | type Layer = VStr |  |  |  | type FileDescriptor = VInt |  |  |  | class Typeable a => HandleClass a  where |  |  |  |  |  | type HashIndex = VStr |  |  |  | class Typeable a => HashClass a  where |  |  |  |  |  | class Typeable a => ScalarClass a  where |  |  |  |  |  | class Typeable a => CodeClass a  where |  |  |  |  |  | class Typeable a => ThunkClass a  where |  |  |  |  |  | class Typeable a => RuleClass a  where |  |  |  |  |  | class Typeable a => PairClass a  where |  |  |  |  |  | class Typeable a => ObjectClass a  where |  |  |  |  |  | type Ident = String |  |  |  | errIndex :: Show a => Maybe b -> a -> Eval b |  |  |  | getIndex :: Int -> Maybe a -> Eval [a] -> Maybe (Eval b) -> Eval a |  |  |  | ifValTypeIsa :: Val -> String -> Eval a -> Eval a -> Eval a |  |  |  | ifListContext :: MonadReader Env m => m t -> m t -> m t |  |  |  | retEmpty :: Eval Val |  |  |  | evalValType :: Val -> Eval Type |  |  |  | fromVal' :: Value a => Val -> Eval a |  |  |  | class (Typeable n, Show n, Ord n) => Value n  where |  |  |  |  |  | castFailM :: (Show a, Typeable b) => a -> Eval b |  |  |  | castFail :: (Show a, Typeable b) => a -> b |  |  |  | juncToBool :: VJunc -> Bool |  |  |  | showNum :: Show a => a -> String |  |  |  | valToStr :: Val -> Eval VStr |  |  |  | type VScalar = Val |  |  |  | strRangeInf :: String -> [String] |  |  |  | strRange :: String -> String -> [String] |  |  |  | strInc :: String -> String |  |  |  | charInc :: Char -> Char |  |  |  | intCast :: Num b => Val -> b |  |  |  | type VList = [Val] |  |  |  | type VSubst = (VRule, Exp) |  |  |  | type VArray = [Val] |  |  |  | type VHash = Map VStr Val |  |  |  | newtype VThunk  = MkThunk (Eval Val) |  |  |  | newtype VProcess  = MkProcess ProcessHandle |  |  |  | type VPair = (Val, Val) |  |  |  |  |  |  |  | valType :: Val -> Type |  |  |  | type VBlock = Exp |  |  |  |  |  |  |  | data VJunc  = Junc {} |  |  |  |  |  |  |  |  |  |  |  | isSlurpy :: Param -> Bool |  |  |  | data Param  = MkParam {} |  |  |  | type Params = [Param] |  |  |  | type Bindings = [(Param, Exp)] |  |  |  | type SlurpLimit = [(VInt, Exp)] |  |  |  | data VCode  = MkCode {} |  |  |  | mkPrim :: VCode |  |  |  | mkSub :: VCode |  |  |  | data Pos  = MkPos {} |  |  |  |  |  |  |  | class Unwrap a  where |  |  |  |  |  | fromVals :: Value n => Val -> Eval [n] |  |  |  | extractExp :: Exp -> ([Exp], [String]) -> ([Exp], [String]) |  |  |  | extract :: Exp -> [String] -> (Exp, [String]) |  |  |  | cxtOfSigil :: Char -> Cxt |  |  |  | typeOfSigil :: Char -> Type |  |  |  | buildParam :: String -> String -> String -> Exp -> Param |  |  |  | defaultArrayParam :: Param |  |  |  | defaultHashParam :: Param |  |  |  | defaultScalarParam :: Param |  |  |  | type DebugInfo = Maybe (TVar (Map String String)) |  |  |  | data Env  = Env {} |  |  |  | envWant :: Env -> String |  |  |  | data Pad  = MkPad !(Map Var [(TVar Bool, TVar VRef)]) |  |  |  | mkPad :: [(Var, [(TVar Bool, TVar VRef)])] -> Pad |  |  |  | lookupPad :: Var -> Pad -> Maybe [TVar VRef] |  |  |  | padToList :: Pad -> [(Var, [(TVar Bool, TVar VRef)])] |  |  |  | diffPads :: Pad -> Pad -> Pad |  |  |  | unionPads :: Pad -> Pad -> Pad |  |  |  | genMultiSym :: MonadSTM m => String -> VRef -> m (Pad -> Pad) |  |  |  | genSym :: MonadSTM m => String -> VRef -> m (Pad -> Pad) |  |  |  | show' :: Show a => a -> String |  |  |  |  |  |  |  | type Eval x = EvalT (ContT Val (ReaderT Env SIO)) x |  |  |  | type EvalMonad = EvalT (ContT Val (ReaderT Env SIO)) |  |  |  | newtype EvalT m a = EvalT {} |  |  |  |  |  |  |  | runSTM :: SIO a -> STM a |  |  |  | runIO :: SIO a -> IO a |  |  |  | runEvalSTM :: Env -> Eval Val -> STM Val |  |  |  | runEvalIO :: Env -> Eval Val -> IO Val |  |  |  | shiftT :: ((a -> Eval Val) -> Eval Val) -> Eval a |  |  |  | resetT :: Eval Val -> Eval Val |  |  |  | class Monad m => MonadSTM m  where |  |  |  |  |  | runEvalMain :: Env -> Eval Val -> IO Val |  |  |  | findSymRef :: MonadSTM m => String -> Pad -> m VRef |  |  |  | findSym :: String -> Pad -> Maybe (TVar VRef) |  |  |  | class (MonadReader Env m, MonadCont m, MonadIO m, MonadSTM m) => MonadEval m  where |  |  | 
 | 
|  | 
| Documentation | 
|  | 
| type ArrayIndex = Int | 
|  | 
| class Typeable a => ArrayClass a  where | 
|  | 
|  | 
| type Layer = VStr | 
|  | 
| type FileDescriptor = VInt | 
|  | 
| class Typeable a => HandleClass a  where | 
|  | 
|  | 
| type HashIndex = VStr | 
|  | 
| class Typeable a => HashClass a  where | 
|  | 
|  | 
| class Typeable a => ScalarClass a  where | 
|  | 
|  | 
| class Typeable a => CodeClass a  where | 
|  | 
|  | 
| class Typeable a => ThunkClass a  where | 
|  | 
|  | 
| class Typeable a => RuleClass a  where | 
|  | 
|  | 
| class Typeable a => PairClass a  where | 
|  | 
|  | 
| class Typeable a => ObjectClass a  where | 
| |  |  | Methods |  | | object_iType :: a -> Type | 
 |  |  |  | Instances |  |  | 
 | 
|  | 
| type Ident = String | 
|  | 
| errIndex :: Show a => Maybe b -> a -> Eval b | 
|  | 
| getIndex :: Int -> Maybe a -> Eval [a] -> Maybe (Eval b) -> Eval a | 
|  | 
| ifValTypeIsa :: Val -> String -> Eval a -> Eval a -> Eval a | 
|  | 
| ifListContext :: MonadReader Env m => m t -> m t -> m t | 
|  | 
| retEmpty :: Eval Val | 
|  | 
| evalValType :: Val -> Eval Type | 
|  | 
| fromVal' :: Value a => Val -> Eval a | 
|  | 
| class (Typeable n, Show n, Ord n) => Value n  where | 
|  | 
|  | 
| castFailM :: (Show a, Typeable b) => a -> Eval b | 
|  | 
| castFail :: (Show a, Typeable b) => a -> b | 
|  | 
| juncToBool :: VJunc -> Bool | 
|  | 
| showNum :: Show a => a -> String | 
|  | 
| valToStr :: Val -> Eval VStr | 
|  | 
| type VScalar = Val | 
|  | 
| strRangeInf :: String -> [String] | 
|  | 
| strRange :: String -> String -> [String] | 
|  | 
| strInc :: String -> String | 
|  | 
| charInc :: Char -> Char | 
|  | 
| intCast :: Num b => Val -> b | 
|  | 
| type VList = [Val] | 
|  | 
| type VSubst = (VRule, Exp) | 
|  | 
| type VArray = [Val] | 
|  | 
| type VHash = Map VStr Val | 
|  | 
| newtype VThunk | 
|  | 
|  | 
| newtype VProcess | 
|  | 
|  | 
| type VPair = (Val, Val) | 
|  | 
| data Val | 
|  | 
|  | 
| valType :: Val -> Type | 
|  | 
| type VBlock = Exp | 
|  | 
| data VControl | 
| | Constructors |  | | ControlLeave !(Env -> Eval Bool) !Val |  |  | ControlExit !ExitCode |  |  | ControlEnv !Env |  | 
 |  | Instances |  |  | 
 | 
|  | 
| data VJunc | 
|  | 
|  | 
| data JuncType | 
|  | 
|  | 
| data SubType | 
| | Constructors |  | | SubMethod |  |  | SubRoutine |  |  | SubBlock |  |  | SubPrim |  | 
 |  | Instances |  |  | 
 | 
|  | 
| isSlurpy :: Param -> Bool | 
|  | 
| data Param | 
| | Constructors |  | | MkParam |  |  | | isInvocant :: !Bool |  |  | isOptional :: !Bool |  |  | isNamed :: !Bool |  |  | isLValue :: !Bool |  |  | isWritable :: !Bool |  |  | isLazy :: !Bool |  |  | paramName :: !String |  |  | paramContext :: !Cxt |  |  | paramDefault :: !Exp |  | 
 | 
 |  | Instances |  |  | 
 | 
|  | 
| type Params = [Param] | 
|  | 
| type Bindings = [(Param, Exp)] | 
|  | 
| type SlurpLimit = [(VInt, Exp)] | 
|  | 
| data VCode | 
|  | 
|  | 
| mkPrim :: VCode | 
|  | 
| mkSub :: VCode | 
|  | 
| data Pos | 
| | Constructors |  | | MkPos |  |  | | posName :: !String |  |  | posBeginLine :: !Int |  |  | posBeginColumn :: !Int |  |  | posEndLine :: !Int |  |  | posEndColumn :: !Int |  | 
 | 
 |  | Instances |  |  | 
 | 
|  | 
| data Exp | 
|  | 
|  | 
| class Unwrap a  where | 
|  | 
|  | 
| fromVals :: Value n => Val -> Eval [n] | 
|  | 
| extractExp :: Exp -> ([Exp], [String]) -> ([Exp], [String]) | 
|  | 
| extract :: Exp -> [String] -> (Exp, [String]) | 
|  | 
| cxtOfSigil :: Char -> Cxt | 
|  | 
| typeOfSigil :: Char -> Type | 
|  | 
| buildParam :: String -> String -> String -> Exp -> Param | 
|  | 
| defaultArrayParam :: Param | 
|  | 
| defaultHashParam :: Param | 
|  | 
| defaultScalarParam :: Param | 
|  | 
| type DebugInfo = Maybe (TVar (Map String String)) | 
|  | 
| data Env | 
| | Environment |  | Constructors |  | | Env |  |  | | envContext :: !Cxt | Current context |  | envLValue :: !Bool | LValue context? |  | envLexical :: !Pad | Lexical pad |  | envGlobal :: !(TVar Pad) | Global pad |  | envClasses :: !ClassTree | Current class tree |  | envEval :: !(Exp -> Eval Val) | Active evaluator |  | envCaller :: !(Maybe Env) | Caller's env |  | envBody :: !Exp | Current AST |  | envDepth :: !Int | Recursion depth |  | envID :: !Unique | Unique ID of Env |  | envDebug :: !DebugInfo | Debug info map |  | envStash :: !String | Misc. stash |  | envPos :: !Pos | Source position range | 
 | 
 |  | Instances |  |  | 
 | 
|  | 
| envWant :: Env -> String | 
|  | 
| data Pad | 
| | Constructors |  | | MkPad !(Map Var [(TVar Bool, TVar VRef)]) |  | 
 |  | Instances |  |  | 
 | 
|  | 
| mkPad :: [(Var, [(TVar Bool, TVar VRef)])] -> Pad | 
|  | 
| lookupPad :: Var -> Pad -> Maybe [TVar VRef] | 
|  | 
| padToList :: Pad -> [(Var, [(TVar Bool, TVar VRef)])] | 
|  | 
| diffPads :: Pad -> Pad -> Pad | 
|  | 
| unionPads :: Pad -> Pad -> Pad | 
|  | 
| genMultiSym :: MonadSTM m => String -> VRef -> m (Pad -> Pad) | 
|  | 
| genSym :: MonadSTM m => String -> VRef -> m (Pad -> Pad) | 
|  | 
| show' :: Show a => a -> String | 
|  | 
| data Scope | 
| | Constructors |  | | SGlobal |  |  | SMy |  |  | SOur |  |  | SLet |  |  | STemp |  |  | SState |  | 
 |  | Instances |  |  | 
 | 
|  | 
| type Eval x = EvalT (ContT Val (ReaderT Env SIO)) x | 
|  | 
| type EvalMonad = EvalT (ContT Val (ReaderT Env SIO)) | 
|  | 
| newtype EvalT m a | 
|  | 
|  | 
| data SIO a | 
| | Constructors |  | | MkSTM !(STM a) |  |  | MkIO !(IO a) |  |  | MkSIO !a |  | 
 |  | Instances |  |  | 
 | 
|  | 
| runSTM :: SIO a -> STM a | 
|  | 
| runIO :: SIO a -> IO a | 
|  | 
| runEvalSTM :: Env -> Eval Val -> STM Val | 
|  | 
| runEvalIO :: Env -> Eval Val -> IO Val | 
|  | 
| shiftT :: ((a -> Eval Val) -> Eval Val) -> Eval a | 
|  | 
| resetT :: Eval Val -> Eval Val | 
|  | 
| class Monad m => MonadSTM m  where | 
|  | 
|  | 
| runEvalMain :: Env -> Eval Val -> IO Val | 
|  | 
| findSymRef :: MonadSTM m => String -> Pad -> m VRef | 
|  | 
| findSym :: String -> Pad -> Maybe (TVar VRef) | 
|  | 
| class (MonadReader Env m, MonadCont m, MonadIO m, MonadSTM m) => MonadEval m  where | 
|  | 
|  | 
| Produced by Haddock version ADDOCK_VERSION |