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

Commit f141319

Browse files
committed
Rename User to Name.
1 parent 901014d commit f141319

File tree

11 files changed

+113
-113
lines changed

11 files changed

+113
-113
lines changed

semantic-core/src/Analysis/Concrete.hs

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,13 @@ import Data.Traversable (for)
3434
import Prelude hiding (fail)
3535

3636
type Precise = Int
37-
type Env = Map.Map User Precise
37+
type Env = Map.Map Name Precise
3838

3939
newtype FrameId = FrameId { unFrameId :: Precise }
4040
deriving (Eq, Ord, Show)
4141

4242
data Concrete term
43-
= Closure Loc User term Env
43+
= Closure Loc Name term Env
4444
| Unit
4545
| Bool Bool
4646
| String Text
@@ -68,15 +68,15 @@ data Edge = Lexical | Import
6868
-- >>> map fileBody (snd (concrete eval [File (Loc "bool" emptySpan) (Core.bool True)]))
6969
-- [Right (Bool True)]
7070
concrete
71-
:: (Foldable term, Show (term User))
71+
:: (Foldable term, Show (term Name))
7272
=> (forall sig m
7373
. (Carrier sig m, Member (Reader Loc) sig, MonadFail m)
74-
=> Analysis (term User) Precise (Concrete (term User)) m
75-
-> (term User -> m (Concrete (term User)))
76-
-> (term User -> m (Concrete (term User)))
74+
=> Analysis (term Name) Precise (Concrete (term Name)) m
75+
-> (term Name -> m (Concrete (term Name)))
76+
-> (term Name -> m (Concrete (term Name)))
7777
)
78-
-> [File (term User)]
79-
-> (Heap (term User), [File (Either (Loc, String) (Concrete (term User)))])
78+
-> [File (term Name)]
79+
-> (Heap (term Name), [File (Either (Loc, String) (Concrete (term Name)))])
8080
concrete eval
8181
= run
8282
. runFresh
@@ -88,17 +88,17 @@ runFile
8888
, Effect sig
8989
, Foldable term
9090
, Member Fresh sig
91-
, Member (State (Heap (term User))) sig
92-
, Show (term User)
91+
, Member (State (Heap (term Name))) sig
92+
, Show (term Name)
9393
)
9494
=> (forall sig m
9595
. (Carrier sig m, Member (Reader Loc) sig, MonadFail m)
96-
=> Analysis (term User) Precise (Concrete (term User)) m
97-
-> (term User -> m (Concrete (term User)))
98-
-> (term User -> m (Concrete (term User)))
96+
=> Analysis (term Name) Precise (Concrete (term Name)) m
97+
-> (term Name -> m (Concrete (term Name)))
98+
-> (term Name -> m (Concrete (term Name)))
9999
)
100-
-> File (term User)
101-
-> m (File (Either (Loc, String) (Concrete (term User))))
100+
-> File (term Name)
101+
-> m (File (Either (Loc, String) (Concrete (term Name))))
102102
runFile eval file = traverse run file
103103
where run = runReader (fileLoc file)
104104
. runFailWithLoc
@@ -110,11 +110,11 @@ concreteAnalysis :: ( Carrier sig m
110110
, Member Fresh sig
111111
, Member (Reader Env) sig
112112
, Member (Reader Loc) sig
113-
, Member (State (Heap (term User))) sig
113+
, Member (State (Heap (term Name))) sig
114114
, MonadFail m
115-
, Show (term User)
115+
, Show (term Name)
116116
)
117-
=> Analysis (term User) Precise (Concrete (term User)) m
117+
=> Analysis (term Name) Precise (Concrete (term Name)) m
118118
concreteAnalysis = Analysis{..}
119119
where alloc _ = fresh
120120
bind name addr m = local (Map.insert name addr) m
@@ -150,7 +150,7 @@ concreteAnalysis = Analysis{..}
150150
pure (val >>= lookupConcrete heap n)
151151

152152

153-
lookupConcrete :: Heap term -> User -> Concrete term -> Maybe Precise
153+
lookupConcrete :: Heap term -> Name -> Concrete term -> Maybe Precise
154154
lookupConcrete heap name = run . evalState IntSet.empty . runNonDet . inConcrete
155155
where -- look up the name in a concrete value
156156
inConcrete = inFrame <=< maybeA . recordFrame
@@ -176,7 +176,7 @@ runHeap = runState mempty
176176
-- > λ let (heap, res) = concrete [ruby]
177177
-- > λ writeFile "/Users/rob/Desktop/heap.dot" (export (addressStyle heap) (heapAddressGraph heap))
178178
-- > λ :!dot -Tsvg < ~/Desktop/heap.dot > ~/Desktop/heap.svg
179-
heapGraph :: (Precise -> Concrete term -> a) -> (Either Edge User -> Precise -> G.Graph a) -> Heap term -> G.Graph a
179+
heapGraph :: (Precise -> Concrete term -> a) -> (Either Edge Name -> Precise -> G.Graph a) -> Heap term -> G.Graph a
180180
heapGraph vertex edge h = foldr (uncurry graph) G.empty (IntMap.toList h)
181181
where graph k v rest = (G.vertex (vertex k v) `G.connect` outgoing v) `G.overlay` rest
182182
outgoing = \case
@@ -210,7 +210,7 @@ addressStyle heap = (G.defaultStyle vertex) { G.edgeAttributes }
210210

211211
data EdgeType term
212212
= Edge Edge
213-
| Slot User
213+
| Slot Name
214214
| Value (Concrete term)
215215
deriving (Eq, Ord, Show)
216216

semantic-core/src/Analysis/Eval.hs

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@ eval :: ( Carrier sig m
3333
, MonadFail m
3434
, Semigroup value
3535
)
36-
=> Analysis (Term (Ann :+: Core) User) address value m
37-
-> (Term (Ann :+: Core) User -> m value)
38-
-> (Term (Ann :+: Core) User -> m value)
36+
=> Analysis (Term (Ann :+: Core) Name) address value m
37+
-> (Term (Ann :+: Core) Name -> m value)
38+
-> (Term (Ann :+: Core) Name -> m value)
3939
eval Analysis{..} eval = \case
4040
Var n -> lookupEnv' n >>= deref' n
4141
Term (R c) -> case c of
@@ -90,30 +90,30 @@ eval Analysis{..} eval = \case
9090
Term (L (Ann loc c)) -> local (const loc) (ref c)
9191

9292

93-
prog1 :: (Carrier sig t, Member Core sig) => File (t User)
93+
prog1 :: (Carrier sig t, Member Core sig) => File (t Name)
9494
prog1 = fromBody $ lam (named' "foo")
9595
( named' "bar" :<- pure "foo"
9696
>>>= Core.if' (pure "bar")
9797
(Core.bool False)
9898
(Core.bool True))
9999

100-
prog2 :: (Carrier sig t, Member Core sig) => File (t User)
100+
prog2 :: (Carrier sig t, Member Core sig) => File (t Name)
101101
prog2 = fromBody $ fileBody prog1 $$ Core.bool True
102102

103-
prog3 :: (Carrier sig t, Member Core sig) => File (t User)
103+
prog3 :: (Carrier sig t, Member Core sig) => File (t Name)
104104
prog3 = fromBody $ lams [named' "foo", named' "bar", named' "quux"]
105105
(Core.if' (pure "quux")
106106
(pure "bar")
107107
(pure "foo"))
108108

109-
prog4 :: (Carrier sig t, Member Core sig) => File (t User)
109+
prog4 :: (Carrier sig t, Member Core sig) => File (t Name)
110110
prog4 = fromBody
111111
( named' "foo" :<- Core.bool True
112112
>>>= Core.if' (pure "foo")
113113
(Core.bool True)
114114
(Core.bool False))
115115

116-
prog5 :: (Carrier sig t, Member Ann sig, Member Core sig) => File (t User)
116+
prog5 :: (Carrier sig t, Member Ann sig, Member Core sig) => File (t Name)
117117
prog5 = fromBody $ ann (do'
118118
[ Just (named' "mkPoint") :<- lams [named' "_x", named' "_y"] (ann (Core.record
119119
[ ("x", ann (pure "_x"))
@@ -124,7 +124,7 @@ prog5 = fromBody $ ann (do'
124124
, Nothing :<- ann (ann (pure "point") Core.... "y") .= ann (ann (pure "point") Core.... "x")
125125
])
126126

127-
prog6 :: (Carrier sig t, Member Core sig) => [File (t User)]
127+
prog6 :: (Carrier sig t, Member Core sig) => [File (t Name)]
128128
prog6 =
129129
[ File (Loc "dep" (locSpan (fromJust here))) $ Core.record
130130
[ ("dep", Core.record [ ("var", Core.bool True) ]) ]
@@ -134,7 +134,7 @@ prog6 =
134134
])
135135
]
136136

137-
ruby :: (Carrier sig t, Member Ann sig, Member Core sig) => File (t User)
137+
ruby :: (Carrier sig t, Member Ann sig, Member Core sig) => File (t Name)
138138
ruby = fromBody $ annWith callStack (rec (named' __semantic_global) (do' statements))
139139
where statements =
140140
[ Just "Class" :<- record
@@ -212,18 +212,18 @@ ruby = fromBody $ annWith callStack (rec (named' __semantic_global) (do' stateme
212212

213213

214214
data Analysis term address value m = Analysis
215-
{ alloc :: User -> m address
216-
, bind :: forall a . User -> address -> m a -> m a
217-
, lookupEnv :: User -> m (Maybe address)
215+
{ alloc :: Name -> m address
216+
, bind :: forall a . Name -> address -> m a -> m a
217+
, lookupEnv :: Name -> m (Maybe address)
218218
, deref :: address -> m (Maybe value)
219219
, assign :: address -> value -> m ()
220-
, abstract :: (term -> m value) -> User -> term -> m value
220+
, abstract :: (term -> m value) -> Name -> term -> m value
221221
, apply :: (term -> m value) -> value -> value -> m value
222222
, unit :: m value
223223
, bool :: Bool -> m value
224224
, asBool :: value -> m Bool
225225
, string :: Text -> m value
226226
, asString :: value -> m Text
227-
, record :: [(User, value)] -> m value
228-
, (...) :: address -> User -> m (Maybe address)
227+
, record :: [(Name, value)] -> m value
228+
, (...) :: address -> Name -> m (Maybe address)
229229
}

semantic-core/src/Analysis/ImportGraph.hs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ instance Monoid (Value term) where
4141
mempty = Value Abstract mempty
4242

4343
data Semi term
44-
= Closure Loc User term
44+
= Closure Loc Name term
4545
-- FIXME: Bound String values.
4646
| String Text
4747
| Abstract
@@ -52,12 +52,12 @@ importGraph
5252
:: (Ord term, Show term)
5353
=> (forall sig m
5454
. (Carrier sig m, Member (Reader Loc) sig, MonadFail m)
55-
=> Analysis term User (Value term) m
55+
=> Analysis term Name (Value term) m
5656
-> (term -> m (Value term))
5757
-> (term -> m (Value term))
5858
)
5959
-> [File term]
60-
-> ( Heap User (Value term)
60+
-> ( Heap Name (Value term)
6161
, [File (Either (Loc, String) (Value term))]
6262
)
6363
importGraph eval
@@ -70,13 +70,13 @@ runFile
7070
:: ( Carrier sig m
7171
, Effect sig
7272
, Member Fresh sig
73-
, Member (State (Heap User (Value term))) sig
73+
, Member (State (Heap Name (Value term))) sig
7474
, Ord term
7575
, Show term
7676
)
7777
=> (forall sig m
7878
. (Carrier sig m, Member (Reader Loc) sig, MonadFail m)
79-
=> Analysis term User (Value term) m
79+
=> Analysis term Name (Value term) m
8080
-> (term -> m (Value term))
8181
-> (term -> m (Value term))
8282
)
@@ -86,18 +86,18 @@ runFile eval file = traverse run file
8686
where run = runReader (fileLoc file)
8787
. runFailWithLoc
8888
. fmap fold
89-
. convergeTerm (Proxy @User) (fix (cacheTerm . eval importGraphAnalysis))
89+
. convergeTerm (Proxy @Name) (fix (cacheTerm . eval importGraphAnalysis))
9090

9191
-- FIXME: decompose into a product domain and two atomic domains
9292
importGraphAnalysis :: ( Alternative m
9393
, Carrier sig m
9494
, Member (Reader Loc) sig
95-
, Member (State (Heap User (Value term))) sig
95+
, Member (State (Heap Name (Value term))) sig
9696
, MonadFail m
9797
, Ord term
9898
, Show term
9999
)
100-
=> Analysis term User (Value term) m
100+
=> Analysis term Name (Value term) m
101101
importGraphAnalysis = Analysis{..}
102102
where alloc = pure
103103
bind _ _ m = m

semantic-core/src/Analysis/ScopeGraph.hs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,12 @@ scopeGraph
5050
:: Ord term
5151
=> (forall sig m
5252
. (Carrier sig m, Member (Reader Loc) sig, MonadFail m)
53-
=> Analysis term User ScopeGraph m
53+
=> Analysis term Name ScopeGraph m
5454
-> (term -> m ScopeGraph)
5555
-> (term -> m ScopeGraph)
5656
)
5757
-> [File term]
58-
-> (Heap User ScopeGraph, [File (Either (Loc, String) ScopeGraph)])
58+
-> (Heap Name ScopeGraph, [File (Either (Loc, String) ScopeGraph)])
5959
scopeGraph eval
6060
= run
6161
. runFresh
@@ -66,32 +66,32 @@ runFile
6666
:: ( Carrier sig m
6767
, Effect sig
6868
, Member Fresh sig
69-
, Member (State (Heap User ScopeGraph)) sig
69+
, Member (State (Heap Name ScopeGraph)) sig
7070
, Ord term
7171
)
7272
=> (forall sig m
7373
. (Carrier sig m, Member (Reader Loc) sig, MonadFail m)
74-
=> Analysis term User ScopeGraph m
74+
=> Analysis term Name ScopeGraph m
7575
-> (term -> m ScopeGraph)
7676
-> (term -> m ScopeGraph)
7777
)
7878
-> File term
7979
-> m (File (Either (Loc, String) ScopeGraph))
8080
runFile eval file = traverse run file
8181
where run = runReader (fileLoc file)
82-
. runReader (Map.empty @User @Loc)
82+
. runReader (Map.empty @Name @Loc)
8383
. runFailWithLoc
8484
. fmap fold
85-
. convergeTerm (Proxy @User) (fix (cacheTerm . eval scopeGraphAnalysis))
85+
. convergeTerm (Proxy @Name) (fix (cacheTerm . eval scopeGraphAnalysis))
8686

8787
scopeGraphAnalysis
8888
:: ( Alternative m
8989
, Carrier sig m
9090
, Member (Reader Loc) sig
91-
, Member (Reader (Map.Map User Loc)) sig
92-
, Member (State (Heap User ScopeGraph)) sig
91+
, Member (Reader (Map.Map Name Loc)) sig
92+
, Member (State (Heap Name ScopeGraph)) sig
9393
)
94-
=> Analysis term User ScopeGraph m
94+
=> Analysis term Name ScopeGraph m
9595
scopeGraphAnalysis = Analysis{..}
9696
where alloc = pure
9797
bind name _ m = do

semantic-core/src/Analysis/Typecheck.hs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ data Monotype f a
4343
| Unit
4444
| String
4545
| Arr (f a) (f a)
46-
| Record (Map.Map User (f a))
46+
| Record (Map.Map Name (f a))
4747
deriving (Foldable, Functor, Generic1, Traversable)
4848

4949
type Type = Term Monotype Meta
@@ -93,12 +93,12 @@ typecheckingFlowInsensitive
9393
:: Ord term
9494
=> (forall sig m
9595
. (Carrier sig m, Member (Reader Loc) sig, MonadFail m)
96-
=> Analysis term User Type m
96+
=> Analysis term Name Type m
9797
-> (term -> m Type)
9898
-> (term -> m Type)
9999
)
100100
-> [File term]
101-
-> ( Heap User Type
101+
-> ( Heap Name Type
102102
, [File (Either (Loc, String) (Term (Polytype :+: Monotype) Void))]
103103
)
104104
typecheckingFlowInsensitive eval
@@ -112,12 +112,12 @@ runFile
112112
:: ( Carrier sig m
113113
, Effect sig
114114
, Member Fresh sig
115-
, Member (State (Heap User Type)) sig
115+
, Member (State (Heap Name Type)) sig
116116
, Ord term
117117
)
118118
=> (forall sig m
119119
. (Carrier sig m, Member (Reader Loc) sig, MonadFail m)
120-
=> Analysis term User Type m
120+
=> Analysis term Name Type m
121121
-> (term -> m Type)
122122
-> (term -> m Type)
123123
)
@@ -127,7 +127,7 @@ runFile eval file = traverse run file
127127
where run
128128
= (\ m -> do
129129
(subst, t) <- m
130-
modify @(Heap User Type) (fmap (Set.map (substAll subst)))
130+
modify @(Heap Name Type) (fmap (Set.map (substAll subst)))
131131
pure (substAll subst <$> t))
132132
. runState (mempty :: Substitution)
133133
. runReader (fileLoc file)
@@ -140,16 +140,16 @@ runFile eval file = traverse run file
140140
v <- meta
141141
bs <- m
142142
v <$ for_ bs (unify v))
143-
. convergeTerm (Proxy @User) (fix (cacheTerm . eval typecheckingAnalysis))
143+
. convergeTerm (Proxy @Name) (fix (cacheTerm . eval typecheckingAnalysis))
144144

145145
typecheckingAnalysis
146146
:: ( Alternative m
147147
, Carrier sig m
148148
, Member Fresh sig
149149
, Member (State (Set.Set Constraint)) sig
150-
, Member (State (Heap User Type)) sig
150+
, Member (State (Heap Name Type)) sig
151151
)
152-
=> Analysis term User Type m
152+
=> Analysis term Name Type m
153153
typecheckingAnalysis = Analysis{..}
154154
where alloc = pure
155155
bind _ _ m = m

0 commit comments

Comments
 (0)