diff --git a/packages/squiggle-lang/src/js/index.ts b/packages/squiggle-lang/src/js/index.ts
index ded1581e..bed78695 100644
--- a/packages/squiggle-lang/src/js/index.ts
+++ b/packages/squiggle-lang/src/js/index.ts
@@ -10,6 +10,7 @@ import {
continuousShape,
discreteShape,
distributionErrorToString,
+ internalCode,
} from "../rescript/TypescriptInterface.gen";
export {
makeSampleSetDist,
@@ -81,10 +82,6 @@ function tag(x: a, y: b): tagged {
return { tag: x, value: y };
}
-export abstract class internalCode {
- protected opaque!: any;
-} /* simulate opaque types */
-
export type squiggleExpression =
| tagged<"symbol", string>
| tagged<"string", string>
diff --git a/packages/squiggle-lang/src/rescript/TypescriptInterface.res b/packages/squiggle-lang/src/rescript/TypescriptInterface.res
index 8704bf5e..e200fbea 100644
--- a/packages/squiggle-lang/src/rescript/TypescriptInterface.res
+++ b/packages/squiggle-lang/src/rescript/TypescriptInterface.res
@@ -54,3 +54,6 @@ let errorValueToString = Reducer_ErrorValue.errorToString
@genType
let distributionErrorToString = DistributionTypes.Error.toString
+
+@genType
+type internalCode = ReducerInterface_ExpressionValue.internalCode