原始的核心运动
同态模型原始核心运动。在展开的每次迭代中,展开函数可以返回新种子或整个子树。
apo::Functor f => (a -> f (Either (Fix f) a)) -> a -> Fix f
apo f = Fix . fmap (either id (apo f)) . f
请注意,apo
和 para
是双重的。翻转中的箭头; para
中的元组与 apo
中的 Either
是双重的,并且实现是彼此的镜像。
同态模型原始核心运动。在展开的每次迭代中,展开函数可以返回新种子或整个子树。
apo::Functor f => (a -> f (Either (Fix f) a)) -> a -> Fix f
apo f = Fix . fmap (either id (apo f)) . f
请注意,apo
和 para
是双重的。翻转中的箭头; para
中的元组与 apo
中的 Either
是双重的,并且实现是彼此的镜像。