instance Pretty Category where
pretty cat = fill 8 $ viaShow cat <> ":"
instance (KnownNat x, KnownNat y, KnownNat z) => Pretty (Budget c '(x, y, z)) where
pretty budget = "Budget" <+> rule budget
instance (KnownSymbol c) => Pretty (PosMoney c) where
pretty x = pretty currency <+> pretty value
where
currency = symbolVal x
value = unP. unPosMoney $ x
instance (KnownNat x, KnownNat y, KnownNat z) => Pretty (Rule '(x, y, z)) where
pretty x = concatWith (surround "/") . map pretty $ [natVal (Proxy @x), natVal (Proxy @y), natVal (Proxy @z)]