{-# OPTIONS --safe --without-K #-}

open import Box

module Interface.Except (Ix : Set  Set)  _ :  {X}  Rel₂ _ (Ix X)  where 

open import Relation.Unary                        using (IUniversal ; _⇒_)
open import Relation.Binary                       using (Rel)
open import Relation.Binary.PropositionalEquality
open import Relation.Binary.Structures

open import Core
open import Signature
open import Structure.Monad
open import MonadicFragment

open import Data.List
open import Data.List.Relation.Unary.All

open import Function
open import Level

module _ (M : Eff Ix) where
  
  record Exception : Set₁ where

    field
      throw :  {Γ V}  (t : μ σ)  ∀[ M V Γ (V t) ]

      try-with :  {Γ V}  (t : μ σ)  ∀[ M V Γ (V t)  M V Γ (V t)  M V Γ (V t) ]