module Haccounting where -- * Class 'Postable' class Postable repr where post :: HasCallStack => repr TyAccount -> repr TyAmount -> repr TyPost infixr 4 -=, += (-=) :: HasCallStack => Postable repr => Negable (repr TyAmount) => repr TyAccount -> repr TyAmount -> repr TyPost (+=) :: HasCallStack => Postable repr => repr TyAccount -> repr TyAmount -> repr TyPost (-=) acct = post acct . negate (+=) = post