Только LALR, только хардкор :) (кроме шуток если писать генератор парсеров руками, то LALR не шибко сложнее SLR, в чём-то даже проще, а размер таблиц у них одинаковый)
Note: The Grammar type is a Monad (used to provide observable sharing) but it lives a layer above productions. It cannot be used to decide what production to use depending on the result of a previous production, i.e. it does not give us monadic parsing.