You cannot use your _fooish function. If you try to do this, you will receive an error message:
Cannot use record selector `_fooish' as a function due to escaped type variables Probable fix: use pattern-matching syntax instead In the expression: _fooish
Therefore, the lens cannot create a lens for you. Why doesn't he give an error? Well, sometimes you have extra fields for which you can create lenses. It doesn't seem to be that way, but I think that overall makeLenses just skips everything that cannot be done and tries to generate the rest.
source share