Evgenii Akentev
·
2021-01-09
Main.hs
1module Main where
2
3import qualified SuperWeatherProvider
4import qualified SuperWindProvider
5import qualified SuperTemperatureProvider
6import qualified WeatherProvider
7import qualified WeatherReporter
8
9-- | This is an actual application where we use
10-- our concrete implementation of `WeatherProvider`.
11main :: IO ()
12main = do
13 let
14 wp = SuperWindProvider.new
15 tp = SuperTemperatureProvider.new
16 wph = SuperWeatherProvider.new wp tp
17 wrh = WeatherReporter.new wph
18 weatherReportInLondon <- WeatherReporter.getCurrentWeatherReportInLondon wrh
19 putStrLn weatherReportInLondon