Here is the test project https://github.com/s9gf4ult/conduplay/tree/tag1.
cabal-dev ghci masks packages which are set in build-depends of this file
Loading package bytestring-0.9.2.1 ... linking ... done.
Loading package text-0.11.2.3 ... linking ... done.
Loading package blaze-builder-0.3.1.0 ... linking ... done.
Ok, modules loaded: Main.
Prelude Main> :load conduplay.hs
Could not find module `Control.Monad.Trans'
It is a member of the hidden package `mtl-2.1.2'.
Perhaps you need to add `mtl' to the build-depends in your .cabal file.
Use -v to see a list of the files searched for.
Failed, modules loaded: none.
but in the cabal file
mtl is set as build-depends.
I belive this is because cabal-dev masks packages accoring .cabal file, but it should not, this is not right, because of different dependencies of different executables/libraries and different source files as well.