Add simple list matching, tweak constructor patterns

+ other improvements to pattern matching