{-# LANGUAGE DeriveFunctor #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE TemplateHaskell #-} module System.Handsy.Internal where import Control.Monad.Free import Control.Monad.Free.TH import qualified Data.ByteString.Lazy as B import System.Exit data HandsyF k = Command FilePath [String] B.ByteString ((ExitCode, B.ByteString, B.ByteString) -> k) | ReadFile FilePath (B.ByteString -> k) | WriteFile FilePath B.ByteString (() -> k) | AppendFile FilePath B.ByteString (() -> k) deriving (Functor) makeFree ''HandsyF