Copyright | (c) Rodrigo Setti 2017 |
---|---|
License | MIT |
Maintainer | rodrigosetti@gmail.com |
Stability | experimental |
Portability | POSIX |
Safe Haskell | None |
Language | Haskell2010 |
- type ProjectExpr = Project Void
- type ProjectKey = String
- data Project e
- = Sum ProjectProperties (NonEmpty (Project e))
- | Product ProjectProperties (NonEmpty (Project e))
- | Sequence ProjectProperties (NonEmpty (Project e))
- | Atomic ProjectProperties Cost Trust Progress
- | Annotated e
- data ProjectProperties = ProjectProperties {}
- data ProjAttribute
- newtype Trust = Trust {}
- newtype Cost = Cost {}
- newtype Progress = Progress {
- getProgress :: Float
- defaultProjectProps :: ProjectProperties
- defaultCost :: Cost
- defaultTrust :: Trust
- defaultProgress :: Progress
- defaultAtomic :: Project a
- properties :: Project a -> Maybe ProjectProperties
- cost :: ProjectExpr -> Cost
- progress :: ProjectExpr -> Progress
- trust :: ProjectExpr -> Trust
- simplify :: Project a -> Project a
- subprojects :: Project a -> [Project a]
- prioritize :: ProjectExpr -> ProjectExpr
Documentation
type ProjectExpr = Project Void Source #
type ProjectKey = String Source #
When using to reference projects by name
Structure of a project expression
data ProjectProperties Source #
Any binding (with a name) may have associated properties
data ProjAttribute Source #
defaultCost :: Cost Source #
defaultTrust :: Trust Source #
defaultAtomic :: Project a Source #
properties :: Project a -> Maybe ProjectProperties Source #
cost :: ProjectExpr -> Cost Source #
Expected cost
progress :: ProjectExpr -> Progress Source #
trust :: ProjectExpr -> Trust Source #
Expected probability of succeeding
simplify :: Project a -> Project a Source #
Simplify a project expression structure 1) transform singleton collections into it's only child 2) flatten same constructor of the collection
subprojects :: Project a -> [Project a] Source #
prioritize :: ProjectExpr -> ProjectExpr Source #
Sort project in order that minimizes cost