Arrow.hs: fix loopl/loopr transposition
[ghc-base.git] / GHC / HetMet / Arrow.hs
index 08b75b3..f40ed5b 100644 (file)
@@ -48,13 +48,15 @@ instance Arrow a => GArrowReify a (,) () x y x y where
   ga_reify     =  arr
 
 instance ArrowLoop a => GArrowLoop a (,) () where
-  ga_loopl     =  loop
-  ga_loopr  f  =  loop (ga_swap >>> f >>> ga_swap)
+  ga_loopr     =  loop
+  ga_loopl  f  =  loop (ga_swap >>> f >>> ga_swap)
 
 instance ArrowApply a => GArrowApply a (,) () a where
   ga_applyl    = ga_swap >>> app
   ga_applyr    = app
 
+instance Arrow a => GArrowProd a (,) () where
+
 -- The uninhabited type
 data Void
 
@@ -86,7 +88,7 @@ instance ArrowChoice a => GArrow a Either Void where
                     eitherUnAssoc (Right (Left  y)) = Left  (Right y)
                     eitherUnAssoc (Right (Right z)) = Right        z
 
-instance ArrowChoice a => GArrowSum a (,) () Void Either where
+instance ArrowChoice a => GArrowSum a Either Void where
   ga_never = arr voidImpossible
   ga_merge = arr merge
               where