type samplingInputs = { sampleCount: int, outputXYPoints: int, kernelWidth: option, pointSetDistLength: int, } module SamplingInputs = { type t = { sampleCount: option, outputXYPoints: option, kernelWidth: option, pointSetDistLength: option, } let withDefaults = (t: t): samplingInputs => { sampleCount: t.sampleCount |> E.O.default(10000), outputXYPoints: t.outputXYPoints |> E.O.default(10000), kernelWidth: t.kernelWidth, pointSetDistLength: t.pointSetDistLength |> E.O.default(10000), } }