helma-0.8.4.14: HELMA - Haskellish Esoteric Limited Minimal Automaton
Safe HaskellNone
LanguageHaskell2010

HelVM.HelMA.Automaton.Combiner.ALU

Synopsis

Documentation

runALI :: ALU m ll element => SMInstruction -> ll -> m ll #

runSAL :: SafeStack m ll element => SPureInstruction -> ll -> m ll #

doOutputChar2 :: ALU m ll element => ll -> m ll #

IO instructions

doInputChar2 :: ALU m ll element => ll -> m ll #

doInputDec2 :: ALU m ll element => ll -> m ll #

divMod :: SafeStack m ll element => ll -> m ll #

sub :: SafeStack m ll element => ll -> m ll #

binaryInstruction :: SafeStack m ll element => BinaryOperation -> ll -> m ll #

binaryInstructions :: SafeStack m ll element => [BinaryOperation] -> ll -> m ll #

halibut :: SafeStack m ll element => ll -> m ll #

Halibut and Pick instructions

move :: SafeStack m ll element => Index -> ll -> m ll #

Move instructions

discard :: (MonadSafe m, ListLike full item) => full -> m full #

slide :: SafeStack m ll element => Index -> ll -> m ll #

Slide instructions

copy :: SafeStack m ll element => Index -> ll -> m ll #

Copy instructions

flipPush1 :: Stack ll element => ll -> element -> ll #

charPush1 :: (Num element, Stack ll element) => Char -> ll -> ll #

genericPush1 :: (Integral v, Num element, Stack ll element) => v -> ll -> ll #

pop1 :: SafeStack m ll element => ll -> m (element, ll) #

Pop instructions

pop2 :: SafeStack m ll element => ll -> m (element, element, ll) #

push1 :: Stack ll element => element -> ll -> ll #

push2 :: Stack ll element => element -> element -> ll -> ll #

splitAt :: ListLike full item => Int -> full -> (full, full) #

drop :: ListLike full item => Int -> full -> full #

type ALU m ll element = (BIO m, SafeStack m ll element) #

Types

type SafeStack m ll element = (MonadSafe m, IntegralStack ll element) #

type Stack ll element = (Show ll, ListLike ll element, IndexSafe ll element) #