doファイル内で(複数の)プログラムを作成する。

先週の勉強会で「一つのdoファイル中に複数のprogramを作成することができないか」との質問が出ました。
参加者のTさんが答えてくれたのですが,doファイルの頭にprogramを作成すると,同一doファイル内で読み込めるとのこと。
つまり,

program hoge
	dis "Hello, Yamada!"
end 
hoge

とすれば,hogeというprogramが定義され,それを呼び出すことができます。

ただメインのプログラムはdoファイルの冒頭に持ってくるほうが自然。

hoge
program hoge
	dis "Hello, Yamada!"
end 

とした方が,思考の流れとマッチしていますが,これだとhogeが定義される前にhogeを呼び出しているので使うことができません。あまりキレイではありませんが,対処法としては,メインのdoファイル内の一連のコマンドを一つのプログラムにする方法があるかと思います。
つまり,

program main
	hoge
end 
program hoge
	dis "Hello, Yamada!"
end 
hoge

とすれば,メインとサブのprogramを定義した後にメインのプログラムを実行するので,エラーは発生しません。

冒頭の質問をされたY先生には,後ほどメールでdoファイルを送信すると約束していたのですが送るのを忘れていたため,またせっかくなので記事にしたいとのことから新しいエントリーとして作成しました。