[Haskell-cafe] GHC.Ptr, Foreign.Storable, Data.Storable.Endian, looking for good examples of usage

Aaron Gray aaronngray.lists at gmail.com
Mon Jan 10 17:17:48 CET 2011


On 10 January 2011 16:13, Daniel Fischer
<daniel.is.fischer at googlemail.com>wrote:

> On Monday 10 January 2011 16:45:36, Aaron Gray wrote:
> >
> > This is interesting, what does the following line do :-
> >
> >     data Int24 = I24# Int# deriving (Eq, Ord)
> >
> > regarding the I24# and Int#, are these inbuilt ?
>
> Int# is the raw machine int (4 or 8 bytes) and I24# is the constructor. GHC
> uses the magic hash '#' to denote raw unboxed types (and the constructors
> making ordinary boxed Haskell types from these, e.g. there's
>
> data Int = I# Int#
> data Word = W# Word#
> data Double = D# Double#
>
> and more defined in base [GHC.Types, GHC.Word]).
>

So the 24 bit value is actually stored as a 32bit value. Meaning I will have
to do my own IO reader and writer code to a ByteString.

Thanks,

Aaron
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20110110/1d4b3853/attachment.htm>


More information about the Haskell-Cafe mailing list