public static final TCon ADDITIVE = con("Prelude", "Additive");
public static final TCon MONAD = con("Prelude", "Monad");
+ public static final TCon MONAD_E = con("Prelude", "MonadE");
public static final TCon INTEGRAL = con("Prelude", "Integral");
public static final TCon RING = con("Prelude", "Ring");
public static final TCon ORDERED_RING = con("Prelude", "OrderedRing");
public static final TUnion NO_EFFECTS = new TUnion();
public static final TCon PROC = con(BUILTIN, "Proc");
+ public static final TCon EXCEPTION = con(BUILTIN, "Exception");
public static final TCon BRANCH_POINT = con(BUILTIN, "BranchPoint");
public static Type union(Type effect1, Type effect2) {
return new TUnion(effect1, effect2);
}
+
+ public static Type union(Type effect1, Type effect2, Type effect3) {
+ return new TUnion(effect1, effect2, effect3);
+ }
public static Type union(List<Type> effects) {
if(effects.size() == 0)