diff --git a/semantic-analysis/src/Analysis/Domain.hs b/semantic-analysis/src/Analysis/Domain.hs index 5f1864df0..c676050c3 100644 --- a/semantic-analysis/src/Analysis/Domain.hs +++ b/semantic-analysis/src/Analysis/Domain.hs @@ -4,6 +4,7 @@ module Analysis.Domain , bool , string , record +, lam , Domain(..) ) where @@ -24,6 +25,9 @@ string = send . String record :: (Carrier sig m, Member Domain sig) => [(Name, m a)] -> m a record fs = send (Record fs) +lam :: (Eq a, Carrier sig m, Member Domain sig) => Maybe Name -> a -> m a -> m a +lam u n b = send (Lam u (abstract1 n b)) + data Domain f a = Unit