1
g a
は具体的なタイプです。私は[g (m a)] -> [m (g a)] -> m [g a]
をやっていると思います。最後のステップはsequence :: Monad m => t (m a) -> m (t a)
で行うことができます。どのように私は最初のステップを達成するだろうか?そう、あなたが手でこれを記述する必要はありませんので、 MonadRandom m => [g(m a)] - > m [g a]
sequenceLEdge :: Functor f => LEdge (f a) -> f (LEdge a)
sequenceLEdge (l, r, act) = fmap (\v -> (l, r, v)) act
はおそらく
Foldable
と
Traversable
トリプルのためのインスタンスと大きなタプルをそこにする必要がありますが、今のところありません。
'トラバースシーケンス 'は機能しますか? – Ryan
'g 'に制約がありません。これは不可能です。 'g(m a)'を 'm(g a)'にするにはどうすればいいですか?それは 'g 'が何であるかによって決まります。 – amalloy
gは実際にはhttps://hackage.haskell.org/package/fgl-5.6.0.0/docs/Data-Graph-Inductive-Graph.html#t:LEdge – chronologos