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/trunk/src/compiler/FLINT/plambda/pflatten.sig
ViewVC logotype

Diff of /sml/trunk/src/compiler/FLINT/plambda/pflatten.sig

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

revision 44, Sun Mar 22 20:10:57 1998 UTC revision 45, Sun Mar 22 20:11:09 1998 UTC
# Line 1  Line 1 
1    (* Copyright (c) 1997 YALE FLINT PROJECT *)
2    (* pflatten.sml *)
3    
4  signature PFLATTEN =  signature PFLATTEN =
5  sig  sig
# Line 9  Line 11 
11      type value = FLINT.value      type value = FLINT.value
12      type lvar = FLINT.lvar      type lvar = FLINT.lvar
13    
14      val all_flatten : llty -> (llty list * bool *      (* the following functions are used in flintnm.sml *)
15                                 ((lvar * lexp) -> (lvar list * lexp)) *      val ltc_raw      : llty -> flty
16        val tcc_raw      : ltyc -> ftyc
17    
18        val t_pflatten   : llty -> bool * llty list * bool
19    
20        val v_punflatten : llty -> ((bool * llty list * bool) *
21                                      ((lvar * lexp) -> (lvar list * lexp)))
22    
23        val v_pflatten   : llty -> ((bool * llty list * bool) *
24                                 (value -> (value list * (lexp -> lexp))))                                 (value -> (value list * (lexp -> lexp))))
25    
26      val ltc_flat    : llty -> llty list      (* the following functions are used during type specialization in FLINT *)
27      val ltp_flat    : llty -> bool      val t_flatten    : (flty list * bool) -> bool * flty list * bool
28      val v_unflatten : llty -> (lvar * lexp) -> (lvar list * lexp)  
29      val v_flatten   : llty -> value -> (value list * (lexp -> lexp))      val v_unflatten  : (flty list * bool) ->
30                               ((bool * flty list * bool) *
31                                ((lvar list * lexp) -> (lvar list * lexp)))
32    
33        val v_flatten    : (flty list * bool) ->
34                               ((bool * flty list * bool) *
35                                (value list -> (value list * (lexp -> lexp))))
36    
37        (* the following function is used by representation analysis in FLINT *)
38        val v_coerce     : bool * ftyc list * ftyc list ->
39                             (ftyc list *
40                              (value list -> (value list * (lexp -> lexp))) option)
41    
42    end (* signature PFLATTEN *)
43    
44    
     (* recursively turn cooked types into raw when possible *)  
     val ltc_raw : llty -> flty  
     val tcc_raw : ltyc -> ftyc  
45    
 end  

Legend:
Removed from v.44  
changed lines
  Added in v.45

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