\myheading{Circular dependencies}

As a by-product, my toy package manager can support circular dependencies.

Open this example (deps.json) in the \href{\RepoURL/\CURPATH/files/test_circ}{test\_circ} folder:

\begin{lstlisting}
{
"0":
{
    "2016" : [[2,2005,2015]]
},
"1":
{
    "2018" : [[0,2001,2016]]
},
"2":
{
    "2015" : [[1,2006,2018]]
}
}
\end{lstlisting}

\begin{lstlisting}
% python3 v1.py test_circ 0
get_first_solution
initial_pkgs: [0]
going to run solver
SAT
first solution:
0:2016; 1:2018; 2:2015;
\end{lstlisting}

Indeed, there are 3 implications: $0 \implies 1$; $1 \implies 2$; $2 \implies 0$.
By the rules of boolean logic, that means, all 3 boolean variables would be simultaneously false or true.

I'm not sure if they are handled in a real package manager like Ubuntu's 'apt'.
But this feature is possible.
