packages feed

QIO 1.1 → 1.2

raw patch · 2 files changed

+4/−4 lines, 2 filesdep ~base

Dependency ranges changed: base

Files

QIO.cabal view
@@ -1,5 +1,5 @@ Name:		QIO-Version:	1.1+Version:	1.2 Cabal-Version:	>= 1.2 License:	BSD3 License-File:	LICENSE
QIO/VecEq.hs view
@@ -16,7 +16,7 @@     -- | Two Vectors can be combined     (<+>) :: (Eq a, Num x) => v x a -> v x a -> v x a     -- | A Vector can be multiplied by a scalar-    (<*>) :: (Num x) => x -> v x a -> v x a+    (<*>) :: (Num x, Eq x) => x -> v x a -> v x a     -- | The amplitude of a given element can be accessed     (<@>) :: (Eq a, Num x) => a -> v x a -> x     -- | The vector can be created from a list of pairs@@ -48,7 +48,7 @@ -- | Scalar multiplcation is achieved by mapping the multiplication over -- each pair in the vector. Multiplication by 0 is a special case, and will -- remove all the basis states from the vector.-vEqTimes :: (Num x) => x -> VecEqL x a -> VecEqL x a+vEqTimes :: (Num x, Eq x) => x -> VecEqL x a -> VecEqL x a l `vEqTimes` (VecEqL bs) | l==0 = VecEqL []                          | otherwise = VecEqL (map (\ (b,k) -> (b,l*k)) bs)           @@ -76,7 +76,7 @@     eqBind   :: (Eq a, Eq b) => m a -> (a -> m b) -> m b   -- | Any VecEq over \v\, along with a Numeric tpye \x\ is an EqMonad.-instance (VecEq v, Num x) => EqMonad (v x) where+instance (VecEq v, Num x, Eq x) => EqMonad (v x) where     eqReturn a = fromList [(a,1)]     eqBind va f = case toList va of                    ([]) -> vzero