@@ -6,7 +6,6 @@ module FileSizes where
6import Control.Exception
6import Control.Exception
7import Control.Monad.IO.Class
7import Control.Monad.IO.Class
8import Data.IORef
8import Data.IORef
10import System.Posix
9import System.Posix
12-- effectful
11-- effectful
@@ -27,8 +26,10 @@ import qualified Control.Monad.Freer.State as FS
30import qualified Control.Monad.State as M
30import qualified Control.Monad.State as M
31import qualified Control.Monad.Reader as M
31import qualified Control.Monad.Reader as M
33-- polysemy
34-- polysemy
34#ifdef VERSION_polysemy
35#ifdef VERSION_polysemy
@@ -155,10 +156,13 @@ eff_runLogging
155 :: L.Eff (Eff_Logging : es) a
156 :: L.Eff (Eff_Logging : es) a
156 -> L.Eff es (a, [String])
157 -> L.Eff es (a, [String])
157eff_runLogging
158eff_runLogging
158− = fmap swap . L.runState [] . L.interpret \case
159+ = fmap eff_swap . L.runState [] . L.interpret \case
159 Eff_logMsg msg -> L.modify (msg :)
160 Eff_logMsg msg -> L.modify (msg :)
163+eff_swap :: (a, b) -> (b, a)
164+eff_swap (x, y) = (y, x)
162----------
166----------
164eff_calculateFileSize
168eff_calculateFileSize
@@ -263,6 +267,8 @@ fs_calculateFileSizesDeep = FS.runM
263----------------------------------------
267----------------------------------------
266class Monad m => MonadFile m where
272class Monad m => MonadFile m where
267 mtl_tryFileSize :: FilePath -> m (Maybe Int)
273 mtl_tryFileSize :: FilePath -> m (Maybe Int)
@@ -329,6 +335,8 @@ mtl_calculateFileSizesDeep
330 runR = flip M.runReaderT ()
336 runR = flip M.runReaderT ()
332----------------------------------------
340----------------------------------------
333-- polysemy
341-- polysemy
@@ -351,9 +359,12 @@ poly_logMsg :: P.Member Poly_Logging es => String -> P.Sem es ()
351poly_logMsg = P.send . Poly_logMsg
359poly_logMsg = P.send . Poly_logMsg
353poly_runLogging :: P.Sem (Poly_Logging : es) a -> P.Sem es (a, [String])
361poly_runLogging :: P.Sem (Poly_Logging : es) a -> P.Sem es (a, [String])
354−poly_runLogging = fmap swap . P.runState [] . P.reinterpret \case
362+poly_runLogging = fmap poly_swap . P.runState [] . P.reinterpret \case
355 Poly_logMsg msg -> P.modify (msg :)
363 Poly_logMsg msg -> P.modify (msg :)
365+poly_swap :: (a, b) -> (b, a)
366+poly_swap (x, y) = (y, x)
357----------
368----------
359poly_calculateFileSize
370poly_calculateFileSize