public static final TCon ORDERED_RING = con("Prelude", "OrderedRing");
public static final TCon REAL = con("Prelude", "Real");
public static final TCon SHOW = con("Prelude", "Show");
- public static final TCon EQ = con("Prelude", "Eq");
public static final TCon ORD = con("Prelude", "Ord");
- public static final TCon HASHABLE = con("Prelude", "Hashable");
public static final TCon IO = con("Serialization", "IO");
public static final Type REF = con("Prelude", "Ref");
parameters.add(Types.canonical(apply.parameter));
type = canonical(apply.function);
}
- return new MultiApply(type, parameters.toArray(new Type[parameters.size()]));
+ Type[] parametersArray;
+ if(parameters.isEmpty())
+ parametersArray = Type.EMPTY_ARRAY;
+ else {
+ parametersArray = new Type[parameters.size()];
+ for(int i=0,j=parametersArray.length-1;i<parametersArray.length;++i,--j)
+ parametersArray[i] = parameters.get(j);
+ }
+ return new MultiApply(type, parametersArray);
}
public static Type unifyApply(TCon func, Type type) throws MatchException {
else
return new TUnion(effects);
}
+
+ public static Type union(Type effect1, Type effect2) {
+ return new TUnion(effect1, effect2);
+ }
public static Type union(List<Type> effects) {
if(effects.size() == 0)