# SelfInitializingType -- the class of all self initializing types

## Description

A self initializing type X will produce an instance of X from initial data v with the expression X v.

 i1 : X = new SelfInitializingType of BasicList o1 = X o1 : SelfInitializingType i2 : x = X {1,2,3} o2 = X{1, 2, 3} o2 : X i3 : class x o3 = X o3 : SelfInitializingType

Command is an example of a self initializing type.

• HeaderType -- a class of lists with abbreviated constructors
• WrapperType -- a class of lists with abbreviated constructors

## Methods that use a self initializing type :

• "SelfInitializingType Thing"
• /// SelfInitializingType \\ Thing /// -- see Thing // Function -- apply a function
• "Thing // SelfInitializingType" -- see Thing // Function -- apply a function
• /// SelfInitializingType \ VisibleList /// -- see VisibleList / Function -- apply a function to elements of a list
• "VisibleList / SelfInitializingType" -- see VisibleList / Function -- apply a function to elements of a list

## Fixed objects of class SelfInitializingType :

• Bag -- the class of all bags
• Command -- the class of all commands
• Eliminate -- elimination order
• Hybrid -- the class of lists encapsulating hybrid strategies
• LowerBound -- the class of lower bound objects
• NumberedVerticalList -- a type of visible self-initializing list that prints vertically
• ProductOrder -- product ordering
• "TestInput" -- see tests -- locate a package's tests
• URL -- a type representing a URL
• VerticalList -- a type of visible self-initializing list that prints vertically

## For the programmer

The object SelfInitializingType is a type, with ancestor classes Type < MutableHashTable < HashTable < Thing.