+{- Note [Inlining (^)
+ ~~~~~~~~~~~~~~~~~~~~~
+ The INLINABLE pragma allows (^) to be specialised at its call sites.
+ If it is called repeatedly at the same type, that can make a huge
+ difference, because of those constants which can be repeatedly
+ calculated.
+
+ Currently the fromInteger calls are not floated because we get
+ \d1 d2 x y -> blah
+ after the gentle round of simplification. -}
+