[Haskell-beginners] MonadThrow, MonadReader and shake