モナドに関するチュートリアルのセクションA more complex side effect: Random Numbersで、著者はランダム関数の署名を次のように提供しています。
random :: StdGen -> (a,StdGen)
しかし、続けて次のように言います。
したがって、概念的にランダム化された関数である関数は、シードの型で
a → bある関数として記述できます。
a -> StdGen -> (b,StdGen)StdGen
a署名の最初の余分な部分はどこから来たのですか? なぜそのタイプはStdGen -> (a, StdGen)以前のように単純ではないのですか???
ありがとう