
Am Samstag 02 Mai 2009 21:22:26 schrieb Ketil Malde:
Rahul Kapoor
writes: *Main> toEnum 2
ghci does not know what type of enum you want to create from the number 2. Try: toEnum 2 :: DayOfWeek
That said, I would expect "toEnum 2" to give an error like: 'Ambiguous type variable `a'....'. So I am not sure why your error message says: '** Exception: Prelude.Enum.().toEnum: bad argument'
Wild guess: The dread monomorphism restriction uses () as a reasonable type, and it only has one element. Does 'toEnum 0' give '()' as the result?
Actually, it seems to be the other way round here: Prelude> toEnum 2 <interactive>:1:0: Ambiguous type variable `a' in the constraint: `Enum a' arising from a use of `toEnum' at <interactive>:1:0-7 Probable fix: add a type signature that fixes these type variable(s) Prelude> :set -fno-monomorphism-restriction <no location info>: Warning: -fno-monomorphism-restriction is deprecated: use -XNoMonomorphismRestriction or pragma {-# LANGUAGE NoMonomorphismRestriction#-} instead Prelude> toEnum 2 *** Exception: Prelude.Enum.().toEnum: bad argument
(I couldn't reproduce it with my version of GHCi - I get the ambigous type error message)
-k