Category * a => Category * (Bijection a) Source #  
Methods id :: cat a a # (.) :: cat b c > cat a b > cat a c # 
Semigroupoid * a => Groupoid * (Bijection a) Source #  
Methods inv :: k1 a b > k1 b a # 
Semigroupoid * a => Semigroupoid * (Bijection a) Source #  
Methods o :: c j k1 > c i j > c i k1 # 
Arrow a => Arrow (Bijection a) Source #  In order to use all the Arrow functions, we make a partially broken instance, where arr creates a bijection with a broken biFrom . See note on BiArrow' .
&&& is firstbiased, and uses only the left argument's biFrom . 

ArrowZero a => ArrowZero (Bijection a) Source #  

ArrowChoice a => ArrowChoice (Bijection a) Source #   is Leftbiased, and uses only the left argument's biFrom .


Invariant2 (Bijection ((>) LiftedRep LiftedRep)) Source #  

(Semigroupoid * a, Arrow a) => BiArrow' (Bijection a) Source #  

(Semigroupoid * a, Arrow a) => BiArrow (Bijection a) Source #  

Monad m => Arrow (MonadArrow (<>) m) #  

MonadPlus m => ArrowZero (MonadArrow (<>) m) #  

MonadPlus m => ArrowPlus (MonadArrow (<>) m) #  

Monad m => ArrowChoice (MonadArrow (<>) m) #  

Invariant (Bijection ((>) LiftedRep LiftedRep) b) Source #  

Monad m => BiArrow' (MonadArrow (<>) m) Source #  

(Semigroupoid * a, Arrow a) => Functor (Bijection a b) Source #  

Monoidal (Bijection ((>) LiftedRep LiftedRep) ()) Source #  
