hopefully functionally equivalent grammar