anchor.diff:            (TArray (IShape ())
                     (TFun ((TArray (IShape ()) TFloat)
                            (TArray (IShape ((INat 2))) TFloat))
  -                        (TArray (IShape ((INat 2)))
  -                                (TArray (IShape ()) TFloat))))))
  +                        (TArray (IShape ((INat 2))) TFloat)))))
      (RExpr
       (Arr
        ()
  
positive.code:                          (IShape ()))))
                        (TFloat)))
                      ((RExpr (Var accum)))))))))))))))))))))
    #;<more-defns>
    )
    ;; Main expression
    (RExpr
     (App
      (RExpr
       (TApp
        (RExpr
         (IApp
          (RExpr
           (Var sinusoid*))
          ((INat 10))))
        (TInt)))
      ((RExpr (Arr (10) ((RElt (Int 0)) (RElt (Int 0))
                         (RElt (Int 0)) (RElt (Int 0))
                         (RElt (Int 0)) (RElt (Int 0))
                         (RElt (Int 0)) (RElt (Int 0))
                         (RElt (Int 0)) (RElt (Int 0)))))
       (RExpr (Arr () ((RElt (Float 0.25)))))
       (RExpr (Arr () ((RElt (Float 0.)))))))))
  
  
negative.code: (RProg
   ;; Top-level definitions
   ((RDefn sample-rate (TArray (IShape ()) TFloat)
           (RExpr (Arr () ((RElt (Float 8000.))))))
    (RDefn tau (TArray (IShape ()) TFloat)
           (RExpr
  