On Fri, Mar 20, 2009 at 6:11 PM, John Meacham <j...@repetae.net> wrote:
> On Fri, Mar 20, 2009 at 12:02:15PM -0700, Conal Elliott wrote: > > I just learned on #haskell that Int has implementation/machine-dependent > > semantics. I'd always assumed that pure (non-imperative) types have > > specific denotational models, so that for instance the denotation of > > something of type Int is either bottom or a (smallish) integer. Since > > precise & simple denotation is at the heart of how I think about > > programming, and Haskell is my favorite language, I'm startled and > > disappointed. I knew we didn't have a denotational semantics for > Haskell, > > but I'd previously assumed it was just a matter of working out the > details. > > in jhc and ghc at least, they are expressed directly in haskell as > standard data types with a single unboxed component. > > > data Int = I Bits32_ > > Where Bits32_ is a direct unboxed representation of a 32 bit quantity. The > data > declaration behaves just like any other haskell data declaration and > hence follows the same lazy semantics. Of course, this may not help as you > perhaps need to define the meaning of the unboxed value inside the Int > box, but it at least seperates the 'lazy' aspect of Int from its > underlying representation and primitives. > > John Oh -- not one version of Int for 32-bit execution and another version for 64-bit execution? Seen on #haskell today: <mux> > maxBound :: Int > <lambdabot> 9223372036854775807 > - Conal
_______________________________________________ Haskell-prime mailing list Haskell-prime@haskell.org http://www.haskell.org/mailman/listinfo/haskell-prime