aboutsummaryrefslogtreecommitdiff
path: root/src/Data/Array/Nested/Internal/Shaped.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Data/Array/Nested/Internal/Shaped.hs')
-rw-r--r--src/Data/Array/Nested/Internal/Shaped.hs26
1 files changed, 7 insertions, 19 deletions
diff --git a/src/Data/Array/Nested/Internal/Shaped.hs b/src/Data/Array/Nested/Internal/Shaped.hs
index 4071aad..5d1b3b2 100644
--- a/src/Data/Array/Nested/Internal/Shaped.hs
+++ b/src/Data/Array/Nested/Internal/Shaped.hs
@@ -196,34 +196,22 @@ arithPromoteShaped2 :: forall sh a b c.
-> Shaped sh a -> Shaped sh b -> Shaped sh c
arithPromoteShaped2 = coerce
--- | TODO: 'KnownShS' is only there for 'fromInteger'.
-instance (NumElt a, PrimElt a, Num a, KnownShS sh) => Num (Shaped sh a) where
+instance (NumElt a, PrimElt a, Num a) => Num (Shaped sh a) where
(+) = arithPromoteShaped2 (+)
(-) = arithPromoteShaped2 (-)
(*) = arithPromoteShaped2 (*)
negate = arithPromoteShaped negate
abs = arithPromoteShaped abs
signum = arithPromoteShaped signum
- fromInteger =
- case knownShS @sh of
- ZSS -> sscalar . fromInteger
- _ -> error "Data.Array.Nested.fromInteger: No singletons available, use explicit sreplicateScal"
-
--- | TODO: 'KnownShS' is only there for 'fromRational'.
-instance (FloatElt a, NumElt a, PrimElt a, Fractional a, KnownShS sh) => Fractional (Shaped sh a) where
- fromRational =
- case knownShS @sh of
- ZSS -> sscalar . fromRational
- _ -> error "Data.Array.Nested.fromRational: No singletons available, use explicit sreplicateScal"
+ fromInteger = error "Data.Array.Nested.fromInteger: No singletons available, use explicit sreplicateScal"
+
+instance (FloatElt a, NumElt a, PrimElt a, Fractional a) => Fractional (Shaped sh a) where
+ fromRational = error "Data.Array.Nested.fromRational: No singletons available, use explicit sreplicateScal"
recip = arithPromoteShaped recip
(/) = arithPromoteShaped2 (/)
--- | TODO: 'KnownShS' is only there for 'pi'.
-instance (FloatElt a, NumElt a, PrimElt a, Floating a, KnownShS sh) => Floating (Shaped sh a) where
- pi =
- case knownShS @sh of
- ZSS -> sscalar pi
- _ -> error "Data.Array.Nested.pi: No singletons available, use explicit sreplicateScal"
+instance (FloatElt a, NumElt a, PrimElt a, Floating a) => Floating (Shaped sh a) where
+ pi = error "Data.Array.Nested.pi: No singletons available, use explicit sreplicateScal"
exp = arithPromoteShaped exp
log = arithPromoteShaped log
sqrt = arithPromoteShaped sqrt