@@ -21,8 +21,7 @@ module Control.SIArrow (
2121 (#>>), (>>#), (#<<), (<<#),
2222
2323 -- * Functor and applicative.
24− (/$/), (/$~),
25− (/*/), (/*), (*/),
24+ (/$/), (/*/), (/*), (*/),
2625
2726 -- * Signaling errors.
2827 sifail, (/?/),
@@ -43,12 +42,11 @@ import Control.Lens.Iso
4342import Control.Lens.SemiIso
4443import Control.Monad
4544import Data.Semigroupoid.Dual
46−import Data.Tuple.Morph
4745import Prelude hiding (id, (.))
4846
4947infixr 1 ^>>, ^<<, #>>, #<<
5048infixr 1 >>^, <<^, >>#, <<#
51−infixl 4 /$/, /$~
49+infixl 4 /$/
5250infixl 5 /*/, */, /*
5351infixl 3 /?/
5452
@@ -143,19 +141,6 @@ a <<# f = a . sipure f
143141(/$/) :: SIArrow cat => ASemiIso' b' b -> cat a b -> cat a b'
144142(/$/) = (#<<)
145143
146−-- | Convenient fmap.
147−--
148−-- > ai /$~ f = ai . morphed /$/ f
149−--
150−-- This operator handles all the hairy stuff with uncurried application:
151−-- it reassociates the argument tuple and removes unnecessary (or adds necessary)
152−-- units to match the function type. You don't have to use @/*@ and @*/@ with this
153−-- operator.
154−(/$~) :: (SIArrow cat, HFoldable b', HFoldable b,
155− HUnfoldable b', HUnfoldable b, Rep b' ~ Rep b)
156− => ASemiIso' a b' -> cat c b -> cat c a
157−ai /$~ h = cloneSemiIso ai . morphed /$/ h
158−
159144-- | The product of two arrows with duplicate units removed. Side effect are
160145-- sequenced from left to right.
161146--