ligd: Only make RType.a lazy, do not use lazyness elsewhere

The EMGM translation has shown that this was unneeded. Recursion
only exists at the RType level, so restrict lazyness to that one.
ligd: Switch to Scala unit/sum/product types
ligd: Make parameter of rList non-Lazy as well
ligd: Make Reps implicit
ligd: Add numbers and characters