This syntax represents the patterns. For example:
Just x as someMaybe
{name, age}Qualified name reference such as Maybe.Just.
Get all the modules names that are used in the pattern (and its nested patterns).
Use this to collect qualified patterns, such as Maybe.Just x.
Custom type for all patterns such as:
AllPattern:_UnitPattern:()CharPattern:'c'StringPattern:"hello"IntPattern:42HexPattern:0x11FloatPattern:42.0TuplePattern:(a, b)RecordPattern:{name, age}UnConsPattern:x :: xsListPattern:[ x, y ]VarPattern:xNamedPattern:Just _AsPattern:_ as xParenthesizedPattern:( _ )