дефолтное значение не требует, чтобы зависимости дефолтного значения были у всех инстансов тоже, но если зависимости дефолтного значения есть, то будет и дефолтное значение
а может и понимаю, проверка на валидность же идет во время компиляции, в это время в контексте есть все инстансы, и F f без fmap станет валидным, если есть в контексте M f, иначе будет невалидным