diff --git a/acc.cabal b/acc.cabal
--- a/acc.cabal
+++ b/acc.cabal
@@ -1,5 +1,5 @@
 name: acc
-version: 0.1.0.2
+version: 0.1.1
 synopsis: Sequence optimized for monoidal construction and folding
 description:
   Data structure intended for accumulating a sequence of elements
diff --git a/library/Acc.hs b/library/Acc.hs
--- a/library/Acc.hs
+++ b/library/Acc.hs
@@ -6,6 +6,7 @@
   snoc,
   uncons,
   unsnoc,
+  toNonEmpty,
 )
 where
 
@@ -212,5 +213,16 @@
               Just (res, TreeAcc newTree)
         BinTree1.Leaf res ->
           Just (res, EmptyAcc)
+    EmptyAcc ->
+      Nothing
+
+{-|
+Convert to non empty list if it's not empty.
+-}
+toNonEmpty :: Acc a -> Maybe (NonEmpty a)
+toNonEmpty =
+  \ case
+    TreeAcc tree ->
+      Just (BinTree1.toNonEmpty tree)
     EmptyAcc ->
       Nothing
diff --git a/library/Acc/BinTree1.hs b/library/Acc/BinTree1.hs
--- a/library/Acc/BinTree1.hs
+++ b/library/Acc/BinTree1.hs
@@ -15,6 +15,7 @@
   unconsTo,
   unsnoc,
   unsnocTo,
+  toNonEmpty,
 )
 where
 
@@ -205,3 +206,20 @@
       unsnocTo (Branch l buff) r
     Leaf a ->
       (a, buff)
+
+toNonEmpty :: BinTree1 a -> NonEmpty a
+toNonEmpty =
+  findFirst
+  where
+    findFirst =
+      \ case
+        Branch l r ->
+          findFirstOnBranch l r
+        Leaf a ->
+          a :| []
+    findFirstOnBranch l r =
+      case l of
+        Branch ll lr ->
+          findFirstOnBranch ll (Branch lr r)
+        Leaf a ->
+          a :| foldr (:) [] r
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -9,6 +9,7 @@
 import Test.Tasty.QuickCheck
 import Acc
 import qualified Test.QuickCheck as QuickCheck
+import qualified Data.List.NonEmpty as NonEmpty
 
 
 main =
@@ -54,6 +55,11 @@
       \ (acc :: Acc Int) ->
         foldMap' (: []) acc ===
         foldMap' (: []) (toList acc)
+    ,
+    testProperty "toNonEmpty" $
+      \ (acc :: Acc Int) ->
+        Acc.toNonEmpty acc ===
+        NonEmpty.nonEmpty (toList acc)
     ]
 
 instance Arbitrary a => Arbitrary (Acc a) where
