Changes to make pattern matching of constructors more precise, fixed error with type of map field accesses