(* This emits the following, where the location for option(s) should probably reference the s? on line 21 instead of somewhere in standard.mly where option() is defined? also 's?' is two characters while it reports 8-14; that doesn't make it easier to understand. File "", line 112, characters 8-14: Warning: symbol option(s) is unreachable from any of the start symbol(s). File "x.mly", line 20, characters 0-1: Warning: symbol s is unreachable from any of the start symbol(s). *) %token B C %start<0000> phrase %% phrase: C a {} s: a s? {} | B {} a: {}