6 -- A PMConfig structure has a bunch of configuration values used by
7 -- many functions in PMInstanceGenerator, ProposalMatcher, and Evaluation, which
8 -- take a PMConfig as their first argument. Module PMDefaults defines a sane
9 -- default configuration `pmDefaults'; it can be used as-is or individual fields
10 -- can be overridden, e.g., pmDefaults{loadTolerance = 2} . See module
11 -- PMDefaults for documentation of each field.
12 data PMConfig = PMConfig {
13 minCostFlow :: MinCostFlowImpl,
14 reviewsEachProposal :: Int,
15 pcReviewsEachProposal :: Int,
16 expIsExpert :: Wt -> Bool,
17 expIsKnowledgeable :: Wt -> Bool,
18 prefIsBoring :: Wt -> Bool,
19 prefIsVeryBoring :: Wt -> Bool,
20 prefIsConflict :: Wt -> Bool,
22 ercLoadTolerance :: Int,
23 marginalLoadCost :: Wt -> Wt,
24 marginalBoringCost :: Wt -> Wt,
25 marginalVeryBoringCost :: Wt -> Wt,
26 assignmentCost :: Wt -> Wt,
27 knowledgeableBonus :: Wt,
30 topicZipfExponent :: Wt,
31 reviewEvalWeights :: [Wt]