Equations
- Data.instBEqUnique.beq { id := a } { id := b } = (a == b)
- Data.instBEqUnique.beq x✝¹ x✝ = false
Instances For
@[implicit_reducible]
Equations
- Data.instBEqUnique = { beq := Data.instBEqUnique.beq }
@[implicit_reducible]
Equations
Instances For
@[implicit_reducible]
Equations
- Data.instReprUnique = { reprPrec := Data.instReprUnique.repr }
Equations
- Data.instReprUnique.repr x✝ prec✝ = Std.Format.bracket "{ " (Std.Format.nil ++ Std.Format.text "id" ++ Std.Format.text " := " ++ (Std.Format.nest 6 (repr x✝.id)).group) " }"
Instances For
@[implicit_reducible]
Equations
- Data.instOrdUnique = { compare := fun (a b : Data.Unique) => compare a.id b.id }
@[implicit_reducible]
Allocate a fresh Unique value. Each call returns a distinct value.
$$\text{newUnique} : \text{IO}(\text{Unique})$$
Equations
- Data.newUnique = do let n ← ST.Ref.get Data.uniqueCounter✝ ST.Ref.set Data.uniqueCounter✝ (n + 1) pure { id := n }