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

Commit 71d067c

Browse files
committed
🔥 eval0.
1 parent 20050f8 commit 71d067c

1 file changed

Lines changed: 1 addition & 15 deletions

File tree

semantic-analysis/src/Analysis/Analysis/DeadCode.hs

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,16 @@
88
{-# LANGUAGE TypeOperators #-}
99
{-# LANGUAGE UndecidableInstances #-}
1010
module Analysis.Analysis.DeadCode
11-
( eval0
12-
, deadCodeFlowInsensitive
11+
( deadCodeFlowInsensitive
1312
) where
1413

1514
import Analysis.Carrier.Fail.WithLoc
1615
import qualified Analysis.Carrier.Statement.State as A
1716
import qualified Analysis.Carrier.Store.Monovariant as A
1817
import Analysis.Effect.Domain as A
19-
import Analysis.Effect.Env
20-
import qualified Analysis.Effect.Statement as S
21-
import Analysis.Effect.Store
2218
import Analysis.File
2319
import Analysis.FlowInsensitive
2420
import Analysis.Reference
25-
import Analysis.Syntax hiding (eval0)
2621
import Control.Applicative (Alternative(..))
2722
import Control.Carrier.Fresh.Church
2823
import Control.Carrier.Reader
@@ -33,15 +28,6 @@ import Data.Foldable (sequenceA_)
3328
import Data.Function (fix)
3429
import qualified Data.Set as Set
3530

36-
eval0 :: (Has (Env addr) sig m, HasLabelled Store (Store addr val) sig m, Has (Dom val) sig m, Has (Reader Reference) sig m, Has S.Statement sig m, Has (State (Set.Set Term)) sig m) => Term -> m val
37-
eval0 term = do
38-
put (subterms term)
39-
let evalDead = \ eval' subterm -> do
40-
modify (Set.delete subterm)
41-
eval' subterm
42-
fix (eval . evalDead) term
43-
44-
4531
deadCodeFlowInsensitive
4632
:: Ord term
4733
=> (forall sig m

0 commit comments

Comments
 (0)