type alias
more pattern matching