2008-05-10 19:09:05 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								USING:  generic  help.markup  help.syntax  kernel  kernel.private  
						 
					
						
							
								
									
										
										
										
											2009-05-16 11:45:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								namespaces sequences words arrays help effects math
							 
						 
					
						
							
								
									
										
										
										
											2008-05-10 19:09:05 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								layouts classes.private classes compiler.units ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								IN:  classes.intersection  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								ARTICLE: "intersections"  "Intersection classes" 
							 
						 
					
						
							
								
									
										
										
										
											2017-06-24 10:42:59 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								"An object is an instance of an intersection class if it is an instance of all of its participants."  
						 
					
						
							
								
									
										
										
										
											2009-10-01 15:56:36 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{ $subsections POSTPONE:  INTERSECTION:  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $subsections define-intersection-class }
							 
						 
					
						
							
								
									
										
										
										
											2008-05-10 19:09:05 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								"Intersection classes can be introspected:"  
						 
					
						
							
								
									
										
										
										
											2015-07-20 04:01:31 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{ $subsections class-participants }
							 
						 
					
						
							
								
									
										
										
										
											2008-05-10 19:09:05 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								"The set of intersection classes is a class:"  
						 
					
						
							
								
									
										
										
										
											2009-10-01 15:56:36 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{ $subsections
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    intersection-class
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    intersection-class?
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
									
										
										
										
											2008-05-10 19:09:05 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								"Intersection classes are used to associate a method with objects which are simultaneously instances of multiple different classes, as well as to conveniently define predicates."  ;
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								ABOUT: "intersections" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								HELP:  define-intersection-class  
						 
					
						
							
								
									
										
										
										
											2019-10-24 17:10:41 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{ $values { "class"  class } { "participants"  { $sequence class } } }
							 
						 
					
						
							
								
									
										
										
										
											2008-05-10 19:09:05 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								{ $description "Defines a intersection class with specified participants. This is the run time equivalent of "  { $link POSTPONE:  INTERSECTION:  } "."  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $notes "This word must be called from inside "  { $link with-compilation-unit } "."  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $side-effects "class"  } ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ intersection-class define-intersection-class POSTPONE:  INTERSECTION:  } related-words
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								HELP:  intersection-class  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $class-description "The class of intersection classes."  } ;