use optics labels

This commit is contained in:
1computer1 2020-06-16 23:56:01 -04:00
parent d23e8ab892
commit 2597c80f3d
6 changed files with 161 additions and 134 deletions

View file

@ -1,3 +1,4 @@
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE UndecidableInstances #-}
module Myriad.Core
@ -33,6 +34,8 @@ import Control.Concurrent.MVar.Lifted
import Control.Concurrent.QSem.Lifted
import System.Process.Typed
import Optics
import Myriad.Config
type ContainerName = String
@ -40,14 +43,16 @@ type ContainerName = String
type ImageName = String
data Env = Env
{ config :: Config
, languagesDir :: FilePath
, containers :: MVar (M.Map LanguageName ContainerName)
, containerSems :: MVar (M.Map LanguageName QSem)
, evalSems :: MVar (M.Map LanguageName QSem)
, snowflakeGen :: SnowflakeGen
{ _config :: Config
, _languagesDir :: FilePath
, _containers :: MVar (M.Map LanguageName ContainerName)
, _containerSems :: MVar (M.Map LanguageName QSem)
, _evalSems :: MVar (M.Map LanguageName QSem)
, _snowflakeGen :: SnowflakeGen
}
makeFieldLabelsWith classUnderscoreNoPrefixFields ''Env
newtype MyriadT m a = MyriadT { unMyriadT :: ReaderT Env (LoggingT m) a }
deriving newtype
( Functor