diff --git a/composition-extra.cabal b/composition-extra.cabal
--- a/composition-extra.cabal
+++ b/composition-extra.cabal
@@ -1,5 +1,5 @@
 name:                composition-extra
-version:             1.1.0
+version:             1.2.0
 synopsis:            Combinators for unorthodox structure composition
 
 license:             BSD3
@@ -29,6 +29,7 @@
                        Control.Monad.Syntax.Six
   build-depends:       base >= 4.6 && < 5
                      , contravariant
+                     , composition
 
 source-repository head
   type:     git
diff --git a/src/Data/Functor/Contravariant/Syntax.hs b/src/Data/Functor/Contravariant/Syntax.hs
--- a/src/Data/Functor/Contravariant/Syntax.hs
+++ b/src/Data/Functor/Contravariant/Syntax.hs
@@ -8,26 +8,36 @@
        -> f a
 (<-$>) = contramap
 
+infixr 8 <-$>
+
 (<-$$>) :: (Contravariant f0, Contravariant f1) =>
           (a -> b)
        -> f1 (f0 a)
        -> f1 (f0 b)
 (<-$$>) = contramap . contramap
 
+infixr 8 <-$$>
+
 (<-$$$>) :: (Contravariant f0, Contravariant f1, Contravariant f2) =>
           (a -> b)
        -> f2 (f1 (f0 b))
        -> f2 (f1 (f0 a))
 (<-$$$>) = contramap . contramap . contramap
 
+infixr 8 <-$$$>
+
 (<-$$$$>) :: (Contravariant f0, Contravariant f1, Contravariant f2, Contravariant f3) =>
           (a -> b)
        -> f3 (f2 (f1 (f0 a)))
        -> f3 (f2 (f1 (f0 b)))
 (<-$$$$>) = contramap . contramap . contramap . contramap
 
+infixr 8 <-$$$$>
+
 (<-$$$$$>) :: (Contravariant f0, Contravariant f1, Contravariant f2, Contravariant f3, Contravariant f4) =>
           (a -> b)
        -> f4 (f3 (f2 (f1 (f0 b))))
        -> f4 (f3 (f2 (f1 (f0 a))))
 (<-$$$$$>) = contramap . contramap . contramap . contramap . contramap
+
+infixr 8 <-$$$$$>
diff --git a/src/Data/Functor/Syntax.hs b/src/Data/Functor/Syntax.hs
--- a/src/Data/Functor/Syntax.hs
+++ b/src/Data/Functor/Syntax.hs
@@ -1,26 +1,251 @@
 module Data.Functor.Syntax where
 
+import Data.Composition
+import Data.Function.Apply
 
+
+-- * Nested Mapping
+
 (<$$>) :: (Functor f0, Functor f1) =>
           (a -> b)
        -> f1 (f0 a)
        -> f1 (f0 b)
 (<$$>) = fmap . fmap
 
+infixr 8 <$$>
+
 (<$$$>) :: (Functor f0, Functor f1, Functor f2) =>
           (a -> b)
        -> f2 (f1 (f0 a))
        -> f2 (f1 (f0 b))
 (<$$$>) = fmap . fmap . fmap
 
+infixr 8 <$$$>
+
 (<$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3) =>
           (a -> b)
        -> f3 (f2 (f1 (f0 a)))
        -> f3 (f2 (f1 (f0 b)))
 (<$$$$>) = fmap . fmap . fmap . fmap
 
+infixr 8 <$$$$>
+
 (<$$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3, Functor f4) =>
           (a -> b)
        -> f4 (f3 (f2 (f1 (f0 a))))
        -> f4 (f3 (f2 (f1 (f0 b))))
 (<$$$$$>) = fmap . fmap . fmap . fmap . fmap
+
+infixr 8 <$$$$$>
+
+-- * Nested Application
+
+(<~$>) :: Functor f0 =>
+          f0 (a -> b)
+       -> a -> f0 b
+(<~$>) f x = fmap ($ x) f
+
+infixl 8 <~$>
+
+(<~~$>) :: Functor f0 =>
+          f0 (a -> b -> c)
+       -> b -> f0 (a -> c)
+(<~~$>) f x = fmap (-$ x) f
+
+infixl 8 <~~$>
+
+(<~~~$>) :: Functor f0 =>
+          f0 (a -> b -> c -> d)
+       -> c -> f0 (a -> b -> d)
+(<~~~$>) f x = fmap (--$ x) f
+
+infixl 8 <~~~$>
+
+(<~$$>) :: (Functor f0, Functor f1) =>
+           f1 (f0 (a -> b))
+        -> a -> f1 (f0 b)
+(<~$$>) f x = fmap (<~$> x) f
+
+infixl 8 <~$$>
+
+(<~~$$>) :: (Functor f0, Functor f1) =>
+            f1 (f0 (a -> b -> c))
+         -> b -> f1 (f0 (a -> c))
+(<~~$$>) f x = fmap (<~~$> x) f
+
+infixl 8 <~~$$>
+
+(<~~~$$>) :: (Functor f0, Functor f1) =>
+             f1 (f0 (a -> b -> c -> d))
+          -> c -> f1 (f0 (a -> b -> d))
+(<~~~$$>) f x = fmap (<~~~$> x) f
+
+infixl 8 <~~~$$>
+
+
+(<~$$$>) :: (Functor f0, Functor f1, Functor f2) =>
+            f2 (f1 (f0 (a -> b)))
+         -> a -> f2 (f1 (f0 b))
+(<~$$$>) f x = fmap (<~$$> x) f
+
+infixl 8 <~$$$>
+
+(<~~$$$>) :: (Functor f0, Functor f1, Functor f2) =>
+            f2 (f1 (f0 (a -> b -> c)))
+         -> b -> f2 (f1 (f0 (a -> c)))
+(<~~$$$>) f x = fmap (<~~$$> x) f
+
+infixl 8 <~~$$$>
+
+(<~~~$$$>) :: (Functor f0, Functor f1, Functor f2) =>
+             f2 (f1 (f0 (a -> b -> c -> d)))
+          -> c -> f2 (f1 (f0 (a -> b -> d)))
+(<~~~$$$>) f x = fmap (<~~~$$> x) f
+
+infixl 8 <~~~$$$>
+
+
+(<~$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3) =>
+             f3 (f2 (f1 (f0 (a -> b))))
+          -> a -> f3 (f2 (f1 (f0 b)))
+(<~$$$$>) f x = fmap (<~$$$> x) f
+
+infixl 8 <~$$$$>
+
+(<~~$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3) =>
+            f3 (f2 (f1 (f0 (a -> b -> c))))
+         -> b -> f3 (f2 (f1 (f0 (a -> c))))
+(<~~$$$$>) f x = fmap (<~~$$$> x) f
+
+infixl 8 <~~$$$$>
+
+(<~~~$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3) =>
+             f3 (f2 (f1 (f0 (a -> b -> c -> d))))
+          -> c -> f3 (f2 (f1 (f0 (a -> b -> d))))
+(<~~~$$$$>) f x = fmap (<~~~$$$> x) f
+
+infixl 8 <~~~$$$$>
+
+
+(<~$$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3, Functor f4) =>
+             f4 (f3 (f2 (f1 (f0 (a -> b)))))
+          -> a -> f4 (f3 (f2 (f1 (f0 b))))
+(<~$$$$$>) f x = fmap (<~$$$$> x) f
+
+infixl 8 <~$$$$$>
+
+(<~~$$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3, Functor f4) =>
+            f4 (f3 (f2 (f1 (f0 (a -> b -> c)))))
+         -> b -> f4 (f3 (f2 (f1 (f0 (a -> c)))))
+(<~~$$$$$>) f x = fmap (<~~$$$$> x) f
+
+infixl 8 <~~$$$$$>
+
+(<~~~$$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3, Functor f4) =>
+             f4 (f3 (f2 (f1 (f0 (a -> b -> c -> d)))))
+          -> c -> f4 (f3 (f2 (f1 (f0 (a -> b -> d)))))
+(<~~~$$$$$>) f x = fmap (<~~~$$$$> x) f
+
+infixl 8 <~~~$$$$$>
+
+
+-- * Nested Compositon
+
+(<.$>) :: Functor f0 =>
+          (b -> c)
+       -> f0 (a -> b)
+       -> f0 (a -> c)
+f <.$> g = fmap (f .) g
+
+infixr 8 <.$>
+
+(<.*$>) :: Functor f0 =>
+           (c -> d)
+        -> f0 (a -> b -> c)
+        -> f0 (a -> b -> d)
+f <.*$> g = fmap (f .*) g
+
+infixr 8 <.*$>
+
+(<.**$>) :: Functor f0 =>
+           (d -> e)
+        -> f0 (a -> b -> c -> d)
+        -> f0 (a -> b -> c -> e)
+f <.**$> g = fmap (f .**) g
+
+infixr 8 <.**$>
+
+
+(<.$$>) :: (Functor f0, Functor f1) =>
+          (b -> c)
+       -> f1 (f0 (a -> b))
+       -> f1 (f0 (a -> c))
+f <.$$> g = (f .) <$$> g
+
+infixr 8 <.$$>
+
+(<.*$$>) :: (Functor f0, Functor f1) =>
+           (c -> d)
+        -> f1 (f0 (a -> b -> c))
+        -> f1 (f0 (a -> b -> d))
+f <.*$$> g = (f .*) <$$> g
+
+infixr 8 <.*$$>
+
+(<.**$$>) :: (Functor f0, Functor f1) =>
+           (d -> e)
+        -> f1 (f0 (a -> b -> c -> d))
+        -> f1 (f0 (a -> b -> c -> e))
+f <.**$$> g = (f .**) <$$> g
+
+infixr 8 <.**$$>
+
+
+(<.$$$>) :: (Functor f0, Functor f1, Functor f2) =>
+          (b -> c)
+       -> f2 (f1 (f0 (a -> b)))
+       -> f2 (f1 (f0 (a -> c)))
+f <.$$$> g = (f .) <$$$> g
+
+infixr 8 <.$$$>
+
+(<.*$$$>) :: (Functor f0, Functor f1, Functor f2) =>
+           (c -> d)
+        -> f2 (f1 (f0 (a -> b -> c)))
+        -> f2 (f1 (f0 (a -> b -> d)))
+f <.*$$$> g = (f .*) <$$$> g
+
+infixr 8 <.*$$$>
+
+(<.**$$$>) :: (Functor f0, Functor f1, Functor f2) =>
+           (d -> e)
+        -> f2 (f1 (f0 (a -> b -> c -> d)))
+        -> f2 (f1 (f0 (a -> b -> c -> e)))
+f <.**$$$> g = (f .**) <$$$> g
+
+infixr 8 <.**$$$>
+
+
+(<.$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3) =>
+          (b -> c)
+       -> f3 (f2 (f1 (f0 (a -> b))))
+       -> f3 (f2 (f1 (f0 (a -> c))))
+f <.$$$$> g = (f .) <$$$$> g
+
+infixr 8 <.$$$$>
+
+(<.*$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3) =>
+           (c -> d)
+        -> f3 (f2 (f1 (f0 (a -> b -> c))))
+        -> f3 (f2 (f1 (f0 (a -> b -> d))))
+f <.*$$$$> g = (f .*) <$$$$> g
+
+infixr 8 <.*$$$$>
+
+(<.**$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3) =>
+           (d -> e)
+        -> f3 (f2 (f1 (f0 (a -> b -> c -> d))))
+        -> f3 (f2 (f1 (f0 (a -> b -> c -> e))))
+f <.**$$$$> g = (f .**) <$$$$> g
+
+infixr 8 <.**$$$$>
