On Thu, 12 Mar 1998, Koen Claessen wrote: > Sadly, this example shows that Haskell 1.4 does not have a principal > typing property. Your function has the type > > all' :: Eq a => (a -> Bool) -> [a] -> Bool > > As well as: > > all' :: Eq a => (a -> Bool) -> F a -> Bool > > (for a suitable Monad F). But Haskell is not capable of finding the one > type that contains them all: > > all' :: (Monad m, Eq (m a)) => (a -> Bool) -> m a -> Bool What is the reason for that? It is a language design choice or is there a fundamental reason like, say, that allowing such things make the type system undecidable? m ----------------------------------------------------------------------- Mariano Suarez Alvarez The introduction of Departamento de Matematica numbers as coordinates Universidad Nacional de Rosario [...] is an act of violence Pellegrini 250 A. Weyl 2000 Rosario - Argentina e-mail: [EMAIL PROTECTED] -----------------------------------------------------------------------
