| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Parsley.Internal.Backend.Machine.Instructions
Documentation
data Instr (o :: rep) (k :: [Type] -> Nat -> Type -> Type -> Type) (xs :: [Type]) (n :: Nat) (r :: Type) (a :: Type) where Source #
Constructors
| 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 |
pattern If :: Fix4 (Instr o) xs n r a -> Fix4 (Instr o) xs n r a -> Instr o (Fix4 (Instr o)) (Bool ': xs) n r a Source #
pattern Fmap :: Defunc (x -> y) -> Fix4 (Instr o) (y ': xs) n r a -> Instr o (Fix4 (Instr o)) (x ': xs) n r a Source #
pattern App :: Fix4 (Instr o) (y ': xs) n r a -> Instr o (Fix4 (Instr o)) (x ': ((x -> y) ': xs)) n r a Source #
mkCoin :: (Int -> MetaInstr n) -> Int -> Fix4 (Instr o) xs n r a -> Fix4 (Instr o) xs n r a Source #