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

SCM Repository

[smlnj] View of /sml/trunk/src/compiler/FLINT/plambda/pflatten.sig
ViewVC logotype

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 419 - (download) (as text) (annotate)
Fri Sep 3 23:51:27 1999 UTC (19 years, 10 months ago) by monnier
File size: 1533 byte(s)
This commit was generated by cvs2svn to compensate for changes in r418,
which included commits to RCS files with non-trunk default branches.
(* Copyright (c) 1997 YALE FLINT PROJECT *)
(* pflatten.sml *)

signature PFLATTEN =
sig
    type llty  = PLambda.lty
    type ltyc  = PLambda.tyc
    type flty  = FLINT.lty
    type ftyc  = FLINT.tyc
    type lexp  = FLINT.lexp
    type value = FLINT.value
    type lvar  = FLINT.lvar

    (* the following functions are used in flintnm.sml *)
    val ltc_raw      : llty -> flty
    val tcc_raw      : ltyc -> ftyc

    val t_pflatten   : llty -> bool * llty list * bool

    val v_punflatten : llty -> ((bool * llty list * bool) *
                                  ((lvar * lexp) -> (lvar list * lexp)))

    val v_pflatten   : llty -> ((bool * llty list * bool) *
                                  (value -> (value list * (lexp -> lexp))))

    (* the following functions are used during type specialization in FLINT *)
    val t_flatten    : (flty list * bool) -> bool * flty list * bool

    val v_unflatten  : (flty list * bool) -> 
                           ((bool * flty list * bool) *
                            ((lvar list * lexp) -> (lvar list * lexp)))

    val v_flatten    : (flty list * bool) -> 
                           ((bool * flty list * bool) *
                            (value list -> (value list * (lexp -> lexp))))

    (* the following function is used by representation analysis in FLINT *)
    val v_coerce     : bool * ftyc list * ftyc list -> 
                         (ftyc list * 
                          (value list -> (value list * (lexp -> lexp))) option)

end (* signature PFLATTEN *)





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