Skip to content

Commit 9a0b6b5

Browse files
committed
Revert "Revert "Revert "Pow takes its power in N."""
This reverts commit d0e2b7c.
1 parent d8f42d5 commit 9a0b6b5

File tree

6 files changed

+8
-9
lines changed

6 files changed

+8
-9
lines changed

src/Unit/Algebra.hs

+4-4
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ class Dimension (dim :: * -> *)
134134
instance Dimension I
135135

136136

137-
class (Dimension du, Unit du u, Unit du' u') => Pow du du' u (n :: N n') u'
137+
class (Dimension du, Unit du u, Unit du' u') => Pow du du' u (n :: Nat) u'
138138
| du u n -> du' u'
139139
, du du' u' n -> u
140140
, du' u' u n -> du
@@ -145,10 +145,10 @@ instance Unit I u => Pow I I u n u
145145

146146
-- * Calculation
147147

148-
sqU :: (Pow du dsqu u (FromNat 2) squ, Num a) => u a -> squ a
148+
sqU :: (Pow du dsqu u 2 squ, Num a) => u a -> squ a
149149
sqU = pure . join (*) . prj
150150

151-
sqrtU :: (Pow dsqrtu du sqrtu (FromNat 2) u, Floating a) => u a -> sqrtu a
151+
sqrtU :: (Pow dsqrtu du sqrtu 2 u, Floating a) => u a -> sqrtu a
152152
sqrtU = pure . sqrt . prj
153153

154154
dotU :: (Num a, Metric v, Unit d u) => v (u a) -> v (u a) -> u a
@@ -206,7 +206,7 @@ infixr 8 :^:
206206

207207
instance Dimension (du :^: m)
208208

209-
instance (Unit du u, Plus m n' o, FromNat n' ~ n, KnownNat m, KnownNat o) => Pow (du :^: m) (du :^: o) (u :^: m) n (u :^: o)
209+
instance (Unit du u, Plus m n o, KnownNat m, KnownNat o) => Pow (du :^: m) (du :^: o) (u :^: m) n (u :^: o)
210210

211211
instance (Unit du u, KnownNat n) => Unit (du :^: n) (u :^: n) where
212212
factor = K (getK (factor @_ @u) ^ natVal (Proxy @n))

src/Unit/Count.hs

-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
{-# LANGUAGE FlexibleInstances #-}
55
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
66
{-# LANGUAGE MultiParamTypeClasses #-}
7-
{-# LANGUAGE PolyKinds #-}
87
{-# LANGUAGE ScopedTypeVariables #-}
98
{-# LANGUAGE TypeApplications #-}
109
{-# LANGUAGE TypeFamilies #-}

src/Unit/Length.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ import Unit.Multiple
3333
data Length a
3434

3535
instance Dimension Length
36-
instance (Unit Length u, KnownNat n, n' ~ FromNat n) => Pow Length (Length :^: n) u n' (u :^: n)
36+
instance (Unit Length u, KnownNat n) => Pow Length (Length :^: n) u n (u :^: n)
3737

3838

3939
newtype Metres a = Metres { getMetres :: a }

src/Unit/Mass.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ import Unit.Multiple
3232
data Mass a
3333

3434
instance Dimension Mass
35-
instance (Unit Mass u, KnownNat n, n' ~ FromNat n) => Pow Mass (Mass :^: n) u n' (u :^: n)
35+
instance (Unit Mass u, KnownNat n) => Pow Mass (Mass :^: n) u n (u :^: n)
3636

3737

3838
newtype Grams a = Grams { getGrams :: a }

src/Unit/Power.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ import Unit.Multiple
3232
data Power a
3333

3434
instance Dimension Power
35-
instance (Unit Power u, KnownNat n, n' ~ FromNat n) => Pow Power (Power :^: n) u n' (u :^: n)
35+
instance (Unit Power u, KnownNat n) => Pow Power (Power :^: n) u n (u :^: n)
3636

3737

3838
newtype Watts a = Watts { getWatts :: a }

src/Unit/Time.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ import Unit.Multiple
3636
data Time a
3737

3838
instance Dimension Time
39-
instance (Unit Time u, KnownNat n, n' ~ FromNat n) => Pow Time (Time :^: n) u n' (u :^: n)
39+
instance (Unit Time u, KnownNat n) => Pow Time (Time :^: n) u n (u :^: n)
4040

4141

4242
newtype Seconds a = Seconds { getSeconds :: a }

0 commit comments

Comments
 (0)