@@ -3,50 +3,48 @@ module Files where
33import Prelude
44
55import Control.Monad.Cont.Trans (ContT (..))
6- import Control.Monad.Eff ( kind Effect , Eff )
6+ import Effect ( Effect )
77import Control.Monad.Except.Trans (ExceptT (..))
88import Data.Either (Either (..))
99import Data.Function.Uncurried (Fn4 , Fn3 , runFn4 , runFn3 )
1010import Types (Async )
1111
12- foreign import data FS :: Effect
13-
1412type ErrorCode = String
1513
1614type FilePath = String
1715
1816foreign import readFileImpl ::
19- forall eff . Fn3 FilePath
20- (String -> Eff ( fs :: FS | eff ) Unit )
21- (ErrorCode -> Eff ( fs :: FS | eff ) Unit )
22- (Eff ( fs :: FS | eff ) Unit )
17+ Fn3 FilePath
18+ (String -> Effect Unit )
19+ (ErrorCode -> Effect Unit )
20+ (Effect Unit )
2321
2422foreign import writeFileImpl ::
25- forall eff . Fn4 FilePath
23+ Fn4 FilePath
2624 String
27- (Eff ( fs :: FS | eff ) Unit )
28- (ErrorCode -> Eff ( fs :: FS | eff ) Unit )
29- (Eff ( fs :: FS | eff ) Unit )
25+ (Effect Unit )
26+ (ErrorCode -> Effect Unit )
27+ (Effect Unit )
3028
31- readFile :: forall eff . FilePath -> (Either ErrorCode String -> Eff ( fs :: FS | eff ) Unit ) -> Eff ( fs :: FS | eff ) Unit
29+ readFile :: FilePath -> (Either ErrorCode String -> Effect Unit ) -> Effect Unit
3230readFile path k = runFn3 readFileImpl path (k <<< Right ) (k <<< Left )
3331
34- writeFile :: forall eff . FilePath -> String -> (Either ErrorCode Unit -> Eff ( fs :: FS | eff ) Unit ) -> Eff ( fs :: FS | eff ) Unit
32+ writeFile :: FilePath -> String -> (Either ErrorCode Unit -> Effect Unit ) -> Effect Unit
3533writeFile path text k = runFn4 writeFileImpl path text (k $ Right unit) (k <<< Left )
3634
37- readFileCont :: forall eff . FilePath -> Async ( fs :: FS | eff ) (Either ErrorCode String )
35+ readFileCont :: FilePath -> Async (Either ErrorCode String )
3836readFileCont path = ContT $ readFile path
3937
40- writeFileCont :: forall eff . FilePath -> String -> Async ( fs :: FS | eff ) (Either ErrorCode Unit )
38+ writeFileCont :: FilePath -> String -> Async (Either ErrorCode Unit )
4139writeFileCont path text = ContT $ writeFile path text
4240
43- readFileContEx :: forall eff . FilePath -> ExceptT ErrorCode ( Async ( fs :: FS | eff )) String
41+ readFileContEx :: FilePath -> ExceptT ErrorCode Async String
4442readFileContEx path = ExceptT $ readFileCont path
4543
46- writeFileContEx :: forall eff . FilePath -> String -> ExceptT ErrorCode ( Async ( fs :: FS | eff )) Unit
44+ writeFileContEx :: FilePath -> String -> ExceptT ErrorCode Async Unit
4745writeFileContEx path text = ExceptT $ writeFileCont path text
4846
49- copyFileContEx :: forall eff . FilePath -> FilePath -> ExceptT ErrorCode ( Async ( fs :: FS | eff )) Unit
47+ copyFileContEx :: FilePath -> FilePath -> ExceptT ErrorCode Async Unit
5048copyFileContEx src dest = do
5149 content <- readFileContEx src
5250 writeFileContEx dest content
0 commit comments