David Feuer
David Feuer
(Please don't actually use `Where`, `Here`, and `There`. Those were just what came to mind in the moment.)
We've never used GADTs in `containers`. It's part of the tradition of trying to keep it plausibly portable to potential future Haskell implementations that don't have such fancy type systems...
@Bodigrim , are people using MicroHs? If so, we should be sure to make `containers` work on it!
> > I think the unsafe trick is totally fine, as long as its limitations are respected to avoid the risk of nasal demons. That mostly means being very careful...
Hold on, I missed a logarithm, didn't I? Let me think about that again; you're probably right.
Repeated appending risks multiplication by doubling, which could definitely be an issue on 32-bit systems. But repeated `*>` is much worse; it risks exponentiation by squaring! We've thought about adding...
Space typically has a huge impact on time. I suspect you'll find that trading compactness for speed will get you neither. But you're welcome to try.
Definitely worth trying, if there really are enough bits! Give a pattern synonym a go; that should at least validate the semantics in a hurry. My experience with pattern synonyms...
I think keeping it as a pattern synonym would probably be a good thing, but we can decide later.
Good point. Is it possible to avoid the problem by being careful about how we do the comparisons? It's not an issue for 64 bit, but we still (nominally) support...