{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreicaveltz2cndpx3qbvzaf4mavxbxx5ieyadk4d3hpxwivspsnimbu",
"uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3mh3oc526po52"
},
"path": "/t/sneak-peek-bolt-math/13766#post_17",
"publishedAt": "2026-03-15T02:02:36.000Z",
"site": "https://discourse.haskell.org",
"textContent": "Great minds think alike - that is precisely what I did for the alternative homogenous operators that I mentioned but didn’t post - I might as well since you all really want to make sure they exist\n\n\n module Bolt.Math.Syntax.Operators.Simple where\n\n import Bolt.Math.Internal.Prelude\n\n import Bolt.Math.Addition\n import Bolt.Math.Multiplication\n import Bolt.Math.Exponentiation\n\n infixr 8 ^\n infixl 7 *, /\n infixl 6 +, -\n\n (+) :: (Addition a a, Sum a a ~ a) => a -> a -> a\n a + b = plus a b\n\n (-) :: (Subtraction a a, Delta a a ~ a) => a -> a -> a\n a - b = minus a b\n\n (*) :: (Multiplication a a, Product a a ~ a) => a -> a -> a\n a * b = times a b\n\n (/) :: (Division a a, Ratio a a ~ a) => a -> a -> a\n a / b = divides a b\n\n (^) :: (Exponentiation a a, Power a a ~ a) => a -> a -> a\n a ^ b = pow a b\n\n\nObviously mine are eta expanded but that’s a matter of preference. I will also probably be adopting specialized numhask-style left and right act operators because I have decided that I like them, though they will get their own particular operator module in `Bolt.Math.Syntax.Operators.Act` or something.",
"title": "Sneak Peek: Bolt Math"
}