module Language.Drasil.Code.Imperative.Helpers (
liftS, lookupC
) where
import Language.Drasil (UID, QuantityDict)
import Database.Drasil (symbResolve)
import Language.Drasil.Code.Imperative.DrasilState (DrasilState(..))
import Language.Drasil.CodeSpec (CodeSpec(..))
import Control.Monad.State (State)
liftS :: State a b -> State a [b]
liftS :: State a b -> State a [b]
liftS = (b -> [b]) -> State a b -> State a [b]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (b -> [b] -> [b]
forall a. a -> [a] -> [a]
: [])
lookupC :: DrasilState -> UID -> QuantityDict
lookupC :: DrasilState -> UID -> QuantityDict
lookupC g :: DrasilState
g = ChunkDB -> UID -> QuantityDict
symbResolve (CodeSpec -> ChunkDB
sysinfodb (CodeSpec -> ChunkDB) -> CodeSpec -> ChunkDB
forall a b. (a -> b) -> a -> b
$ DrasilState -> CodeSpec
codeSpec DrasilState
g)