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