import M3._

assert(SEQs_smart(Nil) == ONE)
assert(SEQs_smart(List(ZERO)) == ZERO)
assert(SEQs_smart(List(CHAR('a'))) == CHAR('a'))
assert(SEQs_smart(List(ONE ~ ONE)) == ONE ~ ONE)
assert(SEQs_smart(List(ONE, ONE)) == SEQs(List(ONE, ONE)))
assert(ALTs_smart(Nil) == ZERO)
assert(ALTs_smart(List(ONE ~ ONE)) == ONE ~ ONE)
assert(ALTs_smart(List(ZERO, ZERO)) == ALTs(List(ZERO, ZERO)))
