[Haskell] question about a failure to generalize

Tom Pledger tom at pledger.gen.nz
Mon Sep 17 00:15:10 EDT 2007

Norman Ramsey wrote:
  | This code fails to compile because the compiler is willing to
  | use 'fold' at only one type (CmmExpr as it happens)

When it failed to compile, was

     fold = foldRegsUsed

a top-level declaration in the module, rather than local to foldRegsUsed?

If so, try working around the monomorphism restriction by changing  
from a pattern binding to a function binding.

     fold f = foldRegsUsed f


More information about the Haskell mailing list