Resolving dependencies... Configuring primitive-0.6.2.0... Configuring text-1.2.2.2... Building primitive-0.6.2.0... Building text-1.2.2.2... Installed primitive-0.6.2.0 Installed text-1.2.2.2 Configuring bytearray-parsing-0.1... Building bytearray-parsing-0.1... Failed to install bytearray-parsing-0.1 Build log ( /home/builder/.cabal/logs/bytearray-parsing-0.1.log ): cabal: Entering directory '/tmp/cabal-tmp-25460/bytearray-parsing-0.1' Configuring bytearray-parsing-0.1... Building bytearray-parsing-0.1... Preprocessing library bytearray-parsing-0.1... [1 of 4] Compiling ByteArray.Parsing.Prelude ( library/ByteArray/Parsing/Prelude.hs, dist/build/ByteArray/Parsing/Prelude.o ) [2 of 4] Compiling ByteArray.Parsing.Prim ( library/ByteArray/Parsing/Prim.hs, dist/build/ByteArray/Parsing/Prim.o ) library/ByteArray/Parsing/Prim.hs:19:7: error: • Pattern bindings containing unlifted types should use an outermost bang pattern: D.Addr addr# = C.mutableByteArrayContents pinnedSlice • In a stmt of a 'do' block: let D.Addr addr# = C.mutableByteArrayContents pinnedSlice C.MutableByteArray mba# = pinnedSlice fp = B.ForeignPtr addr# (B.PlainPtr mba#) in return (A.PS fp 0 size) In the second argument of ‘($)’, namely ‘do { pinnedSlice <- C.newPinnedByteArray size; C.copyByteArray pinnedSlice 0 byteArray offset size; let D.Addr addr# = ... .... in return (A.PS fp 0 size) }’ In the expression: unsafeDupablePerformIO $ do { pinnedSlice <- C.newPinnedByteArray size; C.copyByteArray pinnedSlice 0 byteArray offset size; let D.Addr addr# = ... .... in return (A.PS fp 0 size) } library/ByteArray/Parsing/Prim.hs:20:7: error: • Pattern bindings containing unlifted types should use an outermost bang pattern: C.MutableByteArray mba# = pinnedSlice • In a stmt of a 'do' block: let D.Addr addr# = C.mutableByteArrayContents pinnedSlice C.MutableByteArray mba# = pinnedSlice fp = B.ForeignPtr addr# (B.PlainPtr mba#) in return (A.PS fp 0 size) In the second argument of ‘($)’, namely ‘do { pinnedSlice <- C.newPinnedByteArray size; C.copyByteArray pinnedSlice 0 byteArray offset size; let D.Addr addr# = ... .... in return (A.PS fp 0 size) }’ In the expression: unsafeDupablePerformIO $ do { pinnedSlice <- C.newPinnedByteArray size; C.copyByteArray pinnedSlice 0 byteArray offset size; let D.Addr addr# = ... .... in return (A.PS fp 0 size) } cabal: Leaving directory '/tmp/cabal-tmp-25460/bytearray-parsing-0.1' cabal: Error: some packages failed to install: bytearray-parsing-0.1 failed during the building phase. The exception was: ExitFailure 1