module Ribosome.Data.Ribosome( Ribosome (..), newRibosome, ) where import UnliftIO.STM (TVar, newTVarIO) import Control.Monad.IO.Class (MonadIO) data Ribosome e = Ribosome { name :: String, env :: e } newRibosome :: MonadIO m => String -> e -> m (Ribosome (TVar e)) newRibosome name' env' = do tv <- newTVarIO env' return $ Ribosome name' tv