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 /papers/modulespaper/dissertation/inexplicitness.tex
ViewVC logotype

View of /papers/modulespaper/dissertation/inexplicitness.tex

Parent Directory Parent Directory | Revision Log Revision Log

Revision 3564 - (download) (as text) (annotate)
Thu Sep 30 13:33:05 2010 UTC (8 years, 9 months ago) by dbm
File size: 1149 byte(s)
initial import
%!TEX root = main.tex


The problem of inexplicit types manifests itself the avoidance problem. The avoidance problem says that there is no best principal syntactic signature for the expression \lstinline{let X = struct type t = int val x = 1 end :> sig type t val x : t end in struct val y = X.t end}. For a statically impure X, the expression does not have a principal signature that \emph{avoids} mentioning X. The approach for giving a principal signature is to promote the signature of the let expression to a matching supersignature, but there is no single best supersignature. Instead, there are a lot of incomparable supersignatures. This same problem occurs even at the level of functor application. If the argument in a functor application is impure, then the functor body's principal syntactic signature cannot avoid mentioning the argument. 

[It appears that the problem of avoidance is not a question of purity but of the transparency of types. Using Dreyer's weakest sealing, the basic sealing that only hides the definition of types without introducing any dependencies, the problem of avoidance remains.]

ViewVC Help
Powered by ViewVC 1.0.0