> methods :: (Eq a) => [(String, a)]
> methods =
>   [ ("method1", undefined )
>   , ("method2", undefined)
>   ]
>
> enumerateMethodNames :: [String]
> enumerateMethodNames = map fst methods

The above does not compile because the source does not have
enough information for GHC to determine what actual types to use
for "methods" since undefined can stand in as values for any
type. The program will compile if you use actual values instead
of undefined or supply an explicit type signature.

for example:

enumerateMethodNames = map fst (methods :: [(String, String)])
or
methods :: [(String, SomeEqType)]


Rahul
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to