@@ -110,6 +110,15 @@ literals = mkPattern' match'
110110 , return $ emit op
111111 , return $ emit $ unbox t y
112112 ]
113+ match (App _ (App _ (Indexer _ (Var _ fn) (Var _ fnMod)) [Indexer _ (Var _ dict) (Var _ dictMod)]) [n])
114+ | fnMod == dictMod
115+ , dictMod == C.dataRing
116+ , fn == C.negate
117+ , Just t <- unboxType dict
118+ = mconcat <$> sequence
119+ [ return $ emit "-"
120+ , return $ emit $ unbox t n
121+ ]
113122 match (App _ val args) = mconcat <$> sequence
114123 [ prettyPrintCpp' val
115124 , return $ emit "("