-Elements ::= e*/ws
-
-ps ::= Elements => "ps"
- | (e+/ws !ws)? ^"^" Quoted (!ws e+/ws)?
-psy ::= ps
- | ps !wp ^"/" !ws e
-psx ::= psy => "psy"
- | psy ^"->" e /ws
-Sequence ::= Quoted => "qprod"
- > psx => "psx"
- | psx "=>" ^"[]" /ws
- | psx ^"=>" ("()"|word|Quoted) /ws
-
-ec ::= ~[\-\]\\]
+Elements = e*/ws
+
+PreSequence = ps:: Elements
+ | PreSequence !wp ^"/" !ws e
+ | PreSequence ^"->" e /ws
+ | (Quoted|word) ^"::" PreSequence /ws
+ | PreSequence ^"=>" ("[]"|"()"|word|Quoted) /ws
+Sequence = psx:: PreSequence
+
+ec = ~[\-\]\\]