Nixpkgs marking things as broken is often a bounds issue, and if the package has since been fixed, you can PR .../configuration-hackage2nix/broken.yaml to unmark it as broken for everyone. PR the haskell-updates branch, because they batch regenerations of hackage2nix to avoid too many rebuilds on the main branch.
An easy way to test if a package could be unmarked as broken is to run a command like NIXPKGS_ALLOW_BROKEN=1 nix-build --no-link -A haskellPackages.binary-bits:
binary-bits fails to build because its base bound is too tight. If it can be raised you can fix the package and/or ask for a metadata revision on Hackage. The function nixpkgs.haskell.lib.doJailbreak will also remove many bounds, but in this case binary-bits fails to compile because it assumes fail is a member of class Monad.
binary-strict has bounds issues, and jailbreaking it fails because of missing ByteString-related functions; I suspect it was never updated.
I don’t know what packages you’d actually use for this, but I hope the nixpkgs/haskell information is at least somewhat useful.