úήe experimentalerkokl@gmail.comNoneBSolve a system of linear integer equations. The first argument is & the matrix of coefficients, known as A , of size mxn. The second argument $ is the vector of results, known as B , of size mx1. The result will be  either , if there is no solution, or Just x -- such that Ax = B holds.  (Naturally, the result x will be a vector of size nx1 in this case.) Here'?s an example call, to solve the following system of equations:    2x + 3y + 4z = 20  6x - 3y + 9z = -6  2x + z = 8 :solveIntegerLinearEqs [[2,3,4],[6,-3,9],[2,0,1]] [20,-6,8] Just [5,6,-2],In case there are no solutions, we will get : &solveIntegerLinearEqs [[1], [1]] [2,3]NothingWNote that there are no solutions to this second system as it stipulates the unknown is ) equal to both 2 and 3. (Overspecified.)  Similar to ), except returns all possible solutions. H Note that there might be an infinite number of solutions if the system N is underspecified, in which case the result will be a lazy list of solutions 0 that the caller can consume as much as needed. Here'Hs an example call, where we underspecify the system and hence there are c multiple (in this case an infinite number of) solutions. Here, we only take the first 3 elements, S for testing purposes, but all such results can be computed lazily. Our system is:    2x + 3y + 4z = 20  6x - 3y + 9z = -6  We have: Atake 3 `fmap` solveIntegerLinearEqsAll [[2,3,4],[6,-3,9]] [20,-6][[5,6,-2],[-8,4,6],[18,8,-10]]VCheck that the arguments are well-formed. Returns Just the number of variables needed 6 if the arguments are well formed, otherwise Nothing. 8Build the constraints corresponding to the system given  linearEqSolver-1.0Math.LinearEquationSolversolveIntegerLinearEqssolveIntegerLinearEqsAllbase Data.MaybeNothingcheckbuildConstraints