| Copyright | (c) Edward Kmett and Dan Doel 2014 |
|---|---|
| License | BSD3 |
| Maintainer | Dan Doel <dan.doel@gmail.com> |
| Stability | experimental |
| Portability | non-portable |
| Safe Haskell | None |
| Language | Haskell2010 |
Ermine.Interpreter
Description
Documentation
Constructors
| Closure | |
Fields
| |
| PartialApplication | |
Fields
| |
| BlackHole | |
| PrimClosure (MachineState m -> m ()) | |
closureCode :: forall m. Traversal' (Closure m) LambdaForm Source
closureEnv :: forall m. Traversal' (Closure m) (Env m) Source
allocPrimOp :: (Functor m, PrimMonad m) => (MachineState m -> m ()) -> m (Address m) Source
allocGlobal :: (Eq c, Functor m, PrimMonad m) => (c -> SortRef) -> Core Convention c -> m (Address m) Source
Instances
| Default (Env m) |
data MachineState m Source
trace :: forall m. Lens' (MachineState m) (String -> m ()) Source
eval :: (Applicative m, PrimMonad m) => G -> Env m -> MachineState m -> m () Source
defaultMachineState :: (Applicative m, PrimMonad m) => Int -> HashMap Id (Address m) -> m (MachineState m) Source
primOpNZ :: PrimMonad m => (a -> m ()) -> MachineState m -> m () Source
primOpNN :: (Applicative m, PrimMonad m) => (a -> m b) -> MachineState m -> m () Source
primOpUN :: (Applicative m, PrimMonad m) => (Word64 -> m b) -> MachineState m -> m () Source
primOpNU :: (Applicative m, PrimMonad m) => (a -> m Word64) -> MachineState m -> m () Source
primOpNNN :: (Applicative m, PrimMonad m) => (a -> b -> m c) -> MachineState m -> m () Source
primOpUUU :: (Applicative m, PrimMonad m) => (Word64 -> Word64 -> Word64) -> MachineState m -> m () Source