{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreigmicvtpiw2uj55jucwolyl36d2scabdsqdicwp3lck3vyltvlzdq",
    "uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3mltxg3zvi7j2"
  },
  "path": "/t/the-design-of-array-libraries/14114#post_4",
  "publishedAt": "2026-05-14T21:28:50.000Z",
  "site": "https://discourse.haskell.org",
  "tags": [
    "sparse vector module"
  ],
  "textContent": "Thanks for the response, I really appreciate feedback from experts.\n\nIn my sparse vector module I have trees of arrays of size up to 64 (together with a Word64 of bits at each level to say what’s present). The interior arrays are all `SmallArray`s but the bottom ones could also be other arrays, e.g. `ByteArray`s filled with integers mod p for e.g. word-sized p (getting this efficient is important for computer algebra). Anyway it’s convenient to code a lot of routines that work at all levels of the tree and all array types the same way using the type classes in contiguous.",
  "title": "The design of array libraries"
}