|
From: Stephen W. <sw...@ml...> - 2006-10-25 15:48:41
|
Grabbed wiki. ---------------------------------------------------------------------- U mlton/trunk/doc/guide/AST U mlton/trunk/doc/guide/AccessControl U mlton/trunk/doc/guide/AdmitsEquality U mlton/trunk/doc/guide/Alice U mlton/trunk/doc/guide/AllocateRegisters U mlton/trunk/doc/guide/AndreiFormiga A mlton/trunk/doc/guide/ArrayLiteral U mlton/trunk/doc/guide/BasisLibrary U mlton/trunk/doc/guide/Bug U mlton/trunk/doc/guide/Bugs20041109 A mlton/trunk/doc/guide/Bugs20051202 U mlton/trunk/doc/guide/CKitLibrary A mlton/trunk/doc/guide/CMinusMinus U mlton/trunk/doc/guide/CallGraph U mlton/trunk/doc/guide/CallingFromCToSML U mlton/trunk/doc/guide/CallingFromSMLToC U mlton/trunk/doc/guide/CallingFromSMLToCFunctionPointer U mlton/trunk/doc/guide/ChrisClearwater U mlton/trunk/doc/guide/Chunkify U mlton/trunk/doc/guide/Closure U mlton/trunk/doc/guide/ClosureConvert U mlton/trunk/doc/guide/CommonArg U mlton/trunk/doc/guide/CommonBlock U mlton/trunk/doc/guide/CommonSubexp U mlton/trunk/doc/guide/CompilationManager U mlton/trunk/doc/guide/CompileTimeOptions U mlton/trunk/doc/guide/CompilerOverview U mlton/trunk/doc/guide/CompilerPassTemplate A mlton/trunk/doc/guide/CompilingWithSMLNJ U mlton/trunk/doc/guide/ConcurrentML U mlton/trunk/doc/guide/ConcurrentMLImplementation U mlton/trunk/doc/guide/ConstantPropagation U mlton/trunk/doc/guide/Contact U mlton/trunk/doc/guide/Contify U mlton/trunk/doc/guide/CoreML U mlton/trunk/doc/guide/CoreMLSimplify U mlton/trunk/doc/guide/CreatingPages U mlton/trunk/doc/guide/Credits U mlton/trunk/doc/guide/CrossCompiling U mlton/trunk/doc/guide/DeadCode U mlton/trunk/doc/guide/DeepFlatten U mlton/trunk/doc/guide/DefineTypeBeforeUse U mlton/trunk/doc/guide/DefinitionOfStandardML U mlton/trunk/doc/guide/Defunctorize U mlton/trunk/doc/guide/Developers U mlton/trunk/doc/guide/Development U mlton/trunk/doc/guide/Documentation U mlton/trunk/doc/guide/Drawbacks U mlton/trunk/doc/guide/Eclipse U mlton/trunk/doc/guide/EditingPages U mlton/trunk/doc/guide/Elaborate U mlton/trunk/doc/guide/Emacs U mlton/trunk/doc/guide/Enscript U mlton/trunk/doc/guide/EqualityType U mlton/trunk/doc/guide/EqualityTypeVariable A mlton/trunk/doc/guide/EtaExpansion U mlton/trunk/doc/guide/Experimental U mlton/trunk/doc/guide/FAQ U mlton/trunk/doc/guide/Features U mlton/trunk/doc/guide/FirstClassPolymorphism A mlton/trunk/doc/guide/Fixpoints U mlton/trunk/doc/guide/Flatten A mlton/trunk/doc/guide/Fold A mlton/trunk/doc/guide/Fold01N U mlton/trunk/doc/guide/ForLoops U mlton/trunk/doc/guide/ForeignFunctionInterface U mlton/trunk/doc/guide/ForeignFunctionInterfaceSyntax U mlton/trunk/doc/guide/ForeignFunctionInterfaceTypes U mlton/trunk/doc/guide/FrontEnd U mlton/trunk/doc/guide/FunctionalRecordUpdate U mlton/trunk/doc/guide/GarbageCollection U mlton/trunk/doc/guide/GenerativeDatatype U mlton/trunk/doc/guide/GenerativeException U mlton/trunk/doc/guide/Glade U mlton/trunk/doc/guide/Globalize U mlton/trunk/doc/guide/GnuMP U mlton/trunk/doc/guide/HaMLet U mlton/trunk/doc/guide/HenryCejtin U mlton/trunk/doc/guide/History U mlton/trunk/doc/guide/Home U mlton/trunk/doc/guide/HowProfilingWorks U mlton/trunk/doc/guide/Identifier U mlton/trunk/doc/guide/Immutable U mlton/trunk/doc/guide/ImperativeTypeVariable U mlton/trunk/doc/guide/ImplementExceptions U mlton/trunk/doc/guide/ImplementHandlers U mlton/trunk/doc/guide/ImplementProfiling U mlton/trunk/doc/guide/ImplementSuffix U mlton/trunk/doc/guide/Index U mlton/trunk/doc/guide/InfixingOperators U mlton/trunk/doc/guide/Inline U mlton/trunk/doc/guide/InsertLimitChecks U mlton/trunk/doc/guide/InsertSignalChecks U mlton/trunk/doc/guide/Installation U mlton/trunk/doc/guide/IntermediateLanguage U mlton/trunk/doc/guide/IntroduceLoops U mlton/trunk/doc/guide/JesperLouisAndersen U mlton/trunk/doc/guide/JohnnyAndersen U mlton/trunk/doc/guide/KnownCase A mlton/trunk/doc/guide/LLVM A mlton/trunk/doc/guide/LambdaCalculus U mlton/trunk/doc/guide/LambdaFree U mlton/trunk/doc/guide/LanguageChanges U mlton/trunk/doc/guide/Lazy U mlton/trunk/doc/guide/Libraries U mlton/trunk/doc/guide/License U mlton/trunk/doc/guide/LineDirective U mlton/trunk/doc/guide/LocalFlatten U mlton/trunk/doc/guide/LocalRef U mlton/trunk/doc/guide/LoopInvariant U mlton/trunk/doc/guide/ML U mlton/trunk/doc/guide/MLBasis U mlton/trunk/doc/guide/MLBasisAnnotationExamples U mlton/trunk/doc/guide/MLBasisAnnotations U mlton/trunk/doc/guide/MLBasisAvailableLibraries U mlton/trunk/doc/guide/MLBasisExamples U mlton/trunk/doc/guide/MLBasisPathMap U mlton/trunk/doc/guide/MLBasisSyntaxAndSemantics U mlton/trunk/doc/guide/MLKit U mlton/trunk/doc/guide/MLNLFFI U mlton/trunk/doc/guide/MLNLFFIImplementation A mlton/trunk/doc/guide/MLRISCLibrary U mlton/trunk/doc/guide/MLj A mlton/trunk/doc/guide/MLmon U mlton/trunk/doc/guide/MLtonArray U mlton/trunk/doc/guide/MLtonBinIO U mlton/trunk/doc/guide/MLtonCont U mlton/trunk/doc/guide/MLtonExn U mlton/trunk/doc/guide/MLtonFinalizable U mlton/trunk/doc/guide/MLtonGC U mlton/trunk/doc/guide/MLtonIO U mlton/trunk/doc/guide/MLtonIntInf U mlton/trunk/doc/guide/MLtonItimer U mlton/trunk/doc/guide/MLtonPlatform U mlton/trunk/doc/guide/MLtonPointer U mlton/trunk/doc/guide/MLtonProcEnv U mlton/trunk/doc/guide/MLtonProcess U mlton/trunk/doc/guide/MLtonProfile U mlton/trunk/doc/guide/MLtonRandom U mlton/trunk/doc/guide/MLtonRlimit U mlton/trunk/doc/guide/MLtonRusage U mlton/trunk/doc/guide/MLtonSignal U mlton/trunk/doc/guide/MLtonSocket U mlton/trunk/doc/guide/MLtonStructure U mlton/trunk/doc/guide/MLtonSyslog U mlton/trunk/doc/guide/MLtonTextIO U mlton/trunk/doc/guide/MLtonThread U mlton/trunk/doc/guide/MLtonVector U mlton/trunk/doc/guide/MLtonWeak U mlton/trunk/doc/guide/MLtonWord U mlton/trunk/doc/guide/MLtonWorld U mlton/trunk/doc/guide/Machine U mlton/trunk/doc/guide/ManualPage U mlton/trunk/doc/guide/MatchCompilation U mlton/trunk/doc/guide/MatchCompile U mlton/trunk/doc/guide/MatthewFluet U mlton/trunk/doc/guide/MichaelNorrish U mlton/trunk/doc/guide/MikeThomas U mlton/trunk/doc/guide/MoinMoin U mlton/trunk/doc/guide/Monomorphise U mlton/trunk/doc/guide/MoscowML U mlton/trunk/doc/guide/Multi U mlton/trunk/doc/guide/Mutable A mlton/trunk/doc/guide/NumericLiteral U mlton/trunk/doc/guide/OCaml U mlton/trunk/doc/guide/ObjectOrientedProgramming U mlton/trunk/doc/guide/OpenGL U mlton/trunk/doc/guide/OperatorPrecedence U mlton/trunk/doc/guide/OptionalArguments U mlton/trunk/doc/guide/OrphanedPages U mlton/trunk/doc/guide/OtherSites U mlton/trunk/doc/guide/Overloading U mlton/trunk/doc/guide/PackedRepresentation U mlton/trunk/doc/guide/PageSize U mlton/trunk/doc/guide/ParallelMove U mlton/trunk/doc/guide/Performance U mlton/trunk/doc/guide/PhantomType U mlton/trunk/doc/guide/PlatformSpecificNotes U mlton/trunk/doc/guide/PolyEqual U mlton/trunk/doc/guide/PolyML U mlton/trunk/doc/guide/PolymorphicEquality U mlton/trunk/doc/guide/Polyvariance U mlton/trunk/doc/guide/Poplog A mlton/trunk/doc/guide/PortStatus U mlton/trunk/doc/guide/PortingMLton U mlton/trunk/doc/guide/PrecedenceParse U mlton/trunk/doc/guide/Printf U mlton/trunk/doc/guide/PrintfGentle U mlton/trunk/doc/guide/ProductType U mlton/trunk/doc/guide/Profiling U mlton/trunk/doc/guide/ProfilingAllocation U mlton/trunk/doc/guide/ProfilingCounts U mlton/trunk/doc/guide/ProfilingTheStack U mlton/trunk/doc/guide/ProfilingTime U mlton/trunk/doc/guide/Projects U mlton/trunk/doc/guide/Pronounce U mlton/trunk/doc/guide/PropertyList U mlton/trunk/doc/guide/RSSA U mlton/trunk/doc/guide/RSSAShrink U mlton/trunk/doc/guide/RSSASimplify U mlton/trunk/doc/guide/RayRacine A mlton/trunk/doc/guide/Reachability U mlton/trunk/doc/guide/Redundant U mlton/trunk/doc/guide/RedundantTests U mlton/trunk/doc/guide/RefFlatten U mlton/trunk/doc/guide/References U mlton/trunk/doc/guide/Regions U mlton/trunk/doc/guide/ReleaseChecklist U mlton/trunk/doc/guide/RemoveUnused U mlton/trunk/doc/guide/Restore A mlton/trunk/doc/guide/Roadmap U mlton/trunk/doc/guide/RunTimeOptions U mlton/trunk/doc/guide/RunningOnCygwin U mlton/trunk/doc/guide/RunningOnDarwin U mlton/trunk/doc/guide/RunningOnFreeBSD U mlton/trunk/doc/guide/RunningOnLinux U mlton/trunk/doc/guide/RunningOnMinGW U mlton/trunk/doc/guide/RunningOnNetBSD U mlton/trunk/doc/guide/RunningOnOpenBSD U mlton/trunk/doc/guide/RunningOnPowerPC U mlton/trunk/doc/guide/RunningOnSolaris U mlton/trunk/doc/guide/RunningOnSparc U mlton/trunk/doc/guide/SMLNET U mlton/trunk/doc/guide/SMLNJ U mlton/trunk/doc/guide/SMLNJDeviations U mlton/trunk/doc/guide/SMLNJLibrary U mlton/trunk/doc/guide/SMLofNJStructure U mlton/trunk/doc/guide/SSA U mlton/trunk/doc/guide/SSA2 U mlton/trunk/doc/guide/SSA2Simplify U mlton/trunk/doc/guide/SSASimplify U mlton/trunk/doc/guide/SXML U mlton/trunk/doc/guide/SXMLShrink U mlton/trunk/doc/guide/SXMLSimplify U mlton/trunk/doc/guide/ScopeInference U mlton/trunk/doc/guide/SelfCompiling U mlton/trunk/doc/guide/Serialization U mlton/trunk/doc/guide/ShowBasis A mlton/trunk/doc/guide/ShowProf U mlton/trunk/doc/guide/Shrink U mlton/trunk/doc/guide/SimplifyTypes U mlton/trunk/doc/guide/Sources U mlton/trunk/doc/guide/SpaceSafety A mlton/trunk/doc/guide/Stabilizers U mlton/trunk/doc/guide/StandardML U mlton/trunk/doc/guide/StandardMLBooks A mlton/trunk/doc/guide/StandardMLGotchas U mlton/trunk/doc/guide/StandardMLHistory U mlton/trunk/doc/guide/StandardMLImplementations U mlton/trunk/doc/guide/StandardMLPortability U mlton/trunk/doc/guide/StandardMLTutorials U mlton/trunk/doc/guide/StephenWeeks U mlton/trunk/doc/guide/StyleGuide U mlton/trunk/doc/guide/Subversion U mlton/trunk/doc/guide/SureshJagannathan U mlton/trunk/doc/guide/Survey U mlton/trunk/doc/guide/SurveyDone U mlton/trunk/doc/guide/Swerve U mlton/trunk/doc/guide/SyntacticConventions U mlton/trunk/doc/guide/SystemInfo U mlton/trunk/doc/guide/TILT U mlton/trunk/doc/guide/Talk U mlton/trunk/doc/guide/TalkDiveIn U mlton/trunk/doc/guide/TalkFolkLore U mlton/trunk/doc/guide/TalkFromSMLTo U mlton/trunk/doc/guide/TalkHowHigherOrder U mlton/trunk/doc/guide/TalkHowModules U mlton/trunk/doc/guide/TalkHowPolymorphism U mlton/trunk/doc/guide/TalkMLtonApproach U mlton/trunk/doc/guide/TalkMLtonFeatures U mlton/trunk/doc/guide/TalkMLtonHistory U mlton/trunk/doc/guide/TalkStandardML U mlton/trunk/doc/guide/TalkTemplate U mlton/trunk/doc/guide/TalkWholeProgram U mlton/trunk/doc/guide/ToMachine U mlton/trunk/doc/guide/ToRSSA U mlton/trunk/doc/guide/ToSSA2 U mlton/trunk/doc/guide/TomMurphy U mlton/trunk/doc/guide/TrustedGroup U mlton/trunk/doc/guide/TypeChecking U mlton/trunk/doc/guide/TypeConstructor A mlton/trunk/doc/guide/TypeIndexedValues U mlton/trunk/doc/guide/TypeVariableScope U mlton/trunk/doc/guide/Unicode U mlton/trunk/doc/guide/UniversalType U mlton/trunk/doc/guide/UnresolvedBugs U mlton/trunk/doc/guide/UnsafeStructure U mlton/trunk/doc/guide/Useless U mlton/trunk/doc/guide/Users A mlton/trunk/doc/guide/Utilities U mlton/trunk/doc/guide/ValueRestriction A mlton/trunk/doc/guide/VariableArityPolymorphism U mlton/trunk/doc/guide/Variant U mlton/trunk/doc/guide/VesaKarvonen U mlton/trunk/doc/guide/WantedPages U mlton/trunk/doc/guide/WebSite U mlton/trunk/doc/guide/WesleyTerpstra U mlton/trunk/doc/guide/WholeProgramOptimization U mlton/trunk/doc/guide/WikiMacros U mlton/trunk/doc/guide/WikiName U mlton/trunk/doc/guide/WikiTool U mlton/trunk/doc/guide/XML U mlton/trunk/doc/guide/XMLShrink U mlton/trunk/doc/guide/XMLSimplify U mlton/trunk/doc/guide/XMLSimplifyTypes U mlton/trunk/doc/guide/ZZZOrphanedPages U mlton/trunk/doc/guide/Zone U mlton/trunk/doc/guide/eXene U mlton/trunk/doc/guide/fxp U mlton/trunk/doc/guide/index.html U mlton/trunk/doc/guide/mGTK ---------------------------------------------------------------------- Modified: mlton/trunk/doc/guide/AST =================================================================== --- mlton/trunk/doc/guide/AST 2006-10-25 15:18:52 UTC (rev 4774) +++ mlton/trunk/doc/guide/AST 2006-10-25 22:21:03 UTC (rev 4775) @@ -18,6 +18,12 @@ <body lang="en" dir="ltr"> +<script src="http://www.google-analytics.com/urchin.js" type="text/javascript"> +</script> +<script type="text/javascript"> +_uacct = "UA-833377-1"; +urchinTracker(); +</script> <table bgcolor = lightblue cellspacing = 0 style = "border: 0px;" width = 100%> <tr> <td style = " @@ -25,7 +31,7 @@ color: darkblue; font-size: 150%; text-align: left;"> - <a class = mltona href="Home">MLton 20051202</a> + <a class = mltona href="Home">MLton 20061025</a> <td style = " border: 0px; font-size: 150%; @@ -55,22 +61,22 @@ </p> <h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</h2> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051202-release/mlton/ast/ast-programs.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ast-programs.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20061025-release/mlton/ast/ast-programs.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ast-programs.sig</a> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051202-release/mlton/ast/ast-programs.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ast-programs.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20061025-release/mlton/ast/ast-programs.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ast-programs.fun</a> <br> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051202-release/mlton/ast/ast-modules.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ast-modules.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20061025-release/mlton/ast/ast-modules.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ast-modules.sig</a> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051202-release/mlton/ast/ast-modules.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ast-modules.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20061025-release/mlton/ast/ast-modules.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ast-modules.fun</a> <br> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051202-release/mlton/ast/ast-core.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ast-core.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20061025-release/mlton/ast/ast-core.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ast-core.sig</a> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051202-release/mlton/ast/ast-core.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ast-core.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20061025-release/mlton/ast/ast-core.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ast-core.fun</a> <br> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051202-release/mlton/ast"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ast</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20061025-release/mlton/ast"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ast</a> <h2 id="head-a6de4b535fedeaa8890bd890b60fe09f87b5f96a">Type Checking</h2> <p> The AST <a href="IntermediateLanguage">IntermediateLanguage</a> has no independent type checker. Type inference is performed on an AST program as part of <a href="Elaborate">Elaborate</a>. Modified: mlton/trunk/doc/guide/AccessControl =================================================================== --- mlton/trunk/doc/guide/AccessControl 2006-10-25 15:18:52 UTC (rev 4774) +++ mlton/trunk/doc/guide/AccessControl 2006-10-25 22:21:03 UTC (rev 4775) @@ -18,6 +18,12 @@ <body lang="en" dir="ltr"> +<script src="http://www.google-analytics.com/urchin.js" type="text/javascript"> +</script> +<script type="text/javascript"> +_uacct = "UA-833377-1"; +urchinTracker(); +</script> <table bgcolor = lightblue cellspacing = 0 style = "border: 0px;" width = 100%> <tr> <td style = " @@ -25,7 +31,7 @@ color: darkblue; font-size: 150%; text-align: left;"> - <a class = mltona href="Home">MLton 20051202</a> + <a class = mltona href="Home">MLton 20061025</a> <td style = " border: 0px; font-size: 150%; Modified: mlton/trunk/doc/guide/AdmitsEquality =================================================================== --- mlton/trunk/doc/guide/AdmitsEquality 2006-10-25 15:18:52 UTC (rev 4774) +++ mlton/trunk/doc/guide/AdmitsEquality 2006-10-25 22:21:03 UTC (rev 4775) @@ -18,6 +18,12 @@ <body lang="en" dir="ltr"> +<script src="http://www.google-analytics.com/urchin.js" type="text/javascript"> +</script> +<script type="text/javascript"> +_uacct = "UA-833377-1"; +urchinTracker(); +</script> <table bgcolor = lightblue cellspacing = 0 style = "border: 0px;" width = 100%> <tr> <td style = " @@ -25,7 +31,7 @@ color: darkblue; font-size: 150%; text-align: left;"> - <a class = mltona href="Home">MLton 20051202</a> + <a class = mltona href="Home">MLton 20061025</a> <td style = " border: 0px; font-size: 150%; @@ -58,7 +64,7 @@ </p> <pre class=code> -<B><FONT COLOR="#A020F0">type</FONT></B><FONT COLOR="#228B22"><B> ('a1, ..., 'an) t </FONT></B>=<FONT COLOR="#228B22"><B> </FONT></B>... +<B><FONT COLOR="#A020F0">type</FONT></B> ('a1, ..., 'an) t <B><FONT COLOR="#5F9EA0">=</FONT></B> ... </PRE> <p> @@ -71,8 +77,8 @@ </p> <pre class=code> -<B><FONT COLOR="#A020F0">type</FONT></B><FONT COLOR="#228B22"><B> t </FONT></B>=<FONT COLOR="#228B22"><B> bool * int -</FONT></B></PRE> +<B><FONT COLOR="#A020F0">type</FONT></B> t <B><FONT COLOR="#5F9EA0">=</FONT></B> <B><FONT COLOR="#228B22">bool</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> <B><FONT COLOR="#228B22">int</FONT></B> +</PRE> <p> </p> @@ -81,8 +87,8 @@ </p> <pre class=code> -<B><FONT COLOR="#A020F0">type</FONT></B><FONT COLOR="#228B22"><B> t </FONT></B>=<FONT COLOR="#228B22"><B> bool * int * real -</FONT></B></PRE> +<B><FONT COLOR="#A020F0">type</FONT></B> t <B><FONT COLOR="#5F9EA0">=</FONT></B> <B><FONT COLOR="#228B22">bool</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> <B><FONT COLOR="#228B22">int</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> <B><FONT COLOR="#228B22">real</FONT></B> +</PRE> <p> </p> @@ -94,8 +100,8 @@ </p> <pre class=code> -<B><FONT COLOR="#A020F0">type</FONT></B><FONT COLOR="#228B22"><B> 'a t </FONT></B>=<FONT COLOR="#228B22"><B> bool * 'a -</FONT></B></PRE> +<B><FONT COLOR="#A020F0">type</FONT></B> 'a t <B><FONT COLOR="#5F9EA0">=</FONT></B> <B><FONT COLOR="#228B22">bool</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> 'a +</PRE> <p> </p> @@ -107,8 +113,8 @@ </p> <pre class=code> -<B><FONT COLOR="#A020F0">type</FONT></B><FONT COLOR="#228B22"><B> 'a t </FONT></B>=<FONT COLOR="#228B22"><B> real * 'a -</FONT></B></PRE> +<B><FONT COLOR="#A020F0">type</FONT></B> 'a t <B><FONT COLOR="#5F9EA0">=</FONT></B> <B><FONT COLOR="#228B22">real</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> 'a +</PRE> <p> </p> @@ -120,20 +126,20 @@ </p> <pre class=code> -<B><FONT COLOR="#0000FF">structure</FONT></B> Ok: <B><FONT COLOR="#0000FF">sig</FONT></B> <B><FONT COLOR="#A020F0">eqtype</FONT></B><FONT COLOR="#228B22"><B> 'a t </FONT></B><B><FONT COLOR="#0000FF">end</FONT></B> = - <B><FONT COLOR="#0000FF">struct</FONT></B> - <B><FONT COLOR="#A020F0">type</FONT></B><FONT COLOR="#228B22"><B> 'a t </FONT></B>=<FONT COLOR="#228B22"><B> bool * 'a - </FONT></B><B><FONT COLOR="#0000FF">end</FONT></B> +<B><FONT COLOR="#5F9EA0">structure</FONT></B> Ok: <B><FONT COLOR="#5F9EA0">sig</FONT></B> <B><FONT COLOR="#A020F0">eqtype</FONT></B> 'a t <B><FONT COLOR="#A020F0">end</FONT></B> <B><FONT COLOR="#5F9EA0">=</FONT></B> + <B><FONT COLOR="#5F9EA0">struct</FONT></B> + <B><FONT COLOR="#A020F0">type</FONT></B> 'a t <B><FONT COLOR="#5F9EA0">=</FONT></B> <B><FONT COLOR="#228B22">bool</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> 'a + <B><FONT COLOR="#A020F0">end</FONT></B> </PRE> <p> </p> <pre class=code> -<B><FONT COLOR="#0000FF">structure</FONT></B> Bad: <B><FONT COLOR="#0000FF">sig</FONT></B> <B><FONT COLOR="#A020F0">eqtype</FONT></B><FONT COLOR="#228B22"><B> 'a t </FONT></B><B><FONT COLOR="#0000FF">end</FONT></B> = - <B><FONT COLOR="#0000FF">struct</FONT></B> - <B><FONT COLOR="#A020F0">type</FONT></B><FONT COLOR="#228B22"><B> 'a t </FONT></B>=<FONT COLOR="#228B22"><B> real * int * 'a - </FONT></B><B><FONT COLOR="#0000FF">end</FONT></B> +<B><FONT COLOR="#5F9EA0">structure</FONT></B> Bad: <B><FONT COLOR="#5F9EA0">sig</FONT></B> <B><FONT COLOR="#A020F0">eqtype</FONT></B> 'a t <B><FONT COLOR="#A020F0">end</FONT></B> <B><FONT COLOR="#5F9EA0">=</FONT></B> + <B><FONT COLOR="#5F9EA0">struct</FONT></B> + <B><FONT COLOR="#A020F0">type</FONT></B> 'a t <B><FONT COLOR="#5F9EA0">=</FONT></B> <B><FONT COLOR="#228B22">real</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> <B><FONT COLOR="#228B22">int</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> 'a + <B><FONT COLOR="#A020F0">end</FONT></B> </PRE> <p> @@ -150,16 +156,16 @@ </p> <pre class=code> -<B><FONT COLOR="#A020F0">datatype</FONT></B><FONT COLOR="#228B22"><B> t </FONT></B>=<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">A</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> bool </FONT></B>|<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">B</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> char * int -</FONT></B></PRE> +<B><FONT COLOR="#A020F0">datatype</FONT></B> t <B><FONT COLOR="#5F9EA0">=</FONT></B> A <B><FONT COLOR="#A020F0">of</FONT></B> <B><FONT COLOR="#228B22">bool</FONT></B> <B><FONT COLOR="#5F9EA0">|</FONT></B> B <B><FONT COLOR="#A020F0">of</FONT></B> <B><FONT COLOR="#228B22">char</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> <B><FONT COLOR="#228B22">int</FONT></B> +</PRE> <p> </p> <p> Nullary constructors trivially admit equality, so that the following datatype admits equality. <pre class=code> -<B><FONT COLOR="#A020F0">datatype</FONT></B><FONT COLOR="#228B22"><B> t </FONT></B>=<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">A</FONT> </FONT></B>|<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">B</FONT> </FONT></B>|<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">C</FONT> -</FONT></B></PRE> +<B><FONT COLOR="#A020F0">datatype</FONT></B> t <B><FONT COLOR="#5F9EA0">=</FONT></B> A <B><FONT COLOR="#5F9EA0">|</FONT></B> B <B><FONT COLOR="#5F9EA0">|</FONT></B> C +</PRE> </p> <p> @@ -167,8 +173,8 @@ </p> <pre class=code> -<B><FONT COLOR="#A020F0">datatype</FONT></B><FONT COLOR="#228B22"><B> 'a t </FONT></B>=<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">A</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> bool * 'a </FONT></B>|<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">B</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> 'a -</FONT></B></PRE> +<B><FONT COLOR="#A020F0">datatype</FONT></B> 'a t <B><FONT COLOR="#5F9EA0">=</FONT></B> A <B><FONT COLOR="#A020F0">of</FONT></B> <B><FONT COLOR="#228B22">bool</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> 'a <B><FONT COLOR="#5F9EA0">|</FONT></B> B <B><FONT COLOR="#A020F0">of</FONT></B> 'a +</PRE> <p> </p> @@ -177,9 +183,9 @@ </p> <pre class=code> -<B><FONT COLOR="#A020F0">type</FONT></B><FONT COLOR="#228B22"><B> 'a tA </FONT></B>=<FONT COLOR="#228B22"><B> bool * 'a -</FONT></B><B><FONT COLOR="#A020F0">type</FONT></B><FONT COLOR="#228B22"><B> 'a tB </FONT></B>=<FONT COLOR="#228B22"><B> 'a -</FONT></B></PRE> +<B><FONT COLOR="#A020F0">type</FONT></B> 'a tA <B><FONT COLOR="#5F9EA0">=</FONT></B> <B><FONT COLOR="#228B22">bool</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> 'a +<B><FONT COLOR="#A020F0">type</FONT></B> 'a tB <B><FONT COLOR="#5F9EA0">=</FONT></B> 'a +</PRE> <p> </p> @@ -191,8 +197,8 @@ </p> <pre class=code> -<B><FONT COLOR="#A020F0">datatype</FONT></B><FONT COLOR="#228B22"><B> 'a t </FONT></B>=<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">A</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> bool * 'a </FONT></B>|<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">B</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> real * 'a -</FONT></B></PRE> +<B><FONT COLOR="#A020F0">datatype</FONT></B> 'a t <B><FONT COLOR="#5F9EA0">=</FONT></B> A <B><FONT COLOR="#A020F0">of</FONT></B> <B><FONT COLOR="#228B22">bool</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> 'a <B><FONT COLOR="#5F9EA0">|</FONT></B> B <B><FONT COLOR="#A020F0">of</FONT></B> <B><FONT COLOR="#228B22">real</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> 'a +</PRE> <p> </p> @@ -201,10 +207,10 @@ </p> <pre class=code> -<B><FONT COLOR="#0000FF">structure</FONT></B> Bad: <B><FONT COLOR="#0000FF">sig</FONT></B> <B><FONT COLOR="#A020F0">eqtype</FONT></B><FONT COLOR="#228B22"><B> 'a t </FONT></B><B><FONT COLOR="#0000FF">end</FONT></B> = - <B><FONT COLOR="#0000FF">struct</FONT></B> - <B><FONT COLOR="#A020F0">datatype</FONT></B><FONT COLOR="#228B22"><B> 'a t </FONT></B>=<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">A</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> bool * 'a </FONT></B>|<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">B</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> real * 'a - </FONT></B><B><FONT COLOR="#0000FF">end</FONT></B> +<B><FONT COLOR="#5F9EA0">structure</FONT></B> Bad: <B><FONT COLOR="#5F9EA0">sig</FONT></B> <B><FONT COLOR="#A020F0">eqtype</FONT></B> 'a t <B><FONT COLOR="#A020F0">end</FONT></B> <B><FONT COLOR="#5F9EA0">=</FONT></B> + <B><FONT COLOR="#5F9EA0">struct</FONT></B> + <B><FONT COLOR="#A020F0">datatype</FONT></B> 'a t <B><FONT COLOR="#5F9EA0">=</FONT></B> A <B><FONT COLOR="#A020F0">of</FONT></B> <B><FONT COLOR="#228B22">bool</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> 'a <B><FONT COLOR="#5F9EA0">|</FONT></B> B <B><FONT COLOR="#A020F0">of</FONT></B> <B><FONT COLOR="#228B22">real</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> 'a + <B><FONT COLOR="#A020F0">end</FONT></B> </PRE> <p> @@ -224,8 +230,8 @@ </p> <pre class=code> -<B><FONT COLOR="#A020F0">datatype</FONT></B><FONT COLOR="#228B22"><B> t </FONT></B>=<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">A</FONT> </FONT></B>|<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">B</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> int * t -</FONT></B></PRE> +<B><FONT COLOR="#A020F0">datatype</FONT></B> t <B><FONT COLOR="#5F9EA0">=</FONT></B> A <B><FONT COLOR="#5F9EA0">|</FONT></B> B <B><FONT COLOR="#A020F0">of</FONT></B> <B><FONT COLOR="#228B22">int</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> t +</PRE> <p> </p> @@ -235,24 +241,24 @@ <p> On the other hand, in the following declaration <pre class=code> -<B><FONT COLOR="#A020F0">datatype</FONT></B><FONT COLOR="#228B22"><B> t </FONT></B>=<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">A</FONT> </FONT></B>|<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">B</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> real * t -</FONT></B></PRE> +<B><FONT COLOR="#A020F0">datatype</FONT></B> t <B><FONT COLOR="#5F9EA0">=</FONT></B> A <B><FONT COLOR="#5F9EA0">|</FONT></B> B <B><FONT COLOR="#A020F0">of</FONT></B> <B><FONT COLOR="#228B22">real</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> t +</PRE> if we assume that <tt>t</tt> admits equality, then the <tt>B</tt> variant does not admit equality. Hence, the type constructor <tt>t</tt> does not admit equality, and our assumption was inconsistent. Hence, <tt>t</tt> does not admit equality. </p> <p> The same kind of reasoning applies to mutually recursive datatypes as well. For example, the following defines both <tt>t</tt> and <tt>u</tt> to admit equality. <pre class=code> -<B><FONT COLOR="#A020F0">datatype</FONT></B><FONT COLOR="#228B22"><B> t </FONT></B>=<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">A</FONT> </FONT></B>|<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">B</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> u -</FONT></B><B><FONT COLOR="#A020F0">and</FONT></B><FONT COLOR="#228B22"><B> u </FONT></B>=<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">C</FONT> </FONT></B>|<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">D</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> t -</FONT></B></PRE> +<B><FONT COLOR="#A020F0">datatype</FONT></B> t <B><FONT COLOR="#5F9EA0">=</FONT></B> A <B><FONT COLOR="#5F9EA0">|</FONT></B> B <B><FONT COLOR="#A020F0">of</FONT></B> u +<B><FONT COLOR="#A020F0">and</FONT></B> u <B><FONT COLOR="#5F9EA0">=</FONT></B> C <B><FONT COLOR="#5F9EA0">|</FONT></B> D <B><FONT COLOR="#A020F0">of</FONT></B> t +</PRE> </p> <p> But the following defines neither <tt>t</tt> nor <tt>u</tt> to admit equality. <pre class=code> -<B><FONT COLOR="#A020F0">datatype</FONT></B><FONT COLOR="#228B22"><B> t </FONT></B>=<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">A</FONT> </FONT></B>|<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">B</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> u * real -</FONT></B><B><FONT COLOR="#A020F0">and</FONT></B><FONT COLOR="#228B22"><B> u </FONT></B>=<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">C</FONT> </FONT></B>|<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">D</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> t -</FONT></B></PRE> +<B><FONT COLOR="#A020F0">datatype</FONT></B> t <B><FONT COLOR="#5F9EA0">=</FONT></B> A <B><FONT COLOR="#5F9EA0">|</FONT></B> B <B><FONT COLOR="#A020F0">of</FONT></B> u <B><FONT COLOR="#5F9EA0">*</FONT></B> <B><FONT COLOR="#228B22">real</FONT></B> +<B><FONT COLOR="#A020F0">and</FONT></B> u <B><FONT COLOR="#5F9EA0">=</FONT></B> C <B><FONT COLOR="#5F9EA0">|</FONT></B> D <B><FONT COLOR="#A020F0">of</FONT></B> t +</PRE> </p> <p> @@ -260,11 +266,11 @@ </p> <pre class=code> -<B><FONT COLOR="#0000FF">structure</FONT></B> Bad: <B><FONT COLOR="#0000FF">sig</FONT></B> <B><FONT COLOR="#A020F0">eqtype</FONT></B><FONT COLOR="#228B22"><B> t </FONT></B><B><FONT COLOR="#A020F0">eqtype</FONT></B><FONT COLOR="#228B22"><B> u </FONT></B><B><FONT COLOR="#0000FF">end</FONT></B> = - <B><FONT COLOR="#0000FF">struct</FONT></B> - <B><FONT COLOR="#A020F0">datatype</FONT></B><FONT COLOR="#228B22"><B> t </FONT></B>=<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">A</FONT> </FONT></B>|<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">B</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> u * real - </FONT></B><B><FONT COLOR="#A020F0">and</FONT></B><FONT COLOR="#228B22"><B> u </FONT></B>=<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">C</FONT> </FONT></B>|<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">D</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> t - </FONT></B><B><FONT COLOR="#0000FF">end</FONT></B> +<B><FONT COLOR="#5F9EA0">structure</FONT></B> Bad: <B><FONT COLOR="#5F9EA0">sig</FONT></B> <B><FONT COLOR="#A020F0">eqtype</FONT></B> t <B><FONT COLOR="#A020F0">eqtype</FONT></B> u <B><FONT COLOR="#A020F0">end</FONT></B> <B><FONT COLOR="#5F9EA0">=</FONT></B> + <B><FONT COLOR="#5F9EA0">struct</FONT></B> + <B><FONT COLOR="#A020F0">datatype</FONT></B> t <B><FONT COLOR="#5F9EA0">=</FONT></B> A <B><FONT COLOR="#5F9EA0">|</FONT></B> B <B><FONT COLOR="#A020F0">of</FONT></B> u <B><FONT COLOR="#5F9EA0">*</FONT></B> <B><FONT COLOR="#228B22">real</FONT></B> + <B><FONT COLOR="#A020F0">and</FONT></B> u <B><FONT COLOR="#5F9EA0">=</FONT></B> C <B><FONT COLOR="#5F9EA0">|</FONT></B> D <B><FONT COLOR="#A020F0">of</FONT></B> t + <B><FONT COLOR="#A020F0">end</FONT></B> </PRE> <p> Modified: mlton/trunk/doc/guide/Alice =================================================================== --- mlton/trunk/doc/guide/Alice 2006-10-25 15:18:52 UTC (rev 4774) +++ mlton/trunk/doc/guide/Alice 2006-10-25 22:21:03 UTC (rev 4775) @@ -18,6 +18,12 @@ <body lang="en" dir="ltr"> +<script src="http://www.google-analytics.com/urchin.js" type="text/javascript"> +</script> +<script type="text/javascript"> +_uacct = "UA-833377-1"; +urchinTracker(); +</script> <table bgcolor = lightblue cellspacing = 0 style = "border: 0px;" width = 100%> <tr> <td style = " @@ -25,7 +31,7 @@ color: darkblue; font-size: 150%; text-align: left;"> - <a class = mltona href="Home">MLton 20051202</a> + <a class = mltona href="Home">MLton 20061025</a> <td style = " border: 0px; font-size: 150%; Modified: mlton/trunk/doc/guide/AllocateRegisters =================================================================== --- mlton/trunk/doc/guide/AllocateRegisters 2006-10-25 15:18:52 UTC (rev 4774) +++ mlton/trunk/doc/guide/AllocateRegisters 2006-10-25 22:21:03 UTC (rev 4775) @@ -18,6 +18,12 @@ <body lang="en" dir="ltr"> +<script src="http://www.google-analytics.com/urchin.js" type="text/javascript"> +</script> +<script type="text/javascript"> +_uacct = "UA-833377-1"; +urchinTracker(); +</script> <table bgcolor = lightblue cellspacing = 0 style = "border: 0px;" width = 100%> <tr> <td style = " @@ -25,7 +31,7 @@ color: darkblue; font-size: 150%; text-align: left;"> - <a class = mltona href="Home">MLton 20051202</a> + <a class = mltona href="Home">MLton 20061025</a> <td style = " border: 0px; font-size: 150%; @@ -55,9 +61,9 @@ </p> <h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</h2> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051202-release/mlton/backend/allocate-registers.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">allocate-registers.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20061025-release/mlton/backend/allocate-registers.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">allocate-registers.sig</a> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051202-release/mlton/backend/allocate-registers.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">allocate-registers.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20061025-release/mlton/backend/allocate-registers.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">allocate-registers.fun</a> <h2 id="head-35ec00231a68203708e39f0e2cc10b50c6bf62de">Details and Notes</h2> </div> Modified: mlton/trunk/doc/guide/AndreiFormiga =================================================================== --- mlton/trunk/doc/guide/AndreiFormiga 2006-10-25 15:18:52 UTC (rev 4774) +++ mlton/trunk/doc/guide/AndreiFormiga 2006-10-25 22:21:03 UTC (rev 4775) @@ -18 |