X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=topics%2Fweek5_system_F.mdwn;fp=topics%2Fweek5_system_F.mdwn;h=97b17f83f5dcc73af48bf7c085d65a4ea18131f8;hp=c37f9116e0ec081ddccefce935fc6614c2abf43d;hb=fec31e5e99518d29570360ef74ff870284fc0114;hpb=a1c83924c7d5794bacb0b517f7ad8fae7fb8a5cc diff --git a/topics/week5_system_F.mdwn b/topics/week5_system_F.mdwn index c37f9116..97b17f83 100644 --- a/topics/week5_system_F.mdwn +++ b/topics/week5_system_F.mdwn @@ -534,11 +534,11 @@ conditions, there will be a ***principle type***: a type such that every other possible type for that expression is a more specific version of the principle type. -As we have seen, it is often possible to infer constraints on the type -of an expression based on its internal structure, as well as by the -way in which it is used. When programming interpreters and compilers -infer types, they often (but not always) aim for the principle type -(if one is guaranteed to exist). +As we have seen, it is often possible to infer a type for an +expression based on its internal structure, as well as by the way in +which it is used. When programming interpreters and compilers infer +types, they often (but not always) aim for the principle type (if one +is guaranteed to exist). # let pair a b z = z a b;; val pair : 'a -> 'b -> ('a -> 'b -> 'c) -> 'c =