[Haskell] ANN: IOSpec 0.1

Stefan O'Rear stefanor at cox.net
Tue Apr 24 21:25:18 EDT 2007


On Wed, Apr 25, 2007 at 03:22:33AM +0200, Twan van Laarhoven wrote:
> Wouter Swierstra wrote:
> >            Test.IOSpec    Version 1.0
> Shouldn't that be 0.1?
> 
> >  * Test.IOSpec.Teletype: a specification of getChar and putChar.
> 
> You use Dynamic for the data type in IORefs, this has the unfortunate 
> consequence of needing Typeable constraints. You could try to use 
> unsafeCoerce instead,
> > type Data = ()
> > unsafeToData :: a -> Data
> > unsafeToData = unsafeCoerce
> > unsafeFromData :: Data -> a
> > unsafeFromData = unsafeCoerce
> 
> I think this should be just as safe as Dynamic, since internally Dynamic 
> uses unsafeCoerce as well. Just steal the details from there.

Be sure to actually check the details - Twan's code is documented as
not working.  (GHC does naughty things when it thinks it knows the
type, and you need to use a couple of nonportable hacks to make it
work)

Stefan


More information about the Haskell mailing list