Import Debian changes 20180207-1
[hcoop/debian/mlton.git] / mlton / atoms / generic-scheme.sig
1 (* Copyright (C) 1999-2007 Henry Cejtin, Matthew Fluet, Suresh
2 * Jagannathan, and Stephen Weeks.
3 * Copyright (C) 1997-2000 NEC Research Institute.
4 *
5 * MLton is released under a BSD-style license.
6 * See the file MLton-LICENSE for details.
7 *)
8
9 signature GENERIC_SCHEME_STRUCTS =
10 sig
11 structure Tyvar: TYVAR
12 structure Type: sig
13 type t
14 val var: Tyvar.t -> t
15 val substitute: t * (Tyvar.t * t) vector -> t
16 val layout: t -> Layout.t
17 end
18 end
19
20 signature GENERIC_SCHEME =
21 sig
22 type tyvar
23 type ty
24
25 datatype t = T of {tyvars: tyvar vector,
26 ty: ty}
27
28 val apply: t * ty vector -> ty
29 val layout: t -> Layout.t
30 val ty: t -> ty
31 end