とlens
併用していxml-lens
ます。Folds
次の関数をよりポリモーフィックにして、だけでなくでも機能するようにしたいと思いますTraversals
。
-- | Traverse a plated structure recursively, trying to match a fold at each level. Don't recurse
-- if the fold matches.
deep :: forall s a. Plated s => Traversal' s a -> Traversal' s a
deep f = let go :: Traversal' s a; go = cloneTraversal $ failing f (plate . go) in go
この関数は、 のdeep関数のように機能しhxt
ます。私が望む方法でそれをより多態的にすることは可能ですか?