def
replicateG
{G : Type}
[Monoid G]
{M : GradedType G}
[GradedMonad 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))
Instances For
def
between'
{G : Type}
[Monoid G]
{M : GradedType G}
[GradedMonad M]
{g gl gr : G}
{α β γ : Type}
(l : M gl α)
(r : M gr β)
(c : M g γ)
:
Run c between l and r, returning all three results.
Equations
Instances For
def
between
{G : Type}
[Monoid G]
{M : GradedType G}
[GradedMonad M]
{g gl gr : G}
{α β γ : Type}
(l : M gl α)
(r : M gr β)
(c : M g γ)
:
Run c between l and r, returning only the middle result.