diff --git a/pointfree-fancy.cabal b/pointfree-fancy.cabal
--- a/pointfree-fancy.cabal
+++ b/pointfree-fancy.cabal
@@ -1,6 +1,6 @@
 cabal-version: 2.0
 name: pointfree-fancy
-version: 1.1.1.9
+version: 1.1.1.10
 license: BSD3
 license-file: LICENSE
 maintainer: Vanessa McHale <vamchale@gmail.com>
diff --git a/src/Plugin/Pl/Rules.hs b/src/Plugin/Pl/Rules.hs
--- a/src/Plugin/Pl/Rules.hs
+++ b/src/Plugin/Pl/Rules.hs
@@ -165,7 +165,8 @@
   fixE, foldl1E, notE, equalsE, nequalsE, plusE, multE, zeroE, oneE, lengthE,
   sumE, productE, concatE, concatMapE, joinE, mapE, fmapE, fmapIE, subtractE,
   minusE, liftME, apE, liftM2E, seqME, zipE, zipWithE, onE, oedipusE, comp2E,
-  crossE, firstE, secondE, andE, orE, allE, anyE, returnE, fishE, mfishE :: MExpr
+  crossE, firstE, secondE, andE, orE, allE, anyE, returnE, fishE, mfishE,
+  needleE :: MExpr
 idE        = Quote $ Var Pref "id"
 flipE      = Quote $ Var Pref "flip"
 constE     = Quote $ Var Pref "const"
@@ -232,8 +233,7 @@
 replaceE   = Quote $ Var Inf "<$"
 pointyE    = Quote $ Var Inf "$>"
 mfishE     = Quote $ Var Inf "<=*<"
-
-
+needleE    = Quote $ Var Inf "~@~"
 
 a, c, c2 :: MExpr -> MExpr -> MExpr
 a       = MApp
@@ -613,6 +613,10 @@
   -- flip (.) -> (<&>)
   rr (flipE `a` compE)
      eyeE,
+
+  -- (<&>) -.* (.*) -> (~@~)
+  rr (\f g -> (oedipusE `a` eyeE `a` comp2E) `a` f `a` g)
+     (\f g -> needleE `a` f `a` g),
 
   -- (x &) -> ($ x)
   rr (\x -> ampersandE `a` x)
diff --git a/test/Test.hs b/test/Test.hs
--- a/test/Test.hs
+++ b/test/Test.hs
@@ -179,6 +179,7 @@
   unitTest "\\x y -> f x == f y" [ "on (==) f" ],
   unitTest "(+2).(+3).(+4)" ["(9 +)"],
   unitTest "head $ fix (x:)" ["x"],
+  unitTest "\\f g -> (f .) . (. g)" ["(~@~)"],
   unitTest "head $ tail $ let xs = x:ys; ys = y:ys in xs" ["y"],
   unitTest "head $ tail $ let ys = y:ys in let xs = x:ys in xs" ["y"],
   unitTest "2+3*4-3*3" ["5"],
