Correctly restrict the struct predicate's filter type when a parent struct is mutable but the child is not and they both have polymorphic type variables. See the discussion in GH issue #205