diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,6 +1,10 @@
 
 # `gemmula` Change Log
 
+## 1.0.0 (December 19, 2023)
+* Change the stability to `stable`.
+* Use strict data types and functions instead of lazy ones.
+
 ## 0.1.0.0 (November 29, 2023)
 * Initial release!
 
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
 
-# gemmula
+# [gemmula](https://hackage.haskell.org/package/gemmula)
 A tiny and functional Gemtext (`text/gemini`) parser from and to Text.
 
 Check the Section 5 of the [Gemini Protocol specification](https://geminiprotocol.net/docs/specification.gmi)
diff --git a/gemmula.cabal b/gemmula.cabal
--- a/gemmula.cabal
+++ b/gemmula.cabal
@@ -1,5 +1,5 @@
 name:               gemmula
-version:            0.1.0.0
+version:            1.0.0
 synopsis:           A tiny Gemtext parser
 description:        gemmula is a tiny and functional text/gemini (also known as Gemtext)
                     parser that aims to parse a Gemtext document from and to Text,
@@ -21,7 +21,7 @@
   default-language: Haskell2010
   hs-source-dirs:  src
   exposed-modules: Text.Gemini
-  build-depends:   base >= 4.17 && < 5
+  build-depends:   base >= 4.16 && < 5
                  , text >= 2.0 && < 2.2
   ghc-options:     -Wall
 
@@ -32,8 +32,8 @@
   main-is:        Main.hs
   build-depends:  base
                 , text
-                , HUnit
-                , raw-strings-qq
+                , HUnit >= 1.6 && < 2
+                , raw-strings-qq >= 1.1 && < 2
                 , gemmula
   ghc-options:    -Wall
 
diff --git a/src/Text/Gemini.hs b/src/Text/Gemini.hs
--- a/src/Text/Gemini.hs
+++ b/src/Text/Gemini.hs
@@ -6,7 +6,7 @@
 -- License     :  AGPL-3.0-or-later
 --
 -- Maintainer  :  Sena <jn-sena@proton.me>
--- Stability   :  unstable
+-- Stability   :  stable
 -- Portability :  portable
 --
 -- A tiny @text/gemini@ parser.
@@ -26,11 +26,11 @@
   , encodeItem
   ) where
 
-import Data.Text.Lazy (Text)
-import qualified Data.Text.Lazy as T
+import Data.Text (Text)
+import qualified Data.Text as T
 import Data.Maybe (maybeToList)
 import Data.Char (isSpace)
-import Data.Int (Int64)
+import Data.List (foldl')
 import Data.Bool (bool)
 
 
@@ -38,12 +38,12 @@
 type GemDocument = [GemItem]
 
 -- | A Gemtext item.
-data GemItem = GemText Text -- ^ A regular Gemtext line. -- @'GemText' \<Text>@
-             | GemLink Text (Maybe Text) -- ^ A Gemtext link. -- @'GemLink' \<Link> \[Optional Description]@
-             | GemHeading Int64 Text -- ^ A Gemtext heading of 3 levels max. -- @'GemHeading' \<Level> \<Text>@
-             | GemList [Text] -- ^ A Gemtext unordered list. -- @'GemList' \<Lines>@
-             | GemQuote Text -- ^ A Gemtext quote. -- @'GemQuote' \<Text>@
-             | GemPre [Text] (Maybe Text) -- ^ A Gemtext preformat. -- @'GemPre' \<Lines> [Optional Alt Text]@
+data GemItem = GemText !Text -- ^ A regular Gemtext line. -- @'GemText' \<Text>@
+             | GemLink !Text !(Maybe Text) -- ^ A Gemtext link. -- @'GemLink' \<Link> \[Optional Description]@
+             | GemHeading !Int !Text -- ^ A Gemtext heading of 3 levels max. -- @'GemHeading' \<Level> \<Text>@
+             | GemList ![Text] -- ^ A Gemtext unordered list. -- @'GemList' \<Lines>@
+             | GemQuote !Text -- ^ A Gemtext quote. -- @'GemQuote' \<Text>@
+             | GemPre ![Text] !(Maybe Text) -- ^ A Gemtext preformat. -- @'GemPre' \<Lines> [Optional Alt Text]@
              deriving (Show, Eq)
 
 
@@ -110,7 +110,7 @@
 -- | Encode parsed 'GemDocument' to a @text/gemini@ file.
 -- The output 'Text' uses LF-endings.
 encode :: GemDocument -> Text
-encode = T.unlines . foldl (\acc x -> acc <> [encodeItem x]) []
+encode = T.unlines . foldl' (\acc x -> acc <> [encodeItem x]) []
 
 -- | Encode a /single/ parsed 'GemItem' as @text/gemini@ text.
 -- The output 'Text' uses LF-endings and might be multiple lines.
@@ -145,7 +145,7 @@
 
 -- Get the value of a line.
 -- Removes the prefix and strips.
-value :: Int64 -> Text -> Text
+value :: Int -> Text -> Text
 value prefix = T.strip . T.drop prefix
 
 -- @Nothing@ if the text is empty.
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -1,6 +1,6 @@
 {-# LANGUAGE OverloadedStrings, QuasiQuotes #-}
 
-import Data.Text.Lazy (Text)
+import Data.Text (Text)
 import Control.Monad
 import System.Exit
 import Test.HUnit
