úÎ B )     fundeps, MPTCs experimentalEdward Kmett <ekmett@gmail.com>MPTCs, fundeps provisionalEdward Kmett <ekmett@gmail.com> lower . section = id  We'Jd prefer the following non-Haskell 98 type to make parametricity clearer,  but this suffices @ telescope :: (forall b. [Lens (f b) b]) -> Lens (Cofree f a) a    non-portable (fundeps, MPTCs) experimentalEdward Kmett <ekmett@gmail.com>     MPTCs, fundeps provisionalEdward Kmett <ekmett@gmail.com>   retract . lift = id  retract . liftF = id            free-2.0.2Control.Comonad.Cofree.ClassControl.Comonad.CofreeControl.Monad.Free.ClassControl.Monad.Free ComonadCofreeunwrapCofree:<coiterunfoldsection extractLens unwrapLens telescope MonadFreewrapFreePureliftFretractiter cofreeTyCon cofreeConstrcofreeDataType