{-# options_haddock prune #-} -- |Description: The 'Stop' effect. module Polysemy.Resume.Effect.Stop where -- |An effect similar to 'Polysemy.Error.Error' without the ability to be caught. -- Used to signal that an error is supposed to be expected by dependent programs. -- -- @ -- interpretStopper :: -- Member (Stop Boom) r => -- InterpreterFor Stopper r -- interpretStopper = -- interpret \\case -- StopBang -> stop (Bang 13) -- StopBoom -> stop (Boom "ouch") -- @ data Stop e :: Effect where -- |Abort a computation with an error value. Stop :: e -> Stop e m a makeSem ''Stop