packages feed

kind-rational-0.5.0: CHANGELOG.md

# Version 0.5.0

* COMPILER ASSISTED BREAKING CHANGE: `KindRational.Rational` is now
  is now only ever used as a kind. So, all term-level functions in
  the `KindRational` consume and produce `Prelude.Rational`s. Term-level
  functions crash will `error` if they are supplied `Rational`s that
  are not `Reduced` as input.

* COMPILER ASSISTED BREAKING CHANGE: Removed `Eq`, `Ord`, `Show` and
  `Read` instances for `KindRational.Rational`.

* COMPILER ASSISTED BREAKING CHANGE: Removed `withTerminating` in favor of
  `termination`.

* COMPILER ASSISTED BREAKING CHANGE: `Rational`s that are not `Reduced`
  are not `KnownRational`s anymore.

* COMPILER ASSISTED BREAKING CHANGE: `KnownRational` is now a type-synonym
  that implies `Normalize r ~ r`, `KnownInteger (Num r)` and
  `KnownNat (Den r)` as well.

* Added `singletons-base` support for `Rational`, including `PNum`, `SNum`,
  `PEq`, `SEq`, `POrd`, `SOrd`, `PShow` and `SShow`. Most arithmetic
  functions are now exported through `PNum` and `SNum`, rather than standalone.

* Added `readPrecTypeLit`, `SRationalTerminates`, `SRationalTerminatesNot`,
  `normalize`, `rationalLit`, `NonTerminating`, `%`, `%%`, `ToRational`,
  `mkRational`, `sMkRational`, `sRecip'`.

* Added `ShowLit`, `ShowsLit`, `ShowsPrecLit` and its singletons and
  promoted versions.

* Added defunctionalization symbols.


# Version 0.4

* COMPILER ASSISTED BREAKING CHANGE: `rationalVal`, `someRationalVal`,
  `fromSRational`, `terminates`, `divRem`, `div` and `rem` now deal
  with `KindRational`'s `Rational`s, rather than `Prelude`'s `Rational`s.

* COMPILER ASSISTED BREAKING CHANGE: Removed `fromSRational'`.

* Added `SingI` and `SingKind` instances.


# Version 0.3

* COMPILER ASSISTED BREAKING CHANGE: `TestEquality` and `TestCoercion`
  don't `Normalize` inputs before making a decision anymore.

* BREAKING CHANGE: The `Rational` inside `SRational` is not automatically
  normalized anymore. This is so that `SDecide`, `TestEquality` and
  `TestCoercion` behave as expected, treating `1/2` differently than `2/4`,
  for example. This is mostly an internal change, but it can be observed in
  the `Show` instance for `SRational`, for example.

* Added role annotations to `SRational`.

* Add dependency on `singletons` so that we can give a `Sing` and `SDecide`
  instances for type-level `Rational`s.

* Export `fromSRational'`.

# Version 0.2

* COMPILER ASSISTED BREAKING CHANGE: Removed `Mod`, `DivMod`, `mod`, `divMod`.

* COMPILER ASSISTED BREAKING CHANGE: Renamed `Dif` to `Rem`, `DivDif` to
  `DivRem`, `mod` to `rem`, `divDif` to `divRem`.


# Version 0.1

* Initial version.