各種意味論で共通に利用する型の最小限定義
Stateモナドを使ったSmallStep意味論を作成
run/step両関数をログを記録するように修正