diff --git a/tiled/Data/Tiled.hs b/tiled/Data/Tiled.hs
index 8a8036eabb1d7d43c47a2c453356f1c70ee5f37b..d3ccb2682cf7c7e4d114aa958a5bed919649b8d6 100644
--- a/tiled/Data/Tiled.hs
+++ b/tiled/Data/Tiled.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE AllowAmbiguousTypes        #-}
+{-# LANGUAGE BangPatterns               #-}
 {-# LANGUAGE DeriveAnyClass             #-}
 {-# LANGUAGE DeriveGeneric              #-}
 {-# LANGUAGE DerivingStrategies         #-}
@@ -19,10 +20,10 @@ module Data.Tiled where
 
 import           Universum
 
-import           Data.Aeson           hiding (Object)
-import qualified Data.Aeson           as A
-import           Data.Aeson.Types     (typeMismatch)
-import           Data.Char            (toLower)
+import           Data.Aeson       hiding (Object)
+import qualified Data.Aeson       as A
+import           Data.Aeson.Types (typeMismatch)
+import           Data.Char        (toLower)
 
 
 -- | options for Aeson's generic encoding and parsing functions
@@ -381,6 +382,6 @@ instance ToJSON Tiledmap where
 
 -- | Load a Tiled map from the given 'FilePath'.
 loadTiledmap :: FilePath -> IO (Either String Tiledmap)
-loadTiledmap path = eitherDecodeFileStrict' path <&> \case
-  Left  err      -> Left err
-  Right tiledmap -> Right tiledmap
+loadTiledmap path = eitherDecodeFileStrict' path >>= \case
+  Left  err       -> pure $ Left err
+  Right !tiledmap -> evaluateNF tiledmap <&> Right
diff --git a/tiled/Data/Tiled/Abstract.hs b/tiled/Data/Tiled/Abstract.hs
index 5a5b7c094875bc1e408bd5c7a5ff492d628a4958..574a0ae9aac2929046969a8708f63cc8c1273c5d 100644
--- a/tiled/Data/Tiled/Abstract.hs
+++ b/tiled/Data/Tiled/Abstract.hs
@@ -4,11 +4,10 @@ module Data.Tiled.Abstract where
 
 import           Universum
 
-import qualified Data.Vector as V
-import           Data.Tiled  (GlobalId, Layer (..), Object (..), Property (..),
+import           Data.Tiled  (Layer (..), Object (..), Property (..),
                               PropertyValue (..), Tile (..), Tiledmap (..),
-                              Tileset (..), mkTiledId)
-import           Util        (showText)
+                              Tileset (..), GlobalId)
+import qualified Data.Vector as V
 
 class HasProperties a where
   getProperties :: a -> [Property]