diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,9 @@
 # Changelog for barbies
 
+## 0.1.4.0
+  - Add btraverse_
+  - Add the trivial Void and Unit barbies
+
 ## 0.1.3.1
   - Fix issue on Barbie-types with strictness annotations.
 
diff --git a/barbies.cabal b/barbies.cabal
--- a/barbies.cabal
+++ b/barbies.cabal
@@ -1,5 +1,5 @@
 name:           barbies
-version:        0.1.3.1
+version:        0.1.4.0
 synopsis:       Classes for working with types that can change clothes.
 description:    Types that are parametric on a functor are like Barbies that have an outfit for each role. This package provides the basic abstractions to work with them comfortably.
 category:       Data-structures
@@ -43,6 +43,7 @@
       Data.Barbie.Internal.Instances
       Data.Barbie.Internal.Tags
       Data.Barbie.Internal.Wear
+      Data.Barbie.Trivial
 
   hs-source-dirs:
       src
diff --git a/src/Data/Barbie.hs b/src/Data/Barbie.hs
--- a/src/Data/Barbie.hs
+++ b/src/Data/Barbie.hs
@@ -33,8 +33,8 @@
 --     , 'FunctorB', 'TraversableB', 'ProductB', 'ConstraintsB', 'ProofB'
 --     )
 --
--- deriving instance 'ConstraintsOf' 'Show' f Barbie => 'Show' Barbie
--- deriving instance 'ConstraintsOf' 'Eq'   f Barbie => 'Eq'   Barbie
+-- deriving instance 'ConstraintsOf' 'Show' f Barbie => 'Show' (Barbie f)
+-- deriving instance 'ConstraintsOf' 'Eq'   f Barbie => 'Eq'   (Barbie f)
 -- @
 --
 -- Sometimes one wants to use @Barbie 'Data.Functor.Identity.Identity'@
@@ -72,6 +72,7 @@
 
     -- * Traversable
   , TraversableB(btraverse)
+  , btraverse_
   , bsequence
 
     -- * Product
@@ -92,6 +93,10 @@
 
     -- * Wrapper
   , Barbie(..)
+
+    -- * Trivial Barbies
+  , Void
+  , Unit (..)
   )
 
 where
@@ -106,4 +111,5 @@
   , bzip, bunzip, bzipWith, bzipWith3, bzipWith4
   , (/*/), (/*)
   )
-import Data.Barbie.Internal.Traversable(TraversableB(..), bsequence)
+import Data.Barbie.Internal.Traversable(TraversableB(..), bsequence, btraverse_)
+import Data.Barbie.Trivial(Void, Unit(..))
diff --git a/src/Data/Barbie/Internal/Traversable.hs b/src/Data/Barbie/Internal/Traversable.hs
--- a/src/Data/Barbie/Internal/Traversable.hs
+++ b/src/Data/Barbie/Internal/Traversable.hs
@@ -13,6 +13,7 @@
 {-# LANGUAGE TypeOperators      #-}
 module Data.Barbie.Internal.Traversable
   ( TraversableB(..)
+  , btraverse_
   , bsequence
 
   , CanDeriveGenericInstance
@@ -25,7 +26,9 @@
 import Data.Barbie.Internal.Functor (FunctorB(..))
 import Data.Barbie.Internal.Generics
 import Data.Barbie.Internal.Tags (F,G)
+import Data.Functor (void)
 import Data.Functor.Compose (Compose(..))
+import Data.Functor.Const (Const(..))
 import GHC.Generics
 
 
@@ -48,6 +51,13 @@
     => (forall a . f a -> t (g a)) -> b f -> t (b g)
   btraverse = gbtraverseDefault
 
+
+
+-- | Map each element to an action, evaluate these actions from left to right,
+--   and ignore the results.
+btraverse_ :: (TraversableB b, Applicative t) => (forall a. f a -> t c) -> b f -> t ()
+btraverse_ f
+  = void . btraverse (fmap (const $ Const ()) . f)
 
 
 -- | Evaluate each action in the structure from left to right,
diff --git a/src/Data/Barbie/Trivial.hs b/src/Data/Barbie/Trivial.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/Barbie/Trivial.hs
@@ -0,0 +1,73 @@
+{-# LANGUAGE EmptyCase            #-}
+{-# LANGUAGE DeriveGeneric        #-}
+{-# LANGUAGE DeriveDataTypeable   #-}
+{-# LANGUAGE KindSignatures       #-}
+{-# LANGUAGE StandaloneDeriving   #-}
+module Data.Barbie.Trivial
+  ( Void
+  , Unit (..)
+  )
+
+where
+
+import Data.Barbie.Internal.Bare(BareB(..))
+import Data.Barbie.Internal.Constraints(ConstraintsB(..))
+import Data.Barbie.Internal.Functor(FunctorB(..))
+import Data.Barbie.Internal.ProofB(ProofB(..))
+import Data.Barbie.Internal.Product(ProductB(..))
+import Data.Barbie.Internal.Traversable(TraversableB(..))
+
+import Data.Data (Data(..))
+import Data.Semigroup (Semigroup(..))
+import Data.Typeable (Typeable)
+import GHC.Generics (Generic)
+
+
+---------------------------------------------------
+-- Trivial Barbies
+---------------------------------------------------
+
+-- | Uninhabited barbie type.
+data Void (f :: * -> *)
+  deriving (Generic, Typeable)
+
+instance Eq   (Void f) where
+  (==) v = case v of
+
+instance Ord  (Void f) where
+  compare v = case v of
+
+instance Show (Void f) where
+  showsPrec _ v = case v of
+
+instance Semigroup (Void f) where
+  (<>) v = case v of
+
+
+instance FunctorB Void
+instance TraversableB Void
+instance ConstraintsB Void
+instance BareB Void
+
+
+-- | A barbie type without structure.
+data Unit (f :: * -> *)
+  = Unit
+  deriving
+    ( Data, Generic, Typeable
+    , Eq, Ord, Read, Show
+    )
+
+instance Semigroup (Unit f) where
+  Unit <> Unit = Unit
+
+instance Monoid (Unit f) where
+  mempty  = Unit
+  mappend = (<>)
+
+instance FunctorB Unit
+instance TraversableB Unit
+instance ProductB Unit
+instance ConstraintsB Unit
+instance ProofB Unit
+instance BareB Unit
diff --git a/test/Barbies.hs b/test/Barbies.hs
--- a/test/Barbies.hs
+++ b/test/Barbies.hs
@@ -1,7 +1,6 @@
 {-# LANGUAGE DeriveAnyClass       #-}
 {-# LANGUAGE DeriveGeneric        #-}
 {-# LANGUAGE DeriveDataTypeable   #-}
-{-# LANGUAGE EmptyCase            #-}
 {-# LANGUAGE KindSignatures       #-}
 {-# LANGUAGE StandaloneDeriving   #-}
 {-# LANGUAGE TypeFamilies         #-}
@@ -45,21 +44,6 @@
 import Data.Typeable
 import GHC.Generics
 import Test.Tasty.QuickCheck
-
----------------------------------------------------
--- Trivial Barbies
----------------------------------------------------
-
-data Void (f :: * -> *)
-  deriving (Generic, Typeable)
-
-instance Eq   (Void f) where (==) v = case v of
-instance Show (Void f) where showsPrec _ v = case v of
-
-instance FunctorB Void
-instance TraversableB Void
-instance ConstraintsB Void
-instance BareB Void
 
 ----------------------------------------------------
 -- Product Barbies
