Hi Larry, GHC allows you to work with unboxed types. Int# is the type of unboxed ints. I# is a normal data constructor. So we can see that GHC represents a (boxed) Int as a normal algebraic data type
data Int = I# Int# which says that an Int is a type with a single constructor (I#) that wraps a machine integer (Int#). By convention, unboxed types use a # in their name. You can find more info about unboxed types here: http://www.haskell.org/ghc/docs/6.12.2/html/users_guide/primitives.html#glasgow-unboxed To work with unboxed types in your code (or ghci) you need the MagicHash extension: http://www.haskell.org/ghc/docs/6.12.2/html/users_guide/syntax-extns.html#magic-hash $ ghci -XMagicHash GHCi, version 6.12.3: http://www.haskell.org/ghc/ :? for help Loading package ghc-prim ... linking ... done. Loading package integer-gmp ... linking ... done. Loading package base ... linking ... done. Loading package ffi-1.0 ... linking ... done. Prelude> import GHC.Types Prelude GHC.Types> I# 5# 5 Prelude GHC.Types> -David On Nov 1, 2010, at 12:40 PM, Larry Evans wrote: > http://www.haskell.org/ghc/docs/6.10.2/html/libraries/ghc-prim/GHC-Types.html > > contains: > > data Int = I# Int# > > What does I# Int# mean? I've tried a simple interpretation: > > Prelude GHC.Types> I# 5# > > <interactive>:1:5: parse error (possibly incorrect indentation) > Prelude GHC.Types> > > but obviously that failed :( > > TIA. > > -Larry > > _______________________________________________ > Glasgow-haskell-users mailing list > [email protected] > http://www.haskell.org/mailman/listinfo/glasgow-haskell-users > _______________________________________________ Glasgow-haskell-users mailing list [email protected] http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
