mockcat-0.4.0.0: test/Test/MockCat/Definition.hs
{-# LANGUAGE FunctionalDependencies #-}
module Test.MockCat.Definition (FileOperation(..), Finder(..), program, findValue) where
import Data.Text
import Prelude hiding (readFile, writeFile)
class Monad m => FileOperation m where
readFile :: FilePath -> m Text
writeFile :: FilePath -> Text -> m ()
program ::
FileOperation m =>
FilePath ->
FilePath ->
m ()
program inputPath outputPath = do
content <- readFile inputPath
writeFile outputPath content
class Monad m => Finder a b m | a -> b, b -> a where
findIds :: m [a]
findById :: a -> m b
findValue :: Finder a b m => m [b]
findValue = do
ids <- findIds
mapM findById ids