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]