Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
numbers with a shape
Documentation
class HasShape f where Source #
Not everything that has a shape is representable.
todo: Structure is a useful alternative concept/naming convention
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 :: Type -> Type) 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
Nothing