HaskellのModule
ファイルの上の方にmodule Hoge.Hoge whereとかで定義する
これはディレクトリ構造に対応している
モジュールとファイルは1対1対応している
例えば
code:tree
ディレクトリ構造 // module Hoge whereに書くやつ↓
├── app
│ └── Main.hs // Main
└── src
└── Game
├── Poker
│ ├── Cards.hs // Game.Porker.Card
│ └── Hands.hs // Game.Porker.Hands
└── Poker.hs // Game.Porker
importするときは、そのまま使うモジュールを以下のように読み込む
code:hs
import Game.Porker.Card
ここで上の例のGame.Porker.CardとGame.Porker.Handsは同じディレクトリ配下にいるので、特別な兄弟として扱えそうだが、そういうわけではない
node.jsとかのモジュールシステムと異なる点
nodeなら兄弟は./Handsとかでアクセスできる
main.hsでsrc以下のmoduleをimportするときは、runhaskellでは実行できない?
参考
わかりやすい