LAM-0.1.0.0
Safe HaskellSafe-Inferred
LanguageHaskell2010

LAM.IsLAM

Description

This package defines many abstract machines, so we define a type to work with them.

Synopsis

Documentation

data IsLAM (m :: Type -> Type) e s t #

A record that holds initialization and step functions for an abstract machine.

Constructors

IsLAM 

Fields

runTrace :: Monad m => IsLAM m e s t -> t -> m [s] #

Run the abstract machine to the final state and return a trace of the whole execution.

runTraceFinite :: Monad m => Word -> IsLAM m e s t -> t -> m [s] #

Run the abstract machine a given number of steps and return a trace of the whole execution.

evalPrint :: Show s => IsLAM IO e s t -> t -> IO () #

Run the abstract machine and print the final state.

evalHnf :: Monad m => IsLAM m e s t -> (s -> m t) -> t -> m t #

Run the abstract machine and convert the final state back to a term using the supplied conversion function.