
I'm trying to take the training wheels of and moving more of my code base to Haskell from C++ but finding it increasingly tricky. I have a subset of a gossip protocol written in C++. When a server comes online it connects to 1 or more nodes already in the cluster and get data from them about other nodes they know of. The new node merges the information and keeps a copy of the merged view. Every so often it contacts the nodes it knows about and refreshes the merged view. It also must have the up to date view ready to be sent in response to a new node joining. I currently can't wrap my head around how to maintain this state. How would a more experienced Haskeller approach this problem? Code is OK if it demonstrates a particular point but I'm more interested in the line of thought that would go into designing a solution as I suspect that'll be more useful as I get further into the migration. As a gauge to you for my current level in Haskell. I read and understand most Haskell programs fine. I write some but currently heavily rely on hackage/hoogle docs for APIs, even some common ones. Thanks