GLR or LALR backend dumps core on h.many(h.many(h.choice(h.ch('a'), h.ch_range('a', 'a'))))
Here's a simple reproduction:
$ LD_LIBRARY_PATH=. python
Python 2.7.6 (default, Nov 12 2018, 20:00:40)
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import hammer as h
>>> h.many(h.many(h.choice(h.ch('a'), h.ch_range('a', 'a')))).compile(h._PB_LALR)
python: build/debug/src/backends/lalr.c:34: follow_transition: Assertion `action->type == HLR_SHIFT' failed.
Aborted (core dumped)
It doesn't seem to depend on the particular character used (Hypothesis initially reported it to me with '\0') but it does require the character to be within the character range. It doesn't happen with a choice of two identical characters (rather than using a range) or with a single level of h.many, but it does happen with a choice of two overlapping ranges, and it does happen with the GLR backend as well.