From b19440a4a30828f12f8eafaa7292152ecf733334 Mon Sep 17 00:00:00 2001 From: Volpeon Date: Sat, 24 Jun 2023 08:58:22 +0200 Subject: WIP: Compaction --- src/Data/JLD/Expansion.hs | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) (limited to 'src/Data/JLD/Expansion.hs') diff --git a/src/Data/JLD/Expansion.hs b/src/Data/JLD/Expansion.hs index beb10a3..983c126 100644 --- a/src/Data/JLD/Expansion.hs +++ b/src/Data/JLD/Expansion.hs @@ -39,7 +39,7 @@ import Data.Foldable.WithIndex (ifoldlM, iforM_) import Data.RDF (parseIRI) import Data.Set qualified as S (insert, member) import Data.Text qualified as T (elem, toLower) -import Data.Vector qualified as V (catMaybes, concat, cons, filter, fromList, mapMaybeM, maximum, modify, null, singleton, snoc, toList) +import Data.Vector qualified as V (catMaybes, concat, cons, filter, fromList, mapMaybeM, maximum, modify, null, snoc, toList) import Data.Vector.Algorithms.Merge qualified as V import Text.URI (URI) @@ -190,16 +190,16 @@ eo1314ExpandKeywordItem inputType key keyword value = do } case maybeExpandedStringValue of Just expandedStringValue - | jldeEnvFrameExpansion -> pure <. Just <. Array <. V.singleton <| String expandedStringValue + | jldeEnvFrameExpansion -> pure <. Just <. Array <. pure <| String expandedStringValue | otherwise -> pure <. Just <| String expandedStringValue Nothing -> pure <| Just Null -- Object (KM.null -> True) | jldeEnvFrameExpansion -> do - pure <. Just <. Array <. V.singleton <| Object mempty + pure <. Just <. Array <. pure <| Object mempty -- Array (allStrings -> Just arrayValue) | jldeEnvFrameExpansion && not (V.null arrayValue) -> do Just <. Array <. V.concat <. V.toList <$> forM arrayValue \item -> do - V.singleton <. maybe Null String <$> eo1314ExpandIriAC item \params -> + pure <. maybe Null String <$> eo1314ExpandIriAC item \params -> params { eiParamsDocumentRelative = True , eiParamsVocab = False @@ -233,7 +233,7 @@ eo1314ExpandKeywordItem inputType key keyword value = do -- 13.4.4.4. Array (allStrings -> Just arrayValue) -> Array <. V.concat <. V.toList <$> forM arrayValue \item -> do - V.singleton <. maybe Null String <$> eo1314ExpandIriTC item \params -> + pure <. maybe Null String <$> eo1314ExpandIriTC item \params -> params { eiParamsDocumentRelative = True , eiParamsVocab = True @@ -264,7 +264,7 @@ eo1314ExpandKeywordItem inputType key keyword value = do -- 13.4.6.4. gets <| eo1314StateResult .> KM.lookup (show KeywordIncluded) .> \case Just (Array includedValue) -> Just <. Array <| includedValue <> expandedValue - Just includedValue -> Just <. Array <| V.singleton includedValue <> expandedValue + Just includedValue -> Just <. Array <| pure includedValue <> expandedValue Nothing -> Just <| Array expandedValue -- 13.4.7. KeywordValue -> do @@ -277,9 +277,9 @@ eo1314ExpandKeywordItem inputType key keyword value = do -- 13.4.7.2. _ | value == Null || valueIsScalar value -> do if jldeEnvFrameExpansion - then pure <. Array <| V.singleton value + then pure <. Array <| pure value else pure value - Object (KM.null -> True) | jldeEnvFrameExpansion -> pure <. Array <| V.singleton value + Object (KM.null -> True) | jldeEnvFrameExpansion -> pure <. Array <| pure value Array (all valueIsString -> True) | jldeEnvFrameExpansion -> pure value -- _ -> throwError InvalidValueObjectValue @@ -291,7 +291,7 @@ eo1314ExpandKeywordItem inputType key keyword value = do -- 13.4.8. KeywordLanguage -> case value of String stringValue - | jldeEnvFrameExpansion -> pure <. Just <. Array <. V.singleton <. String <| T.toLower stringValue + | jldeEnvFrameExpansion -> pure <. Just <. Array <. pure <. String <| T.toLower stringValue | otherwise -> pure <. Just <. String <| T.toLower stringValue Object (KM.null -> True) | jldeEnvFrameExpansion -> pure <| Just value Array (all valueIsString -> True) | jldeEnvFrameExpansion -> pure <| Just value @@ -301,7 +301,7 @@ eo1314ExpandKeywordItem inputType key keyword value = do | JLD1_0 <- jldExpansionEnvProcessingMode -> pure Nothing | otherwise -> case value of String ((`elem` ["ltr", "rtl"]) -> True) - | jldeEnvFrameExpansion -> pure <. Just <. Array <| V.singleton value + | jldeEnvFrameExpansion -> pure <. Just <. Array <| pure value | otherwise -> pure <| Just value Object (KM.null -> True) | jldeEnvFrameExpansion -> pure <| Just value Array (all valueIsString -> True) | jldeEnvFrameExpansion -> pure <| Just value @@ -319,7 +319,7 @@ eo1314ExpandKeywordItem inputType key keyword value = do expandedValue <- eo1314ExpandAC jldeEnvActiveProperty value id case expandedValue of Array _ -> pure <| Just expandedValue - _ -> pure <. Just <. Array <| V.singleton expandedValue + _ -> pure <. Just <. Array <| pure expandedValue -- 13.4.12. KeywordSet -> Just <$> eo1314ExpandAC jldeEnvActiveProperty value id -- 13.4.13. @@ -491,7 +491,7 @@ eo1314ExpandNonKeywordItem key expandedProperty value = do let maybeExistingValues = expandedIndexKey >>= (`KM.lookup` item) indexPropertyValues = - V.singleton (Object reExpandedIndex) + pure (Object reExpandedIndex) |> case maybeExistingValues of Just (Array existingValues) -> (<> existingValues) Just existingValue -> (`V.snoc` existingValue) @@ -526,7 +526,7 @@ eo1314ExpandNonKeywordItem key expandedProperty value = do , expandedIndex /= show KeywordNone -> do let types = case KM.lookup (show KeywordType) item of Just existingType -> V.cons expandedIndex <| valueToArray existingType - Nothing -> V.singleton expandedIndex + Nothing -> pure expandedIndex pure <. KM.insert (show KeywordType) (Array types) <| item -- 13.8.3.7.6. | otherwise -> pure item @@ -755,7 +755,7 @@ expandObject maybePropertyContext value = do | Just resultType <- KM.lookup (show KeywordType) result -> eoNormalizeObject <| if valueIsNotArray resultType && resultType /= Null - then KM.insert (show KeywordType) (Array <| V.singleton resultType) result + then KM.insert (show KeywordType) (Array <| pure resultType) result else result -- 17. | KM.member (show KeywordList) result || KM.member (show KeywordSet) result -> do @@ -793,7 +793,7 @@ expandArrayItem item = do -- 5.2.3. Array a -> pure <| V.filter (/= Null) a Null -> pure mempty - _ -> pure <| V.singleton item'' + _ -> pure <| pure item'' -- -- cgit v1.2.3-54-g00ecf