polysemy-research / polysemy-zoo

:monkey::panda_face: Experimental, user-contributed effects and interpreters for polysemy
BSD 3-Clause "New" or "Revised" License
70 stars 20 forks source link

Documentation that Operators don't work in the context of IdempotentLowering #9

Closed isovector closed 5 years ago

isovector commented 5 years ago

The Operators' hidey-magic of constraints appear in the wrong place when working with IdempotentLowering. As such, this works:

runDelayed
    :: Member (Lift IO) r
    => (forall x. r@> x -> IO x)
    -> IO (forall a. Sem (Delayed ': r) a -> Sem r a)

but this one doesn't

runDelayed
    :: (forall x. r@> x -> IO x)
    -> IO (forall a. Delayed :r@> a -> IO ~@r@> a)