1
1
mirror of https://github.com/github/semantic.git synced 2024-12-01 09:15:01 +03:00

Define a class for recursively constructing lambdas.

This commit is contained in:
Rob Rix 2018-07-31 11:47:12 -04:00
parent 0d4ddc42c2
commit 181a6c777b

View File

@ -1,3 +1,4 @@
{-# LANGUAGE FunctionalDependencies, UndecidableInstances #-}
module Control.Abstract.Primitive
( define
, defineClass
@ -86,6 +87,11 @@ lambda2 body = withCurrentCallStack callStack $ do
var2 <- gensym
function [var1, var2] lowerBound (body var1 var2)
class Lambda address value effects ty | ty -> address, ty -> value, ty -> effects where
lambda' :: [Name]
-> ty
-> Evaluator address value effects value
builtInPrint :: ( AbstractValue address value effects
, HasCallStack
, Member (Allocator address value) effects