John Meacham wrote:
I would like to create a datatype that contains some memory managed by
the GHC runtime, the natural fit is ByteArr#, however, in the common
case, the ByteArr# won't actually have anything in it. would it be
possible to have a single constant 'nullByteArr#'? I can't define a top
level value of type ByteArr# and creating these values is in very
performance critical code so I am not quite sure what to do. It would
also be nice if byteArrContents# returned 'nullAddr#' for such byte
arrays, but it is not a strict requirement.
I guess you could use nullByteArr# = (unsafeCoerce# True) - that shouldn't cause
anything to go horribly wrong if you don't do any operations on it. If you want
a way to tell whether a particular ByteArr# is nullByteArr# or not, then we'd
have to elaborate the implementation of byteArrContents#. None of this is
particularly hard, if I've understood it correctly.
Cheers,
Simon
_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users