[Haskell-cafe] Non polymorphic numerals option -- avoiding type classes
Rustom Mody
rustompmody at gmail.com
Thu Dec 27 02:00:29 CET 2012
On Thu, Dec 27, 2012 at 1:48 AM, Roman Cheplyaka <roma at ro-che.info> wrote:
> * Rustom Mody <rustompmody at gmail.com> [2012-12-26 20:12:17+0530]
> > So is there any set of flags to make haskell literals less polymorphic?
>
> Yes, there is!
>
> % ghci -XRebindableSyntax
> GHCi, version 7.6.1: http://www.haskell.org/ghc/ :? for help
> Loading package ghc-prim ... linking ... done.
> Loading package integer-gmp ... linking ... done.
> Loading package base ... linking ... done.
> > import Prelude hiding (fromInteger)
> Prelude> let fromInteger = id
> Prelude> :t 3
> 3 :: Integer
>
> Roman
>
Thanks Roman -- that helps.
And yet the ghci error is much more obscure than the gofer error:
--- contents of .ghci ---
:set -XRebindableSyntax
let fromInteger = id
------ ghci session -----
$ ghci
GHCi, version 7.4.1: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Prelude> :t 5
5 :: Integer
Prelude> :t [[1,2],3]
<interactive>:1:8:
Couldn't match expected type `[Integer]' with actual type `Integer'
Expected type: Integer -> [Integer]
Actual type: Integer -> Integer
In the expression: 3
In the expression: [[1, 2], 3]
----- The same in gofer -----
Gofer session for:
pustd.pre
? :t [[1,2],3]
ERROR: Type error in list
*** expression : [[1,2],3]
*** term : 3
*** type : Int
*** does not match : [Int]
--------------
So the error is occurring at the point of the fromInteger (= id) but the
message does not indicate that
--
http://www.the-magus.in
http://blog.languager.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20121227/1b8ed2b7/attachment.htm>
More information about the Haskell-Cafe
mailing list