
[removed haskell@ from the cc: list, which I think is conventional if discussion continues] Graham Fawcett wrote:
On Jan 14, 2008 2:47 AM, Sterling Clover
wrote: HStringTemplate is a port of Terrence Parr's lovely StringTemplate (http://www.stringtemplate.org) engine to Haskell.
This is very cool.
Your docs describe a function, cacheSTGroup:
cacheSTGroup :: Int -> STGen a -> STGen a Given an integral amount of seconds and a group, returns a group cached for that span of time. Does not cache "misses."
How does this work without breaking referential transparency? Shouldn't it be in the IO monad if it is time-dependent?
If the result is always the same, but only efficiency varies, then you could argue it's still referentially transparent. Of course, if the result isn't always the same (template file could be changed underneath you) then it isn't... the list is already aware of my views on behind-the-scenes lazy IO :) Jules