diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -6,6 +6,10 @@
 and this project adheres to the
 [Haskell Package Versioning Policy](https://pvp.haskell.org/).
 
+## v0.5.6 — 2023-09-19
+
+This version fixes the behaviour of glob (see [`77b7cc0`](https://github.com/rzk-lang/rzk/commit/77b7cc0494fe0bfd1c9f1aa83db20f42cfda5794)).
+
 ## v0.5.5 — 2023-09-19
 
 This version contains Unicode and tope logic-related fixes:
diff --git a/rzk.cabal b/rzk.cabal
--- a/rzk.cabal
+++ b/rzk.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           rzk
-version:        0.5.5
+version:        0.5.6
 synopsis:       An experimental proof assistant for synthetic ∞-categories
 description:    Please see the README on GitHub at <https://github.com/rzk-lang/rzk#readme>
 category:       Dependent Types
diff --git a/src/Rzk/Main.hs b/src/Rzk/Main.hs
--- a/src/Rzk/Main.hs
+++ b/src/Rzk/Main.hs
@@ -7,6 +7,7 @@
 import           Control.Monad                (forM)
 import qualified Data.Aeson                   as JSON
 import qualified Data.ByteString.Lazy.Char8   as ByteString
+import           Data.List                    (sort)
 import           Data.Version                 (showVersion)
 import           Options.Generic
 import           System.Exit                  (exitFailure)
@@ -58,7 +59,7 @@
 globNonEmpty path = do
   glob path >>= \case
     []    -> error ("File(s) not found at " <> path)
-    paths -> return paths
+    paths -> return (sort paths)
 
 parseRzkFilesOrStdin :: [FilePath] -> IO [(FilePath, Rzk.Module)]
 parseRzkFilesOrStdin = \case
@@ -69,7 +70,7 @@
   -- otherwise — parse all given files in given order
   paths -> do
     expandedPaths <- foldMap globNonEmpty paths
-    forM (reverse expandedPaths) $ \path -> do
+    forM expandedPaths $ \path -> do
       putStrLn ("Loading file " <> path)
       result <- Rzk.parseModule <$> readFile path
       case result of
