diff --git a/Data/Functor/Alt.hs b/Data/Functor/Alt.hs
--- a/Data/Functor/Alt.hs
+++ b/Data/Functor/Alt.hs
@@ -36,6 +36,7 @@
 import qualified Data.IntMap as IntMap
 import Data.IntMap (IntMap)
 import Data.Semigroup
+import Data.List.NonEmpty (NonEmpty(..))
 import Data.Sequence (Seq)
 import qualified Data.Map as Map
 import Data.Map (Map)
@@ -120,6 +121,9 @@
 
 instance Alt Seq where
   (<!>) = mappend
+
+instance Alt NonEmpty where
+  (a :| as) <!> ~(b :| bs) = a :| (as ++ b : bs)
 
 instance Alternative f => Alt (WrappedApplicative f) where
   WrapApplicative a <!> WrapApplicative b = WrapApplicative (a <|> b)
diff --git a/Data/Functor/Bind.hs b/Data/Functor/Bind.hs
--- a/Data/Functor/Bind.hs
+++ b/Data/Functor/Bind.hs
@@ -63,6 +63,7 @@
 import Data.IntMap (IntMap)
 import qualified Data.Map as Map
 import Data.Map (Map)
+import Data.List.NonEmpty
 import Data.Semigroup hiding (Product)
 import Data.Sequence (Seq)
 import Data.Tree (Tree)
@@ -104,6 +105,9 @@
   (m, a) <.  (n, _) = (m <> n, a) 
   (m, _)  .> (n, b) = (m <> n, b)
 
+instance Apply NonEmpty where
+  (<.>) = ap
+
 instance Apply (Either a) where
   Left a  <.> _       = Left a
   Right _ <.> Left a  = Left a
@@ -363,6 +367,9 @@
   f >>- g = \e -> g (f e) e 
 
 instance Bind [] where
+  (>>-) = (>>=)
+
+instance Bind NonEmpty where
   (>>-) = (>>=)
 
 instance Bind IO where
diff --git a/semigroupoids.cabal b/semigroupoids.cabal
--- a/semigroupoids.cabal
+++ b/semigroupoids.cabal
@@ -1,6 +1,6 @@
 name:          semigroupoids
 category:      Control, Comonads
-version:       1.2.0
+version:       1.2.1
 license:       BSD3
 cabal-version: >= 1.6
 license-file:  LICENSE
