/// <summary>
        /// To clone one simple clone type in the SSA algorithm
        /// </summary>
        /// <param name="typeExpression">The type to be cloned</param>
        /// <param name="methodAnalyzed">The method that is being analyzed when the operation is performed.</param>
        /// <returns>The cloned type</returns>
        public static TypeExpression CloneType(TypeExpression typeExpression, MethodType methodAnalyzed)
        {
            IDictionary <int, TypeVariable> clonedTypeVariables = new Dictionary <int, TypeVariable>();
            IList <EquivalenceClass>        equivalenceClasses  = new List <EquivalenceClass>();
            TypeExpression newTypeExpression = typeExpression.Clone(clonedTypeVariables, equivalenceClasses, methodAnalyzed);

            CloneEquivalenceClasses(clonedTypeVariables, equivalenceClasses, methodAnalyzed);
            return(newTypeExpression);
        }