Core Lint error when compiling servant-conduit with GHC 9.2.5
Summary
servant-conduit-0.15.1
fails to compile with -dcore-lint
Steps to reproduce
$ cabal get servant-conduit-0.15.1
$ cat > cabal.project << EOF
packages: .
package servant-conduit
ghc-options: -dcore-lint
EOF
$ cabal build
Click to expand
[1 of 1] Compiling Servant.Conduit ( src/Servant/Conduit.hs, /data/builds/clc-stackage/servant-conduit-0.15.1/dist-newstyle/build/x86_64-linux/ghc-9.2.5/servant-conduit-0.15.1/build/Servant/Conduit.o, /data/builds/clc-stackage/servant-conduit-0.15.1/dist-newstyle/build/x86_64-linux/ghc-9.2.5/servant-conduit-0.15.1/build/Servant/Conduit.dyn_o )
*** Core Lint errors : in result of Desugar (before optimization) ***
src/Servant/Conduit.hs:60:5: warning:
The type variable @o_a2SE is out of scope
In the type of a binder: $s$cfromSourceIO_d35Z
In the type ‘SourceIO o_a2SE -> ConduitT i_a2SF o_a2SE IO ()’
Substitution: [TCvSubst
In scope: InScope {}
Type env: []
Co env: []]
*** Offending Program ***
Rec {
$d~_a2UP :: () ~ ()
[LclId]
$d~_a2UP = Eq# @(*) @() @() @~(<()>_N :: () ~# ())
$dMonadIO_a2UO :: MonadIO IO
[LclId]
$dMonadIO_a2UO = $fMonadIOIO
$tcConduitToSourceIO :: TyCon
[LclIdX]
$tcConduitToSourceIO
= TyCon
11659254941162193902##
5178537924432902239##
$trModule
(TrNameS "ConduitToSourceIO"#)
0#
$krep_a2VF
$krep_a2VF [InlPrag=[~]] :: KindRep
[LclId]
$krep_a2VF = KindRepFun krep$*Arr* $krep_a2VG
$krep_a2VG [InlPrag=[~]] :: KindRep
[LclId]
$krep_a2VG = KindRepTyConApp $tcConstraint ([] @KindRep)
$trModule :: Module
[LclIdX]
$trModule
= Module
(TrNameS "servant-conduit-0.15.1-inplace"#)
(TrNameS "Servant.Conduit"#)
$fToSourceIOoConduitT [InlPrag=INLINE (sat-args=0)]
:: forall (m :: * -> *) r o i.
(ConduitToSourceIO m, r ~ ()) =>
ToSourceIO o (ConduitT i o m r)
[LclIdX[DFunId(nt)],
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=2,unsat_ok=False,boring_ok=True)
Tmpl= \ (@(m_a2K8 :: * -> *))
(@r_a2K9)
(@o_a2Ka)
(@i_a2Kb)
($dConduitToSourceIO_a2Kc [Occ=Once1] :: ConduitToSourceIO m_a2K8)
($d~_a2Kd [Occ=Once1] :: r_a2K9 ~ ()) ->
($ctoSourceIO_a2Kf
@m_a2K8 @r_a2K9 @o_a2Ka @i_a2Kb $dConduitToSourceIO_a2Kc $d~_a2Kd)
`cast` (Sym (N:ToSourceIO[0]
<o_a2Ka>_N <ConduitT i_a2Kb o_a2Ka m_a2K8 r_a2K9>_N)
:: (ConduitT i_a2Kb o_a2Ka m_a2K8 r_a2K9 -> SourceIO o_a2Ka)
~R# ToSourceIO o_a2Ka (ConduitT i_a2Kb o_a2Ka m_a2K8 r_a2K9))}]
$fToSourceIOoConduitT
= \ (@(m_a2K8 :: * -> *))
(@r_a2K9)
(@o_a2Ka)
(@i_a2Kb)
($dConduitToSourceIO_a2Kc :: ConduitToSourceIO m_a2K8)
($d~_a2Kd :: r_a2K9 ~ ()) ->
C:ToSourceIO
@o_a2Ka
@(ConduitT i_a2Kb o_a2Ka m_a2K8 r_a2K9)
($ctoSourceIO_a2Kf
@m_a2K8 @r_a2K9 @o_a2Ka @i_a2Kb $dConduitToSourceIO_a2Kc $d~_a2Kd)
$ctoSourceIO_a2Kf
:: forall (m :: * -> *) r o i.
(ConduitToSourceIO m, r ~ ()) =>
ConduitT i o m r -> SourceIO o
[LclId]
$ctoSourceIO_a2Kf
= \ (@(m_a2K8 :: * -> *))
(@r_a2K9)
(@o_a2Ka)
(@i_a2Kb)
($dConduitToSourceIO_a2Kc :: ConduitToSourceIO m_a2K8)
($d~_a2Kd :: r_a2K9 ~ ()) ->
let {
$dConduitToSourceIO_a2Kj :: ConduitToSourceIO m_a2K8
[LclId]
$dConduitToSourceIO_a2Kj = $dConduitToSourceIO_a2Kc } in
case eq_sel @(*) @r_a2K9 @() $d~_a2Kd of co_a2UT { __DEFAULT ->
(conduitToSourceIO
@m_a2K8 $dConduitToSourceIO_a2Kj @i_a2Kb @o_a2Ka)
`cast` ((ConduitT
<i_a2Kb>_N <o_a2Ka>_N <m_a2K8>_N (Sub (Sym co_a2UT)))_R
%<'Many>_N ->_R <SourceT IO o_a2Ka>_R
:: (ConduitT i_a2Kb o_a2Ka m_a2K8 () -> SourceT IO o_a2Ka)
~R# (ConduitT i_a2Kb o_a2Ka m_a2K8 r_a2K9[ssk:1]
-> SourceT IO o_a2Ka))
}
$fConduitToSourceIOResourceT [InlPrag=INLINE (sat-args=0)]
:: forall (m :: * -> *).
(m ~ IO) =>
ConduitToSourceIO (ResourceT m)
[LclIdX[DFunId(nt)],
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=1,unsat_ok=False,boring_ok=True)
Tmpl= \ (@(m_a2Kp :: * -> *))
($d~_a2Kq [Occ=Once1] :: m_a2Kp ~ IO) ->
($cconduitToSourceIO_a2Ks @m_a2Kp $d~_a2Kq)
`cast` (Sym (N:ConduitToSourceIO[0] <ResourceT m_a2Kp>_N)
:: (forall i o. ConduitT i o (ResourceT m_a2Kp) () -> SourceIO o)
~R# ConduitToSourceIO (ResourceT m_a2Kp))}]
$fConduitToSourceIOResourceT
= \ (@(m_a2Kp :: * -> *)) ($d~_a2Kq :: m_a2Kp ~ IO) ->
C:ConduitToSourceIO
@(ResourceT m_a2Kp) ($cconduitToSourceIO_a2Ks @m_a2Kp $d~_a2Kq)
$cconduitToSourceIO_a2Ks
:: forall (m :: * -> *) i o.
(m ~ IO) =>
ConduitT i o (ResourceT m) () -> SourceIO o
[LclId]
$cconduitToSourceIO_a2Ks
= \ (@(m_a2Kp :: * -> *)) ($d~_a2Kq :: m_a2Kp ~ IO) ->
case eq_sel @(* -> *) @m_a2Kp @IO $d~_a2Kq of co_a2UW
{ __DEFAULT ->
\ (@i_a2Kv)
(@o_a2Kw)
(ds_d2Wd :: ConduitT i_a2Kv o_a2Kw (ResourceT m_a2Kp) ()) ->
let {
con_a2Ac
:: forall b.
(() -> Pipe i_a2Kv i_a2Kv o_a2Kw () (ResourceT m_a2Kp) b)
-> Pipe i_a2Kv i_a2Kv o_a2Kw () (ResourceT m_a2Kp) b
[LclId]
con_a2Ac
= ds_d2Wd
`cast` (N:ConduitT[0]
<i_a2Kv>_N <o_a2Kw>_N <ResourceT m_a2Kp>_N <()>_R
:: ConduitT i_a2Kv o_a2Kw (ResourceT m_a2Kp) ()
~R# (forall b.
(() -> Pipe i_a2Kv i_a2Kv o_a2Kw () (ResourceT m_a2Kp) b)
-> Pipe i_a2Kv i_a2Kv o_a2Kw () (ResourceT m_a2Kp) b)) } in
letrec {
go_a2Ad
:: forall i o.
(forall x. ResourceT m_a2Kp x -> m_a2Kp x)
-> Pipe i i o () (ResourceT m_a2Kp) () -> StepT IO o
[LclId]
go_a2Ad
= \ (@i_a2MC) (@o_a2MD) ->
let {
$dFunctor_a2V3 :: Functor IO
[LclId]
$dFunctor_a2V3 = $fFunctorIO } in
let {
$dFunctor_a2V2 :: Functor (ResourceT IO)
[LclId]
$dFunctor_a2V2 = $fFunctorResourceT @IO $dFunctor_a2V3 } in
let {
$dFunctor_a2Nc :: Functor (ResourceT m_a2Kp)
[LclId]
$dFunctor_a2Nc
= $dFunctor_a2V2
`cast` ((Functor (ResourceT (Sym co_a2UW))_N)_R
:: Functor (ResourceT IO)
~R# Functor (ResourceT m_a2Kp[ssk:1])) } in
\ (ds_d2Wx :: forall x. ResourceT m_a2Kp x -> m_a2Kp x)
(ds_d2Wy :: Pipe i_a2MC i_a2MC o_a2MD () (ResourceT m_a2Kp) ()) ->
let {
runRes_a2Ah :: forall x. ResourceT m_a2Kp x -> m_a2Kp x
[LclId]
runRes_a2Ah = ds_d2Wx } in
let {
runRes_a2Ak :: forall x. ResourceT m_a2Kp x -> m_a2Kp x
[LclId]
runRes_a2Ak = ds_d2Wx } in
let {
runRes_a2An :: forall x. ResourceT m_a2Kp x -> m_a2Kp x
[LclId]
runRes_a2An = ds_d2Wx } in
let {
runRes_a2Ap :: forall x. ResourceT m_a2Kp x -> m_a2Kp x
[LclId]
runRes_a2Ap = ds_d2Wx } in
case ds_d2Wy of wild_00 {
HaveOutput p_a2Ai o_a2Aj ->
(\ (@(m_a2KK :: * -> *))
(@a_a2KL)
(ds_d34Y :: a_a2KL)
(ds_d34Z :: StepT m_a2KK a_a2KL) ->
Yield @m_a2KK @a_a2KL ds_d34Y ds_d34Z)
@IO
@o_a2MD
o_a2Aj
(go_a2Ad
@i_a2MC @o_a2MD (\ (@x_a2MM) -> runRes_a2Ah @x_a2MM) p_a2Ai);
NeedInput _ip_a2Al up_a2Am ->
(\ (@(m_a2KK :: * -> *))
(@a_a2KL)
(ds_d350 :: StepT m_a2KK a_a2KL) ->
Skip @m_a2KK @a_a2KL ds_d350)
@IO
@o_a2MD
(go_a2Ad
@i_a2MC @o_a2MD (\ (@x_a2MT) -> runRes_a2Ak @x_a2MT) (up_a2Am ()));
Done ds_d353 ->
case ds_d353 of wild_00 { () ->
(\ (@(m_a2KK :: * -> *)) (@a_a2KL) -> Stop @m_a2KK @a_a2KL)
@IO @o_a2MD
};
PipeM m_a2Ao ->
$ @LiftedRep
@(IO (StepT IO o_a2MD))
@(StepT IO o_a2MD)
((\ (@(m_a2KK :: * -> *))
(@a_a2KL)
(ds_d351 :: m_a2KK (StepT m_a2KK a_a2KL)) ->
Effect @m_a2KK @a_a2KL ds_d351)
@IO @o_a2MD)
(($ @LiftedRep
@(ResourceT m_a2Kp (StepT IO o_a2MD))
@(m_a2Kp (StepT IO o_a2MD))
(runRes_a2An @(StepT IO o_a2MD))
(fmap
@(ResourceT m_a2Kp)
$dFunctor_a2Nc
@(Pipe i_a2MC i_a2MC o_a2MD () (ResourceT m_a2Kp) ())
@(StepT IO o_a2MD)
(go_a2Ad @i_a2MC @o_a2MD (\ (@x_a2Nh) -> runRes_a2An @x_a2Nh))
m_a2Ao))
`cast` (Sub (co_a2UW <StepT IO o_a2MD>_N)
:: m_a2Kp[ssk:1] (StepT IO o_a2MD) ~R# IO (StepT IO o_a2MD)));
Leftover p_a2Aq _l_a2Ar ->
(\ (@(m_a2KK :: * -> *))
(@a_a2KL)
(ds_d352 :: StepT m_a2KK a_a2KL) ->
Skip @m_a2KK @a_a2KL ds_d352)
@IO
@o_a2MD
(go_a2Ad
@i_a2MC @o_a2MD (\ (@x_a2No) -> runRes_a2Ap @x_a2No) p_a2Aq)
}; } in
$ @LiftedRep
@(forall b. (StepT IO o_a2Kw -> IO b) -> IO b)
@(SourceT IO o_a2Kw)
((\ (@(m_a2IM :: * -> *))
(@a_a2IN)
(ds_d2Wj
:: forall b. (StepT m_a2IM a_a2IN -> m_a2IM b) -> m_a2IM b) ->
SourceT @m_a2IM @a_a2IN ds_d2Wj)
@IO @o_a2Kw)
(\ (@b_a2Nz) ->
let {
$dMonadUnliftIO_a2NK :: MonadUnliftIO IO
[LclId]
$dMonadUnliftIO_a2NK = $fMonadUnliftIOIO } in
let {
$dMonadUnliftIO_a2NR :: MonadUnliftIO (ResourceT IO)
[LclId]
$dMonadUnliftIO_a2NR
= $fMonadUnliftIOResourceT @IO $dMonadUnliftIO_a2NK } in
\ (k_a2As :: StepT IO o_a2Kw -> IO b_a2Nz) ->
$ @LiftedRep
@(ResourceT IO b_a2Nz)
@(IO b_a2Nz)
(runResourceT @IO @b_a2Nz $dMonadUnliftIO_a2NK)
($ @LiftedRep
@((forall a. ResourceT IO a -> IO a) -> IO b_a2Nz)
@(ResourceT IO b_a2Nz)
(withRunInIO @(ResourceT IO) $dMonadUnliftIO_a2NR @b_a2Nz)
(\ (runRes_a2At :: forall a. ResourceT IO a -> IO a) ->
k_a2As
(go_a2Ad
@i_a2Kv
@o_a2Kw
(\ (@x_a2NW) ->
(runRes_a2At @x_a2NW)
`cast` ((ResourceT (Sub (Sym co_a2UW)) <x_a2NW>_N)_R
%<'Many>_N ->_R Sub (Sym co_a2UW <x_a2NW>_N)
:: (ResourceT IO x_a2NW -> IO x_a2NW)
~R# (ResourceT m_a2Kp[ssk:1] x_a2NW
-> m_a2Kp[ssk:1] x_a2NW)))
(con_a2Ac
@()
((\ (@l_a2I1)
(@i_a2I2)
(@o_a2I3)
(@u_a2I4)
(@(m_a2I5 :: * -> *))
(@r_a2I6)
(ds_d2Ww :: r_a2I6) ->
Done @l_a2I1 @i_a2I2 @o_a2I3 @u_a2I4 @m_a2I5 @r_a2I6 ds_d2Ww)
@i_a2Kv @i_a2Kv @o_a2Kw @() @(ResourceT m_a2Kp) @()))))))
}
$fConduitToSourceIOIO [InlPrag=INLINE (sat-args=0)]
:: ConduitToSourceIO IO
[LclIdX[DFunId(nt)],
Unf=Unf{Src=InlineStable, TopLvl=True, Value=False, ConLike=False,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=0,unsat_ok=False,boring_ok=True)
Tmpl= $cconduitToSourceIO_a2Oe
`cast` (Sym (N:ConduitToSourceIO[0] <IO>_N)
:: (forall i o. ConduitT i o IO () -> SourceIO o)
~R# ConduitToSourceIO IO)}]
$fConduitToSourceIOIO
= C:ConduitToSourceIO @IO $cconduitToSourceIO_a2Oe
$cconduitToSourceIO_a2Oe
:: forall i o. ConduitT i o IO () -> SourceIO o
[LclId]
$cconduitToSourceIO_a2Oe
= \ (@i_a2Oh)
(@o_a2Oi)
(ds_d354 :: ConduitT i_a2Oh o_a2Oi IO ()) ->
let {
con_a2Au
:: forall b.
(() -> Pipe i_a2Oh i_a2Oh o_a2Oi () IO b)
-> Pipe i_a2Oh i_a2Oh o_a2Oi () IO b
[LclId]
con_a2Au
= ds_d354
`cast` (N:ConduitT[0] <i_a2Oh>_N <o_a2Oi>_N <IO>_N <()>_R
:: ConduitT i_a2Oh o_a2Oi IO ()
~R# (forall b.
(() -> Pipe i_a2Oh i_a2Oh o_a2Oi () IO b)
-> Pipe i_a2Oh i_a2Oh o_a2Oi () IO b)) } in
letrec {
go_a2Av
:: forall {m :: * -> *} {l} {i} {a}.
Functor m =>
Pipe l i a () m () -> StepT m a
[LclId]
go_a2Av
= \ (@(m_a2Oz :: * -> *))
(@l_a2Ot)
(@i_a2Ou)
(@a_a2OA)
($dFunctor_a2RS :: Functor m_a2Oz) ->
let {
$dFunctor_a2OU :: Functor m_a2Oz
[LclId]
$dFunctor_a2OU = $dFunctor_a2RS } in
letrec {
go_a2Ol
:: Pipe l_a2Ot i_a2Ou a_a2OA () m_a2Oz () -> StepT m_a2Oz a_a2OA
[LclId]
go_a2Ol
= \ (p0_a2Aw :: Pipe l_a2Ot i_a2Ou a_a2OA () m_a2Oz ()) ->
let {
ds_d359 :: Pipe l_a2Ot i_a2Ou a_a2OA () m_a2Oz ()
[LclId]
ds_d359 = p0_a2Aw } in
case ds_d359 of wild_00 {
HaveOutput p_a2Ax o_a2Ay ->
(\ (@(m_a2KK :: * -> *))
(@a_a2KL)
(ds_d35i :: a_a2KL)
(ds_d35j :: StepT m_a2KK a_a2KL) ->
Yield @m_a2KK @a_a2KL ds_d35i ds_d35j)
@m_a2Oz @a_a2OA o_a2Ay (go_a2Ol p_a2Ax);
NeedInput _ip_a2Az up_a2AA ->
(\ (@(m_a2KK :: * -> *))
(@a_a2KL)
(ds_d35k :: StepT m_a2KK a_a2KL) ->
Skip @m_a2KK @a_a2KL ds_d35k)
@m_a2Oz @a_a2OA (go_a2Ol (up_a2AA ()));
Done ds_d35n ->
case ds_d35n of wild_00 { () ->
(\ (@(m_a2KK :: * -> *)) (@a_a2KL) -> Stop @m_a2KK @a_a2KL)
@m_a2Oz @a_a2OA
};
PipeM m_a2AB ->
$ @LiftedRep
@(m_a2Oz (StepT m_a2Oz a_a2OA))
@(StepT m_a2Oz a_a2OA)
((\ (@(m_a2KK :: * -> *))
(@a_a2KL)
(ds_d35l :: m_a2KK (StepT m_a2KK a_a2KL)) ->
Effect @m_a2KK @a_a2KL ds_d35l)
@m_a2Oz @a_a2OA)
(fmap
@m_a2Oz
$dFunctor_a2OU
@(Pipe l_a2Ot i_a2Ou a_a2OA () m_a2Oz ())
@(StepT m_a2Oz a_a2OA)
go_a2Ol
m_a2AB);
Leftover p_a2AC _l_a2AD ->
(\ (@(m_a2KK :: * -> *))
(@a_a2KL)
(ds_d35m :: StepT m_a2KK a_a2KL) ->
Skip @m_a2KK @a_a2KL ds_d35m)
@m_a2Oz @a_a2OA (go_a2Ol p_a2AC)
}; } in
go_a2Ol; } in
(\ (@(m_a2IM :: * -> *))
(@a_a2IN)
(ds_d355
:: forall b. (StepT m_a2IM a_a2IN -> m_a2IM b) -> m_a2IM b) ->
SourceT @m_a2IM @a_a2IN ds_d355)
@IO
@o_a2Oi
(\ (@b_a2S9) ->
let {
$dFunctor_a2Sp :: Functor IO
[LclId]
$dFunctor_a2Sp = $fFunctorIO } in
rightSection
@LiftedRep
@LiftedRep
@LiftedRep
@'Many
@'Many
@(StepT IO o_a2Oi -> IO b_a2S9)
@(StepT IO o_a2Oi)
@(IO b_a2S9)
($ @LiftedRep @(StepT IO o_a2Oi) @(IO b_a2S9))
(go_a2Av
@IO
@i_a2Oh
@i_a2Oh
@o_a2Oi
$dFunctor_a2Sp
(con_a2Au
@()
((\ (@l_a2I1)
(@i_a2I2)
(@o_a2I3)
(@u_a2I4)
(@(m_a2I5 :: * -> *))
(@r_a2I6)
(ds_d356 :: r_a2I6) ->
Done @l_a2I1 @i_a2I2 @o_a2I3 @u_a2I4 @m_a2I5 @r_a2I6 ds_d356)
@i_a2Oh @i_a2Oh @o_a2Oi @() @IO @()))))
$fFromSourceIOoConduitT [InlPrag=INLINE (sat-args=0)]
:: forall (m :: * -> *) r o i.
(MonadIO m, r ~ ()) =>
FromSourceIO o (ConduitT i o m r)
[LclIdX[DFunId(nt)],
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=2,unsat_ok=False,boring_ok=True)
Tmpl= \ (@(m_a2SC :: * -> *))
(@r_a2SD)
(@o_a2SE)
(@i_a2SF)
($dMonadIO_a2SG [Occ=Once1] :: MonadIO m_a2SC)
($d~_a2SH [Occ=Once1] :: r_a2SD ~ ()) ->
($cfromSourceIO_a2SJ
@m_a2SC @r_a2SD @o_a2SE @i_a2SF $dMonadIO_a2SG $d~_a2SH)
`cast` (Sym (N:FromSourceIO[0] <o_a2SE>_N) <ConduitT
i_a2SF o_a2SE m_a2SC r_a2SD>_N
:: (SourceIO o_a2SE -> ConduitT i_a2SF o_a2SE m_a2SC r_a2SD)
~R# FromSourceIO o_a2SE (ConduitT i_a2SF o_a2SE m_a2SC r_a2SD))}]
$fFromSourceIOoConduitT
= \ (@(m_a2SC :: * -> *))
(@r_a2SD)
(@o_a2SE)
(@i_a2SF)
($dMonadIO_a2SG :: MonadIO m_a2SC)
($d~_a2SH :: r_a2SD ~ ()) ->
C:FromSourceIO
@o_a2SE
@(ConduitT i_a2SF o_a2SE m_a2SC r_a2SD)
($cfromSourceIO_a2SJ
@m_a2SC @r_a2SD @o_a2SE @i_a2SF $dMonadIO_a2SG $d~_a2SH)
$cfromSourceIO_a2SJ
:: forall (m :: * -> *) r o i.
(MonadIO m, r ~ ()) =>
SourceIO o -> ConduitT i o m r
[LclId,
RULES: "SPEC $cfromSourceIO"
forall (@i_a2SF)
(@o_a2SE)
($d~_a2UP :: () ~ ())
($dMonadIO_a2UO :: MonadIO IO).
$cfromSourceIO_a2SJ @IO @() @o_a2SE @i_a2SF $dMonadIO_a2UO $d~_a2UP
= $s$cfromSourceIO_d35Z]
$cfromSourceIO_a2SJ
= \ (@(m_a2SC :: * -> *))
(@r_a2SD)
(@o_a2SE)
(@i_a2SF)
($dMonadIO_a2SG :: MonadIO m_a2SC)
($d~_a2SH :: r_a2SD ~ ()) ->
case eq_sel @(*) @r_a2SD @() $d~_a2SH of co_a2Vc { __DEFAULT ->
\ (src_a2zD :: SourceIO o_a2SE) ->
letrec {
loop_a2zE
:: forall b.
MonadIO m_a2SC =>
(() -> Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b)
-> StepT IO o_a2SE -> IO (Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b)
[LclId]
loop_a2zE
= \ (@b_a2T9) ($dMonadIO_a2Ta :: MonadIO m_a2SC) ->
let {
$dMonadIO_a2TW :: MonadIO m_a2SC
[LclId]
$dMonadIO_a2TW = $dMonadIO_a2SG } in
let {
$dMonadIO_a2TT :: MonadIO m_a2SC
[LclId]
$dMonadIO_a2TT = $dMonadIO_a2SG } in
let {
$dMonadIO_a2Tv :: MonadIO m_a2SC
[LclId]
$dMonadIO_a2Tv = $dMonadIO_a2SG } in
let {
$dMonadIO_a2Tn :: MonadIO m_a2SC
[LclId]
$dMonadIO_a2Tn = $dMonadIO_a2SG } in
let {
$dMonadFail_a2Tk :: MonadFail IO
[LclId]
$dMonadFail_a2Tk = $fMonadFailIO } in
let {
$dMonad_a2Td :: Monad IO
[LclId]
$dMonad_a2Td = $fMonadIO } in
let {
$dMonad_a2Tr :: Monad IO
[LclId]
$dMonad_a2Tr = $dMonad_a2Td } in
let {
$dMonad_a2Tx :: Monad IO
[LclId]
$dMonad_a2Tx = $dMonad_a2Td } in
\ (con_a2zG :: () -> Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2T9)
(ds_d35K :: StepT IO o_a2SE) ->
let {
_con_a2zH :: () -> Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2T9
[LclId]
_con_a2zH = con_a2zG } in
let {
con_a2zY :: () -> Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2T9
[LclId]
con_a2zY = con_a2zG } in
let {
con_a2A0 :: () -> Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2T9
[LclId]
con_a2A0 = con_a2zG } in
let {
con_a2A2 :: () -> Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2T9
[LclId]
con_a2A2 = con_a2zG } in
case ds_d35K of wild_00 {
Stop ->
return
@IO
$dMonad_a2Td
@(Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2T9)
(con_a2zG ());
Error err_a2zI ->
fail
@IO
$dMonadFail_a2Tk
@(Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2T9)
err_a2zI;
Skip s_a2zZ -> loop_a2zE @b_a2T9 $dMonadIO_a2Tn con_a2zY s_a2zZ;
Yield x_a2A3 s_a2A4 ->
return
@IO
$dMonad_a2Tx
@(Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2T9)
((\ (@l_a2I1)
(@i_a2I2)
(@o_a2I3)
(@u_a2I4)
(@(m_a2I5 :: * -> *))
(@r_a2I6)
(ds_d35W :: Pipe l_a2I1 i_a2I2 o_a2I3 u_a2I4 m_a2I5 r_a2I6)
(ds_d35X :: o_a2I3) ->
HaveOutput
@l_a2I1 @i_a2I2 @o_a2I3 @u_a2I4 @m_a2I5 @r_a2I6 ds_d35W ds_d35X)
@i_a2SF
@i_a2SF
@o_a2SE
@()
@m_a2SC
@b_a2T9
((\ (@l_a2I1)
(@i_a2I2)
(@o_a2I3)
(@u_a2I4)
(@(m_a2I5 :: * -> *))
(@r_a2I6)
(ds_d35Y
:: m_a2I5 (Pipe l_a2I1 i_a2I2 o_a2I3 u_a2I4 m_a2I5 r_a2I6)) ->
PipeM @l_a2I1 @i_a2I2 @o_a2I3 @u_a2I4 @m_a2I5 @r_a2I6 ds_d35Y)
@i_a2SF
@i_a2SF
@o_a2SE
@()
@m_a2SC
@b_a2T9
($ @LiftedRep
@(IO (Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2T9))
@(m_a2SC (Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2T9))
(liftIO
@m_a2SC
$dMonadIO_a2TT
@(Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2T9))
(loop_a2zE @b_a2T9 $dMonadIO_a2TW con_a2A2 s_a2A4)))
x_a2A3);
Effect ms_a2A1 ->
>>=
@IO
$dMonad_a2Tr
@(StepT IO o_a2SE)
@(Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2T9)
ms_a2A1
(loop_a2zE @b_a2T9 $dMonadIO_a2Tv con_a2A0)
}; } in
$ @LiftedRep
@(forall b.
(r_a2SD -> Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b)
-> Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b)
@(ConduitT i_a2SF o_a2SE m_a2SC r_a2SD)
((\ (@i_a2Hb)
(@o_a2Hc)
(@(m_a2Hd :: * -> *))
(@r_a2He)
(ds_d35E
:: forall b.
(r_a2He -> Pipe i_a2Hb i_a2Hb o_a2Hc () m_a2Hd b)
-> Pipe i_a2Hb i_a2Hb o_a2Hc () m_a2Hd b) ->
ConduitT @i_a2Hb @o_a2Hc @m_a2Hd @r_a2He ds_d35E)
@i_a2SF @o_a2SE @m_a2SC @r_a2SD)
(\ (@b_a2U7) ->
let {
$dMonadIO_a2Uy :: MonadIO m_a2SC
[LclId]
$dMonadIO_a2Uy = $dMonadIO_a2SG } in
let {
$dMonadIO_a2Um :: MonadIO m_a2SC
[LclId]
$dMonadIO_a2Um = $dMonadIO_a2SG } in
\ (con_a2A5
:: r_a2SD -> Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2U7) ->
$ @LiftedRep
@(m_a2SC (Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2U7))
@(Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2U7)
((\ (@l_a2I1)
(@i_a2I2)
(@o_a2I3)
(@u_a2I4)
(@(m_a2I5 :: * -> *))
(@r_a2I6)
(ds_d35F
:: m_a2I5 (Pipe l_a2I1 i_a2I2 o_a2I3 u_a2I4 m_a2I5 r_a2I6)) ->
PipeM @l_a2I1 @i_a2I2 @o_a2I3 @u_a2I4 @m_a2I5 @r_a2I6 ds_d35F)
@i_a2SF @i_a2SF @o_a2SE @() @m_a2SC @b_a2U7)
($ @LiftedRep
@(IO (Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2U7))
@(m_a2SC (Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2U7))
(liftIO
@m_a2SC
$dMonadIO_a2Um
@(Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2U7))
($ @LiftedRep
@(StepT IO o_a2SE
-> IO (Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2U7))
@(IO (Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2U7))
(unSourceT
@IO @o_a2SE src_a2zD @(Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2U7))
(\ (step_a2A6 :: StepT IO o_a2SE) ->
loop_a2zE
@b_a2U7
$dMonadIO_a2Uy
(con_a2A5
`cast` (Sub co_a2Vc
%<'Many>_N ->_R <Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2U7>_R
:: (r_a2SD[ssk:1]
-> Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2U7)
~R# (() -> Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2U7)))
step_a2A6))))
}
$s$cfromSourceIO_d35Z [InlPrag=INLINE (sat-args=1)]
:: SourceIO o_a2SE -> ConduitT i_a2SF o_a2SE IO ()
[LclId]
$s$cfromSourceIO_d35Z
= (\ (@(m_a2SC :: * -> *))
(@r_a2SD)
(@o_a2SE)
(@i_a2SF)
($dMonadIO_a2SG :: MonadIO m_a2SC)
($d~_a2SH :: r_a2SD ~ ()) ->
case eq_sel @(*) @r_a2SD @() $d~_a2SH of co_a2Vc { __DEFAULT ->
\ (src_a2zD :: SourceIO o_a2SE) ->
letrec {
loop_a2zE
:: forall b.
MonadIO m_a2SC =>
(() -> Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b)
-> StepT IO o_a2SE -> IO (Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b)
[LclId]
loop_a2zE
= \ (@b_a2T9) ($dMonadIO_a2Ta :: MonadIO m_a2SC) ->
let {
$dMonadIO_a2TW :: MonadIO m_a2SC
[LclId]
$dMonadIO_a2TW = $dMonadIO_a2SG } in
let {
$dMonadIO_a2TT :: MonadIO m_a2SC
[LclId]
$dMonadIO_a2TT = $dMonadIO_a2SG } in
let {
$dMonadIO_a2Tv :: MonadIO m_a2SC
[LclId]
$dMonadIO_a2Tv = $dMonadIO_a2SG } in
let {
$dMonadIO_a2Tn :: MonadIO m_a2SC
[LclId]
$dMonadIO_a2Tn = $dMonadIO_a2SG } in
let {
$dMonadFail_a2Tk :: MonadFail IO
[LclId]
$dMonadFail_a2Tk = $fMonadFailIO } in
let {
$dMonad_a2Td :: Monad IO
[LclId]
$dMonad_a2Td = $fMonadIO } in
let {
$dMonad_a2Tr :: Monad IO
[LclId]
$dMonad_a2Tr = $dMonad_a2Td } in
let {
$dMonad_a2Tx :: Monad IO
[LclId]
$dMonad_a2Tx = $dMonad_a2Td } in
\ (con_a2zG :: () -> Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2T9)
(ds_d35K :: StepT IO o_a2SE) ->
let {
_con_a2zH :: () -> Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2T9
[LclId]
_con_a2zH = con_a2zG } in
let {
con_a2zY :: () -> Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2T9
[LclId]
con_a2zY = con_a2zG } in
let {
con_a2A0 :: () -> Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2T9
[LclId]
con_a2A0 = con_a2zG } in
let {
con_a2A2 :: () -> Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2T9
[LclId]
con_a2A2 = con_a2zG } in
case ds_d35K of wild_00 {
Stop ->
return
@IO
$dMonad_a2Td
@(Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2T9)
(con_a2zG ());
Error err_a2zI ->
fail
@IO
$dMonadFail_a2Tk
@(Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2T9)
err_a2zI;
Skip s_a2zZ -> loop_a2zE @b_a2T9 $dMonadIO_a2Tn con_a2zY s_a2zZ;
Yield x_a2A3 s_a2A4 ->
return
@IO
$dMonad_a2Tx
@(Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2T9)
((\ (@l_a2I1)
(@i_a2I2)
(@o_a2I3)
(@u_a2I4)
(@(m_a2I5 :: * -> *))
(@r_a2I6)
(ds_d35W :: Pipe l_a2I1 i_a2I2 o_a2I3 u_a2I4 m_a2I5 r_a2I6)
(ds_d35X :: o_a2I3) ->
HaveOutput
@l_a2I1 @i_a2I2 @o_a2I3 @u_a2I4 @m_a2I5 @r_a2I6 ds_d35W ds_d35X)
@i_a2SF
@i_a2SF
@o_a2SE
@()
@m_a2SC
@b_a2T9
((\ (@l_a2I1)
(@i_a2I2)
(@o_a2I3)
(@u_a2I4)
(@(m_a2I5 :: * -> *))
(@r_a2I6)
(ds_d35Y
:: m_a2I5 (Pipe l_a2I1 i_a2I2 o_a2I3 u_a2I4 m_a2I5 r_a2I6)) ->
PipeM @l_a2I1 @i_a2I2 @o_a2I3 @u_a2I4 @m_a2I5 @r_a2I6 ds_d35Y)
@i_a2SF
@i_a2SF
@o_a2SE
@()
@m_a2SC
@b_a2T9
($ @LiftedRep
@(IO (Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2T9))
@(m_a2SC (Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2T9))
(liftIO
@m_a2SC
$dMonadIO_a2TT
@(Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2T9))
(loop_a2zE @b_a2T9 $dMonadIO_a2TW con_a2A2 s_a2A4)))
x_a2A3);
Effect ms_a2A1 ->
>>=
@IO
$dMonad_a2Tr
@(StepT IO o_a2SE)
@(Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2T9)
ms_a2A1
(loop_a2zE @b_a2T9 $dMonadIO_a2Tv con_a2A0)
}; } in
$ @LiftedRep
@(forall b.
(r_a2SD -> Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b)
-> Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b)
@(ConduitT i_a2SF o_a2SE m_a2SC r_a2SD)
((\ (@i_a2Hb)
(@o_a2Hc)
(@(m_a2Hd :: * -> *))
(@r_a2He)
(ds_d35E
:: forall b.
(r_a2He -> Pipe i_a2Hb i_a2Hb o_a2Hc () m_a2Hd b)
-> Pipe i_a2Hb i_a2Hb o_a2Hc () m_a2Hd b) ->
ConduitT @i_a2Hb @o_a2Hc @m_a2Hd @r_a2He ds_d35E)
@i_a2SF @o_a2SE @m_a2SC @r_a2SD)
(\ (@b_a2U7) ->
let {
$dMonadIO_a2Uy :: MonadIO m_a2SC
[LclId]
$dMonadIO_a2Uy = $dMonadIO_a2SG } in
let {
$dMonadIO_a2Um :: MonadIO m_a2SC
[LclId]
$dMonadIO_a2Um = $dMonadIO_a2SG } in
\ (con_a2A5
:: r_a2SD -> Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2U7) ->
$ @LiftedRep
@(m_a2SC (Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2U7))
@(Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2U7)
((\ (@l_a2I1)
(@i_a2I2)
(@o_a2I3)
(@u_a2I4)
(@(m_a2I5 :: * -> *))
(@r_a2I6)
(ds_d35F
:: m_a2I5 (Pipe l_a2I1 i_a2I2 o_a2I3 u_a2I4 m_a2I5 r_a2I6)) ->
PipeM @l_a2I1 @i_a2I2 @o_a2I3 @u_a2I4 @m_a2I5 @r_a2I6 ds_d35F)
@i_a2SF @i_a2SF @o_a2SE @() @m_a2SC @b_a2U7)
($ @LiftedRep
@(IO (Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2U7))
@(m_a2SC (Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2U7))
(liftIO
@m_a2SC
$dMonadIO_a2Um
@(Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2U7))
($ @LiftedRep
@(StepT IO o_a2SE
-> IO (Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2U7))
@(IO (Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2U7))
(unSourceT
@IO @o_a2SE src_a2zD @(Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2U7))
(\ (step_a2A6 :: StepT IO o_a2SE) ->
loop_a2zE
@b_a2U7
$dMonadIO_a2Uy
(con_a2A5
`cast` (Sub co_a2Vc
%<'Many>_N ->_R <Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2U7>_R
:: (r_a2SD[ssk:1]
-> Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2U7)
~R# (() -> Pipe i_a2SF i_a2SF o_a2SE () m_a2SC b_a2U7)))
step_a2A6))))
})
@IO @() @o_a2SE @i_a2SF $dMonadIO_a2UO $d~_a2UP
end Rec }
*** End of Offense ***
<no location info>: error:
Compilation had errors
Environment
- GHC version used: 9.2.5