From 266c67d4d328cddd6ea21d5c76dd77bbf8b9ace5 Mon Sep 17 00:00:00 2001 From: Hassaan Mohsin Date: Tue, 30 Jun 2026 17:07:21 -0700 Subject: [PATCH] experiment with `into` type conversion --- forja/src/P.scala | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 forja/src/P.scala diff --git a/forja/src/P.scala b/forja/src/P.scala new file mode 100644 index 0000000..6b7af53 --- /dev/null +++ b/forja/src/P.scala @@ -0,0 +1,20 @@ +package forja + +into opaque type P[T] = P.Erased + +object P: + trait Meta[T] + object Meta: + def derived[T]: Meta[T] = ??? + end Meta + + given [T] => (meta: Meta[T]) => Conversion[T, P[T]]: + def apply(x: T): Erased = ??? + end given + + trait Erased + + extension [T] (p: P[T]) + def fixpoint(fn: PartialFunction[T, T]): P[T] = ??? + end extension +end P