Typ taki jak Maybe (Lens' a b) nie działa, ponieważ Lens' jest pod maską typu Rank-2, który nie może być zawijany w konstruktorze typu bez rozszerzenia -XImpredicativeTypes (co nie jest obsługiwane w
Ten program: {-# LANGUAGE RankNTypes, ImpredicativeTypes #-}
import qualified Data.Vector.Mutable as MV
import qualified Data.Vector as V
import Control.Monad.ST
import Control.Monad.Primitive