diff --git a/json-spec.cabal b/json-spec.cabal
--- a/json-spec.cabal
+++ b/json-spec.cabal
@@ -1,6 +1,6 @@
 cabal-version:       3.0
 name:                json-spec
-version:             1.0.0.0
+version:             1.0.1.0
 synopsis:            Type-level JSON specification
 maintainer:          rick@owensmurray.com
 description:         See the README at: https://github.com/owensmurray/json-spec#json-spec
diff --git a/src/Data/JsonSpec.hs b/src/Data/JsonSpec.hs
--- a/src/Data/JsonSpec.hs
+++ b/src/Data/JsonSpec.hs
@@ -68,21 +68,34 @@
 
 -}
 module Data.JsonSpec (
+  -- * Writing specifications
   Specification(..),
+  (:::),
+  (::?),
+  FieldSpec(..),
+
+  -- * Encoding/decoding via a Specification
   HasJsonEncodingSpec(..),
   HasJsonDecodingSpec(..),
   SpecJSON(..),
   Tag(..),
   Field(..),
   unField,
-  JSONStructure,
   Ref(..),
+
+  -- * Direct encoding/decoding
   eitherDecode,
   encode,
+
+  -- * Other stuff
+  {-|
+    The items in this section are mainly exported because once in a
+    while you might need to include them in a type signature, but they
+    are not intended to be used directly.
+  -}
+  JSONStructure,
   StructureFromJSON,
-  FieldSpec(..),
-  (:::),
-  (::?),
+  StructureToJSON,
 ) where
 
 
diff --git a/src/Data/JsonSpec/Spec.hs b/src/Data/JsonSpec/Spec.hs
--- a/src/Data/JsonSpec/Spec.hs
+++ b/src/Data/JsonSpec/Spec.hs
@@ -285,7 +285,7 @@
   @EncodingSpec Foo@, which would expand strictly... to infinity.
 
   Using `JsonLet` prevents the specification type from being infinitely
-  sized, but what about "structure" type which holds real values
+  sized, but what about the "structure" type which holds real values
   corresponding to the spec? The structure type has to have some way to
   reference itself or else it too would be infinitely sized.
 
