20 lines
715 B
Plaintext
20 lines
715 B
Plaintext
|
module ExpressionT = Reducer_Expression_T
|
||
|
module ExpressionValue = ReducerInterface.ExpressionValue
|
||
|
module ErrorValue = Reducer_ErrorValue
|
||
|
module Bindings = Reducer_Category_Bindings
|
||
|
|
||
|
let removeDefaults = (ev: ExpressionT.expressionValue): ExpressionT.expressionValue =>
|
||
|
switch ev {
|
||
|
| EvRecord(extbindings) => {
|
||
|
let bindings: Bindings.t = Bindings.fromRecord(extbindings)
|
||
|
let keys = Js.Dict.keys(Reducer.defaultExternalBindings)
|
||
|
Belt.Map.String.keep(bindings, (key, _value) => {
|
||
|
let removeThis = Js.Array2.includes(keys, key)
|
||
|
!removeThis
|
||
|
})->Bindings.toExpressionValue
|
||
|
}
|
||
|
| value => value
|
||
|
}
|
||
|
|
||
|
let rRemoveDefaults = r => Belt.Result.map(r, ev => removeDefaults(ev))
|