Safe Haskell | None |
---|---|
Language | Haskell2010 |
Documentation
data Instr (o :: Type) (k :: [Type] -> Nat -> Type -> Type -> Type) (xs :: [Type]) (n :: Nat) (r :: Type) (a :: Type) where Source #
Ret :: Instr o k '[x] n x a | |
Push :: Defunc x -> k (x ': xs) n r a -> Instr o k xs n r a | |
Pop :: k xs n r a -> Instr o k (x ': xs) n r a | |
Lift2 :: Defunc (x -> y -> z) -> k (z ': xs) n r a -> Instr o k (y ': (x ': xs)) n r a | |
Sat :: Defunc (Char -> Bool) -> k (Char ': xs) (Succ n) r a -> Instr o k xs (Succ n) r a | |
Call :: MVar x -> k (x ': xs) (Succ n) r a -> Instr o k xs (Succ n) r a | |
Jump :: MVar x -> Instr o k '[] (Succ n) x a | |
Empt :: Instr o k xs (Succ n) r a | |
Commit :: k xs n r a -> Instr o k xs (Succ n) r a | |
Catch :: k xs (Succ n) r a -> k (o ': xs) n r a -> Instr o k xs n r a | |
Tell :: k (o ': xs) n r a -> Instr o k xs n r a | |
Seek :: k xs n r a -> Instr o k (o ': xs) n r a | |
Case :: k (x ': xs) n r a -> k (y ': xs) n r a -> Instr o k (Either x y ': xs) n r a | |
Choices :: [Defunc (x -> Bool)] -> [k xs n r a] -> k xs n r a -> Instr o k (x ': xs) n r a | |
Iter :: MVar Void -> k '[] One Void a -> k (o ': xs) n r a -> Instr o k xs n r a | |
Join :: ΦVar x -> Instr o k (x ': xs) n r a | |
MkJoin :: ΦVar x -> k (x ': xs) n r a -> k xs n r a -> Instr o k xs n r a | |
Swap :: k (x ': (y ': xs)) n r a -> Instr o k (y ': (x ': xs)) n r a | |
Dup :: k (x ': (x ': xs)) n r a -> Instr o k (x ': xs) n r a | |
Make :: ΣVar x -> Access -> k xs n r a -> Instr o k (x ': xs) n r a | |
Get :: ΣVar x -> Access -> k (x ': xs) n r a -> Instr o k xs n r a | |
Put :: ΣVar x -> Access -> k xs n r a -> Instr o k (x ': xs) n r a | |
LogEnter :: String -> k xs (Succ (Succ n)) r a -> Instr o k xs (Succ n) r a | |
LogExit :: String -> k xs n r a -> Instr o k xs n r a | |
MetaInstr :: MetaInstr n -> k xs n r a -> Instr o k xs n r a |
mkCoin :: (Int -> MetaInstr n) -> Int -> Fix4 (Instr o) xs n r a -> Fix4 (Instr o) xs n r a Source #
_App :: Fix4 (Instr o) (y ': xs) n r a -> Instr o (Fix4 (Instr o)) (x ': ((x -> y) ': xs)) n r a Source #
_Fmap :: Defunc (x -> y) -> Fix4 (Instr o) (y ': xs) n r a -> Instr o (Fix4 (Instr o)) (x ': xs) n r a Source #