Trait CanElaborate

Source
pub trait CanElaborate<T, S> {
    // Required method
    fn elab(&self, x: &T) -> Result<S, String>;
}
Expand description

A type that can elaborated into another.

Says that objects of type T can be elaborated into objects of type S.

Required Methods§

Source

fn elab(&self, x: &T) -> Result<S, String>

Transform notation into syntax.

Implementors§

Source§

impl CanElaborate<Mor, TabEdge> for Elaborator

Source§

impl CanElaborate<Mor, ModalMor> for Elaborator

Elaborates into a morphism in a model of a modal theory.

Source§

impl CanElaborate<Mor, Path<TabOb, TabEdge>> for Elaborator

Elaborates into a morphism in a model of a discrete tabulator theory.

Source§

impl CanElaborate<Mor, Path<QualifiedName, QualifiedName>> for Elaborator

Elaborates into a morphism in a model of a discrete double theory.

Source§

impl CanElaborate<Ob, TabOb> for Elaborator

Elaborates into an object in a model of a discrete tabulator theory.

Source§

impl CanElaborate<Ob, ModalOb> for Elaborator

Elaborates into an object in a model of a modal theory.

Source§

impl CanElaborate<Ob, QualifiedName> for Elaborator

Elaborates into an object in a model of a discrete double theory.

Source§

impl CanElaborate<MorType, TabMorType> for Elaborator

Elaborates into morphism type in a discrete tabulator theory.

Source§

impl CanElaborate<MorType, Path<QualifiedName, QualifiedName>> for Elaborator

Elaborates into morphism type in a discrete double theory.

Source§

impl CanElaborate<MorType, ShortPath<ModeApp<QualifiedName>, ModeApp<QualifiedName>>> for Elaborator

Elaborates into morphism type in a modal double theory.

Source§

impl CanElaborate<ObOp, Path<TabObType, TabObProj>> for Elaborator

Elaborates into object operation in a discrete tabulator theory.

Source§

impl CanElaborate<ObOp, Path<ModeApp<QualifiedName>, ModeApp<ModalOp>>> for Elaborator

Elaborates into an object operation in a modal double theory.

Source§

impl CanElaborate<ObOp, QualifiedName> for Elaborator

Elaborates into object operation in a discrete double theory.

Source§

impl CanElaborate<ObType, TabObType> for Elaborator

Elaborates into object type in a discrete tabulator theory.

Source§

impl CanElaborate<ObType, ModeApp<QualifiedName>> for Elaborator

Elaborates into object type in a modal double theory.

Source§

impl CanElaborate<ObType, QualifiedName> for Elaborator

Elaborates into object type in a discrete double theory.