diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,7 +6,17 @@
 and this project adheres to the
 [Haskell Package Versioning Policy](https://pvp.haskell.org/).
 
-## v3.1.0 - 2024-12-28
+## v3.2.0 - 2025-01-13
+
+### Breaking changes
+
+- Pretty-print constants ([#661](https://github.com/objectionary/eo-phi-normalizer/pull/661), [#662](https://github.com/objectionary/eo-phi-normalizer/pull/662))
+
+### Documentation and maintenance
+
+- chore(deps): update baptiste0928/cargo-install action to v3.3.0 ([#660](https://github.com/objectionary/eo-phi-normalizer/pull/660))
+
+## v3.1.0 - 2025-01-01
 
 ### Breaking changes
 
diff --git a/eo-phi-normalizer.cabal b/eo-phi-normalizer.cabal
--- a/eo-phi-normalizer.cabal
+++ b/eo-phi-normalizer.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           eo-phi-normalizer
-version:        3.1.0
+version:        3.2.0
 synopsis:       Command line normalizer of 𝜑-calculus expressions.
 description:    Please see the README on GitHub at <https://github.com/objectionary/eo-phi-normalizer#readme>
 homepage:       https://github.com/objectionary/eo-phi-normalizer#readme
diff --git a/src/Language/EO/Phi/Pretty.hs b/src/Language/EO/Phi/Pretty.hs
--- a/src/Language/EO/Phi/Pretty.hs
+++ b/src/Language/EO/Phi/Pretty.hs
@@ -69,7 +69,7 @@
   pretty (Abs.DoubleSigned i) = pretty i
 
 instance Pretty Abs.StringRaw where
-  pretty (Abs.StringRaw i) = pretty i
+  pretty (Abs.StringRaw i) = pretty (show i)
 
 instance Pretty Abs.Program where
   pretty = \case
@@ -104,7 +104,7 @@
     Abs.ThisObject -> pretty "ξ"
     Abs.Termination -> pretty "⊥"
     Abs.ConstStringRaw str -> pretty str
-    Abs.ConstString str -> pretty str
+    Abs.ConstString str -> pretty (show str)
     Abs.ConstIntRaw integersigned -> pretty integersigned
     Abs.ConstFloatRaw doublesigned -> pretty doublesigned
     Abs.MetaSubstThis object1 object2 -> pretty object1 <+> lbracket <+> pretty "ξ ↦" <+> pretty object2 <+> rbracket
diff --git a/src/Language/EO/Phi/Syntax.hs b/src/Language/EO/Phi/Syntax.hs
--- a/src/Language/EO/Phi/Syntax.hs
+++ b/src/Language/EO/Phi/Syntax.hs
@@ -25,6 +25,7 @@
 {-# LANGUAGE InstanceSigs #-}
 {-# LANGUAGE LambdaCase #-}
 {-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
 {-# LANGUAGE QuasiQuotes #-}
 {-# LANGUAGE UndecidableInstances #-}
 {-# LANGUAGE ViewPatterns #-}
@@ -187,9 +188,19 @@
   sugarFinally :: Program -> Program
   sugarFinally (Program bindings) = Program (sugarFinally bindings)
 
+pattern SugarBinding :: Bytes -> Binding
+pattern SugarBinding bs <- AlphaBinding "as-bytes" (Application "Φ.org.eolang.bytes" [AlphaBinding "α0" (Formation [DeltaBinding bs])])
+
 instance SugarableFinally Object where
   sugarFinally :: Object -> Object
   sugarFinally = \case
+    Application "Φ.org.eolang.int" [SugarBinding bs] -> ConstInt (fromIntegral (bytesToInt bs))
+    Application "Φ.org.eolang.i64" [SugarBinding bs] -> ConstInt (fromIntegral (bytesToInt bs))
+    Application "Φ.org.eolang.i32" [SugarBinding bs] -> ConstInt (fromIntegral (bytesToInt bs))
+    Application "Φ.org.eolang.i16" [SugarBinding bs] -> ConstInt (fromIntegral (bytesToInt bs))
+    Application "Φ.org.eolang.float" [SugarBinding bs] -> ConstFloat (bytesToFloat bs)
+    Application "Φ.org.eolang.number" [SugarBinding bs] -> ConstFloat (bytesToFloat bs)
+    Application "Φ.org.eolang.string" [SugarBinding bs] -> ConstString (bytesToString bs)
     "Φ.org.eolang" -> GlobalObjectPhiOrg
     obj@ConstString{} -> obj
     obj@ConstStringRaw{} -> errorExpectedDesugaredObject obj
@@ -684,3 +695,6 @@
 printTree =
   printTreeDontSugar
     . sugarFinally
+
+-- >>> bytesToInt "00-00-00-00-00-00-00-00"
+-- 0
diff --git a/test/eo/phi/from-eo/as-phi.yaml b/test/eo/phi/from-eo/as-phi.yaml
--- a/test/eo/phi/from-eo/as-phi.yaml
+++ b/test/eo/phi/from-eo/as-phi.yaml
@@ -24,9 +24,9 @@
 tests:
   - name: "A program that prints itself"
     input: |
-      {⟦org ↦ ⟦eolang ↦ ⟦prints-itself ↦ ⟦φ ↦ Φ.org.eolang.as-phi(α0 ↦ ξ).length.gt(α0 ↦ Φ.org.eolang.int(α0 ↦ Φ.org.eolang.bytes(Δ ⤍ 00-00-00-00-00-00-00-00)))⟧, prints-itself-to-console ↦ ⟦x ↦ Φ.org.eolang.int(α0 ↦ Φ.org.eolang.bytes(Δ ⤍ 00-00-00-00-00-00-00-2A)), φ ↦ Φ.org.eolang.io.stdout(α0 ↦ Φ.org.eolang.as-phi(α0 ↦ ξ))⟧, λ ⤍ Package⟧, λ ⤍ Package⟧⟧}
+      {⟦org ↦ ⟦eolang ↦ ⟦prints-itself ↦ ⟦φ ↦ Φ.org.eolang.as-phi(α0 ↦ ξ).length.gt(α0 ↦ Φ.org.eolang.int(as-bytes ↦ Φ.org.eolang.bytes(⟦ Δ ⤍ 00-00-00-00-00-00-00-00 ⟧)))⟧, prints-itself-to-console ↦ ⟦x ↦ Φ.org.eolang.int(as-bytes ↦ Φ.org.eolang.bytes(⟦ Δ ⤍ 00-00-00-00-00-00-00-2A ⟧)), φ ↦ Φ.org.eolang.io.stdout(α0 ↦ Φ.org.eolang.as-phi(α0 ↦ ξ))⟧, λ ⤍ Package⟧, λ ⤍ Package⟧⟧}
     normalized: |
-      { ⟦ org ↦ ⟦ eolang ↦ ⟦ prints-itself ↦ ⟦ φ ↦ Φ.org.eolang.as-phi (α0 ↦ ξ).length.gt (α0 ↦ Φ.org.eolang.int (α0 ↦ Φ.org.eolang.bytes (Δ ⤍ 00-00-00-00-00-00-00-00))) ⟧, prints-itself-to-console ↦ ⟦ x ↦ Φ.org.eolang.int (α0 ↦ Φ.org.eolang.bytes (Δ ⤍ 00-00-00-00-00-00-00-2A)), φ ↦ Φ.org.eolang.io.stdout (α0 ↦ Φ.org.eolang.as-phi (α0 ↦ ξ)) ⟧, λ ⤍ Package ⟧, λ ⤍ Package ⟧ ⟧ }
+      { ⟦ org ↦ ⟦ eolang ↦ ⟦ prints-itself ↦ ⟦ φ ↦ Φ.org.eolang.as-phi (α0 ↦ ξ).length.gt (α0 ↦ Φ.org.eolang.int (as-bytes ↦ Φ.org.eolang.bytes (⟦ Δ ⤍ 00-00-00-00-00-00-00-00 ⟧))) ⟧, prints-itself-to-console ↦ ⟦ x ↦ Φ.org.eolang.int (as-bytes ↦ Φ.org.eolang.bytes (⟦ Δ ⤍ 00-00-00-00-00-00-00-2A ⟧)), φ ↦ Φ.org.eolang.io.stdout (α0 ↦ Φ.org.eolang.as-phi (α0 ↦ ξ)) ⟧, λ ⤍ Package ⟧, λ ⤍ Package ⟧ ⟧ }
     prettified: |
       {
         ⟦
@@ -36,19 +36,11 @@
                 φ ↦ Φ̇.as-phi(
                   ξ
                 ).length.gt(
-                  Φ̇.int(
-                    Φ̇.bytes(
-                      Δ ⤍ 00-00-00-00-00-00-00-00
-                    )
-                  )
+                  0
                 )
               ⟧,
               prints-itself-to-console ↦ ⟦
-                x ↦ Φ̇.int(
-                  Φ̇.bytes(
-                    Δ ⤍ 00-00-00-00-00-00-00-2A
-                  )
-                ),
+                x ↦ 42,
                 φ ↦ Φ̇.io.stdout(
                   Φ̇.as-phi(
                     ξ
@@ -72,5 +64,43 @@
           m ↦ ⟦
             x ↦ ⟦⟧
           ⟧()
+        ⟧
+      }
+  - name: "Prints abstraction sugar"
+    input: |
+      {⟦
+        foo ↦ Φ.bar(
+          α0 ↦ "hello",
+          α1 ↦ "jeff",
+          α2 ↦ 42
+        )
+      ⟧}
+    normalized: |
+      {⟦
+        foo ↦ Φ.bar(
+          "hello",
+          "jeff",
+          42
+        )
+      ⟧}
+    prettified: |
+      {
+        ⟦
+          foo ↦ Φ.bar(
+            "hello",
+            "jeff",
+            42
+          )
+        ⟧
+      }
+  - name: "Prints floats"
+    input: |
+      {⟦ m ↦ -42.0 ⟧}
+    normalized: |
+      {⟦ m ↦ -42.0 ⟧}
+    prettified: |
+      {
+        ⟦
+          m ↦ -42.0
         ⟧
       }
