// doesn't LHS-curry static BasicLogicRule ai_parseBasicLogicRule(S s) { PairS p = ai_splitAtFirstDoubleArrow(s); if (p == null) null; ret BasicLogicRule( ai_parseAmpersandToAndObjects(p.a), ai_parseAmpersandToAndObjects(p.b)); }