aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md10
1 files changed, 9 insertions, 1 deletions
diff --git a/README.md b/README.md
index 1d6e047..8393148 100644
--- a/README.md
+++ b/README.md
@@ -58,10 +58,18 @@ as precisely as you want to GHC what exactly you're doing.
Below the surface layer, there is a more low-level wrapper (`XArray`) around
`orthotope` that defines a non-nested `Mixed`-style array type.
+**Be aware**: `ox-arrays` attempts to preserve sharing as much as possible.
+That is to say: if a function is able to avoid copying array data and return an
+array that references the original underlying `Vector`, it may do so. For
+example, this means that if you convert a nested array to a list of arrays, all
+returned arrays reference part of the original array without copying. This
+makes `mtoList` fast, but also means that memory may be retained longer than
+you might expect.
+
Here is a little taster of the API, to get a sense for the design:
```haskell
-import GHC.TypeLits (Nat)
+import GHC.TypeLits (Nat, SNat)
data Ranked (n :: Nat) a {- e.g. -} Ranked 3 Float
data Shaped (sh :: '[Nat]) a {- e.g. -} Shaped [2,3,4] Float