summaryrefslogtreecommitdiff
path: root/src/mono_fm.sig
blob: a72a5da7798ef528bbca3eb3b6d9aecfd28b3306 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
signature MONO_FM = sig
    type t

    type vr = string * int * Mono.typ * Mono.exp * string

    datatype foo_kind =
             Attr
             | Url

    val empty : int -> t

    val lookup : t -> foo_kind -> int -> (int -> t -> vr * t) -> t * int
    val lookupList : t -> foo_kind -> Mono.typ -> (int -> t -> vr * t) -> t * int
    val enter : t -> t
    val decls : t -> Mono.decl list

    val freshName : t -> int * t

    (* TODO: don't expose raw references if possible. *)
    val nextPvar : int ref
    val postMonoize : t ref
end