public TypeAst toTypeAst(TypeUnparsingContext context) {
TypeAst domainAst = domain.toTypeAst(context);
TypeAst rangeAst = range.toTypeAst(context);
public TypeAst toTypeAst(TypeUnparsingContext context) {
TypeAst domainAst = domain.toTypeAst(context);
TypeAst rangeAst = range.toTypeAst(context);
rangeAst = new TEffectAst(effect.toTypeAst(context), rangeAst);
Type dom = Types.canonical(domain);
if(dom instanceof TPred)
rangeAst = new TEffectAst(effect.toTypeAst(context), rangeAst);
Type dom = Types.canonical(domain);
if(dom instanceof TPred)