"	NAME		SmallInterfaces
	AUTHOR		Benny Sadeh <sadehb@ix.netcom.com>
	URL		http://brain.cs.uiuc.edu/VisualWorks.SmallInterfaces
	FUNCTION	bringing interfaces (a la Java) to Smalltalk
	KEYWORDS	interface 
	ST-VERSIONS	VisualWorks 2.5x & 3.0 (Envy config map & parcels)
			VisualAge 4.x (Envy config map) 
			GemStone 5.x
	PREREQUISITES	Refacotry Browser (3.0.3)
	CONFLICTS	(none known) 
	DISTRIBUTION	world
	VERSION		1.5.0
	DATE		24-May-99

INSTALLATION

If you are installing for VisualWorks 3.0, load:
	SmallInterfaces.pcl - the "thing"
	Toy Interfaces.pcl - some initial interfaces to play with
	SmallInterfaces Gui.pcl - the GUI (the Refacotry Browser is a prerequisite)

If you are installing for GemStone 5.x:
	filein SmallInterfaces Extentions.gs as SystemUser
	filein SmallInterfaces.gs as whatever into a segment writable to developers
	filein ToyInterfaces.gs - as whatever into whatever 
Note: there is no GUI for GemStone, since the Refacotry Browser is a prerequisite, and it hasn't been ported yet.


SUMMARY

SmallInterfaces brings explicit interfaces to Smalltalk.

Things you can do with SmallInterfaces:

1. Declare an interface and specify its behavior. This can be done in three distinct ways:
	- Directly, by specifying its name and selectors. (Look under the ''interface creation'' protocol under Interface.)
	- By composing from other interfaces.
	- By converting a class as a template (Look at the various asInterface* methods under Class.)

2. Declare a class as implementing one or more interfaces. This can be done in two distinct ways:
	- Directly, by adding a 'interfaces: stringOfInterfaceNames' to the class definition. 
	  (Look under the 'compiling' protocols under Class.)
	- By converting an interface to a class (Look at the various as Class* methods under Interface.)
	Both methods will create stubbed methods as necessary on behalf of the implemented interface(s)

3. Given a class, you can ask: 
	- What interfaces does it implement?

4. Given an interface, you can ask: 
	- Which classes understand it? 
	- Which classes implement it?

5. Given an interface, you can ask: 
	- Which interfaces extend it? 
	- Which interfaces it is extending?

6. Given a class and an interface, answer whether the class implements the interface.

				Benny Sadeh 
"!
