static transformable record BasicLogicRule(A lhs, A rhs) { O trail; toString { ret lhs + " => " + rhs; } S render() { ret toString(); } }