tensor-0.3.0.1: A completely type-safe library for linear algebra

Portabilitynon-portable
Stabilityexperimental
MaintainerNicola Squartini <tensor5@gmail.com>
Safe HaskellSafe-Inferred

Data.TypeAlgebra

Description

 

Synopsis

Documentation

class Sum a b whereSource

Sum of types.

Associated Types

type a :+: b Source

Methods

(<+>) :: a -> b -> a :+: bSource

The sum of an element of a and an element of b is an element in the type a :+: b.

Instances

Cardinal a => Sum a Zero 
Ordinal m => Sum m One 
(Cardinal a, Cardinal b, Sum a b) => Sum a (Succ b) 
(Ordinal m, Ordinal n, Ordinal (:+: m n), Sum m n) => Sum m (Succ n) 

class Prod a b whereSource

Product of types.

Associated Types

type a :*: b Source

Methods

(<*>) :: a -> b -> a :*: bSource

The product of an element of a and an element of b is an element in the type a :*: b.

Instances

Cardinal a => Prod a Zero 
Ordinal m => Prod m One 
(Cardinal a, Prod a b) => Prod a (Succ b) 
(Ordinal m, Ordinal n, Prod m n, Sum m (:*: m n), Ordinal (:+: m (:*: m n))) => Prod m (Succ n)