Ejemplo n.º 1
0
        public override Type RemoveRigids(Dictionary <TypeVariable, TypeVariable> dict)
        {
            var inner = Inner.RemoveRigids(dict);

            // C# lacks return value covariance (unlike Java), so an explicit cast is needed
            return(new TypeScheme(
                       new HashSet <TypeVariable>(Arguments.Select(x => (TypeVariable)x.RemoveRigids(dict))),
                       inner
                       ));
        }
Ejemplo n.º 2
0
 public override Type RemoveRigids(Dictionary <TypeVariable, TypeVariable> dict)
 {
     return(new FunctionType(Argument.RemoveRigids(dict), Result.RemoveRigids(dict)));
 }