File tree Expand file tree Collapse file tree 1 file changed +14
-6
lines changed Expand file tree Collapse file tree 1 file changed +14
-6
lines changed Original file line number Diff line number Diff line change @@ -583,17 +583,25 @@ instance MonadInfer m
583583 toValue (xs, _) =
584584 Judgment
585585 <$> foldrM go As. empty xs
586- <*> (concat <$> traverse (demandF (pure . typeConstraints)) xs)
587- <*> (TSet True <$> traverse (demandF (pure . inferredType)) xs)
588- where go x rest = demandF (\ x' -> pure $ As. merge (assumptions x') rest) x
586+ <*> (concat <$> traverse ((pure . typeConstraints) <=< demand ) xs)
587+ <*> (TSet True <$> traverse ((pure . inferredType) <=< demand) xs)
588+ where
589+ go x rest =
590+ do
591+ x' <- demand x
592+ pure $ As. merge (assumptions x') rest
589593
590594instance MonadInfer m => ToValue [Judgment s ] (InferT s m ) (Judgment s ) where
591595 toValue xs =
592596 Judgment
593597 <$> foldrM go As. empty xs
594- <*> (concat <$> traverse (demandF (pure . typeConstraints)) xs)
595- <*> (TList <$> traverse (demandF (pure . inferredType)) xs)
596- where go x rest = demandF (\ x' -> pure $ As. merge (assumptions x') rest) x
598+ <*> (concat <$> traverse ((pure . typeConstraints) <=< demand) xs)
599+ <*> (TList <$> traverse ((pure . inferredType) <=< demand) xs)
600+ where
601+ go x rest =
602+ do
603+ x' <- demand x
604+ pure $ As. merge (assumptions x') rest
597605
598606instance MonadInfer m => ToValue Bool (InferT s m ) (Judgment s ) where
599607 toValue _ = pure $ Judgment As. empty mempty typeBool
You can’t perform that action at this time.
0 commit comments