diff options
| author | Jan Sucan <jan@jansucan.com> | 2025-07-30 10:29:40 +0200 |
|---|---|---|
| committer | Jan Sucan <jan@jansucan.com> | 2025-07-30 10:29:40 +0200 |
| commit | b801218e7627f98556ab7d1acbefbbf8daafd851 (patch) | |
| tree | 16d4aa53f26cad069514de1352baadf687ee28b2 /ch15/MonadHandle.hs | |
| parent | 8463154bfa3112ba328d3645ff7fe25b25c433ae (diff) | |
15_a_1 and 15_a_2: Add solutions
Diffstat (limited to 'ch15/MonadHandle.hs')
| -rw-r--r-- | ch15/MonadHandle.hs | 16 |
1 files changed, 16 insertions, 0 deletions
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 --}
|
