Skip to content

Commit

Permalink
up
Browse files Browse the repository at this point in the history
  • Loading branch information
xieyuheng committed Sep 6, 2024
1 parent 979b8dc commit ba5f4b7
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 7 deletions.
14 changes: 10 additions & 4 deletions src/belief-system/assimilateBelief.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
import type { Belief } from "../belief/Belief.js"
import { detectMergeConflict } from "../merge-conflict/detectMergeConflict.js"
import { type Nothing, isNothing } from "../nothing/Nothing.js"
import { log } from "../utils/log.js"
import { BeliefSystem } from "./BeliefSystem.js"
import { isStrongerBelief } from "./isStrongerBelief.js"

export function assimilateBelief<A, B>(
export function assimilateBelief<A>(
base: BeliefSystem<A>,
belief: Belief<B> | Nothing,
): BeliefSystem<A | B> {
belief: Belief<A> | Nothing,
): BeliefSystem<A> {
if (isNothing(belief)) {
return base
}
Expand All @@ -29,5 +31,9 @@ export function assimilateBelief<A, B>(
(oldBelief) => !isStrongerBelief(belief, oldBelief),
)

return BeliefSystem<A | B>([...strongerOldBeliefs, belief])
if (detectMergeConflict(belief)) {
log({ newSystem: BeliefSystem([...strongerOldBeliefs, belief]) })
}

return BeliefSystem([...strongerOldBeliefs, belief])
}
6 changes: 3 additions & 3 deletions src/monad/merge-conflict-monad.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { defineHandler } from "../generic/index.js"
import { isMergeConflict } from "../merge-conflict/index.js"
import { detectMergeConflict } from "../merge-conflict/index.js"
import { nothing } from "../nothing/index.js"
import { isFunction } from "../utils/isFunction.js"
import { flatten, fmap } from "./monad.js"

defineHandler(fmap, [isFunction, isMergeConflict], (f, ma) => nothing)
defineHandler(fmap, [isFunction, detectMergeConflict], (f, ma) => nothing)

defineHandler(flatten, [isMergeConflict], (mma) => nothing)
defineHandler(flatten, [detectMergeConflict], (mma) => nothing)

0 comments on commit ba5f4b7

Please sign in to comment.