interface Pow a b where
(^) : a -> b -> a
a ^ b élève a à la puissance b (infixr 8, lie plus fort que *). Un unique opérateur dispatché sur le type de l'exposant, unifiant les ^/^^/** de Haskell :
a ^ Nat— multiplication répétée, pour toutMultiplicative a;a ^ Int— puissance entière, exposants négatifs viarecip
(DivisionRing a) ;
Double ^ Double— puissance réelle.
Il n'y a délibérément pas de Int ^ Int : 3 ^ (-2) n'a pas de résultat Int, donc Int (qui n'est pas un DivisionRing) n'admet qu'un exposant Nat.
Instances : Double