open Types
open Values

type 'inst t = 'inst func
and 'inst func =
  | AstFunc of func_type * 'inst * Ast.func
  | HostFunc of func_type * (value list -> value list)
  | GasIntrinsic
  | StackIntrinsic
  | UnstackIntrinsic

val alloc : func_type -> 'inst -> Ast.func -> 'inst func
val alloc_host : func_type -> (value list -> value list) -> 'inst func
val type_of : 'inst func -> func_type
