The attoparsec package on hackage defines multiple internal libraries inside 
one package, named "attoparsec" and "attoparsec-internal", with the first 
depending on the latter. Importing attoparsec using `guix import hackage 
attoparsec` therefore yields the following erroneous package definition:

(define-public ghc-attoparsec
  (package
    (name "ghc-attoparsec")
    (version "0.14.4")
    (source
      (origin
        (method url-fetch)
        (uri (hackage-uri "attoparsec" version))
        (sha256
          (base32 "0v4yjz4qi8bwhbyavqxlhsfb1iv07v10gxi64khmsmi4hvjpycrz"))))
    (build-system haskell-build-system)
    (inputs (list ghc-scientific ghc-attoparsec-internal))
    (native-inputs
      (list ghc-quickcheck
            ghc-quickcheck-unicode
            ghc-tasty
            ghc-tasty-quickcheck
            ghc-vector))
    (arguments
      `(#:cabal-revision
        ("1" "149ihklmwnl13mmixq6iq5gzggkgqwsqrjlg2fshqwwbvbd4nn3r")))
    (home-page "https://github.com/bgamari/attoparsec";)
    (synopsis "Fast combinator parsing for bytestrings and text")
    (description
      "This package provides a fast parser combinator library, aimed 
particularly at
dealing efficiently with network protocols and complicated text/binary file
formats.")
    (license license:bsd-3)))

Note that `ghc-attoparsec-internal` is listed as a dependency of 
`ghc-attoparsec`. I believe that is incorrect, and that we should filter out 
the internal dependencies from `inputs`, just like we filter out 
`ghc-attoparsec` from the list of `native-inputs`.



Reply via email to