@@ -20,7 +20,6 @@ import Control.Effect.NonDet
2020import Control.Effect.Reader hiding (Local )
2121import Control.Effect.State
2222import Control.Monad ((<=<) , guard )
23- import qualified Data.Core as Core
2423import Data.File
2524import Data.Function (fix )
2625import qualified Data.IntMap as IntMap
@@ -30,7 +29,6 @@ import qualified Data.Map as Map
3029import Data.Name
3130import Data.Semigroup (Last (.. ))
3231import qualified Data.Set as Set
33- import Data.Term
3432import Data.Text (Text , pack )
3533import Data.Traversable (for )
3634import Prelude hiding (fail )
@@ -69,8 +67,17 @@ data Edge = Lexical | Import
6967--
7068-- >>> map fileBody (snd (concrete [File (Loc "bool" emptySpan) (Core.bool True)]))
7169-- [Right (Bool True)]
72- concrete :: [File (Term (Core. Ann :+: Core. Core ) User )] -> (Heap (Term (Core. Ann :+: Core. Core ) User ), [File (Either (Loc , String ) (Concrete (Term (Core. Ann :+: Core. Core ) User )))])
7370concrete
71+ :: (Foldable term , Show (term User ))
72+ => (forall sig m
73+ . (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 )))
77+ )
78+ -> [File (term User )]
79+ -> (Heap (term User ), [File (Either (Loc , String ) (Concrete (term User )))])
80+ concrete eval
7481 = run
7582 . runFresh
7683 . runHeap
0 commit comments