Now I hate myself.
So basically, I am creating some widget which should not be complicated. It just involves some concurrency, and quite a bit of mutability.
In the end, I found myself looking into message passing. Through MVar, Chan, etc.
Then, I realized… I am working out where to put ownership of certain data, channel, and behavior.
Now this comes to the classic notion of OOP - message passing with some ownership involved.
It even seems like I am grouping data and behavior together!
Could you help me out from this?