Project

General

Profile

Download (1.02 KB) Statistics
| Branch: | Tag: | Revision:
1
open Lustre_types
2

    
3
val type_const: ?is_annot:bool -> Location.t -> constant -> Types.t
4
val type_node: Types.t Env.t -> node_desc -> Location.t -> Types.t Env.t
5

    
6

    
7
module type EXPR_TYPE_HUB = sig
8
  type type_expr
9

    
10
  val import : Types.t -> type_expr
11

    
12
  val export : type_expr -> Types.t
13
end
14

    
15
module Make(T: Types.S) (Expr_type_hub: EXPR_TYPE_HUB with type type_expr = T.t) : sig
16
  val type_expr: ?is_annot:bool -> T.t Env.t * 'a -> bool -> bool -> expr -> T.t
17
  val generalize: T.t -> unit
18
end
19

    
20
val try_unify: ?sub:bool -> ?semi:bool -> Types.t -> Types.t -> Location.t -> unit
21

    
22
val type_var_decl_list: 'a -> Types.t Env.t -> var_decl list -> Types.t Env.t
23

    
24
val type_prog: Types.t Env.t -> program_t -> Types.t Env.t
25

    
26
val check_typedef_compat: top_decl list -> unit
27

    
28
val check_env_compat: top_decl list -> Types.t Env.t -> Types.t Env.t -> unit
29

    
30
val uneval_prog_generics: program_t -> unit
31

    
32
(* Equality on ground types only *)
33
(* Should be used between local variables which must have a ground type *)
34
val eq_ground: Types.t -> Types.t -> bool
(103-103/111)