git.iko.soy/rowtype-yoga/purescript-yoga-om-layer
on v1.0.6 help sign in
24 lines 724 B history raw
1module Test.Negative.DuplicateProvides where
3import Prelude
4import Effect (Effect)
5import Yoga.Om as Om
6import Yoga.Om.Layer (OmLayer, makeLayer, combineRequirements)
8type Config = { port :: Int }
9type Logger = { log :: String -> Effect Unit }
11-- Both layers provide logger!
12layer1 :: OmLayer (config :: Config) (logger :: Logger) ()
13layer1 = makeLayer do
14 { config } <- Om.ask
15 pure { logger: { log: \msg -> pure unit } }
17layer2 :: OmLayer (config :: Config) (logger :: Logger) ()
18layer2 = makeLayer do
19 { config } <- Om.ask
20 pure { logger: { log: \msg -> pure unit } }
22-- What happens when we combine them?
23combined :: OmLayer (config :: Config) (logger :: Logger) ()
24combined = combineRequirements layer1 layer2