nikita-volkov/typeclasses/1.6.0

NOTE: the latest version is 1.8.0

Rerouted (retagged, needs approval). The tag now points at a different commit than when this version was published. The Lamdera package server serves a copy recovered from https://github.com/nikita-volkov/typeclasses.

What we checked: Tag 1.6.0 is still on github.com/nikita-volkov/typeclasses; its commit 9a34425b67b5 is from 2019-07-25 15:07 UTC, after the version was published (2019-07-25 15:07 UTC); elm.json is byte-identical to package.elm-lang.org's; the exposed modules match docs.json; the zip's SHA-1 is not the published one and nothing else confirms its contents.

We could not verify this copy against what was published, so the Lamdera compiler asks before using it (y/n). Without a terminal, as in CI, it stops with an error unless approved:

  • lamdera make --auto-approve-package-rerouting approves rerouted versions for that run,
  • LAMDERA_AUTO_APPROVE_PACKAGE_REROUTING=1 does the same for every run in that environment,
  • LAMDERA_CACHE=off skips the Lamdera package server altogether: packages come from package.elm-lang.org and GitHub only, as with elm, and a rerouted version then fails to download.

Details · package.elm-lang.org's zip: https://github.com/nikita-volkov/typeclasses/zipball/1.6.0/

Typeclasses.Extensions.List

Extensions to the list API, which utilise typeclasses.

fold : Monoid a -> List a -> a

O(n). Combine the elements of list using a Monoid instance.

foldMap : Monoid b -> (a -> b) -> List a -> b

O(n). Map each element of the list to a type which has an instance of Monoid, and combine the results.

sort : Comparison a -> List a -> List a

Sort the elements using a Comparison instance.

sortBy : Comparison b -> (a -> b) -> List a -> List a

Sort the elements by mapping to a type which has an instance of Comparison.

member : Equality a -> a -> List a -> Bool

O(n). Check whether a value is a member of a list based on the value's Equality instance.

dedupe : Equality a -> List a -> List a

O(n^2). Deduplicate a list using an instance of Equality.

remove : Equality a -> a -> List a -> List a

O(n). Remove the first occurrence of equaling element.