lib/solver/search/partition.ex
defmodule CPSolver.Search.DomainPartition do
alias CPSolver.DefaultDomain, as: Domain
def by_min(domain) do
min_val = Domain.min(domain)
case Domain.remove(domain, min_val) do
:fail -> :fail
{_domain_change, rest} -> {:ok, [min_val, rest]}
end
end
end