HasField
солвится только если поле в скоупе, из доки:
If the constraint solver encounters a constraint HasField x r a where r is a concrete datatype with a field x >>> in scope <<<, it will automatically solve the constraint using the field selector as the dictionary
Интересно только как это с NoFieldSelectors взаимодействовать будет