packages feed

smerdyakov-0.0.0.0: src/Smerdyakov.hs

-- | 'Smerdyakov' allows you to declare dependencies or assumptions that your
-- functions make, and have them automatically gather recursively gathered. The
-- essence of it is not unlike the tool @Make@.
module Smerdyakov
  (
  -- * Core functionality
  -- | These classes provide the core functionality of the package.
    Gives(..)
  , Needs
  , make

  -- * Actions
  -- | The actions that are to be performed in fulfilling your dependencies or
  -- assumptions are described in the monad @Action@. This is a free monad that
  -- can perform basic IO functionality.
  --
  -- The set of IO actions defined in 'Action' is still quite limited; if there
  -- is something you need that is not yet available, please open an issue or
  -- send a PR.
  , shellA
  , shellWithErrA
  , openFileA
  , hCloseA
  , interpretIO
  , throwA
  , ActionError(..)
  , Action


  -- * Re-Exports
  , Proxy(Proxy)
  ) where

import Smerdyakov.Internal.Class as X
import Smerdyakov.Internal.FreeIO as X
import Data.Proxy as X