type env = { sampleCount: int, xyPointLength: int, } type outputType = | Dist(GenericDist_Types.genericDist) | Float(float) | String(string) | GenDistError(GenericDist_Types.error) let run: (~env: env, GenericDist_Types.Operation.genericFunctionCallInfo) => outputType let runFromDist: ( ~env: env, ~functionCallInfo: GenericDist_Types.Operation.fromDist, GenericDist_Types.genericDist, ) => outputType let runFromFloat: ( ~env: env, ~functionCallInfo: GenericDist_Types.Operation.fromDist, float, ) => outputType module Output: { type t = outputType let toDist: t => option let toDistR: t => result let toFloat: t => option let toFloatR: t => result let toString: t => option let toStringR: t => result let toError: t => option let fmap: (~env: env, t, GenericDist_Types.Operation.singleParamaterFunction) => t }