Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Diff of /sml/branches/SMLNJ/src/compiler/FLINT/kernel/ltydef.sig
ViewVC logotype

Diff of /sml/branches/SMLNJ/src/compiler/FLINT/kernel/ltydef.sig

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 17, Wed Mar 11 21:00:18 1998 UTC revision 24, Thu Mar 12 00:49:58 1998 UTC
# Line 13  Line 13 
13  sig  sig
14    
15  (** basic entities *)  (** basic entities *)
16    type tkind = LtyKernel.tkind
17  type index = DebIndex.index  type index = DebIndex.index
18  type depth = DebIndex.depth  type depth = DebIndex.depth
19  type primtyc = PrimTyc.primtyc  type primtyc = PrimTyc.primtyc
20  type tvar = LtyKernel.tvar  type tvar = LtyKernel.tvar
   
 type fflag = LtyKernel.fflag  
 type rflag = LtyKernel.rflag  
   
 val default_fflag : fflag  
 val default_rflag : rflag  
   
 type tkind = LtyKernel.tkind  
21  type tyc = LtyKernel.tyc  type tyc = LtyKernel.tyc
22  type lty = LtyKernel.lty  type lty = LtyKernel.lty
23    type rawflag = bool * bool  (* should be equivalent to LtyKernel.rawflag *)
24    
25  (*  (*
26   * FLINT tkind is roughly equivalent to the following ML datatype   * FLINT tkind is roughly equivalent to the following ML datatype
# Line 46  Line 40 
40  val tkc_mono   : tkind  val tkc_mono   : tkind
41  val tkc_box    : tkind  val tkc_box    : tkind
42  val tkc_seq    : tkind list -> tkind  val tkc_seq    : tkind list -> tkind
43  val tkc_fun    : tkind list * tkind -> tkind  val tkc_fun    : tkind * tkind -> tkind
44    
45  (** tkind deconstructors *)  (** tkind deconstructors *)
46  val tkd_mono   : tkind -> unit  val tkd_mono   : tkind -> unit
47  val tkd_box    : tkind -> unit  val tkd_box    : tkind -> unit
48  val tkd_seq    : tkind -> tkind list  val tkd_seq    : tkind -> tkind list
49  val tkd_fun    : tkind -> tkind list * tkind  val tkd_fun    : tkind -> tkind * tkind
50    
51  (** tkind predicates *)  (** tkind predicates *)
52  val tkp_mono   : tkind -> bool  val tkp_mono   : tkind -> bool
# Line 64  Line 58 
58  val tkw_mono   : tkind * (unit -> 'a) * (tkind -> 'a) -> 'a  val tkw_mono   : tkind * (unit -> 'a) * (tkind -> 'a) -> 'a
59  val tkw_box    : tkind * (unit -> 'a) * (tkind -> 'a) -> 'a  val tkw_box    : tkind * (unit -> 'a) * (tkind -> 'a) -> 'a
60  val tkw_seq    : tkind * (tkind list -> 'a) * (tkind -> 'a) -> 'a  val tkw_seq    : tkind * (tkind list -> 'a) * (tkind -> 'a) -> 'a
61  val tkw_fun    : tkind * (tkind list * tkind -> 'a) * (tkind -> 'a) -> 'a  val tkw_fun    : tkind * (tkind * tkind -> 'a) * (tkind -> 'a) -> 'a
62    
63    
64  (*  (*
# Line 83  Line 77 
77   *      | TC_ABS of tyc                    (* currently not used *)   *      | TC_ABS of tyc                    (* currently not used *)
78   *      | TC_BOX of tyc                    (* used by rep analysis only *)   *      | TC_BOX of tyc                    (* used by rep analysis only *)
79   *      | TC_TUPLE of tyc list   *      | TC_TUPLE of tyc list
80   *      | TC_ARROW of fflag * tyc list * tyc list   *      | TC_ARROW of rawflag * tyc list * tyc list
81   *   *
82   * We treat tyc as an abstract type so we can no longer use   * We treat tyc as an abstract type so we can no longer use
83   * pattern matching. Type applications (TC_APP) and projections   * pattern matching. Type applications (TC_APP) and projections
# Line 106  Line 100 
100  val tcc_abs    : tyc -> tyc  val tcc_abs    : tyc -> tyc
101  val tcc_box    : tyc -> tyc  val tcc_box    : tyc -> tyc
102  val tcc_tuple  : tyc list -> tyc  val tcc_tuple  : tyc list -> tyc
103  val tcc_arrow  : fflag * tyc list * tyc list -> tyc  val tcc_arrow  : rawflag * tyc list * tyc list -> tyc
104    
105  (** tyc deconstructors *)  (** tyc deconstructors *)
106  val tcd_var    : tyc -> index * int  val tcd_var    : tyc -> index * int
# Line 121  Line 115 
115  val tcd_abs    : tyc -> tyc  val tcd_abs    : tyc -> tyc
116  val tcd_box    : tyc -> tyc  val tcd_box    : tyc -> tyc
117  val tcd_tuple  : tyc -> tyc list  val tcd_tuple  : tyc -> tyc list
118  val tcd_arrow  : tyc -> fflag * tyc list * tyc list  val tcd_arrow  : tyc -> rawflag * tyc list * tyc list
119    
120  (** tyc predicates *)  (** tyc predicates *)
121  val tcp_var    : tyc -> bool  val tcp_var    : tyc -> bool
# Line 151  Line 145 
145  val tcw_abs    : tyc * (tyc -> 'a) * (tyc -> 'a) -> 'a  val tcw_abs    : tyc * (tyc -> 'a) * (tyc -> 'a) -> 'a
146  val tcw_box    : tyc * (tyc -> 'a) * (tyc -> 'a) -> 'a  val tcw_box    : tyc * (tyc -> 'a) * (tyc -> 'a) -> 'a
147  val tcw_tuple  : tyc * (tyc list -> 'a) * (tyc -> 'a) -> 'a  val tcw_tuple  : tyc * (tyc list -> 'a) * (tyc -> 'a) -> 'a
148  val tcw_arrow  : tyc * (fflag * tyc list * tyc list -> 'a)  val tcw_arrow  : tyc * (rawflag * tyc list * tyc list -> 'a)
149                       * (tyc -> 'a) -> 'a                       * (tyc -> 'a) -> 'a
150    
151    
# Line 209  Line 203 
203  val ltc_var    : index * int -> lty  val ltc_var    : index * int -> lty
204  val ltc_prim   : primtyc -> lty  val ltc_prim   : primtyc -> lty
205  val ltc_tuple  : lty list -> lty  val ltc_tuple  : lty list -> lty
206  val ltc_arrow  : fflag * lty list * lty list -> lty  val ltc_arrow  : rawflag * lty list * lty list -> lty
207    
208  (** tyc-lty deconstructors *)  (** tyc-lty deconstructors *)
209  val ltd_var    : lty -> index * int  val ltd_var    : lty -> index * int
210  val ltd_prim   : lty -> primtyc  val ltd_prim   : lty -> primtyc
211  val ltd_tuple  : lty -> lty list  val ltd_tuple  : lty -> lty list
212  val ltd_arrow  : lty -> fflag * lty list * lty list  val ltd_arrow  : lty -> rawflag * lty list * lty list
213    
214  (** tyc-lty predicates *)  (** tyc-lty predicates *)
215  val ltp_var    : lty -> bool  val ltp_var    : lty -> bool
# Line 227  Line 221 
221  val ltw_var    : lty * (index * int -> 'a) * (lty -> 'a) -> 'a  val ltw_var    : lty * (index * int -> 'a) * (lty -> 'a) -> 'a
222  val ltw_prim   : lty * (primtyc -> 'a) * (lty -> 'a) -> 'a  val ltw_prim   : lty * (primtyc -> 'a) * (lty -> 'a) -> 'a
223  val ltw_tuple  : lty * (tyc list -> 'a) * (lty -> 'a) -> 'a  val ltw_tuple  : lty * (tyc list -> 'a) * (lty -> 'a) -> 'a
224  val ltw_arrow  : lty * (fflag * tyc list * tyc list -> 'a)  val ltw_arrow  : lty * (rawflag * tyc list * tyc list -> 'a)
225                       * (lty -> 'a) -> 'a                       * (lty -> 'a) -> 'a
226    
227    

Legend:
Removed from v.17  
changed lines
  Added in v.24

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0