2007-09-20 18:09:08 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								USING:  generic  help.markup  help.syntax  kernel  kernel.private  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								namespaces sequences words arrays layouts help effects math
							 
						 
					
						
							
								
									
										
										
										
											2008-01-09 04:52:08 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								layouts classes.private classes compiler.units ;
 
							 
						 
					
						
							
								
									
										
										
										
											2007-09-20 18:09:08 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								IN:  classes.predicate  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								ARTICLE: "predicates"  "Predicate classes" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								"Predicate classes allow fine-grained control over method dispatch."  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $subsection POSTPONE:  PREDICATE:  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $subsection define-predicate-class }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								"The set of predicate classes is a class:"  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $subsection predicate-class }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $subsection predicate-class? } ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								ABOUT: "predicates" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								HELP:  define-predicate-class  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $values { "superclass"  class } { "class"  class } { "definition"  "a quotation with stack effect "  { $snippet "( superclass -- ? )"  } } }
							 
						 
					
						
							
								
									
										
										
										
											2007-12-30 16:09:21 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{ $description "Defines a predicate class. This is the run time equivalent of "  { $link POSTPONE:  PREDICATE:  } "."  }
							 
						 
					
						
							
								
									
										
										
										
											2007-12-30 15:08:48 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{ $notes "This word must be called from inside "  { $link with-compilation-unit } "."  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $side-effects "class"  } ;
 
							 
						 
					
						
							
								
									
										
										
										
											2007-09-20 18:09:08 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ predicate-class define-predicate-class POSTPONE:  PREDICATE:  } related-words
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								HELP:  predicate-class  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $class-description "The class of predicate class words, defined by "  { $link POSTPONE:  PREDICATE:  } " and documented in "  { $link "predicates"  } "."  } ;