Использование линзы над чем-то, что не является функтором - PullRequest
0 голосов
/ 15 декабря 2018

У меня есть объектив (')

myLens' :: (Functor f) => (a -> f a) -> (s -> f s)

И мне нужна функция

lensWithoutFunctor' :: ((a -> b) -> (f a -> f b)) -> (a -> f a) -> (s -> f s)

(Особый интересующий меня тип -

type PopType x a = x -> Maybe (a, x)

, который можно превратить в Functor, если я захочу)

Есть ли лучший способ сделать это, кроме создания нового типа, реализующего Functor, и затем сделать что-нибудь с участием "ala"?

...