<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://dev.eiffel.com/index.php?action=history&amp;feed=atom&amp;title=Talk%3AComparison_of_catcall_solutions</id>
		<title>Talk:Comparison of catcall solutions - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://dev.eiffel.com/index.php?action=history&amp;feed=atom&amp;title=Talk%3AComparison_of_catcall_solutions"/>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:Comparison_of_catcall_solutions&amp;action=history"/>
		<updated>2026-05-19T21:50:43Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.24.1</generator>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:Comparison_of_catcall_solutions&amp;diff=11052&amp;oldid=prev</id>
		<title>Clemahieu at 17:05, 6 May 2008</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:Comparison_of_catcall_solutions&amp;diff=11052&amp;oldid=prev"/>
				<updated>2008-05-06T17:05:59Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 17:05, 6 May 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Do any of these methods cover covariance only through non-conforming inheritance?&amp;#160; I think B. Schoeller touched on non-conforming inheritance at http://www.fams.de/text/type-safe-eiffel.html&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Do any of these methods cover covariance only through non-conforming inheritance?&amp;#160; I think B. Schoeller touched on non-conforming inheritance at http://www.fams.de/text/type-safe-eiffel.html &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;and others, I've read so many existing suggestions I can't remember where I found them.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If it were restricted to non-conforming inheritance it would obviously get rid of the export restriction problems.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If it were restricted to non-conforming inheritance it would obviously get rid of the export restriction problems.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Clemahieu</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:Comparison_of_catcall_solutions&amp;diff=11051&amp;oldid=prev</id>
		<title>Clemahieu at 17:04, 6 May 2008</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:Comparison_of_catcall_solutions&amp;diff=11051&amp;oldid=prev"/>
				<updated>2008-05-06T17:04:40Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Do any of these methods cover covariance only through non-conforming inheritance?  I think B. Schoeller touched on non-conforming inheritance at http://www.fams.de/text/type-safe-eiffel.html&lt;br /&gt;
&lt;br /&gt;
If it were restricted to non-conforming inheritance it would obviously get rid of the export restriction problems.&lt;br /&gt;
&lt;br /&gt;
Combining nc-inheritance and rechecking would allow even more than covariant redefinition, you could redefine an anchored type to any other type as long as the class text in the subclass was valid.  This would essentially be equating redefinition in non-conforming inheritance to a textural insertion in subclasses.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;e&amp;gt;&lt;br /&gt;
class A&lt;br /&gt;
feature&lt;br /&gt;
b: INTEGER&lt;br /&gt;
double: like b is&lt;br /&gt;
do&lt;br /&gt;
result := b + b&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/e&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;e&amp;gt;&lt;br /&gt;
--This could be a valid redefinition of A.b even though REAL does not conform to INTEGER since {REAL}b + {REAL}b is as valid as {INTEGER}b + {INTEGER}b&lt;br /&gt;
class C&lt;br /&gt;
inherit{NONE}&lt;br /&gt;
A&lt;br /&gt;
redefine&lt;br /&gt;
b&lt;br /&gt;
end&lt;br /&gt;
feature&lt;br /&gt;
b: REAL&lt;br /&gt;
&amp;lt;/e&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It doesn't solve the generic case, however.&lt;/div&gt;</summary>
		<author><name>Clemahieu</name></author>	</entry>

	</feed>