bmp depends on bytestring and binary. binary depends on bytestring itself. Your binary package was built with bytestring-0.9.2.1, the version that came with the platform.
When trying to cabal install bmp, cabal tries to install the latest version for which it can construct a valid install plan without reinstalling libraries (if possible at all). With a binary built with a bytestring-0.9.2.1, that is bmp-1.2.3.1, where the author forgot to bump the lower bound of the bytestring version, so the build fails since fromStrict was added in bytestring-0.10.
You can either install an earlier version of bmp,
cabal install "bmp < 1.2.3"
which is the safe option, or you can rebuild binary against the newer bytestring version. The latter likely will break some other packages depending on binary, so those would have to be rebuilt too. And for a package like bytestring which many other packages depend on, it would also be likely that a similar problem occurs soon again.