Well, the reason for this is a known issue of the compile.
A function `rndSelect` from module `System.Random` uses a type `NonEmpty` from the module `Data.List` in its signature. Since `Data.List` is imported in `System.Random`, `NonEmpty` can be freely used inside of it. But `System.Random` does not import `Data.List` publicly, thus is does not reexport definitions from `Data.List` for those who are importing the `System.Random` module.
I.e. definitions are not reexported from imported modules even if they are used in the public interface of a module.
So, for now, to solve the problem for your module, you can just add `import Data.List` to your module. An alternative solution would be a PR replacing `import Data.List` to `import public Data.List` in `System.Random`.