
Implicit parameters have monotypes, not polytypes. 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: haskell-cafe-bounces@haskell.org [mailto:haskell-cafe-bounces@haskell.org] 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