private boolean indented(Type type) { return type.accept( new ITypeVisitor<Boolean, RuntimeException>() { @Override public Boolean visitReal(Type type) { return false; } @Override public Boolean visitInteger(Type type) { return false; } @Override public Boolean visitRational(Type type) { return false; } @Override public Boolean visitList(Type type) { return true; } @Override public Boolean visitMap(Type type) { return true; } @Override public Boolean visitNumber(Type type) { return false; } @Override public Boolean visitAlias(Type type) { return type.getAliased().accept(this); } @Override public Boolean visitSet(Type type) { return true; } @Override public Boolean visitSourceLocation(Type type) { return true; } @Override public Boolean visitString(Type type) { return false; } @Override public Boolean visitNode(Type type) { return true; } @Override public Boolean visitConstructor(Type type) { return true; } @Override public Boolean visitAbstractData(Type type) { return true; } @Override public Boolean visitTuple(Type type) { return true; } @Override public Boolean visitValue(Type type) { return false; } @Override public Boolean visitVoid(Type type) { return false; } @Override public Boolean visitBool(Type type) { return false; } @Override public Boolean visitParameter(Type type) { return type.getBound().accept(this); } @Override public Boolean visitExternal(Type type) { return false; } @Override public Boolean visitDateTime(Type type) { return false; } }); }