Hedgehog有一个HTraversable
这样定义的类:
-- | Higher-order traversable functors.
--
class HTraversable t where
htraverse :: Applicative f => (forall a. g a -> f (h a)) -> t g -> f (t h)
它与它们的Var
类型一起用于参数化类型的值是具体的还是抽象的。t
有 kind(* -> *) -> *
并且是一个高阶函子,尽管他们实际上没有那个类f
,g
并且h
有 kind * -> *
。我已经看到在几个不同的库中定义了相同的东西。
有没有办法摆脱这种情况?我承认我什至不知道那会做什么,而且我对镜片或普通镜片也不是很舒服Traversable
。