package libsail

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Module Libsail.InterpreterSource

Sourcemodule VariableUpdate : sig ... end
Sourcetype state = lstate * gstate
Sourcetype return_value = Semantics.return_value
Sourcemodule Monad : sig ... end
Sourcetype frame =
  1. | Done of state * Value_type.value
  2. | Step of string Lazy.t * state * Type_check.tannot Ast.exp Monad.t * (string Lazy.t * lstate * (return_value -> Type_check.tannot Ast.exp Monad.t)) list
  3. | Break of frame
  4. | Effect_request of string Lazy.t * state * (string Lazy.t * lstate * (return_value -> Type_check.tannot Ast.exp Monad.t)) list * effect_request
  5. | Fail of string Lazy.t * state * Type_check.tannot Ast.exp Monad.t * (string Lazy.t * lstate * (return_value -> Type_check.tannot Ast.exp Monad.t)) list * string
Sourceand effect_request =
  1. | Read_reg of string * VariableUpdate.accessor list * Value_type.value -> state -> frame
  2. | Write_reg of string * VariableUpdate.accessor list * Value_type.value * unit -> state -> frame
  3. | Outcome of Ast.id * Value_type.value list * return_value -> Type_check.tannot Ast.exp Monad.t
Sourceval stack_string : (string Lazy.t * lstate * (return_value -> Type_check.tannot Ast.exp Monad.t)) -> string Lazy.t
Sourceval eval_frame : frame -> frame
Sourceval default_effect_interp : string Lazy.t -> state -> (string Lazy.t * lstate * (return_value -> Type_check.tannot Ast.exp Monad.t)) list -> effect_request -> frame
Sourceval effect_interp : (string Lazy.t -> state -> (string Lazy.t * lstate * (return_value -> Type_check.tannot Ast.exp Monad.t)) list -> effect_request -> frame) ref
Sourceval initial_state : ?registers:bool -> ?undef_registers:bool -> Type_check.typed_ast -> Type_check.env -> (Value_type.value list -> Value_type.value) Value.StringMap.t -> state