# Documentation

We need this type class to distinguish between different tuples of Ix. There are Shapable instances for homogenous Int tuples, but may Haddock doesn't see them.

Shapable Int | |

Shapable (Int, Int) | |

Shapable (Int, Int, Int) | |

Shapable (Int, Int, Int, Int) | |

Shapable (Int, Int, Int, Int, Int) | |

Shapable (Int, Int, Int, Int, Int, Int) | |

Shapable (Int, Int, Int, Int, Int, Int, Int) | |

Shapable (Int, Int, Int, Int, Int, Int, Int, Int) | |

Shapable (Int, Int, Int, Int, Int, Int, Int, Int, Int) |

shape :: (Shapable i, Ix i, IArray a e) => a i e -> [Int]Source

Canonical representation of the shape. The following properties hold: 'length . shape = rank' 'product . shape = size'

shapeToStride :: [Int] -> [Int]Source

How much the offset changes when you move one element in the given direction. Since arrays are in row-major order, 'last . shapeToStride = const 1'