purescript-0.15.9: PureScript Programming Language Compiler
Safe HaskellSafe-Inferred
LanguageHaskell2010

Language.PureScript.Make.Monad

Synopsis

Implementation of Make API using files on disk

newtype Make a Source #

A monad for running make actions

Instances

Instances details
MonadIO Make Source # 
Instance details

Defined in Language.PureScript.Make.Monad

Methods

liftIO :: IO a -> Make a #

Applicative Make Source # 
Instance details

Defined in Language.PureScript.Make.Monad

Methods

pure :: a -> Make a #

(<*>) :: Make (a -> b) -> Make a -> Make b #

liftA2 :: (a -> b -> c) -> Make a -> Make b -> Make c #

(*>) :: Make a -> Make b -> Make b #

(<*) :: Make a -> Make b -> Make a #

Functor Make Source # 
Instance details

Defined in Language.PureScript.Make.Monad

Methods

fmap :: (a -> b) -> Make a -> Make b #

(<$) :: a -> Make b -> Make a #

Monad Make Source # 
Instance details

Defined in Language.PureScript.Make.Monad

Methods

(>>=) :: Make a -> (a -> Make b) -> Make b #

(>>) :: Make a -> Make b -> Make b #

return :: a -> Make a #

MonadBaseControl IO Make Source # 
Instance details

Defined in Language.PureScript.Make.Monad

Associated Types

type StM Make a #

Methods

liftBaseWith :: (RunInBase Make IO -> IO a) -> Make a #

restoreM :: StM Make a -> Make a #

MonadError MultipleErrors Make Source # 
Instance details

Defined in Language.PureScript.Make.Monad

MonadReader Options Make Source # 
Instance details

Defined in Language.PureScript.Make.Monad

Methods

ask :: Make Options #

local :: (Options -> Options) -> Make a -> Make a #

reader :: (Options -> a) -> Make a #

MonadWriter MultipleErrors Make Source # 
Instance details

Defined in Language.PureScript.Make.Monad

MonadBase IO Make Source # 
Instance details

Defined in Language.PureScript.Make.Monad

Methods

liftBase :: IO α -> Make α #

type StM Make a Source # 
Instance details

Defined in Language.PureScript.Make.Monad

runMake :: Options -> Make a -> IO (Either MultipleErrors a, MultipleErrors) Source #

Execute a Make monad, returning either errors, or the result of the compile plus any warnings.

makeIO :: (MonadIO m, MonadError MultipleErrors m) => Text -> IO a -> m a Source #

Run an IO action in the Make monad. The String argument should describe what we were trying to do; it is used for rendering errors in the case that an IOException is thrown.

getTimestamp :: (MonadIO m, MonadError MultipleErrors m) => FilePath -> m UTCTime Source #

Get a file's modification time in the Make monad, capturing any errors using the MonadError instance.

getTimestampMaybe :: (MonadIO m, MonadError MultipleErrors m) => FilePath -> m (Maybe UTCTime) Source #

Get a file's modification time in the Make monad, returning Nothing if the file does not exist.

readTextFile :: (MonadIO m, MonadError MultipleErrors m) => FilePath -> m Text Source #

Read a text file strictly in the Make monad, capturing any errors using the MonadError instance.

readJSONFile :: (MonadIO m, MonadError MultipleErrors m) => FromJSON a => FilePath -> m (Maybe a) Source #

Read a JSON file in the Make monad, returning Nothing if the file does not exist or could not be parsed. Errors are captured using the MonadError instance.

readCborFile :: (MonadIO m, MonadError MultipleErrors m) => Serialise a => FilePath -> m (Maybe a) Source #

Read a Cbor encoded file in the Make monad, returning Nothing if the file does not exist or could not be parsed. Errors are captured using the MonadError instance.

readExternsFile :: (MonadIO m, MonadError MultipleErrors m) => FilePath -> m (Maybe ExternsFile) Source #

Read an externs file, returning Nothing if the file does not exist, could not be parsed, or was generated by a different version of the compiler.

writeTextFile :: FilePath -> ByteString -> Make () Source #

Write a text file in the Make monad, capturing any errors using the MonadError instance.

writeJSONFile :: (MonadIO m, MonadError MultipleErrors m) => ToJSON a => FilePath -> a -> m () Source #

Write a JSON file in the Make monad, capturing any errors using the MonadError instance.

copyFile :: (MonadIO m, MonadError MultipleErrors m) => FilePath -> FilePath -> m () Source #

Copy a file in the Make monad, capturing any errors using the MonadError instance.