From 0028b655341069e83db6e0bfde01dea1c696f5aa Mon Sep 17 00:00:00 2001 From: Mikolaj Konarski Date: Mon, 1 Dec 2025 17:15:05 +0100 Subject: Unify toList functions for shapes --- src/Data/Array/Nested/Shaped/Shape.hs | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/Data/Array/Nested/Shaped') diff --git a/src/Data/Array/Nested/Shaped/Shape.hs b/src/Data/Array/Nested/Shaped/Shape.hs index c1e687a..bbcdbf9 100644 --- a/src/Data/Array/Nested/Shaped/Shape.hs +++ b/src/Data/Array/Nested/Shaped/Shape.hs @@ -126,6 +126,7 @@ listsRank :: ListS sh f -> SNat (Rank sh) listsRank ZS = SNat listsRank (_ ::$ sh) = snatSucc (listsRank sh) +{-# INLINEABLE listsToList #-} listsToList :: ListS sh (Const i) -> [i] listsToList ZS = [] listsToList (Const i ::$ is) = i : listsToList is @@ -229,6 +230,9 @@ instance Foldable (IxS sh) where {-# INLINE foldr #-} foldr _ z ZIS = z foldr f z (x :.$ xs) = f x (foldr f z xs) + {-# INLINEABLE toList #-} + toList ZIS = [] + toList (i :.$ is) = i : Foldable.toList is null ZIS = False null _ = True @@ -335,6 +339,7 @@ shsSize :: ShS sh -> Int shsSize ZSS = 1 shsSize (n :$$ sh) = fromSNat' n * shsSize sh +{-# INLINEABLE shsToList #-} shsToList :: ShS sh -> [Int] shsToList ZSS = [] shsToList (sn :$$ sh) = fromSNat' sn : shsToList sh -- cgit v1.2.3-70-g09d2