オブジェクトモデル

プロトタイプベース…なのか?いや違う。
新しいオブジェクトは、makeで、クローン元か型?を指定して作成します。あくまでクローンであってプロトタイプを参照しているのでは無い様子。クローン元を変更しても追従しません。
型?はdatatype!のインスタンスです。当然datatype!自身もdatatype!のインスタンス。これだけ見れば期待してしまいますが、ユーザーの自由になるのはobject!のみですし、新しいdatatype!のインスタンスも作成できません。
関数のオプションでもあったRefinementsはオブジェクトに使うとスコープ演算子
自分自身を参照する変数はself。
JavaScriptのようにオブジェクトを辞書扱いもできますがワードのみ。0: xやset 0 xはエラーですので配列モドキは実現できません。全ての型?の扱いは統一されているわけでもない様子でRefinementsがスコープ演算子扱いされるのもobject!のみの特性かも。別途ハッシュ型があるみたいですので辞書が欲しければそれを使えということでしょうね。あとRefinementsの構文では要素の上書きはできても無い要素は増やせないようです。
コードがデータの言語でレキシカルスコープを実現している方法は、ワードが個々にスコープに結び付けられているようですね。inでワードの、bindはブロックまとめて所属スコープを変更できますので、他のオブジェクトの中に踏み込んだ操作を行うときはこれらを使うことに。
総じて、基本的なところへは手出しができなくなっていて、面白くないです。シリーズと呼ばれているブロックの扱いのほうを見るべきかな。object!もシリーズの一種として扱えるようですし。