AP
Size: a a a
AP
A
AP
data Currency = Currency
{ code :: String
...
}
rub = Currency
{ code = "RUR"
,
}
data Amount = Amount
{
currency :: Currency
}
AP
A
AP
data Logging = Logging
{ logError :: String -> IO ()
, logWarning :: String -> IO ()
)
data HasLogging m = ReaderT Logging m
AP
AP
AP
AP
local
можно временно подменять зависимость: заглушать логирование для отдельных кусков кода, напримерA
E
к
E
JS
JS
E
E
JS