環境 scala2.7.7 eclipseのプラグイン

メソッド内でmutablueなMapでデータを作成、編集して、immutableにして返したいから、
メソッドの戻り値の型自体はMapで宣言しておき、最後にreadOnlyってメソッドよんで返すと、

type mismatch; found : scala.collection.Map required: Map
(scala.collection.Mapをかえしてるけど、このメソッドではMapを返すって宣言してるから型違うよ)

っておこられるんだが・・・

Predefの中で

type Map[A, +B] = collection.immutable.Map[A, B]

って宣言してて、collectionのMapってimmutableのMapのことだから結局おなじじゃないのか?

Predefと同じtypeの宣言をそのメソッドのクラス内に書けばエラーでないがこういうモノなのか?

なんだが微妙に冗長になって気にくわないんだが・・・

なんかいい方法あったら教えてくれ

そもそもScala2.8だと違うのか?
eclipseが悪いのか?
効率なんか考えないで最初からimmutableなMapで作成すればいいのか?

Listとかでも同じ問題がおきると思うんだが・・・