Skip to content
This repository was archived by the owner on Apr 1, 2025. It is now read-only.

Commit c7bee13

Browse files
committed
Generalize scopeGraph over the term type.
1 parent 3bafa9a commit c7bee13

1 file changed

Lines changed: 10 additions & 3 deletions

File tree

semantic-core/src/Analysis/ScopeGraph.hs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import Control.Effect.Fresh
1515
import Control.Effect.Reader
1616
import Control.Effect.State
1717
import Control.Monad ((>=>))
18-
import qualified Data.Core as Core
1918
import Data.File
2019
import Data.Foldable (fold)
2120
import Data.Function (fix)
@@ -26,7 +25,6 @@ import Data.Name
2625
import Data.Proxy
2726
import qualified Data.Set as Set
2827
import Data.Text (Text)
29-
import Data.Term
3028
import Prelude hiding (fail)
3129

3230
data Entry = Entry
@@ -41,8 +39,17 @@ newtype ScopeGraph = ScopeGraph { unScopeGraph :: Map.Map Entry (Set.Set Entry)
4139
instance Semigroup ScopeGraph where
4240
ScopeGraph a <> ScopeGraph b = ScopeGraph (Map.unionWith (<>) a b)
4341

44-
scopeGraph :: [File (Term (Core.Ann :+: Core.Core) User)] -> (Heap User ScopeGraph, [File (Either (Loc, String) ScopeGraph)])
4542
scopeGraph
43+
:: Ord term
44+
=> (forall sig m
45+
. (Carrier sig m, Member (Reader Loc) sig, MonadFail m)
46+
=> Analysis term User ScopeGraph m
47+
-> (term -> m ScopeGraph)
48+
-> (term -> m ScopeGraph)
49+
)
50+
-> [File term]
51+
-> (Heap User ScopeGraph, [File (Either (Loc, String) ScopeGraph)])
52+
scopeGraph eval
4653
= run
4754
. runFresh
4855
. runHeap

0 commit comments

Comments
 (0)