\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} % void m(List a){} % m2(l){ % l.add("String"); % } % \end{verbatim} %COnstraints: %l <. List %String <. a