New Haskell project using stack template tasty-travis.
Please read file tutorial.md for first steps in using the template.
Notes
[x] Use vmap to avoid code repetition [ ] Refactor internal implementation to use a list, which will allow more expresiveness in algorithms
In this branch (generalization-attempt) I tried to make Quadruple not be bound to Double, but to use any type conforming to Floating (that is, Double or Float). This triggered a series of warnings about how the compiler was defaulting to using Double, but warnings are treated as errors and thus tests can't be built and run. Disabling -WError makes tests build and pass. See https://www.haskell.org/tutorial/numbers.html#sect10.4 https://www.haskell.org/onlinereport/decls.html#default-decls
If we force-cast all numbers used as function parameters to Double (as in the first test), or the first occurence in each shouldBe, then no warnings are raised. However, that much verbosity makes the code cumbersome to write and read. Therefore, we selectively disable those warnings with {-# OPTIONS_GHC -fno-warn-type-defaults #-}