pub struct TypeScheme {
pub vars: Vec<TyVar>,
pub ty: MonoType,
}Expand description
Polymorphic type scheme: ∀α₁…αₙ. τ
Fields§
§vars: Vec<TyVar>Quantified type variables
ty: MonoTypeThe monomorphic type
Implementations§
Source§impl TypeScheme
impl TypeScheme
Sourcepub fn instantiate(&self, gen: &mut TyVarGenerator) -> MonoType
pub fn instantiate(&self, gen: &mut TyVarGenerator) -> MonoType
Instantiate a type scheme with fresh type variables
Trait Implementations§
Source§impl Clone for TypeScheme
impl Clone for TypeScheme
Source§fn clone(&self) -> TypeScheme
fn clone(&self) -> TypeScheme
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for TypeScheme
impl Debug for TypeScheme
Auto Trait Implementations§
impl Freeze for TypeScheme
impl RefUnwindSafe for TypeScheme
impl Send for TypeScheme
impl Sync for TypeScheme
impl Unpin for TypeScheme
impl UnwindSafe for TypeScheme
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more