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
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