public Maybe <T> Meet(Maybe <T> left, Maybe <T> right) { if (left.MaybeValue is not T leftValue) { return(right.Clone()); } if (right.MaybeValue is not T rightValue) { return(left.Clone()); } return(new Maybe <T> (ValueLattice.Meet(leftValue, rightValue))); }