abstract sclass HAbstractRenderable { S baseLink; MakeFrame makeFrame; sinterface MakeFrame { S makeFrame(S title, S contents); } *() {} *(S *baseLink) {} HAbstractRenderable makeFrame(MakeFrame makeFrame) { this.makeFrame = makeFrame; this; } S baseLinkPlus(S uri) { ret nempty(uri) ? appendSlash(baseLink) + uri : baseLink; } }