repos / handle-examples.hs.git


handle-examples.hs.git / vinyl-handle
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