UniFSharpのご紹介』でした。共通点や違いを、実装面からいろいろ見ていこうと思います。私がこんなものを書いているのかよく分からないのですが、https://twitter.com/gab_km/status/547909568248807424https://twitter.com/pocketberserker/status/547979120336838656という流れがあって、今ここにいます。ろん?よく分からないですね...。プロパティはシンプルに定義できます。メソッドを呼び出しています。渡すことで実行しています。ソース上もあっち行ってこっち行ってという感じで、初めて読む人にはなかなか厳しいものがあります。メソッドなどを呼び出すことで、プロパティに対してテストを実行します。モジュールじゃなくてクラス定義なんですね。メソッドを呼び出しています。内部の呼び出しの中でデフォルトのテストパラメータ(Test.Parameters.default)を渡し、テスト実行の条件などを設定しています。内部呼び出しでこっそりとデフォルトのテストパラメータ(Config.Quick)を渡しています。この辺りは似たような感じですね。テストを実行する際にプロパティに渡す引数を生成するものです。系ツールがランダムテスティングを実現するための、キモになる部分と言っていいでしょう。インスタンスを生成しています。インスタンスを生成しています。私は吐き気がしました。インスタンスの構成もそれぞれ少し違っています。インスタンスの他に「シュリンカ」と呼ばれる変換もメンバーに持っています。これは別のモジュールにあります。FsCheck」という感想が導かれます。どちらも「自分たちの言語でできること」を頑張った結果だと思います。つらみがよく表れたコードでしたね...。一部リフレクションを使いつつも、可能な限り型の恩恵に与り、型の力を引き出そうとしています。ライフをさらに豊かにする可能性のある(黒魔術に染まる可能性もある)コードですので、この年末年始に読み込んでみるのはいかがでしょうか?それでは、2015年も皆さんにとって良い年になりますように。