RelativelyComplementedRefOps
object RelativelyComplementedRefOps
Value members
Concrete methods
def excludeRef[M[_], Var[_], Val[_], D](ref1: Var[D], ref2: Val[D])(implicit dom: RelativelyComplementedDom[D], fin: Final[D], P: Aux1[M, Var, Val]): M[Unit]
def excludeVal[M[_], Var[_], D](ref: Var[D], d: D)(implicit dom: RelativelyComplementedDom[D], P: Aux0[M, Var]): M[Unit]
def makeDifferent[M[_], Var[_], D](ref1: Var[D], ref2: Var[D])(implicit dom: RelativelyComplementedDom[D], fin: Final[D], P: Aux0[M, Var]): M[Unit]
Extensions
Extensions
extension [M[_], D](P: Propagation[M])
def =!=(ref: Var[D])(that: Var[D])(implicit dom: RelativelyComplementedDom[D], fin: Final[D]): M[Unit]
Ensure that the two cells resolve to different values.
Ensure that the two cells resolve to different values.
def excludeThat(ref: Var[D])(that: Var[D])(implicit dom: RelativelyComplementedDom[D], fin: Final[D]): M[Unit]
extension [M[_], D](P: Propagation[M])
def excludeFrom(ref: Val[D])(that: Var[D])(implicit dom: RelativelyComplementedDom[D], fin: Final[D]): M[Unit]
extension [M[_], D](P: Propagation[M])(ref: Var[D])
extension [M[_], D](P: BranchingPropagation[M])
def isDifferentFrom(ref: Var[D])(that: Var[D])(implicit dom: RelativelyComplementedDom[D], fin: Final[D]): M[Var[Bool]]