language-ninja-0.1.0: A library for dealing with the Ninja build language.

CopyrightCopyright 2017 Awake Security
LicenseApache-2.0
Maintaineropensource@awakesecurity.com
Stabilityexperimental
Safe HaskellNone
LanguageHaskell2010

Language.Ninja.Mock.ReadFile

Description

A typeclass exposing an interface that allows reading a file from a filesystem (virtual or otherwise).

Since: 0.1.0

Synopsis

Documentation

class Monad m => MonadReadFile m where Source #

This typeclass allows you to write code that reads files from the filesystem and then later run that code purely against a virtual filesystem of some description.

Since: 0.1.0

Minimal complete definition

readFile

Methods

readFile :: Path -> m Text Source #

Read the file located at the given path and decode it into Text.

TODO: some notion of error handling should be encoded into the type

Since: 0.1.0

Instances

MonadReadFile IO Source #

The obvious instance for IO.

Since: 0.1.0

Methods

readFile :: Path -> IO Text Source #

(MonadTrans t, Monad (t m), MonadReadFile m) => MonadReadFile (t m) Source #

A placeholder (undecidable) instance that allows this constraint to propagate through monad transformers without needing to lift manually.

Since: 0.1.0

Methods

readFile :: Path -> t m Text Source #