
On 2/5/2014 7:37 AM, Alexander Alexeev wrote:
Hello!
I'm wondering, is there any way to declare assignment operators in Haskell? For example, strict assignment operators:
x .= y -- equals: let x = y `deepseq` y x := y -- equals: x <- y `deepseq` y
As far as I can tell, Template Haskell is not able to do anything like this, because I can't event quote expressions like `let x = y` or `x <- y`. Is there any other way (plugin for GHC, etc)? Or maybe I'm doing something wrong and TH is quite able to handle this task?
I'm pretty sure that I could use a preprocessor, but I wonted to find a better solution.
There are things that "act like assignment", but quite differently than what you are after, which looks like a macro of some sort. For instance, one of the OpenGL packages defines (:=) = writeIORef, to be used like spoofel depth stencil = do stencilVals <- map (> 0.35) <$> readIORef depth stencil := stencilVals What is the type of (.=) and (:=) that you desire? What is the larger problem you are trying to solve?