module Logger.Interpreter where import Control.Monad.Free.Church (foldF) import Logger.Language interpretLoggerMethod :: LoggerMethodF a -> IO a interpretLoggerMethod (LogMessage msg next) = next <$> print msg runLogger :: Logger () -> IO () runLogger = foldF interpretLoggerMethod