package rfsm

  1. Overview
  2. Docs
type date = int
type dir =
  1. | IO_In
  2. | IO_Out
  3. | IO_Inout
module VarSet : sig ... end
module Index : sig ... end
type typ =
  1. | TyEvent
  2. | TyBool
  3. | TyEnum of name * string list
  4. | TyInt of siz
  5. | TyFloat
  6. | TyChar
  7. | TyArray of Index.t * typ
  8. | TyVar of typ var
  9. | TyArrow of typ * typ
  10. | TyProduct of typ list
  11. | TyRecord of name * (string * typ) list
and siz =
  1. | SzExpr1 of Index.t
  2. | SzExpr2 of Index.t * Index.t
  3. | SzVar of siz var
and name =
  1. | NmLit of string
  2. | NmVar of name var
and !'a var = {
  1. stamp : string;
  2. mutable value : 'a value;
}
and !'a value =
  1. | Unknown
  2. | Known of 'a
type typ_scheme = {
  1. ts_tparams : typ var list;
  2. ts_sparams : siz var list;
  3. ts_body : typ;
}
val make_var : unit -> 'a var
val new_type_var : unit -> typ
val new_size_var : unit -> siz
val new_name_var : unit -> name
val real_type : typ -> typ
val real_size : siz -> siz
val real_name : name -> name
val no_type : typ
val type_int : int list -> typ
exception TypeConflict of typ * typ
exception TypeCircularity of typ * typ
val is_event_type : typ -> bool
val ivars_of : typ -> string list
val enums_of : typ -> (string * typ) list
val size_of : typ -> int
val subtype_of : typ -> typ
val is_lit_name : name -> bool
val subst_indexes : Index.env -> typ -> typ
val type_equal : strict:bool -> typ -> typ -> bool
val unify : typ -> typ -> unit
val type_instance : typ_scheme -> typ
val string_of_type_scheme : typ_scheme -> string
val string_of_type : ?szvars:bool -> typ -> string
val string_of_name : name -> string
OCaml

Innovation. Community. Security.