Linearity core lint error
From package - text-builder-linear-0.1
src/Data/Text/Builder/Linear/Buffer.hs:133:9: warning:
Linearity failure in lambda: acc_a1Oh
'Many ⊈ 'One
In the RHS of foldlIntoBuffer :: forall a.
(Buffer %1 -> a -> Buffer) -> Buffer %1 -> [a] -> Buffer
In the body of lambda with binder a_a1Qt :: *
In the body of lambda with binder f_a1Of :: Buffer
%1 -> a_a1Qt -> Buffer
In the RHS of go_a1Og :: Buffer %1 -> [a_a1Qt] -> Buffer
In the body of lambda with binder acc_a1Oh :: Buffer
Substitution: <InScope = {a_a1Qt}
IdSubst = []
TvSubst = [a1Qt :-> a_a1Qt]
CvSubst = []>
*** Offending Program ***
Rec {
$dEq_a1Ry :: Eq Word
[LclId]
$dEq_a1Ry = $dEq_a1R0
$dEq_a1R0 :: Eq Word
[LclId]
$dEq_a1R0 = $fEqWord
$dNum_a1RA :: Num Word
[LclId]
$dNum_a1RA = $dNum_a1R4
$dNum_a1R4 :: Num Word
[LclId]
$dNum_a1R4 = $fNumWord
$dIntegral_a1RE :: Integral Word
[LclId]
$dIntegral_a1RE = $dIntegral_a1Rc
$dIntegral_a1Rc :: Integral Word
[LclId]
$dIntegral_a1Rc = $fIntegralWord
$dNum_a1RF :: Num Int
[LclId]
$dNum_a1RF = $dNum_a1Rd
$dNum_a1Rd :: Num Int
[LclId]
$dNum_a1Rd = $fNumInt
$trModule :: Module
[LclIdX]
$trModule
= Module
(TrNameS "text-builder-linear-0.1-inplace"#)
(TrNameS "Data.Text.Builder.Linear.Buffer"#)
foldlIntoBuffer
:: forall a.
(Buffer %1 -> a -> Buffer) -> Buffer %1 -> [a] -> Buffer
[LclIdX]
foldlIntoBuffer
= \ (@a_a1Qt) (f_a1Of :: Buffer %1 -> a_a1Qt -> Buffer) ->
letrec {
go_a1Og :: Buffer %1 -> [a_a1Qt] -> Buffer
[LclId]
go_a1Og
= \ (acc_a1Oh :: Buffer) (ds_d1Xz :: [a_a1Qt]) ->
case acc_a1Oh of acc_a1Oh { __DEFAULT ->
let {
acc_a1Oi :: Buffer
[LclId]
acc_a1Oi = acc_a1Oh } in
case ds_d1Xz of wild_00 {
[] -> acc_a1Oh;
: x_a1Oj xs_a1Ok -> go_a1Og (f_a1Of acc_a1Oi x_a1Oj) xs_a1Ok
}
}; } in
go_a1Og
(…<|) :: Word -> Buffer %1 -> Buffer
[LclIdX]
(…<|)
= \ (ds_d1XL :: Word) (buf_a1O8 :: Buffer) ->
let {
fail_d1XS :: (# #) -> Buffer
[LclId]
fail_d1XS
= \ (ds_d1XT [OS=OneShot] :: (# #)) ->
case patError
@LiftedRep
@()
"src/Data/Text/Builder/Linear/Buffer.hs:(121,1)-(126,8)|function \\226\\128\\166<|"#
of wild_00 {
} } in
let {
fail_d1XU :: (# #) -> Buffer
[LclId]
fail_d1XU
= \ (ds_d1XV [OS=OneShot] :: (# #)) ->
let {
ds_d1XR :: Int
[LclId]
ds_d1XR
= fromIntegral @Word @Int $dIntegral_a1Rc $dNum_a1Rd ds_d1XL } in
let {
spaces_a1O9 :: Int
[LclId]
spaces_a1O9 = ds_d1XR } in
case ds_d1XR of wild_00 { I# spaces#_a1Oa ->
let {
buffer_a1Ob :: Buffer
[LclId]
buffer_a1Ob = buf_a1O8 } in
prependExact
spaces_a1O9
(\ (@s_a1Rl) (ds_d1XN :: MArray s_a1Rl) (ds_d1XO :: Int) ->
case ds_d1XN of wild_00 { MutableByteArray dst#_a1Oc ->
case ds_d1XO of wild_00 { I# dstOff#_a1Od ->
(\ (@s_i1Ri) (@a_i1Rj) (ds_d1XP :: STRep s_i1Ri a_i1Rj) ->
ST @s_i1Ri @a_i1Rj ds_d1XP)
@s_a1Rl
@()
(\ (s#_a1Oe :: State# s_a1Rl) ->
(# setByteArray#
@s_a1Rl dst#_a1Oc dstOff#_a1Od spaces#_a1Oa 32# s#_a1Oe,
() #))
}
})
buffer_a1Ob
} } in
case ds_d1XL of wild_00 { W# ds_d1XQ ->
case ds_d1XQ of ds_d1XQ {
__DEFAULT -> fail_d1XU (##);
0## -> buf_a1O8
}
}
(|>…) :: Buffer %1 -> Word -> Buffer
[LclIdX]
(|>…)
= \ (buf_a1O1 :: Buffer) (ds_d1XW :: Word) ->
let {
fail_d1Y3 :: (# #) -> Buffer
[LclId]
fail_d1Y3
= \ (ds_d1Y4 [OS=OneShot] :: (# #)) ->
case patError
@LiftedRep
@()
"src/Data/Text/Builder/Linear/Buffer.hs:(111,1)-(116,8)|function |>\\226\\128\\166"#
of wild_00 {
} } in
let {
buffer_a1O2 :: Buffer
[LclId]
buffer_a1O2 = buf_a1O1 } in
let {
fail_d1Y5 :: (# #) -> Buffer
[LclId]
fail_d1Y5
= \ (ds_d1Y6 [OS=OneShot] :: (# #)) ->
let {
ds_d1Y2 :: Int
[LclId]
ds_d1Y2
= fromIntegral @Word @Int $dIntegral_a1RE $dNum_a1RF ds_d1XW } in
let {
spaces_a1O3 :: Int
[LclId]
spaces_a1O3 = ds_d1Y2 } in
case ds_d1Y2 of wild_00 { I# spaces#_a1O4 ->
appendExact
spaces_a1O3
(\ (@s_a1RI) (ds_d1XY :: MArray s_a1RI) (ds_d1XZ :: Int) ->
case ds_d1XY of wild_00 { MutableByteArray dst#_a1O5 ->
case ds_d1XZ of wild_00 { I# dstOff#_a1O6 ->
(\ (@s_i1Ri) (@a_i1Rj) (ds_d1Y0 :: STRep s_i1Ri a_i1Rj) ->
ST @s_i1Ri @a_i1Rj ds_d1Y0)
@s_a1RI
@()
(\ (s#_a1O7 :: State# s_a1RI) ->
(# setByteArray#
@s_a1RI dst#_a1O5 dstOff#_a1O6 spaces#_a1O4 32# s#_a1O7,
() #))
}
})
buffer_a1O2
} } in
case ds_d1XW of wild_00 { W# ds_d1Y1 ->
case ds_d1Y1 of ds_d1Y1 {
__DEFAULT -> fail_d1Y5 (##);
0## -> buf_a1O1
}
}
(<|#) :: Addr# -> Buffer %1 -> Buffer
[LclIdX]
(<|#)
= \ (addr#_a1NW :: Addr#) (buffer_a1NX :: Buffer) ->
letrec {
srcLen_a1NY :: Int
[LclId]
srcLen_a1NY
= (\ (ds_d1Ya :: Int#) -> I# ds_d1Ya)
(cstringLength# addr#_a1NW); } in
prependExact
srcLen_a1NY
(\ (@s_a1RV) (dst_a1NZ :: MArray s_a1RV) (dstOff_a1O0 :: Int) ->
copyFromPointer
@s_a1RV
dst_a1NZ
dstOff_a1O0
((\ (@a_i1RY) (ds_d1Y9 :: Addr#) -> Ptr @a_i1RY ds_d1Y9)
@Word8 addr#_a1NW)
srcLen_a1NY)
buffer_a1NX
(|>#) :: Buffer %1 -> Addr# -> Buffer
[LclIdX]
(|>#)
= \ (buffer_a1Nn :: Buffer) (addr#_a1No :: Addr#) ->
letrec {
srcLen_a1Np :: Int
[LclId]
srcLen_a1Np
= (\ (ds_d1Ye :: Int#) -> I# ds_d1Ye)
(cstringLength# addr#_a1No); } in
appendExact
srcLen_a1Np
(\ (@s_a1S9) (dst_a1NU :: MArray s_a1S9) (dstOff_a1NV :: Int) ->
copyFromPointer
@s_a1S9
dst_a1NU
dstOff_a1NV
((\ (@a_i1RY) (ds_d1Yd :: Addr#) -> Ptr @a_i1RY ds_d1Yd)
@Word8 addr#_a1No)
srcLen_a1Np)
buffer_a1Nn
(<|) :: Text -> Buffer %1 -> Buffer
[LclIdX]
(<|)
= \ (ds_d1Yf :: Text) (buffer_a1Nk :: Buffer) ->
case ds_d1Yf of wild_00 { Text bx_d1Yj bx_d1Yk bx_d1Yl ->
let {
src_a1Nh :: Array
[LclId]
src_a1Nh = ByteArray bx_d1Yj } in
let {
srcOff_a1Ni :: Int
[LclId]
srcOff_a1Ni = I# bx_d1Yk } in
let {
srcLen_a1Nj :: Int
[LclId]
srcLen_a1Nj = I# bx_d1Yl } in
prependExact
srcLen_a1Nj
(\ (@s_a1So) (dst_a1Nl :: MArray s_a1So) (dstOff_a1Nm :: Int) ->
copyI
@s_a1So srcLen_a1Nj dst_a1Nl dstOff_a1Nm src_a1Nh srcOff_a1Ni)
buffer_a1Nk
}
(|>) :: Buffer %1 -> Text -> Buffer
[LclIdX]
(|>)
= \ (buffer_a1Nb :: Buffer) (ds_d1Yh :: Text) ->
case ds_d1Yh of wild_00 { Text bx_d1Ym bx_d1Yn bx_d1Yo ->
let {
src_a1Nc :: Array
[LclId]
src_a1Nc = ByteArray bx_d1Ym } in
let {
srcOff_a1Nd :: Int
[LclId]
srcOff_a1Nd = I# bx_d1Yn } in
let {
srcLen_a1Ne :: Int
[LclId]
srcLen_a1Ne = I# bx_d1Yo } in
appendExact
srcLen_a1Ne
(\ (@s_a1Sv) (dst_a1Nf :: MArray s_a1Sv) (dstOff_a1Ng :: Int) ->
copyI
@s_a1Sv srcLen_a1Ne dst_a1Nf dstOff_a1Ng src_a1Nc srcOff_a1Nd)
buffer_a1Nb
}
end Rec }
*** End of Offense ***
<no location info>: error:
Compilation had errors