netWorths :: StartingAmount -> TargetAmount -> GrowthRate -> CashFlow -> [Int]
netWorths (StartingAmount c) (TargetAmount t) (GrowthRate r) (CashFlow s) =
  if (nextValue < c)
    then [round nextValue]
    else (round nextValue) : netWorths (StartingAmount c) (TargetAmount nextValue) (GrowthRate r) (CashFlow s) where
      nextValue = (t / r) - s
netWorths :: StartingAmount -> TargetAmount -> GrowthRate -> CashFlow -> [Int]
netWorths (StartingAmount c) (TargetAmount t) (GrowthRate r) (CashFlow s) =
  if (nextValue < c)
    then [round nextValue]
    else (round nextValue) : netWorths (StartingAmount c) (TargetAmount nextValue) (GrowthRate r) (CashFlow s) where
      nextValue = (t / r) - s
netWorths (StartingAmount c) (TargetAmount t) (GrowthRate r) (CashFlow s) =
  if (nextValue < c)
    then [round nextValue]
    else (round nextValue) : netWorths (StartingAmount c) (TargetAmount nextValue) (GrowthRate r) (CashFlow s) where
      nextValue = (t / r) - s