diff --git a/scratchpad/src/main/scala/com/htmlism/scratchpad/AsmProgram.scala b/scratchpad/src/main/scala/com/htmlism/scratchpad/AsmProgram.scala
index cda7d5f..90344a8 100644
--- a/scratchpad/src/main/scala/com/htmlism/scratchpad/AsmProgram.scala
+++ b/scratchpad/src/main/scala/com/htmlism/scratchpad/AsmProgram.scala
@@ -7,8 +7,8 @@ case class AsmProgram[A: Reg, MA <: MutationStatus, Z: Semigroup](a: StatefulReg
def map(f: StatefulRegister[A, MA] => Z): AsmProgram[A, MA, Z] =
AsmProgram(a, z |+| f(a))
- def widen[B: Reg]: AsmProgram2[A, MA, B, Unknown, Z] =
- AsmProgram2(a, ??? : StatefulRegister[B, Unknown], z)
+ def widen[B: Reg]: AsmProgram2[A, MA, B, Ignores, Z] =
+ AsmProgram2(a, ??? : StatefulRegister[B, Ignores], z)
case class AsmProgram2[A: Reg, MA <: MutationStatus, B: Reg, MB <: MutationStatus, Z: Semigroup](
a: StatefulRegister[A, MA],
@@ -18,8 +18,8 @@ case class AsmProgram2[A: Reg, MA <: MutationStatus, B: Reg, MB <: MutationStatu
def map(f: (StatefulRegister[A, MA], StatefulRegister[B, MB]) => Z): AsmProgram2[A, MA, B, MB, Z] =
AsmProgram2(a, b, z |+| f(a, b))
- def widen[C: Reg]: AsmProgram3[A, MA, B, MB, C, Unknown, Z] =
- AsmProgram3(a, b, ??? : StatefulRegister[C, Unknown], z)
+ def widen[C: Reg]: AsmProgram3[A, MA, B, MB, C, Ignores, Z] =
+ AsmProgram3(a, b, ??? : StatefulRegister[C, Ignores], z)
case class AsmProgram3[
A: Reg,
diff --git a/scratchpad/src/main/scala/com/htmlism/scratchpad/Generator.scala b/scratchpad/src/main/scala/com/htmlism/scratchpad/Generator.scala
index 263f9b2..2921baa 100644
--- a/scratchpad/src/main/scala/com/htmlism/scratchpad/Generator.scala
+++ b/scratchpad/src/main/scala/com/htmlism/scratchpad/Generator.scala
@@ -62,8 +62,8 @@ object Generator extends App:
)
println(s" AsmProgram$classNum($arguments, z |+| that.z)")
println()
- println(s" def widen[$newLetter : Reg]: AsmProgram$nPlus[$typeParametersShort, $newLetter, Unknown, Z] =")
- println(s" AsmProgram$nPlus($arguments, ??? : StatefulRegister[$newLetter, Unknown], z)")
+ println(s" def widen[$newLetter : Reg]: AsmProgram$nPlus[$typeParametersShort, $newLetter, Ignores, Z] =")
+ println(s" AsmProgram$nPlus($arguments, ??? : StatefulRegister[$newLetter, Ignores], z)")
println()
println(s" def name(s: String): SubRoutine$classNum[$typeParametersShort, Z] =")
println(s" SubRoutine$classNum(s, this)")
diff --git a/scratchpad/src/main/scala/com/htmlism/scratchpad/MutationStatus.scala b/scratchpad/src/main/scala/com/htmlism/scratchpad/MutationStatus.scala
index 92e34c2..56f0f61 100644
--- a/scratchpad/src/main/scala/com/htmlism/scratchpad/MutationStatus.scala
+++ b/scratchpad/src/main/scala/com/htmlism/scratchpad/MutationStatus.scala
@@ -2,5 +2,6 @@ package com.htmlism.scratchpad
sealed trait MutationStatus
-trait Unknown extends MutationStatus
-trait Known extends MutationStatus
+class Modifies() extends MutationStatus
+
+case class Ignores() extends Modifies
diff --git a/scratchpad/src/main/scala/com/htmlism/scratchpad/ScratchPad.scala b/scratchpad/src/main/scala/com/htmlism/scratchpad/ScratchPad.scala
index eeca38b..5570fbb 100644
--- a/scratchpad/src/main/scala/com/htmlism/scratchpad/ScratchPad.scala
+++ b/scratchpad/src/main/scala/com/htmlism/scratchpad/ScratchPad.scala
@@ -33,18 +33,18 @@ object ScratchPad:
trait ReadWrite[A] extends Read[A] with Write[A]
lazy val startA =
- ??? : StatefulRegister[Accumulator, Unknown]
+ ??? : StatefulRegister[Accumulator, Ignores]
lazy val startX =
- ??? : StatefulRegister[RegisterX, Unknown]
+ ??? : StatefulRegister[RegisterX, Ignores]
lazy val startY =
- ??? : StatefulRegister[RegisterY, Unknown]
+ ??? : StatefulRegister[RegisterY, Ignores]
- (AsmProgram(startA, ""): AsmProgram[Accumulator, Unknown, String])
+ (AsmProgram(startA, ""): AsmProgram[Accumulator, Ignores, String])
(AsmProgram(startA, "")
- .widen[RegisterX]: AsmProgram2[Accumulator, Unknown, RegisterX, Unknown, String])
+ .widen[RegisterX]: AsmProgram2[Accumulator, Ignores, RegisterX, Ignores, String])
//
// case class Subroutine2[A, B](name: String, f: (Lease[A], Lease[B]) => State2[A, B]) {