\section{Conclusion and Further Work}
% we solved the problems given in the introduction (see examples TODO give names to examples)
The problems introduced in the openening \ref{challenges} can be solved via our \unify{} algorithm (see examples \ref{example1} and \ref{example2}).
As you can see by the given examples our type inference algorithm can calculate
type solutions for programs involving wildcards.

Going further we try to proof soundness and completeness for \unify{}.


% The tricks are:
% \begin{itemize}
% \item Erasing wildcards by setting $\type{U} \doteq \type{L}$
% \end{itemize}

% Improvements:
% \begin{itemize}
% \item Straightforward algorithm. Less data types used. Only two sort of constraints.
% \end{itemize}

% \subsection{Problems}
% The algorithm is lacking completeness.

% \begin{verbatim}
% <A> void m(List<A> a){}

% m2(l){
%     l.add("String");
% }
% \end{verbatim}

%COnstraints:
%l <. List<a>
%String <. a