pub enum ModalFlavor {
Root,
Epistemic,
Evidential,
Bouletic,
}Expand description
Modal flavor affecting scope interpretation.
The distinction between root and epistemic modals affects quantifier scope: root modals scope under quantifiers (de re), while epistemic modals scope over quantifiers (de dicto).
Variants§
Root
Root modals express ability, obligation, or circumstantial possibility. Verbs: can, must, should, shall, could, would. Scope: NARROW (de re) — modal attaches inside quantifier scope. Example: “Every student can solve this” = ∀x(Student(x) → ◇Solve(x, this))
Epistemic
Epistemic modals express possibility or deduction based on evidence. Verbs: might, may (epistemic readings). Scope: WIDE (de dicto) — modal wraps the entire quantified formula. Example: “A student might win” = ◇∃x(Student(x) ∧ Win(x))
Evidential
Evidential modality marks an evidence source without asserting the complement: raising verbs seem/appear/look (§4.3). Frame: serial, non-reflexive — Seem(⟨P⟩) does not entail P. Example: “John seems happy” = Seem(⟨Happy(john)⟩)
Bouletic
Bouletic modality quantifies over preference-ideal worlds: wishes (§1.2 optatives) and directives (§1.4 imperatives). Frame: serial — the wished/commanded content is never entailed.
Trait Implementations§
Source§impl Clone for ModalFlavor
impl Clone for ModalFlavor
Source§fn clone(&self) -> ModalFlavor
fn clone(&self) -> ModalFlavor
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ModalFlavor
impl Debug for ModalFlavor
Source§impl PartialEq for ModalFlavor
impl PartialEq for ModalFlavor
Source§fn eq(&self, other: &ModalFlavor) -> bool
fn eq(&self, other: &ModalFlavor) -> bool
self and other values to be equal, and is used by ==.impl Copy for ModalFlavor
impl Eq for ModalFlavor
impl StructuralPartialEq for ModalFlavor
Auto Trait Implementations§
impl Freeze for ModalFlavor
impl RefUnwindSafe for ModalFlavor
impl Send for ModalFlavor
impl Sync for ModalFlavor
impl Unpin for ModalFlavor
impl UnsafeUnpin for ModalFlavor
impl UnwindSafe for ModalFlavor
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.