Я изучил System.Random.StdGen и увидел этот код в источнике.
data StdGen = StdGen Int32 Int32
Кажется, что модуль также экспортирует StdGen.
module System.Random (
RandomGen(next, split, genRange)
, StdGen
...
Однако почему я не могу сделать это в своем коде, например,
Prelude System.Random> StdGen 1 2
Not in scope: data constructor `System.Random.StdGen'**
С другой стороны, я могу это сделать,
module F (Foo) where
import GHC.Int
data Foo = Foo GHC.Int.Int32 GHC.Int.Int32 deriving (Show)
и
Prelude> Foo 1 2
Foo 1 2
Кто-нибудь, пожалуйста, сообщите мне, как на самом деле этот конструктор данных скрыт?