{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreicaveltz2cndpx3qbvzaf4mavxbxx5ieyadk4d3hpxwivspsnimbu",
    "uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3mh325hzeugs2"
  },
  "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"
}