def
replicateG
{G : Type}
[Monoid G]
{M : GradedType G}
[GMonad M]
{g : G}
{α : Type}
(x : M g α)
(n : ℕ)
:
M (g ^ n) (List.Vector α n)
Run a graded computation n times, collecting results into a vector.
Equations
- replicateG x 0 = gcast ⋯ (gpure List.Vector.nil)
- replicateG x n.succ = gcast ⋯ (x >>=ᵍ fun (h : α) => replicateG x n >>=ᵍ fun (t : List.Vector α n) => gpure (h ::ᵥ t))