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

Commit 62c09c3

Browse files
committed
🔥 Naming.
1 parent 59f09cc commit 62c09c3

2 files changed

Lines changed: 1 addition & 26 deletions

File tree

semantic-core/src/Analysis/Concrete.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import qualified Data.IntSet as IntSet
2828
import Data.Loc
2929
import qualified Data.Map as Map
3030
import Data.Monoid (Alt(..))
31-
import Data.Name hiding (fresh)
31+
import Data.Name
3232
import Data.Term
3333
import Data.Text (Text, pack)
3434
import Prelude hiding (fail)

semantic-core/src/Data/Name.hs

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,8 @@ module Data.Name
1414
, needsQuotation
1515
, encloseIf
1616
, Gensym(..)
17-
, fresh
18-
, namespace
19-
, Naming(..)
2017
) where
2118

22-
import Control.Effect.Carrier
2319
import qualified Data.Char as Char
2420
import Data.HashSet (HashSet)
2521
import qualified Data.HashSet as HashSet
@@ -106,24 +102,3 @@ instance Pretty Gensym where
106102
pretty (Gensym _ i) = pretty (alphabet !! r : if q > 0 then show q else "")
107103
where (q, r) = i `divMod` 26
108104
alphabet = ['a'..'z']
109-
110-
fresh :: (Carrier sig m, Member Naming sig) => m Gensym
111-
fresh = send (Fresh pure)
112-
113-
namespace :: (Carrier sig m, Member Naming sig) => Text -> m a -> m a
114-
namespace s m = send (Namespace s m pure)
115-
116-
117-
data Naming m k
118-
= Fresh (Gensym -> m k)
119-
| forall a . Namespace Text (m a) (a -> m k)
120-
121-
deriving instance Functor m => Functor (Naming m)
122-
123-
instance HFunctor Naming where
124-
hmap f (Fresh k) = Fresh (f . k)
125-
hmap f (Namespace s m k) = Namespace s (f m) (f . k)
126-
127-
instance Effect Naming where
128-
handle state handler (Fresh k) = Fresh (handler . (<$ state) . k)
129-
handle state handler (Namespace s m k) = Namespace s (handler (m <$ state)) (handler . fmap k)

0 commit comments

Comments
 (0)