h&!!      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{ Safe-Inferred789 math-programmingA linear expression.6Linear expressions contain symbolic variables of type b# and numeric coefficients of type a. Often a will be |, and b9 will be whatever variable type your linear program uses.math-programmingConstruct a term in a linear expression by multiplying a constant by a variable.math-programmingConstruct a term in a linear expression by multiplying a variable by a constant.math-programmingConstruct a term in a linear expression by dividing a variable by a constant.math-programming3Multiplication of linear expressions by a constant.math-programmingAddition of linear expressions.math-programming%The difference of linear expressions.math-programming0A linear expression with a single variable term. math-programming.A linear expression with only a constant term. math-programming5The sum of variable terms with coefficients of unity. math-programmingThe sum of linear expressions. math-programming"Reduce an expression to its value. math-programming.Simplify an expression by grouping like terms.  77766 Safe-Inferred 789B,math-programmingA convient shorthand for the type of linear expressions used in models.math-programmingNon-strict inequalities.math-programming/The type of values that a variable can take on.Note that the Integer* constructor does not interfere with the Integer type, as the Integer type does not define a constuctor of the same name. The ambiguity is unfortunate, but other natural nomenclature such as Integral are similarly conflicted.math-programming%The variable lies in the real numbersmath-programming!The variable lies in the integersmath-programmingThe variable lies in the set {0, 1}.math-programming An interval of the real numbers.math-programmingThe non-negative reals.math-programmingThe non-positive reals. math-programming!Any closed interval of the reals.!math-programmingAny real number."math-programmingThe outcome of an optimization.#math-programming#An optimal solution has been found.$math-programmingA feasible solution has been found. The result may or may not be optimal.%math-programming+The model has been proven to be infeasible.&math-programming*The model has been proven to be unbounded.'math-programmingAn error was encountered during the solve. Instance-specific methods should be used to determine what occurred.(math-programmingWhether a math program is minimizing or maximizing its objective.+math-programmingA (mixed) integer program."In addition to the methods of the 1 class, this monad supports constraining variables to be either continuous or discrete.1math-programmingA linear program.This is a monadic context for formulating and solving linear programs. The types v, c, and o refer to the types of variables, constraints, and objectives, respectively, used by a particular solver backend.2math-programming'Add a new (free) variable to the model.See , , , and  as higher-level alternatives.3math-programming!Remove a variable from the model.4math-programmingGet the name of a variable.5math-programmingSet a name for a variable.6math-programming7Retrieve the current bounds associated with a variable.7math-programmingApply bounds to a variable.See  as a higher-level alternative.8math-programming4Get the value of a variable in the current solution.This value could be arbitrary if no solve has been completed, or a solve produced an infeasible or unbounded solution.9math-programmingAdd a constraint representing the given inequality to the model.See the  ,  ,  ,  ,  , , , , and ) functions as higher-level alternatives.:math-programming#Remove a constraint from the model.;math-programmingGet the name of a constraint.<math-programmingSet a name for a constraint.=math-programming0Get the dual value associated with a constraint.>math-programming Add an objective to the problem.Depending on the solver backend, this might replace an existing objective.?math-programming#Remove an objective from the model.@math-programmingGet the name of a objective.Amath-programmingSet a name for a objective.Bmath-programmingGet the sense of an objective.Cmath-programmingSet the sense of an objective.Dmath-programmingGet the value of an objective.Emath-programming*Get the timeout associated with a problem.Fmath-programming*Set the timeout associated with a problem.Gmath-programmingCompute an LP-optimal solution.Hmath-programming5Function composition involving a 2-argument function.Imath-programming1Monadic lifting involving a 2-argument function.4! "&%$#'(*)+0/.-,1GFEDCBA@?>=<;:98765432HI41GFEDCBA@?>=<;:98765432HI+0/.-,(*)"&%$#'!  Safe-Inferred!amath-programming$Create an objective to be minimized.bmath-programming$Create an objective to be maximized.cmath-programming=Get the value of a linear expression in the current solution.dmath-programmingCreate a new free variable.emath-programming#Create a new non-negative variable.fmath-programming#Create a new non-positive variable.gmath-programming1Create a new variable bounded between two values.hmath-programming/Constrain a variable to take on certain values.?This function is designed to be used as an infix operator, e.g. i `h` 'Interval 3 7' creates an integer variable that can take on values 3, 4, 5, 6, or 7.imath-programming"Create an integer-valued variable.jmath-programmingCreate a binary variable.kmath-programmingCreate an integer-value variable that takes on non-negative values.lmath-programmingCreate an integer-value variable that takes on non-positive values.mmath-programmingSet the type of a variable.?This function is designed to be used as an infix operator, e.g. d `m`  nmath-programming"A less-than or equal-to constraintomath-programmingA less-than or equal-to constraint with a numeric left-hand sidepmath-programmingA less-than or equal-to constraint with a numeric right-hand sideqmath-programming%A greater-than or equal-to constraintrmath-programmingA greater-than or equal-to constraint with a numeric left-hand sidesmath-programmingA greater-than or equal-to constraint with a numeric right-hand sidetmath-programmingAn equality constraintumath-programming4An equality constraint with a numeric left-hand sidevmath-programming5An equality constraint with a numeric right-hand sideabcdefghijklmnopqrstuvwxyz{abcdefghijklmnopqrstuvwxyz{ n4o4p4q4r4s4t4u4v4 Safe-Inferredg  !"'#$%&()*+,-./0123456789:;<=>?@ABCDEFGabcdefghijklmnopqrstuvwyz{dgefijklhmtuvnopqrsab  123456789:;<=>?@ABCDEFG+,-./0cw !"'#$%&()*yz{ !"#$%&'())*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxy    z{|}~math-programming-0.5.1-inplaceMath.Programming.LinExprMath.Programming.TypesMath.Programming.DslfreeboundednonNegnonPoswithin.==..==#==..>=..>=>=..<=..<=<=.Math.ProgrammingLinExpr*..*./scale.+..-.varconvsumesumevalsimplify$fMonoidLinExpr$fSemigroupLinExpr $fEqLinExpr $fReadLinExpr $fShowLinExpr$fFunctorLinExpr$fFoldableLinExpr$fTraversableLinExprExpr InequalityDomain ContinuousIntegerBinaryBoundsNonNegativeRealsNonPositiveRealsIntervalFreeSolutionStatusOptimalFeasible Infeasible UnboundedErrorSense Minimization MaximizationMonadIPgetVariableDomainsetVariableDomaingetRelativeMIPGapsetRelativeMIPGap optimizeIPMonadLP addVariabledeleteVariablegetVariableNamesetVariableNamegetVariableBoundssetVariableBoundsgetVariableValue addConstraintdeleteConstraintgetConstraintNamesetConstraintNamegetConstraintValue addObjectivedeleteObjectivegetObjectiveNamesetObjectiveNamegetObjectiveSensesetObjectiveSensegetObjectiveValue getTimeout setTimeout optimizeLPcompose2lift2$fMonadLPvcoStateT$fMonadLPvcoRWST$fMonadLPvcoWriterT$fMonadLPvcoReaderT$fMonadIPvcoStateT$fMonadIPvcoReaderT$fReadInequality$fShowInequality$fFunctorInequality$fFoldableInequality$fTraversableInequality $fReadDomain $fShowDomain $fReadBounds $fShowBounds$fEqSolutionStatus$fOrdSolutionStatus$fReadSolutionStatus$fShowSolutionStatus $fEqSense $fOrdSense $fReadSense $fShowSenseminimizemaximizeevalExprintegerbinary nonNegInteger nonPosIntegerasKind.== formatExpr formatExpr'withVariableNamewithConstraintNamewithObjectiveNameghc-prim GHC.TypesDouble