@@ -57,29 +57,37 @@ class SemiIsoFunctor f where
57(/$/) :: SemiIsoFunctor f => ASemiIso' a b -> f b -> f a
57(/$/) :: SemiIsoFunctor f => ASemiIso' a b -> f b -> f a
58(/$/) = simap
58(/$/) = simap
60−-- | @ai /$~ f@ is equal to @ai . morphed /$/ f@.
60+-- | > ai /$~ f = ai . morphed /$/ f
62-- This operator handles all the hairy stuff with uncurried application:
62-- This operator handles all the hairy stuff with uncurried application:
63-- it reassociates the argument tuple and removes unnecessary (or adds necessary)
63-- it reassociates the argument tuple and removes unnecessary (or adds necessary)
64−-- units to match the function type. You don't have to use /* and */ with this
64+-- units to match the function type. You don't have to use @/*@ and @*/@ with this
65-- operator.
65-- operator.
66(/$~) :: (SemiIsoFunctor f, HFoldable b', HFoldable b,
66(/$~) :: (SemiIsoFunctor f, HFoldable b', HFoldable b,
67 HUnfoldable b', HUnfoldable b, Rep b' ~ Rep b)
67 HUnfoldable b', HUnfoldable b, Rep b' ~ Rep b)
68 => ASemiIso' a b' -> f b -> f a
68 => ASemiIso' a b' -> f b -> f a
69+-- TODO GHC 7.10: haddock doesn't work with pattern synynonyms yet
69−(SemiIso f g) /$~ h = semiIso f g . morphed /$/ h
70+-- (SemiIso f g) /$~ h = semiIso f g . morphed /$/ h
71+ai /$~ h = withSemiIso ai $ \f g -> semiIso f g . morphed /$/ h
71−-- | @ai ~$/ f@ is equal to @morphed . ai /$/ f@.
73+-- | > ai ~$/ f = morphed . ai /$/ f
72(~$/) :: (SemiIsoFunctor f, HFoldable a', HFoldable a,
74(~$/) :: (SemiIsoFunctor f, HFoldable a', HFoldable a,
73 HUnfoldable a', HUnfoldable a, Rep a' ~ Rep a)
75 HUnfoldable a', HUnfoldable a, Rep a' ~ Rep a)
74 => ASemiIso' a' b -> f b -> f a
76 => ASemiIso' a' b -> f b -> f a
77+-- TODO GHC 7.10: haddock doesn't work with pattern synynonyms yet
75−(SemiIso f g) ~$/ h = morphed . semiIso f g /$/ h
78+--(SemiIso f g) ~$/ h = morphed . semiIso f g /$/ h
76−
79+ai ~$/ h = withSemiIso ai $ \f g -> morphed . semiIso f g /$/ h
77−-- | @ai ~$~ f@ is equal to @morphed . ai . morphed /$/ f@.
81+-- | > ai ~$~ f = morphed . ai . morphed /$/ f
78−(~$~) :: (SemiIsoFunctor f, HFoldable b', HFoldable b', HFoldable b,
82+(~$~) :: (SemiIsoFunctor f,
83+ HFoldable a, HUnfoldable a,
84+ HFoldable b, HUnfoldable b,
79− HFoldable a, HUnfoldable b', HUnfoldable b', HUnfoldable b,
85+ HFoldable b', HUnfoldable b',
80− HUnfoldable a, Rep b' ~ Rep b, Rep b' ~ Rep a)
86+ Rep b' ~ Rep b, Rep b' ~ Rep a)
81 => ASemiIso b' b' b' b' -> f b -> f a
87 => ASemiIso b' b' b' b' -> f b -> f a
88+-- TODO GHC 7.10: haddock doesn't work with pattern synynonyms yet
82−(SemiIso f g) ~$~ h = morphed . semiIso f g . morphed /$/ h
89+--(SemiIso f g) ~$~ h = morphed . semiIso f g . morphed /$/ h
90+ai ~$~ h = withSemiIso ai $ \f g -> morphed . semiIso f g . morphed /$/ h
84-- | Equivalent of 'Applicative' for 'SemiIsoFunctor'.
92-- | Equivalent of 'Applicative' for 'SemiIsoFunctor'.