From b801218e7627f98556ab7d1acbefbbf8daafd851 Mon Sep 17 00:00:00 2001 From: Jan Sucan Date: Wed, 30 Jul 2025 10:29:40 +0200 Subject: 15_a_1 and 15_a_2: Add solutions --- ch15/MonadHandle.hs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 ch15/MonadHandle.hs (limited to 'ch15/MonadHandle.hs') diff --git a/ch15/MonadHandle.hs b/ch15/MonadHandle.hs new file mode 100644 index 0000000..209728d --- /dev/null +++ b/ch15/MonadHandle.hs @@ -0,0 +1,16 @@ +{-- snippet MonadHandle --} +{-# LANGUAGE FunctionalDependencies, MultiParamTypeClasses #-} + +module MonadHandle (MonadHandle(..)) where + +import System.IO (IOMode(..)) + +class Monad m => MonadHandle h m | m -> h where + openFile :: FilePath -> IOMode -> m h + hPutStr :: h -> String -> m () + hClose :: h -> m () + hGetContents :: h -> m String + + hPutStrLn :: h -> String -> m () + hPutStrLn h s = hPutStr h s >> hPutStr h "\n" +{-- /snippet MonadHandle --} -- cgit v1.2.3