Mercurial > urweb
comparison doc/manual.tex @ 570:af0df56ecc2c
Typo report from megacz
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Sat, 20 Dec 2008 18:24:12 -0500 |
parents | d42431608856 |
children | 33500a15b872 |
comparison
equal
deleted
inserted
replaced
569:162d5308e34f | 570:af0df56ecc2c |
---|---|
1015 | 1015 |
1016 Nonetheless, the unification engine tends to do reasonably well. Unlike in ML, polymorphism is never inferred in definitions; it must be indicated explicitly by writing out constructor-level parameters. By writing these and other annotations, the programmer can generally get the type inference engine to do most of the type reconstruction work. | 1016 Nonetheless, the unification engine tends to do reasonably well. Unlike in ML, polymorphism is never inferred in definitions; it must be indicated explicitly by writing out constructor-level parameters. By writing these and other annotations, the programmer can generally get the type inference engine to do most of the type reconstruction work. |
1017 | 1017 |
1018 \subsection{Unifying Record Types} | 1018 \subsection{Unifying Record Types} |
1019 | 1019 |
1020 The type inference engine tries to take advantage of the algebraic rules governing type-level records, as shown in Section \ref{definitional}. When two constructors of record kind are unified, they are reduce to normal forms, with like terms crossed off from each normal form until, hopefully, nothing remains. This cannot be complete, with the inclusion of unification variables. The type-checker can help you understand what goes wrong when the process fails, as it outputs the unmatched remainders of the two normal forms. | 1020 The type inference engine tries to take advantage of the algebraic rules governing type-level records, as shown in Section \ref{definitional}. When two constructors of record kind are unified, they are reduced to normal forms, with like terms crossed off from each normal form until, hopefully, nothing remains. This cannot be complete, with the inclusion of unification variables. The type-checker can help you understand what goes wrong when the process fails, as it outputs the unmatched remainders of the two normal forms. |
1021 | 1021 |
1022 \subsection{\label{typeclasses}Type Classes} | 1022 \subsection{\label{typeclasses}Type Classes} |
1023 | 1023 |
1024 Ur includes a type class facility inspired by Haskell's. The current version is very rudimentary, only supporting instances for particular types built up from abstract types and datatypes and type-level application. | 1024 Ur includes a type class facility inspired by Haskell's. The current version is very rudimentary, only supporting instances for particular types built up from abstract types and datatypes and type-level application. |
1025 | 1025 |