diff --git a/scratchpad/src/main/scala/com/htmlism/scratchpad/Load.scala b/scratchpad/src/main/scala/com/htmlism/scratchpad/Load.scala
index a16cfc4..11205fb 100644
--- a/scratchpad/src/main/scala/com/htmlism/scratchpad/Load.scala
+++ b/scratchpad/src/main/scala/com/htmlism/scratchpad/Load.scala
@@ -44,3 +44,8 @@ case class AndThen2[A, B](x: Asm2[A, B], y: Asm2[A, B]) extends Asm2[A, B]:
x.xs ++ y.xs
case class R[A]()
+
+// TODO needs evidence that it is a storable target of one thing
+case class StoreTo[A: Store, B]() extends Asm2[A, B]:
+ def xs: List[String] =
+ Nil
diff --git a/scratchpad/src/main/scala/com/htmlism/scratchpad/syntax/package.scala b/scratchpad/src/main/scala/com/htmlism/scratchpad/syntax/package.scala
index 82b7096..e7c03eb 100644
--- a/scratchpad/src/main/scala/com/htmlism/scratchpad/syntax/package.scala
+++ b/scratchpad/src/main/scala/com/htmlism/scratchpad/syntax/package.scala
@@ -5,16 +5,8 @@ package object syntax:
def writeConst[A: Loadable](x: A): syntax.PartiallyAppliedWrite[A, Addr] =
new syntax.PartiallyAppliedWrite(reg, x)
- def writeFrom[R: Store]: Asm2Instructions[R, Addr] =
- val storeInstruction =
- Store[R].to
-
- val storeStr =
- s"$storeInstruction ${reg.n.toString}"
-
- // TODO encoding now already makes the structures lose semantic meaning
- // TODO maybe AsmN's should be traits such that semantic structures can just obey the contracts and be AND'ed
- Asm2Instructions(List(s"$storeInstruction ${reg.n.toString}"))
+ def writeFrom[R: Store]: Asm2[R, Addr] =
+ StoreTo[R, Addr]()
class PartiallyAppliedWrite[Addr: Loadable, A](reg: WriteAddress[A], x: Addr):
def apply[R: Load: Store: Register]: String =