On Thu, 11 Nov 2004 20:14:24 +0000, Keean Schupke
<[EMAIL PROTECTED]> wrote:
> I think you are right... The only safe operation I can see for a
> one-time init
> is type IO (). All results have to be returned via side effects. Hence with
> my named-MVar proposal the first execution of the init function initialises
> certain named-MVars, and subsequent executions do nothing at all. The
> functions in the library would use the names-MVars directly. Therefore the
> once function in the NamedSem library is:
> 
>     once :: IO () -> IO ()
> 
>     Keean.
> 

Actually, I don't see anything wrong on the face of it with
oncePerType :: Typeable a => IO a -> IO a
since the only instances of Typeable are monomorphic.  Indeed, the
implementation seems pretty straightforward: store the results of
already-run computations as Dynamic values in a global dictionary,
keyed by TypeRep.

-Judah
_______________________________________________
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to