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

Commit 3bafa9a

Browse files
committed
Generalize runFile over the term type.
1 parent 4296244 commit 3bafa9a

1 file changed

Lines changed: 12 additions & 4 deletions

File tree

semantic-core/src/Analysis/ScopeGraph.hs

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{-# LANGUAGE FlexibleContexts, GeneralizedNewtypeDeriving, OverloadedStrings, RecordWildCards, TypeApplications, TypeOperators #-}
1+
{-# LANGUAGE FlexibleContexts, GeneralizedNewtypeDeriving, OverloadedStrings, RankNTypes, RecordWildCards, TypeApplications, TypeOperators #-}
22
module Analysis.ScopeGraph
33
( ScopeGraph
44
, Entry(..)
@@ -10,6 +10,7 @@ import Analysis.Eval
1010
import Analysis.FlowInsensitive
1111
import Control.Applicative (Alternative (..))
1212
import Control.Effect.Carrier
13+
import Control.Effect.Fail
1314
import Control.Effect.Fresh
1415
import Control.Effect.Reader
1516
import Control.Effect.State
@@ -45,17 +46,24 @@ scopeGraph
4546
= run
4647
. runFresh
4748
. runHeap
48-
. traverse runFile
49+
. traverse (runFile eval)
4950

5051
runFile
5152
:: ( Carrier sig m
5253
, Effect sig
5354
, Member Fresh sig
5455
, Member (State (Heap User ScopeGraph)) sig
56+
, Ord term
5557
)
56-
=> File (Term (Core.Ann :+: Core.Core) User)
58+
=> (forall sig m
59+
. (Carrier sig m, Member (Reader Loc) sig, MonadFail m)
60+
=> Analysis term User ScopeGraph m
61+
-> (term -> m ScopeGraph)
62+
-> (term -> m ScopeGraph)
63+
)
64+
-> File term
5765
-> m (File (Either (Loc, String) ScopeGraph))
58-
runFile file = traverse run file
66+
runFile eval file = traverse run file
5967
where run = runReader (fileLoc file)
6068
. runReader (Map.empty @User @Loc)
6169
. runFailWithLoc

0 commit comments

Comments
 (0)