{-# LANGUAGE TypeFamilies #-}

module Development.IDE.Graph.Rule(
    -- * Defining builtin rules
    -- | Functions and types for defining new types of Shake rules.
    addRule,
    Shake.RunMode(..), Shake.RunChanged(..), Shake.RunResult(..),
    -- * Calling builtin rules
    -- | Wrappers around calling Shake rules. In general these should be specialised to a builtin rule.
    apply, apply1,
    ) where

import qualified Development.Shake.Rule as Shake
import Development.IDE.Graph.Internal.Action
import Development.IDE.Graph.Internal.Rules