У меня есть игровой сервер, который порождает поток для каждого клиента с forkIO. Я хочу, например, поделиться списком клиентов и списком монстров со всеми из них.Контейнер для Haskell TVars
Моя первая идея состояла в том, чтобы иметь один контейнер TVar для типа данных, содержащего оба списка, но сказать, что два потока одновременно меняют клиента и монстра, которые откатывали бы один из них, если бы я правильно понял эту часть. Что было бы лишним откатом.
Вторая идея состояла в том, чтобы сделать списки TVars, а затем просто передать их в качестве аргументов, но я предпочел бы иметь их в контейнере, чтобы код был чистым и легко управляемым, если нужно добавить больше списков.
Есть ли способ передать пару ТВАР в контейнере, или я переусердствую первую идею?