newtype ChatState to get round https://github.com/purescript/purescript/issues/642