@@ -220,7 +220,10 @@ prepareLinearization p = do
220220 explainNE
221221 ( NE. fromList
222222 [ " Linearizing"
223- , show $ " preds: " <> pretty preds
223+ , show $
224+ " preds: "
225+ <> pretty (take 3 preds)
226+ <> (if length preds > 3 then fromString (" ... " ++ show (length preds - 3 ) ++ " more." ) else " " )
224227 , show $ " graph: " <> pretty graph
225228 ]
226229 )
@@ -846,7 +849,7 @@ isEmptyPlan (SolverPlan plan _) = null plan
846849
847850stepPlan :: MonadGenError m => Env -> SolverPlan -> GenT m (Env , SolverPlan )
848851stepPlan env plan@ (SolverPlan [] _) = pure (env, plan)
849- stepPlan env (SolverPlan (SolverStage x ps spec : pl) gr) = do
852+ stepPlan env (SolverPlan (SolverStage (x :: Var a ) ps spec : pl) gr) = do
850853 (spec', specs) <- runGE
851854 $ explain
852855 ( show
@@ -864,6 +867,8 @@ stepPlan env (SolverPlan (SolverStage x ps spec : pl) gr) = do
864867 ( NE. fromList
865868 ( ( " \n StepPlan for variable: "
866869 ++ show x
870+ ++ " ::"
871+ ++ showType @ a
867872 ++ " fails to produce Specification, probably overconstrained."
868873 ++ " PS = "
869874 ++ unlines (map show ps)
@@ -896,8 +901,10 @@ genFromPreds env0 (optimisePred . optimisePred -> preds) =
896901 go :: Env -> SolverPlan -> GenT m Env
897902 go env plan | isEmptyPlan plan = pure env
898903 go env plan = do
904+ (mess :: String ) <- (unlines . map NE. head ) <$> getMessages
899905 (env', plan') <-
900- explain (show $ " Stepping the plan:" /> vsep [pretty plan, pretty env]) $ stepPlan env plan
906+ explain (show (fromString (mess ++ " Stepping the plan:" ) /> vsep [pretty plan, pretty env])) $
907+ stepPlan env plan
901908 go env' plan'
902909
903910-- | Push as much information we can backwards through the plan.
@@ -1305,9 +1312,12 @@ data SolverStage where
13051312 } ->
13061313 SolverStage
13071314
1315+ docVar :: Typeable a => Var a -> Doc h
1316+ docVar (v :: Var a ) = fromString (show v ++ " :: " ++ showType @ a )
1317+
13081318instance Pretty SolverStage where
13091319 pretty SolverStage {.. } =
1310- viaShow stageVar
1320+ docVar stageVar
13111321 <+> " <-"
13121322 /> vsep'
13131323 ( [pretty stageSpec | not $ isTrueSpec stageSpec]
0 commit comments