summaryrefslogtreecommitdiff
path: root/hadrian/src/Expression/Type.hs
blob: cf6eec212946beb6ebf0d0df46d7d7aa8f34ede1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
module Expression.Type where

import Data.Set (Set)
import Context.Type
import Way.Type

import Builder
import qualified Hadrian.Expression as H

-- | @Expr a@ is a computation that produces a value of type @Action a@ and can
-- read parameters of the current build 'Target'.
type Expr a = H.Expr Context Builder a

-- | The following expressions are used throughout the build system for
-- specifying conditions ('Predicate'), lists of arguments ('Args'), 'Ways'
-- and 'Packages'.
type Predicate = H.Predicate Context Builder
type Args      = H.Args      Context Builder
type Ways      = Expr (Set Way)