{-# LANGUAGE FunctionalDependencies #-}

module Control.Arrow.Abort.Class where

import Control.Arrow;
import Control.Arrow.Trans;

class Arrow r => ArrowAbort v r | r -> v where {
  abort :: r v a; -- terminate with final value
};