Equals( IValueReferenceComponent that ) { return that.Is< Literal >(); }
Equals( IValueReferenceComponent that ) { return that.Is< Thread >( t => t.ID == this.ID ); }
Equals( IValueReferenceComponent that ) { return that.Is< Property >( p => p.Name == this.Name ); }
Equals( IValueReferenceComponent that ) { return that.Is< Machine >( m => m.Name == this.Name ); }
Equals( IValueReferenceComponent that ) { return that.Is< Indexer >( i => object.Equals( i.Index, this.Index ) ); }
Equals( IValueReferenceComponent that ) { return that.Is< Process >( p => p.ID == this.ID ); }
Equals( IValueReferenceComponent that ) { return that.Is< StackVariable >( v => v.GetUnderlying().GetType() == this.GetType() && v.Name == this.Name ); }
Equals( IValueReferenceComponent that ) { return that.Is< Frame >( f => f.Depth == this.Depth ); }