diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,6 +8,9 @@
 
 # Changelog
 
+* 1.0.0.1
+  - Fixed missing exports of the new lens classes.
+
 * 1.0.0.0
   - Removed overlapping instances of Data.Generics lens
   - Using typeclass instead of plain functions so that lens can be used for other data types
diff --git a/data-diverse-lens.cabal b/data-diverse-lens.cabal
--- a/data-diverse-lens.cabal
+++ b/data-diverse-lens.cabal
@@ -1,5 +1,5 @@
 name:                data-diverse-lens
-version:             1.0.0.0
+version:             1.0.0.1
 synopsis:            Isos & Lens for Data.Diverse.Many and Prisms for Data.Diverse.Which
 description:         Isos & Lens for Data.Diverse.Many and Prisms for Data.Diverse.Which
                      Refer to [ManySpec.hs](https://github.com/louispan/data-diverse-lens/blob/master/test/Data/Diverse/Lens/ManySpec.hs) and [WhichSpec.hs](https://github.com/louispan/data-diverse-lens/blob/master/test/Data/Diverse/Lens/WhichSpec.hs) for example usages.
diff --git a/src/Data/Diverse/Lens/Many.hs b/src/Data/Diverse/Lens/Many.hs
--- a/src/Data/Diverse/Lens/Many.hs
+++ b/src/Data/Diverse/Lens/Many.hs
@@ -20,23 +20,23 @@
     -- * Single field
     -- ** Lens for a single field
     , HasItem(..)
-    , item'
-    , itemL
-    , itemL'
-    , itemTag
-    , itemTag'
-    , genericItemTag
-    , itemN
-    , itemN'
+    , HasItem'(..)
+    , HasItemL(..)
+    , HasItemL'(..)
+    , HasItemTag(..)
+    , HasItemTag'(..)
+    -- , genericItemTag
+    , HasItemN(..)
+    , HasItemN'(..)
 
     -- * Multiple fields
     -- ** Lens for multiple fields
-    , project
-    , project'
-    , projectL
-    , projectL'
-    , projectN
-    , projectN'
+    , HasProject(..)
+    , HasProject'(..)
+    , HasProjectL(..)
+    , HasProjectL'(..)
+    , HasProjectN(..)
+    , HasProjectN'(..)
     ) where
 
 import Control.Lens
@@ -107,7 +107,14 @@
     itemL = lens (fetchL @l) (replaceL @l)
 
 -- | Variation of 'itemL'' that automatically tags and untags the field.
-class HasItemTag' (l :: k) a s | s l -> a where
+-- A default implementation using generics is not provided as it make GHC think that @l@ must be type @Symbol@
+-- when @l@ can actually be any kind.
+-- Create instances of 'HasItemTag'' using "Data.Generics.Product.Fields" as follows:
+-- @
+-- instance HasField' l Foo a => HasItemTag' l a Foo where
+--     itemTag' = field @l
+-- @
+class HasItemTag' (l :: k) a s where
     itemTag' :: Lens' s a
 
 instance (UniqueLabelMember l xs, Tagged l x ~ KindAtLabel l xs) => HasItemTag' l x (Many xs) where
@@ -117,10 +124,10 @@
 class HasItemTag (l :: k) a b s t | s l -> a, t l -> b, s l b -> t, t l a -> s where
     itemTag :: Lens s t a b
 
--- | Make it easy to create an instance of 'itemTag' using 'Data.Generics.Product.Fields'
--- NB. This is not a default signature for HasItemTag, as this makes GHC think that l must be type 'Symbol'
-genericItemTag :: forall l a b s t. (HasField l s t a b) => Lens s t a b
-genericItemTag = field @l
+-- -- | Make it easy to create an instance of 'itemTag' using 'Data.Generics.Product.Fields'
+-- -- NB. This is not a default signature for HasItemTag, as this makes GHC think that l must be type 'Symbol'
+-- genericItemTag :: forall l a b s t. (HasField l s t a b) => Lens s t a b
+-- genericItemTag = field @l
 
 instance (UniqueLabelMember l xs, Tagged l x ~ KindAtLabel l xs, ys ~ Replace (Tagged l x) (Tagged l y) xs)
   => HasItemTag l x y (Many xs) (Many ys) where
diff --git a/src/Data/Diverse/Lens/Which.hs b/src/Data/Diverse/Lens/Which.hs
--- a/src/Data/Diverse/Lens/Which.hs
+++ b/src/Data/Diverse/Lens/Which.hs
@@ -15,17 +15,17 @@
 module Data.Diverse.Lens.Which (
       -- * Single type
       -- ** Prism
-      facet
-    , facetL
-    , facetTag
-    , genericFacetTag
-    , facetN
+      AsFacet(..)
+    , AsFacetL(..)
+    , AsFacetTag(..)
+    -- , genericFacetTag
+    , AsFacetN(..)
 
       -- * Multiple types
       -- ** Prism
-    , inject
-    , injectL
-    , injectN
+    , AsInject(..)
+    , AsInjectL(..)
+    , AsInjectN(..)
     ) where
 
 import Control.Lens
@@ -72,13 +72,20 @@
     facetL = prism' (pickL @l) (trialL' @l)
 
 -- | Variation of 'fetchL' specialized to 'Tagged' which automatically tags and untags the field.
+-- A default implementation using generics is not provided as it make GHC think that @l@ must be type @Symbol@
+-- when @l@ can actually be any kind.
+-- Create instances of 'AsFacetTag'' using "Data.Generics.Sum.Constructors" as follows:
+-- @
+-- instance AsConstructor' l Foo Foo a a => AsFacetTag l a Foo where
+--     facetTag = _Ctor @l
+-- @
 class AsFacetTag (l :: k) a s | s l -> a where
     facetTag :: Prism' s a
 
--- | Make it easy to create an instance of 'AsFacetTag' using 'Data.Generics.Sum.Constructors'
--- NB. This is not a default signature for AsFacetTag, as this makes GHC think that l must be type 'Symbol', when actually @l@ can be any kind @k@
-genericFacetTag :: forall l a s proxy. (AsConstructor l s s a a) => proxy l -> Prism' s a
-genericFacetTag _ = _Ctor @l
+-- -- | Make it easy to create an instance of 'AsFacetTag' using 'Data.Generics.Sum.Constructors'
+-- -- NB. This is not a default signature for AsFacetTag, as this makes GHC think that l must be type 'Symbol', when actually @l@ can be any kind @k@
+-- genericFacetTag :: forall l a s proxy. (AsConstructor l s s a a) => Prism' s a
+-- genericFacetTag = _Ctor @l
 
 instance (UniqueLabelMember l xs, Tagged l x ~ KindAtLabel l xs) => AsFacetTag l x (Which xs) where
     facetTag = prism' (pickTag @l) (trialTag' @l)
