阿部です。こんにちわ

At Wed, 12 Jul 2000 14:12:05 +0900,
Yukihiro Matsumoto wrote:
> トップレベルで
> 
>   include Net
> 
> した以上はNetの定数(Socket含む)がトップレベルの定数になるわ
> けで、現在の定義が「::定数」の定義が「Objectの定数」である以
> 上、そうした場合 ::Socket が Net::Socket を参照するのはむし
> ろ当然のような気がします。

Javaにjava.sql.Date、java.util.Dateというクラスがあるんですが
これを使うときに、
import java.util.*;
import java.sql.*;

public class test {
    public static void main(String[] args ){
	Date d = new Date();
    }
}
などとすると、
test.java:6: java.util.Date および java.sql.Date の
             クラス定義があいまいです。
となります。

rubyもこういう対応でいいような気がするんですが、どうでしょうか?
# includeした時点でエラーor例外になる、とか。

> これに対応するためには「::定数」の挙動を変えることが有効のよ
> うな気がしますが、どのような変更が望ましいのかすぐには判断で
> きません。

つまり、1つの名前空間(?)におなじ名前のモノが2つ存在してしまえている
ことが問題なんだと思います。

----
阿部 靖司