summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tiled/Data/Tiled.hs15
-rw-r--r--tiled/Data/Tiled/Abstract.hs4
2 files changed, 10 insertions, 9 deletions
diff --git a/tiled/Data/Tiled.hs b/tiled/Data/Tiled.hs
index 8a8036e..d3ccb26 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 4b2e15d..4d6396a 100644
--- a/tiled/Data/Tiled/Abstract.hs
+++ b/tiled/Data/Tiled/Abstract.hs
@@ -4,10 +4,10 @@ module Data.Tiled.Abstract where
import Universum
-import qualified Data.Vector as V
-import Data.Tiled (Layer (..), Object (..), Property (..),
+import Data.Tiled (Layer (..), Object (..), Property (..),
PropertyValue (..), Tile (..), Tiledmap (..),
Tileset (..))
+import qualified Data.Vector as V
class HasProperties a where
getProperties :: a -> [Property]