     return all(lhs, rhs)
 }
 
+
+// MARK: - Logicial Disjunction
+
 /// A goal that succeeds when any of the subgoals succeeds.
 ///
 /// This can multiple alternative solutions.

}


/// A goal that succeeds when all of the subgoals succeed.
public func all(_ goals: [Goal]) -> Goal {
    return { state in

    return any(goals)
}

/// A goal that succeeds when either of the subgoals succeeds.
///
/// This can multiple alternative solutions.
