diff --git a/documentation/current/method/invitation-eiffel-i2e/i2e-genericity.wiki b/documentation/current/method/invitation-eiffel-i2e/i2e-genericity.wiki index 136d1b43..01ab0951 100644 --- a/documentation/current/method/invitation-eiffel-i2e/i2e-genericity.wiki +++ b/documentation/current/method/invitation-eiffel-i2e/i2e-genericity.wiki @@ -1,7 +1,7 @@ [[Property:title|I2E: Genericity]] [[Property:weight|-6]] [[Property:uuid|091c0b65-73de-b454-b3f2-d8752983780e]] -Building software components (classes) as implementations of abstract data types yields systems with a solid architecture but does not in itself ensure reusability and extendibility. Two key techniques address the problem: generosity (unconstrained or constrained) and inheritance. Let us look first at the unconstrained form. +Building software components (classes) as implementations of abstract data types yields systems with a solid architecture but does not in itself ensure reusability and extendibility. Two key techniques address the problem: genericity (unconstrained or constrained) and inheritance. Let us look first at the unconstrained form. To make a class generic is to give it '''formal generic parameters''' representing as unknown types, as in these examples from EiffelBase, an open-source library covering basic data structures and algorithms: diff --git a/documentation/current/solutions/gui-building/eiffelvision-2/converting-eiffelvision-2-systems-void-safety.wiki b/documentation/current/solutions/gui-building/eiffelvision-2/converting-eiffelvision-2-systems-void-safety.wiki index af55f26d..f8eb3163 100644 --- a/documentation/current/solutions/gui-building/eiffelvision-2/converting-eiffelvision-2-systems-void-safety.wiki +++ b/documentation/current/solutions/gui-building/eiffelvision-2/converting-eiffelvision-2-systems-void-safety.wiki @@ -29,7 +29,7 @@ Example from EV_TIMEOUT If you have an existing, custom platform dependent implementation, there are a few more changes needed than what was required for the interface class. -For the interface class changes, now the interface object is passed to the implementation after creation, via `assign_interface', this means that `make' no longer takes an argument. This also means that to adhere to void-safety all of the types are now created and initialized via the creation routine of the implementation object. +For the interface class changes, now the interface object is passed to the implementation after creation, via `assign_interface', this means that `make' no longer takes an argument (see `create_implementation' above). This also means that to adhere to void-safety all of the types are now created and initialized via the creation routine of the implementation object. An example from the conversion of Windows implementation of EV_BUTTON_IMP.