regression: core-lint failure in agda
This testcase, boiled down from agda 2.2.8, gives a core lint failure with HEAD and 7.0 branch, but not 7.0.1:
{-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies,
FlexibleContexts, FlexibleInstances,
OverlappingInstances, UndecidableInstances #-}
module Q where
import Control.Monad (foldM)
data NameId = NameId
data Named name a = Named
data Arg e = Arg
data Range = Range
data Name = Name
data ALetBinding = ALetBinding
data APattern a = APattern
data CExpr = CExpr
data CPattern = CPattern
data NiceDeclaration = QQ
data TypeError = NotAValidLetBinding NiceDeclaration
data TCState = TCSt { stFreshThings :: FreshThings }
data FreshThings = Fresh
newtype NewName a = NewName a
newtype LetDef = LetDef NiceDeclaration
newtype TCMT m a = TCM ()
localToAbstract :: ToAbstract c a => c -> (a -> TCMT IO b) -> TCMT IO b
localToAbstract = undefined
typeError :: MonadTCM tcm => TypeError -> tcm a
typeError = undefined
lhsArgs :: [Arg (Named String CPattern)]
lhsArgs = undefined
freshNoName :: (MonadState s m, HasFresh NameId s) => Range -> m Name
freshNoName = undefined
class (Monad m) => MonadState s m | m -> s
class (Monad m) => MonadIO m
class ToAbstract concrete abstract | concrete -> abstract where
toAbstract :: concrete -> TCMT IO abstract
class (MonadState TCState tcm) => MonadTCM tcm where
liftTCM :: TCMT IO a -> tcm a
class HasFresh i a where
nextFresh :: a -> (i,a)
instance ToAbstract c a => ToAbstract [c] [a] where
instance ToAbstract c a => ToAbstract (Arg c) (Arg a) where
instance ToAbstract c a => ToAbstract (Named name c) (Named name a) where
instance ToAbstract CPattern (APattern CExpr) where
instance ToAbstract LetDef [ALetBinding] where
toAbstract (LetDef d) = do _ <- letToAbstract
undefined
where letToAbstract = do
localToAbstract lhsArgs $ \args ->
foldM lambda undefined undefined
lambda _ _ = do x <- freshNoName undefined
return undefined
lambda _ _ = typeError $ NotAValidLetBinding d
instance HasFresh NameId FreshThings where
nextFresh = undefined
instance HasFresh i FreshThings => HasFresh i TCState where
nextFresh = undefined
instance Monad m => MonadState TCState (TCMT m) where
instance Monad m => MonadTCM (TCMT m) where
liftTCM = undefined
instance Monad (TCMT m) where
return = undefined
(>>=) = undefined
fail = undefined
instance Monad m => MonadIO (TCMT m) where
{{{ $ ghc -c q.hs -dcore-lint > out
<no location info>: Compilation had errors
$ cat out
- ** Core Lint errors : in result of Desugar ***
<no location info>:
In the expression: Q.freshNoName
@ Q.TCState @ m_akZ $dMonadState_akN
$dMonadState_akN is out of scope
<no location info>:
In the expression: Q.freshNoName
@ Q.TCState @ m_akZ $dMonadState_akN
Argument value doesn't match argument type:
Fun type:
(Q.MonadState Q.TCState m_akZ, Q.HasFresh Q.NameId Q.TCState) =>
Q.Range -> m_akZ Q.Name
Arg type: Q.MonadState Q.TCState m_r
Arg: $dMonadState_akN
- ** Offending Program ***
Q.freshNoName
:: forall s_adu (m_adv | \* -\> \*). |
---|---|
(Q.MonadState s_adu m_adv, Q.HasFresh Q.NameId s_adu) =\> | |
Q.Range -\> m_adv Q.Name |
[LclIdX] Q.freshNoName =
\\ (@ s_ajs) (@ m_ajt | \* -\> \*) _ _ -\> |
---|---|
GHC.Err.undefined @ (Q.Range -\> m_ajt Q.Name) |
Q.lhsArgs :: [Q.Arg (Q.Named GHC.Base.String Q.CPattern)] [LclIdX] Q.lhsArgs =
GHC.Err.undefined @ [Q.Arg (Q.Named GHC.Base.String Q.CPattern)]
Q.typeError
:: forall (tcm_adw | \* -\> \*) a_adx. |
---|---|
Q.MonadTCM tcm_adw =\> | |
Q.TypeError -\> tcm_adw a_adx |
[LclIdX] Q.typeError =
\\ (@ tcm_ajB | \* -\> \*) (@ a_ajC) _ -\> |
---|---|
GHC.Err.undefined @ (Q.TypeError -\> tcm_ajB a_ajC) |
Q.localToAbstract
:: forall c_ady a_adz b_adA.
Q.ToAbstract c_ady a_adz =>
c_ady
-> (a_adz -> Q.TCMT GHC.Types.IO b_adA)
-> Q.TCMT GHC.Types.IO b_adA
[LclIdX] Q.localToAbstract =
\ (@ c_ajF) (@ a_ajG) (@ b_ajH) _ ->
GHC.Err.undefined
@ (c_ajF
-> (a_ajG -> Q.TCMT GHC.Types.IO b_ajH)
-> Q.TCMT GHC.Types.IO b_ajH)
Q.stFreshThings :: Q.TCState -> Q.FreshThings [LclIdX[[RecSel]]] Q.stFreshThings =
\\ (ds_dmh | Q.TCState) -\> |
---|---|
case ds_dmh of _ { Q.TCSt ds_dmi -\> ds_dmi } |
Q.$fMonadIOTCMT [InlPrag=INLINE (sat-args=0)]
:: forall (m_adB | \* -\> \*). |
---|---|
(GHC.Base.Monad (Q.TCMT m_adB), GHC.Base.Monad m_adB) =\> | |
Q.MonadIO (Q.TCMT m_adB) |
[LclIdX[DFunId1], Unf=Unf{Src=InlineStable, TopLvl=True, Arity=2, Value=True,
ConLike=True, Cheap=True, Expandable=True,
Guidance=ALWAYS_IF(unsat_ok=False,boring_ok=True)
Tmpl= \\ (@ m_adB | \* -\> \*) |
---|---|
($dMonad_ajP \[Occ=Once\] | GHC.Base.Monad (Q.TCMT m_adB)) |
_ -\> | |
Q.D:MonadIO @ (Q.TCMT m_adB) $dMonad_ajP}\] |
Q.$fMonadIOTCMT =
\\ (@ m_adB | \* -\> \*) |
---|---|
($dMonad_ajP | GHC.Base.Monad (Q.TCMT m_adB)) |
_ -\> | |
Q.D:MonadIO @ (Q.TCMT m_adB) $dMonad_ajP |
Q.$fMonadStateTCStateTCMT [InlPrag=INLINE (sat-args=0)]
:: forall (m_adE | \* -\> \*). |
---|---|
(GHC.Base.Monad (Q.TCMT m_adE), GHC.Base.Monad m_adE) =\> | |
Q.MonadState Q.TCState (Q.TCMT m_adE) |
[LclIdX[DFunId1], Unf=Unf{Src=InlineStable, TopLvl=True, Arity=2, Value=True,
ConLike=True, Cheap=True, Expandable=True,
Guidance=ALWAYS_IF(unsat_ok=False,boring_ok=True)
Tmpl= \\ (@ m_adE | \* -\> \*) |
---|---|
($dMonad_akp \[Occ=Once\] | GHC.Base.Monad (Q.TCMT m_adE)) |
_ -\> | |
Q.D:MonadState @ Q.TCState @ (Q.TCMT m_adE) $dMonad_akp}\] |
Q.$fMonadStateTCStateTCMT =
\\ (@ m_adE | \* -\> \*) |
---|---|
($dMonad_akp | GHC.Base.Monad (Q.TCMT m_adE)) |
_ -\> | |
Q.D:MonadState @ Q.TCState @ (Q.TCMT m_adE) $dMonad_akp |
$ctoAbstract_als
:: forall c_adQ a_adR.
Q.ToAbstract c_adQ a_adR =>
[c_adQ] -> Q.TCMT GHC.Types.IO [a_adR]
[LclId] $ctoAbstract_als =
\ (@ c_adQ) (@ a_adR) _ ->
Control.Exception.Base.noMethodBindingError
@ ([c_adQ] -> Q.TCMT GHC.Types.IO [a_adR])
"q.hs:53:10-45|Q.toAbstract"
Q.$fToAbstract[][] [InlPrag=INLINE (sat-args=0)]
:: forall c_adQ a_adR.
Q.ToAbstract c_adQ a_adR =>
Q.ToAbstract [c_adQ] [a_adR]
[LclIdX[DFunId(nt)], Unf=Unf{Src=InlineStable, TopLvl=True, Arity=1, Value=True,
ConLike=True, Cheap=True, Expandable=True,
Guidance=ALWAYS_IF(unsat_ok=False,boring_ok=False)
Tmpl= \ (@ c_adQ)
(@ a_adR)
($dToAbstract_alr \[Occ=Once\] | Q.ToAbstract c_adQ a_adR) -\> |
---|---|
Q.D:ToAbstract | |
@ \[c_adQ\] | |
@ \[a_adR\] | |
($ctoAbstract_als @ c_adQ @ a_adR $dToAbstract_alr)}\] |
Q.$fToAbstract[][] =
\ (@ c_adQ)
(@ a_adR)
($dToAbstract_alr | Q.ToAbstract c_adQ a_adR) -\> |
---|---|
Q.D:ToAbstract | |
@ \[c_adQ\] | |
@ \[a_adR\] | |
($ctoAbstract_als @ c_adQ @ a_adR $dToAbstract_alr) |
$ctoAbstract_alo
:: forall c_adO a_adP.
Q.ToAbstract c_adO a_adP =>
Q.Arg c_adO -> Q.TCMT GHC.Types.IO (Q.Arg a_adP)
[LclId] $ctoAbstract_alo =
\ (@ c_adO) (@ a_adP) _ ->
Control.Exception.Base.noMethodBindingError
@ (Q.Arg c_adO -> Q.TCMT GHC.Types.IO (Q.Arg a_adP))
"q.hs:54:10-53|Q.toAbstract"
Q.$fToAbstractArgArg [InlPrag=INLINE (sat-args=0)]
:: forall c_adO a_adP.
Q.ToAbstract c_adO a_adP =>
Q.ToAbstract (Q.Arg c_adO) (Q.Arg a_adP)
[LclIdX[DFunId(nt)], Unf=Unf{Src=InlineStable, TopLvl=True, Arity=1, Value=True,
ConLike=True, Cheap=True, Expandable=True,
Guidance=ALWAYS_IF(unsat_ok=False,boring_ok=False)
Tmpl= \ (@ c_adO)
(@ a_adP)
($dToAbstract_aln \[Occ=Once\] | Q.ToAbstract c_adO a_adP) -\> |
---|---|
Q.D:ToAbstract | |
@ (Q.Arg c_adO) | |
@ (Q.Arg a_adP) | |
($ctoAbstract_alo @ c_adO @ a_adP $dToAbstract_aln)}\] |
Q.$fToAbstractArgArg =
\ (@ c_adO)
(@ a_adP)
($dToAbstract_aln | Q.ToAbstract c_adO a_adP) -\> |
---|---|
Q.D:ToAbstract | |
@ (Q.Arg c_adO) | |
@ (Q.Arg a_adP) | |
($ctoAbstract_alo @ c_adO @ a_adP $dToAbstract_aln) |
$ctoAbstract_alk
:: forall c_adL a_adM name_adN.
Q.ToAbstract c_adL a_adM =>
Q.Named name_adN c_adL
-> Q.TCMT GHC.Types.IO (Q.Named name_adN a_adM)
[LclId] $ctoAbstract_alk =
\ (@ c_adL) (@ a_adM) (@ name_adN) _ ->
Control.Exception.Base.noMethodBindingError
@ (Q.Named name_adN c_adL
-> Q.TCMT GHC.Types.IO (Q.Named name_adN a_adM))
"q.hs:55:10-67|Q.toAbstract"
Q.$fToAbstractNamedNamed [InlPrag=INLINE (sat-args=0)]
:: forall c_adL a_adM name_adN.
Q.ToAbstract c_adL a_adM =>
Q.ToAbstract (Q.Named name_adN c_adL) (Q.Named name_adN a_adM)
[LclIdX[DFunId(nt)], Unf=Unf{Src=InlineStable, TopLvl=True, Arity=1, Value=True,
ConLike=True, Cheap=True, Expandable=True,
Guidance=ALWAYS_IF(unsat_ok=False,boring_ok=False)
Tmpl= \ (@ c_adL)
(@ a_adM)
(@ name_adN)
($dToAbstract_alj \[Occ=Once\] | Q.ToAbstract c_adL a_adM) -\> |
---|---|
Q.D:ToAbstract | |
@ (Q.Named name_adN c_adL) | |
@ (Q.Named name_adN a_adM) | |
($ctoAbstract_alk @ c_adL @ a_adM @ name_adN $dToAbstract_alj)}\] |
Q.$fToAbstractNamedNamed =
\ (@ c_adL)
(@ a_adM)
(@ name_adN)
($dToAbstract_alj | Q.ToAbstract c_adL a_adM) -\> |
---|---|
Q.D:ToAbstract | |
@ (Q.Named name_adN c_adL) | |
@ (Q.Named name_adN a_adM) | |
($ctoAbstract_alk @ c_adL @ a_adM @ name_adN $dToAbstract_alj) |
$ctoAbstract_alg
:: Q.CPattern -> Q.TCMT GHC.Types.IO (Q.APattern Q.CExpr)
[LclId] $ctoAbstract_alg =
Control.Exception.Base.noMethodBindingError
@ (Q.CPattern -> Q.TCMT GHC.Types.IO (Q.APattern Q.CExpr))
"q.hs:56:10-45|Q.toAbstract"
Q.$fToAbstractCPatternAPattern [InlPrag=INLINE (sat-args=0)]
:: Q.ToAbstract Q.CPattern (Q.APattern Q.CExpr)
[LclIdX[DFunId(nt)], Unf=Unf{Src=InlineStable, TopLvl=True, Arity=0, Value=False,
ConLike=False, Cheap=False, Expandable=False,
Guidance=ALWAYS_IF(unsat_ok=False,boring_ok=False)
Tmpl= Q.D:ToAbstract
@ Q.CPattern @ (Q.APattern Q.CExpr) $ctoAbstract_alg}]
Q.$fToAbstractCPatternAPattern =
Q.D:ToAbstract @ Q.CPattern @ (Q.APattern Q.CExpr) $ctoAbstract_alg
$dToAbstract_alR
:: Q.ToAbstract
(Q.Named GHC.Base.String Q.CPattern)
(Q.Named GHC.Base.String (Q.APattern Q.CExpr))
[LclId] $dToAbstract_alR =
Q.$fToAbstractNamedNamed
@ Q.CPattern
@ (Q.APattern Q.CExpr)
@ [GHC.Types.Char]
Q.$fToAbstractCPatternAPattern
$dToAbstract_alJ
:: Q.ToAbstract
(Q.Arg (Q.Named GHC.Base.String Q.CPattern))
(Q.Arg (Q.Named GHC.Base.String (Q.APattern Q.CExpr)))
[LclId] $dToAbstract_alJ =
Q.$fToAbstractArgArg
@ (Q.Named GHC.Base.String Q.CPattern)
@ (Q.Named GHC.Base.String (Q.APattern Q.CExpr))
$dToAbstract_alR
$dToAbstract_alD
:: Q.ToAbstract
[Q.Arg (Q.Named GHC.Base.String Q.CPattern)]
[Q.Arg (Q.Named GHC.Base.String (Q.APattern Q.CExpr))]
[LclId] $dToAbstract_alD =
Q.$fToAbstract[][]
@ (Q.Arg (Q.Named GHC.Base.String Q.CPattern))
@ (Q.Arg (Q.Named GHC.Base.String (Q.APattern Q.CExpr)))
$dToAbstract_alJ
Q.$fHasFreshNameIdFreshThings [InlPrag=INLINE (sat-args=0)]
:: Q.HasFresh Q.NameId Q.FreshThings
[LclIdX[DFunId(nt)], Unf=Unf{Src=InlineStable, TopLvl=True, Arity=0, Value=False,
ConLike=False, Cheap=False, Expandable=False,
Guidance=ALWAYS_IF(unsat_ok=False,boring_ok=False)
Tmpl= Q.D:HasFresh
@ Q.NameId
@ Q.FreshThings
(GHC.Err.undefined
@ (Q.FreshThings -> (Q.NameId, Q.FreshThings)))}]
Q.$fHasFreshNameIdFreshThings =
Q.D:HasFresh
@ Q.NameId
@ Q.FreshThings
(GHC.Err.undefined @ (Q.FreshThings -> (Q.NameId, Q.FreshThings)))
$cnextFresh_aku
:: forall i_adF.
Q.HasFresh i_adF Q.FreshThings =>
Q.TCState -> (i_adF, Q.TCState)
[LclId] $cnextFresh_aku =
\ (@ i_adF) _ ->
GHC.Err.undefined @ (Q.TCState -> (i_adF, Q.TCState))
Q.$fHasFreshiTCState [InlPrag=INLINE (sat-args=0)]
:: forall i_adF.
Q.HasFresh i_adF Q.FreshThings =>
Q.HasFresh i_adF Q.TCState
[LclIdX[DFunId(nt)], Unf=Unf{Src=InlineStable, TopLvl=True, Arity=1, Value=True,
ConLike=True, Cheap=True, Expandable=True,
Guidance=ALWAYS_IF(unsat_ok=False,boring_ok=False)
Tmpl= \ (@ i_adF)
($dHasFresh_akt \[Occ=Once\] | Q.HasFresh i_adF Q.FreshThings) -\> |
---|---|
Q.D:HasFresh | |
@ i_adF @ Q.TCState ($cnextFresh_aku @ i_adF $dHasFresh_akt)}\] |
Q.$fHasFreshiTCState =
\\ (@ i_adF) ($dHasFresh_akt | Q.HasFresh i_adF Q.FreshThings) -\> |
---|---|
Q.D:HasFresh | |
@ i_adF @ Q.TCState ($cnextFresh_aku @ i_adF $dHasFresh_akt) |
$cliftTCM_akk
:: forall (m_adD | \* -\> \*). |
---|---|
(Q.MonadState Q.TCState (Q.TCMT m_adD), GHC.Base.Monad m_adD) =\> | |
forall a_adh. Q.TCMT GHC.Types.IO a_adh -\> Q.TCMT m_adD a_adh |
[LclId] $cliftTCM_akk =
\\ (@ m_adD | \* -\> \*) _ _ (@ a_akm) -\> |
---|---|
GHC.Err.undefined | |
@ (Q.TCMT GHC.Types.IO a_akm -\> Q.TCMT m_adD a_akm) |
Q.$fMonadTCMTCMT [InlPrag=[ALWAYS] CONLIKE]
:: forall (m_adD | \* -\> \*). |
---|---|
(Q.MonadState Q.TCState (Q.TCMT m_adD), GHC.Base.Monad m_adD) =\> | |
Q.MonadTCM (Q.TCMT m_adD) |
[LclIdX[DFunId[1]], Unf=DFun(arity=3) Q.D:MonadTCM [<1>, {$cliftTCM_akk}]] Q.$fMonadTCMTCMT =
\\ (@ m_adD | \* -\> \*) |
---|---|
($dMonadState_akh | Q.MonadState Q.TCState (Q.TCMT m_adD)) |
($dMonad_aki | GHC.Base.Monad m_adD) -\> |
Q.D:MonadTCM | |
@ (Q.TCMT m_adD) | |
$dMonadState_akh | |
($cliftTCM_akk @ m_adD $dMonadState_akh $dMonad_aki) |
Rec { Q.$fMonadTCMT [InlPrag=[ALWAYS] CONLIKE]
:: forall (m_adC :: * -> *). GHC.Base.Monad (Q.TCMT m_adC)
[LclIdX[DFunId], Unf=DFun(arity=1) GHC.Base.D:Monad [{\ (@ m_adC::* -> *)
(@ a_ajX)
(@ b_ajY) ->
GHC.Err.undefined
@ (Q.TCMT m_adC a_ajX
-> (a_ajX -> Q.TCMT m_adC b_ajY)
-> Q.TCMT m_adC b_ajY)},
{$c>>_ak1},
{\\ (@ m_adC | \* -\> \*) (@ a_ak9) -\> |
---|---|
GHC.Err.undefined @ (a_ak9 -\> Q.TCMT m_adC a_ak9)}, | |
{\\ (@ m_adC | \* -\> \*) (@ a_ake) -\> |
GHC.Err.undefined | |
@ (GHC.Base.String -\> Q.TCMT m_adC a_ake)}\]\] |
Q.$fMonadTCMT =
\\ (@ m_adC | \* -\> \*) -\> |
---|---|
GHC.Base.D:Monad | |
@ (Q.TCMT m_adC) | |
((\\ (@ m_adC | \* -\> \*) (@ a_ajX) (@ b_ajY) -\> |
GHC.Err.undefined | |
@ (Q.TCMT m_adC a_ajX | |
-\> (a_ajX -\> Q.TCMT m_adC b_ajY) | |
-\> Q.TCMT m_adC b_ajY)) | |
@ m_adC) | |
($c\>\>_ak1 @ m_adC) | |
((\\ (@ m_adC | \* -\> \*) (@ a_ak9) -\> |
GHC.Err.undefined @ (a_ak9 -\> Q.TCMT m_adC a_ak9)) | |
@ m_adC) | |
((\\ (@ m_adC | \* -\> \*) (@ a_ake) -\> |
GHC.Err.undefined @ (GHC.Base.String -\> Q.TCMT m_adC a_ake)) | |
@ m_adC) |
$c>>_ak1 [Occ=LoopBreaker]
:: forall (m_adC | \* -\> \*) a_amc b_amd. |
---|---|
Q.TCMT m_adC a_amc -\> Q.TCMT m_adC b_amd -\> Q.TCMT m_adC b_amd |
[LclId] $c>>_ak1 =
\\ (@ m_adC | \* -\> \*) -\> |
---|---|
GHC.Base.$dm\>\> @ (Q.TCMT m_adC) (Q.$fMonadTCMT @ m_adC) |
end Rec }
$dMonadState_alw :: Q.MonadState Q.TCState (Q.TCMT GHC.Types.IO) [LclId] $dMonadState_alw =
Q.$fMonadStateTCStateTCMT
@ GHC.Types.IO (Q.
fMonadTCMT @ GHC.Types.IO) GHC.Base.
fMonadIO
$dMonadTCM_al8 :: Q.MonadTCM (Q.TCMT GHC.Types.IO) [LclId] $dMonadTCM_al8 =
Q.$fMonadTCMTCMT @ GHC.Types.IO
dMonadState_alw GHC.Base.
fMonadIO
$ctoAbstract_akA :: Q.LetDef -> Q.TCMT GHC.Types.IO [Q.ALetBinding] [LclId] $ctoAbstract_akA =
\ _ ->
let {
lambda_adI
:: forall t_akX t_akY (m_akZ | \* -\> \*) b_al0. |
---|---|
Q.MonadTCM m_akZ =\> | |
t_akX -\> t_akY -\> m_akZ b_al0 | |
\[LclId\] | |
lambda_adI = | |
\\ (@ t_akX) | |
(@ t_akY) | |
(@ m_akZ | \* -\> \*) |
(@ b_al0) | |
($dMonadTCM_al1 | Q.MonadTCM m_akZ) -\> |
let { | |
$dHasFresh_akQ | Q.HasFresh Q.NameId Q.TCState |
\[LclId\] | |
$dHasFresh_akQ = | |
Q.fHasFreshiTCState @ Q.NameId Q. fHasFreshNameIdFreshThings } in |
|
let { | |
$dMonad_akG | GHC.Base.Monad m_akZ |
\[LclId\] | |
$dMonad_akG = | |
Q.$p1MonadState | |
@ Q.TCState @ m_akZ (Q.$p1MonadTCM @ m_akZ $dMonadTCM_al1) } in | |
\\ _ _ -\> | |
GHC.Base.\>\>= | |
@ m_akZ | |
$dMonad_akG | |
@ Q.Name | |
@ b_al0 | |
(Q.freshNoName | |
@ Q.TCState | |
@ m_akZ | |
$dMonadState_akN | |
$dHasFresh_akQ | |
(GHC.Err.undefined @ Q.Range)) | |
(\\ _ -\> | |
GHC.Base.return | |
@ m_akZ $dMonad_akG @ b_al0 (GHC.Err.undefined @ b_al0)) } in | |
GHC.Base.\>\>= | |
@ (Q.TCMT GHC.Types.IO) | |
(Q.$fMonadTCMT @ GHC.Types.IO) | |
@ GHC.Prim.Any | |
@ \[Q.ALetBinding\] | |
((\\ (@ b_alb) -\> | |
GHC.Base.$ | |
@ (\[Q.Arg (Q.Named GHC.Base.String (Q.APattern Q.CExpr))\] | |
-\> Q.TCMT GHC.Types.IO b_alb) | |
@ (Q.TCMT GHC.Types.IO b_alb) | |
(Q.localToAbstract | |
@ \[Q.Arg (Q.Named GHC.Base.String Q.CPattern)\] | |
@ \[Q.Arg (Q.Named GHC.Base.String (Q.APattern Q.CExpr))\] | |
@ b_alb | |
$dToAbstract_alD | |
Q.lhsArgs) | |
(\\ _ -\> | |
Control.Monad.foldM | |
@ (Q.TCMT GHC.Types.IO) | |
@ b_alb | |
@ GHC.Prim.Any | |
(Q.$fMonadTCMT @ GHC.Types.IO) | |
(lambda_adI | |
@ b_alb | |
@ GHC.Prim.Any | |
@ (Q.TCMT GHC.Types.IO) | |
@ b_alb | |
$dMonadTCM_al8) | |
(GHC.Err.undefined @ b_alb) | |
(GHC.Err.undefined @ \[GHC.Prim.Any\]))) | |
@ GHC.Prim.Any) | |
(\\ _ -\> GHC.Err.undefined @ (Q.TCMT GHC.Types.IO \[Q.ALetBinding\])) |
Q.$fToAbstractLetDef[] [InlPrag=INLINE (sat-args=0)]
:: Q.ToAbstract Q.LetDef [Q.ALetBinding]
[LclIdX[DFunId(nt)], Unf=Unf{Src=InlineStable, TopLvl=True, Arity=0, Value=False,
ConLike=False, Cheap=False, Expandable=False,
Guidance=ALWAYS_IF(unsat_ok=False,boring_ok=False)
Tmpl= Q.D:ToAbstract
@ Q.LetDef @ [Q.ALetBinding] $ctoAbstract_akA}]
Q.$fToAbstractLetDef[] =
Q.D:ToAbstract @ Q.LetDef @ [Q.ALetBinding] $ctoAbstract_akA
- ** End of Offense ***
Trac metadata
Trac field | Value |
---|---|
Version | 7.0.1 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | high |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |