| So I guess the real question is, how do I pass a polytype* wpn? and the answer is:
| On Mon, 27 Nov 2006, Simon Peyton-Jones wrote: | | > Implicit parameters have monotypes, not polytypes. So an implicit parameter never has a polymorphic type. You can get around this, as Ben suggested I think, by using a newtype to wrap it up: newtype WPN = WPN (forall a. Ev PassNet ev a -> Ev State ev a) Simon So ?f in g gets | > type (Char->Char). I rather doubt that something more general | > (implicit parameters get polytypes) would work, given the implicit | > "improvement" rules that implicit parameters require. | > | > Simon | > | > | -----Original Message----- | > | From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of | S. | > | Alexander Jacobson | > | Sent: 21 November 2006 19:28 | > | To: haskell-cafe@haskell.org | > | Subject: [Haskell-cafe] why are implicit types different? (cleanup) | > | | > | | > | | > | Why do g and g' have different types? | > | | > | g x y = let ?f = \x-> x in ?f x ++ (show (?f y)) | > | g :: [Char] -> [Char] -> [Char] | > | | > | g' :: (Show t) => [Char] -> t -> [Char] | > | g' x y = let f = \x-> x in f x ++ (show (f y)) | > | | > | Is there a way I can use implicit types and let g be as general as g'? | > | | > | -Alex- | > | | > | | > | ______________________________________________________________ | > | S. Alexander Jacobson tel:917-770-6565 http://alexjacobson.com | > | _______________________________________________ | > | Haskell-Cafe mailing list | > | Haskell-Cafe@haskell.org | > | http://www.haskell.org/mailman/listinfo/haskell-cafe | > _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe