| Safe Haskell | Safe |
|---|---|
| Language | Haskell2010 |
NumHask.Shape
Contents
Description
numbers with a shape
- class HasShape f where
- type Shape f
- class Distributive f => Representable (f :: * -> *) where
Documentation
class HasShape f where Source #
Not everything that has a shape is representable.
todo: Structure is a useful alternative concept/naming convention
Minimal complete definition
Representable
Representable has most of what's needed to define numbers that have elements (aka scalars) and a fixed shape.
class Distributive f => Representable (f :: * -> *) where #
A Functor f is Representable if tabulate and index witness an isomorphism to (->) x.
Every Distributive Functor is actually Representable.
Every Representable Functor from Hask to Hask is a right adjoint.
tabulate.index≡ idindex.tabulate≡ idtabulate.return≡return
Associated Types
If no definition is provided, this will default to GRep.
Instances
| Representable Par1 | |
| Representable Complex | |
| Representable Identity | |
| Representable Dual | |
| Representable Sum | |
| Representable Product | |
| Representable (U1 *) | |
| Representable f => Representable (Co f) | |
| Representable (Proxy *) | |
| Representable f => Representable (Cofree f) | |
| Representable f => Representable (Rec1 * f) | |
| Representable w => Representable (TracedT s w) | |
| Representable m => Representable (IdentityT * m) | |
| Representable (Tagged * t) | |
| Representable f => Representable (Reverse * f) | |
| Representable f => Representable (Backwards * f) | |
| Representable ((->) LiftedRep LiftedRep e) | |
| (Representable f, Representable g) => Representable ((:*:) * f g) | |
| (Representable f, Representable g) => Representable (Product * f g) | |
| Representable m => Representable (ReaderT * e m) | |
| (Dimensions r, Container c) => Representable (Array Nat c r) # | |
| Representable f => Representable (M1 * i c f) | |
| (Representable f, Representable g) => Representable ((:.:) * * f g) | |
| (Representable f, Representable g) => Representable (Compose * * f g) | |