From: Chris Date: Mon, 9 Mar 2015 20:10:32 +0000 (-0400) Subject: edits X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=commitdiff_plain;h=ff9ff96c9806b28eaa3b443df3a47d74da0ec089;ds=sidebyside edits --- diff --git a/exercises/assignment5.mdwn b/exercises/assignment5.mdwn index 7bcbbee0..73889482 100644 --- a/exercises/assignment5.mdwn +++ b/exercises/assignment5.mdwn @@ -329,9 +329,7 @@ any type `α`, as long as your function is of type `α -> α` and you have a bas -- Or this: let sysf_true = (\y n -> y) :: Sysf_bool a - Note that in both OCaml and the Haskell code, the generalization `∀'a` on the free type variable `'a` is implicit. If you really want to, you can supply it explicitly in Haskell by saying: - - :set -XExplicitForAll + :set -XExplicitForAll let { sysf_true :: forall a. Sysf_bool a; ... } -- or let { sysf_true :: forall a. a -> a -> a; ... } @@ -408,7 +406,7 @@ Be sure to test your proposals with simple lists. (You'll have to `sysf_cons` up # k 1 true ;; - : int = 1 - If you can't understand how one term can have several types, recall our discussion in this week's notes of "principal types". (WHERE?) + If you can't understand how one term can have several types, recall our discussion in this week's notes of "principal types".