-prefBoringness p = if prefIsVeryBoring p then 2
- else if prefIsBoring p then 1 else 0
-prefExpertness p = if prefIsExpert p then 2
- else if prefIsKnowledgeable p then 1 else 0
+data PMConfig = PMConfig {
+ minCostFlow :: MinCostFlowImpl,
+ reviewsEachProposal :: Int,
+ prefIsExpert :: Wt -> Bool,
+ prefIsKnowledgeable :: Wt -> Bool,
+ prefIsBoring :: Wt -> Bool,
+ prefIsVeryBoring :: Wt -> Bool,
+ prefIsConflict :: Wt -> Bool,
+ loadTolerance :: Int,
+ marginalLoadCost :: Wt -> Wt,
+ marginalBoringCost :: Wt -> Wt,
+ marginalVeryBoringCost :: Wt -> Wt,
+ assignmentCost :: Wt -> Wt,
+ knowledgeableBonus :: Wt,
+ expertBonus :: Wt
+}
+
+prefBoringness cfg p = if prefIsVeryBoring cfg p then 2
+ else if prefIsBoring cfg p then 1 else 0
+prefExpertness cfg p = if prefIsExpert cfg p then 2
+ else if prefIsKnowledgeable cfg p then 1 else 0