pub(super) struct Lhs {
pub(super) tele: Tele,
pub(super) has_absurd: bool,
pub(super) pats: Vec<CoreCopat>,
pub(super) ty: Term,
pub(super) pat_sub: Rc<Subst>,
pub(super) as_binds: Vec<AsBind>,
}Expand description
Result of checking the LHS of a clause. Agda.
Fields§
§tele: Tele$\Delta$: The types of the pattern variables, in internal dependency
order. Corresponds to clauseTel (in Agda).
has_absurd: boolWhether the LHS has at least one absurd pattern.
pats: Vec<CoreCopat>The patterns in internal syntax.
ty: TermThe type of the body. Is $b~\sigma$ if $\Gamma$ is defined.
pat_sub: Rc<Subst>Substitution version of pats, only up to the first projection pattern.
$\Delta \vdash \text{pat_subst} : \Gamma$.
Where $\Gamma$ is the argument telescope of the function.
This is used to update inherited dot patterns in
with-function clauses.
as_binds: Vec<AsBind>As-bindings from the left-hand side. Return instead of bound since we want them in where’s and right-hand sides, but not in with-clauses
Trait Implementations§
Auto Trait Implementations§
impl !Send for Lhs
impl !Sync for Lhs
impl Freeze for Lhs
impl RefUnwindSafe for Lhs
impl Unpin for Lhs
impl UnsafeUnpin for Lhs
impl UnwindSafe for Lhs
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
Mutably borrows from an owned value. Read more