<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ox-arrays/src/Data/Array/Nested/Mixed.hs, branch move-Rank</title>
<subtitle>Nested, compositional struct-of-arrays orthotope arrays
</subtitle>
<id>https://git.tomsmeding.com/ox-arrays/atom?h=move-Rank</id>
<link rel='self' href='https://git.tomsmeding.com/ox-arrays/atom?h=move-Rank'/>
<link rel='alternate' type='text/html' href='https://git.tomsmeding.com/ox-arrays/'/>
<updated>2026-04-07T14:39:04Z</updated>
<entry>
<title>Apply some hlint hints</title>
<updated>2026-04-07T14:39:04Z</updated>
<author>
<name>Mikolaj Konarski</name>
<email>mikolaj.konarski@funktory.com</email>
</author>
<published>2026-04-07T14:39:01Z</published>
<link rel='alternate' type='text/html' href='https://git.tomsmeding.com/ox-arrays/commit/?id=933153197b3f2e1e75b8d88b0da6d99a41e8f471'/>
<id>urn:sha1:933153197b3f2e1e75b8d88b0da6d99a41e8f471</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Odds and ends</title>
<updated>2026-03-15T09:51:05Z</updated>
<author>
<name>Mikolaj Konarski</name>
<email>mikolaj.konarski@funktory.com</email>
</author>
<published>2026-02-09T16:11:51Z</published>
<link rel='alternate' type='text/html' href='https://git.tomsmeding.com/ox-arrays/commit/?id=dfe622994702e9a21896080391793a782e6201c6'/>
<id>urn:sha1:dfe622994702e9a21896080391793a782e6201c6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Use shxDropSSX instead of shxSplitApp, etc.</title>
<updated>2026-03-15T09:50:38Z</updated>
<author>
<name>Mikolaj Konarski</name>
<email>mikolaj.konarski@funktory.com</email>
</author>
<published>2025-12-29T21:41:45Z</published>
<link rel='alternate' type='text/html' href='https://git.tomsmeding.com/ox-arrays/commit/?id=1f006985ee9a51498e37c20603baf0e242e009e9'/>
<id>urn:sha1:1f006985ee9a51498e37c20603baf0e242e009e9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add pragmas to functions that -fprof-late-overloaded-calls reports</title>
<updated>2026-03-15T09:50:33Z</updated>
<author>
<name>Mikolaj Konarski</name>
<email>mikolaj.konarski@funktory.com</email>
</author>
<published>2025-12-25T22:45:41Z</published>
<link rel='alternate' type='text/html' href='https://git.tomsmeding.com/ox-arrays/commit/?id=0f9662136f5f0e246650df0606f41b2d49f59734'/>
<id>urn:sha1:0f9662136f5f0e246650df0606f41b2d49f59734</id>
<content type='text'>
as breaking the chain of specialization (but it's currently broken,
so these may be false positives, but these pragmas may be handy
in the future anyway and they can't do much harm in theory
and in practice they are right now neutral performance-wise).
</content>
</entry>
<entry>
<title>Work around the following GHC bug in GHC 9.10.3:</title>
<updated>2026-03-15T09:34:19Z</updated>
<author>
<name>Mikolaj Konarski</name>
<email>mikolaj.konarski@funktory.com</email>
</author>
<published>2026-03-15T09:34:19Z</published>
<link rel='alternate' type='text/html' href='https://git.tomsmeding.com/ox-arrays/commit/?id=816249cd59a7e243bec82651e2def22f8c3b439c'/>
<id>urn:sha1:816249cd59a7e243bec82651e2def22f8c3b439c</id>
<content type='text'>
src/Data/Array/Nested/Mixed.hs:1045:13: error: [GHC-83865]
    • Couldn't match type ‘i0’ with ‘Int’
      Expected: ShX sh i0
        Actual: ShX sh1 Int
      ‘i0’ is untouchable
        inside the constraints: (n1 : sh1)
                                ~ (AddMaybe (AddMaybe i n) k : sh)
        bound by UnkSkol (please report this as a bug)
                 Call stack:
                     CallStack (from HasCallStack):
                       unkSkolAnon, called at compiler/GHC/Tc/Types/Origin.hs:331:42 in ghc-9.10.3-b4c3:GHC.Tc.Types.Origin
                       unkSkol, called at compiler/GHC/Tc/Gen/Pat.hs:1275:49 in ghc-9.10.3-b4c3:GHC.Tc.Gen.Pat
        at src/Data/Array/Nested/Mixed.hs:1045:7-14
</content>
</entry>
<entry>
<title>Add mtoListPrimLinear and friends</title>
<updated>2026-03-14T11:08:05Z</updated>
<author>
<name>Mikolaj Konarski</name>
<email>mikolaj.konarski@funktory.com</email>
</author>
<published>2026-02-10T10:48:45Z</published>
<link rel='alternate' type='text/html' href='https://git.tomsmeding.com/ox-arrays/commit/?id=1c99e9ff0d18e323fe159e54af9775c46d4abd76'/>
<id>urn:sha1:1c99e9ff0d18e323fe159e54af9775c46d4abd76</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add mslice to be typing-wise a counterpart of mappend</title>
<updated>2026-03-14T11:07:10Z</updated>
<author>
<name>Mikolaj Konarski</name>
<email>mikolaj.konarski@funktory.com</email>
</author>
<published>2026-02-09T19:49:26Z</published>
<link rel='alternate' type='text/html' href='https://git.tomsmeding.com/ox-arrays/commit/?id=01ecb3a74f3fd4fafebd47d8669136efe9aaad07'/>
<id>urn:sha1:01ecb3a74f3fd4fafebd47d8669136efe9aaad07</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Save some toVector by using toVectorListT</title>
<updated>2026-03-14T11:02:40Z</updated>
<author>
<name>Mikolaj Konarski</name>
<email>mikolaj.konarski@funktory.com</email>
</author>
<published>2026-01-15T13:05:05Z</published>
<link rel='alternate' type='text/html' href='https://git.tomsmeding.com/ox-arrays/commit/?id=878ee135fcdebc03a5f5984bd23016d69590f2bf'/>
<id>urn:sha1:878ee135fcdebc03a5f5984bd23016d69590f2bf</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Let X.fromListOuterSN and ravelOuterN take NonEmpty</title>
<updated>2026-03-14T11:02:40Z</updated>
<author>
<name>Mikolaj Konarski</name>
<email>mikolaj.konarski@funktory.com</email>
</author>
<published>2026-01-13T11:11:18Z</published>
<link rel='alternate' type='text/html' href='https://git.tomsmeding.com/ox-arrays/commit/?id=33a59ca85c8445b51320eff2f3f61f29e694f242'/>
<id>urn:sha1:33a59ca85c8445b51320eff2f3f61f29e694f242</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Don't force a list of identical elements</title>
<updated>2026-03-14T11:02:38Z</updated>
<author>
<name>Mikolaj Konarski</name>
<email>mikolaj.konarski@funktory.com</email>
</author>
<published>2026-01-10T00:14:24Z</published>
<link rel='alternate' type='text/html' href='https://git.tomsmeding.com/ox-arrays/commit/?id=7e729546de2cf182377fbdf15daeefb44e7a41a1'/>
<id>urn:sha1:7e729546de2cf182377fbdf15daeefb44e7a41a1</id>
<content type='text'>
This makes a big difference when a pair of lists is attempted
to be streamed and the first one is of trivial primitive elements
(e.g., when implementing a fold as a special case of mapAccum with
the output list containing only ()). Forcing the first trivial list
would cause the second non-trivial list to be represented as nested
thunks, burdening GC greatly.
</content>
</entry>
</feed>
