imperative-edsl-0.8: Deep embedding of imperative programs with code generation

Language.Embedded.Traversal

Description

Methods for traversing programs

Synopsis

Documentation

class DryInterp instr where Source #

Dry (effect-less) interpretation of an instruction. This class is like Interp without the monad parameter, so it cannot have different instances for different monads.

Methods

dryInterp :: MonadSupply m => instr '(m, fs) a -> m a Source #

Dry interpretation of an instruction. This function is like interp except that it interprets in any monad that can supply fresh variables.

Instances