diff --git a/packages/squiggle-lang/package.json b/packages/squiggle-lang/package.json
index 40f7e7c7..67dfed03 100644
--- a/packages/squiggle-lang/package.json
+++ b/packages/squiggle-lang/package.json
@@ -4,7 +4,9 @@
"homepage": "https://squiggle-language.com",
"license": "MIT",
"scripts": {
- "build": "rescript build -with-deps && tsc",
+ "build": "yarn build:rescript && yarn build:typescript",
+ "build:rescript": "rescript build -with-deps",
+ "build:typescript": "tsc",
"bundle": "webpack",
"start": "rescript build -w -with-deps",
"clean": "rescript clean && rm -r dist",
diff --git a/packages/squiggle-lang/src/js/index.ts b/packages/squiggle-lang/src/js/index.ts
index abb563ed..c4c9b0d3 100644
--- a/packages/squiggle-lang/src/js/index.ts
+++ b/packages/squiggle-lang/src/js/index.ts
@@ -8,15 +8,6 @@ import {
externalBindings,
expressionValue,
errorValue,
- distributionError,
- toPointSet,
- continuousShape,
- discreteShape,
- distributionErrorToString,
- internalCode,
- mixedShape,
- sampleSetDist,
- symbolicDist,
} from "../rescript/TypescriptInterface.gen";
export {
makeSampleSetDist,
@@ -46,48 +37,6 @@ export let defaultSamplingInputs: samplingParams = {
xyPointLength: 10000,
};
-export type result =
- | {
- tag: "Ok";
- value: a;
- }
- | {
- tag: "Error";
- value: b;
- };
-
-export function resultMap(
- r: result,
- mapFn: (x: a) => b
-): result {
- if (r.tag === "Ok") {
- return { tag: "Ok", value: mapFn(r.value) };
- } else {
- return r;
- }
-}
-
-function Ok(x: a): result {
- return { tag: "Ok", value: x };
-}
-
-type tagged = { tag: a; value: b };
-
-function tag(x: a, y: b): tagged {
- return { tag: x, value: y };
-}
-
-export type squiggleExpression =
- | tagged<"symbol", string>
- | tagged<"string", string>
- | tagged<"call", string>
- | tagged<"lambda", [string[], internalCode]>
- | tagged<"array", squiggleExpression[]>
- | tagged<"boolean", boolean>
- | tagged<"distribution", Distribution>
- | tagged<"number", number>
- | tagged<"record", { [key: string]: squiggleExpression }>;
-
export function run(
squiggleString: string,
bindings?: externalBindings,
diff --git a/packages/squiggle-lang/src/js/rescript_interop.ts b/packages/squiggle-lang/src/js/rescript_interop.ts
index 75c6e733..45f4124b 100644
--- a/packages/squiggle-lang/src/js/rescript_interop.ts
+++ b/packages/squiggle-lang/src/js/rescript_interop.ts
@@ -5,10 +5,9 @@ import {
genericDist,
environment,
symbolicDist,
- recordEV,
- internalCode,
discreteShape,
continuousShape,
+ lambdaValue,
} from "../rescript/TypescriptInterface.gen";
import { Distribution } from "./distribution";
import { tagged, tag } from "./types";
@@ -38,7 +37,7 @@ export type rescriptExport =
}
| {
TAG: 5; // EvLambda
- _0: [string[], recordEV, internalCode];
+ _0: lambdaValue;
}
| {
TAG: 6; // EvNumber
@@ -80,7 +79,7 @@ export type squiggleExpression =
| tagged<"symbol", string>
| tagged<"string", string>
| tagged<"call", string>
- | tagged<"lambda", [string[], recordEV, internalCode]>
+ | tagged<"lambda", lambdaValue>
| tagged<"array", squiggleExpression[]>
| tagged<"arraystring", string[]>
| tagged<"boolean", boolean>
diff --git a/packages/squiggle-lang/src/rescript/Distributions/DistributionTypes.res b/packages/squiggle-lang/src/rescript/Distributions/DistributionTypes.res
index 0d413bf4..a9151a8f 100644
--- a/packages/squiggle-lang/src/rescript/Distributions/DistributionTypes.res
+++ b/packages/squiggle-lang/src/rescript/Distributions/DistributionTypes.res
@@ -114,6 +114,7 @@ module DistributionOperation = {
| ToFloat(#Mean) => `mean`
| ToFloat(#Pdf(r)) => `pdf(${E.Float.toFixed(r)})`
| ToFloat(#Sample) => `sample`
+ | ToFloat(#IntegralSum) => `integralSum`
| ToDist(Normalize) => `normalize`
| ToDist(ToPointSet) => `toPointSet`
| ToDist(ToSampleSet(r)) => `toSampleSet(${E.I.toString(r)})`
diff --git a/packages/squiggle-lang/src/rescript/TypescriptInterface.res b/packages/squiggle-lang/src/rescript/TypescriptInterface.res
index 114dc4e6..6ebb8377 100644
--- a/packages/squiggle-lang/src/rescript/TypescriptInterface.res
+++ b/packages/squiggle-lang/src/rescript/TypescriptInterface.res
@@ -74,7 +74,7 @@ let errorValueToString = Reducer_ErrorValue.errorToString
let distributionErrorToString = DistributionTypes.Error.toString
@genType
-type internalCode = ReducerInterface_ExpressionValue.internalCode
+type lambdaValue = ReducerInterface_ExpressionValue.lambdaValue
@genType
let defaultSamplingEnv = ReducerInterface_GenericDistribution.defaultEnv