Closed L0neGamer closed 4 months ago
Note that mono-traversable
has very few non-core library dependencies (ones that GHC itself needs to build). Including transitive dependencies but excluding tiny libraries like tagged
, I see
vector
(+ vector-algorithms
, vector-stream
, bitvec
, primitive
)unordered-containers
(+ hashable
)Both vector
and unordered-containers
are extremely common libraries (e.g. both are dependencies of aeson
) and not particularly large.
@L0neGamer Is this satisfactory for you? If so, please close. Otherwise could you explain some implementation details? I can see orphan instances as being problematic.
Seeing how small the dependency footprint is I think it's fine for now. Theoretically it might be good to have the package I described for non-boot structures, but that's a different ticket.
Do you think it would be worth having a
mono-traversable-class
package that defines the classes, and thenmono-traversable
can export the instances of those classes? It would result in orphan instances, but it would mean that people can rely on a smaller package if they're accepting of a simpler interface.