David Feuer
David Feuer
Previously, `TypeRep (a -> b)` could only be deserialized if `a` and `b` both had kind `*`. Change that to allow any kinds of the form `TYPE rep`. Fixes #140
Deserialized `TypeRep`s don't share any structure with each other, which can potentially waste a lot of space. For example, if I fill a giant `Set` with deserialized `Dynamic` values, the...
We can't currently deserialize arrow types `p -> q` when `p` or `q` have non-`*` kinds. See https://phabricator.haskell.org/D4137
`Data.Map` has a general `mergeA` operation to merge two maps; I don't see any obvious obstacle to having a similar one here.
The easiest way to get started will probably be to build a clone of most of `Data.Map` using ``` haskell newtype Map k v = Map (DMap (Const k) (Const...
Pretty much everyone hates the `Monoid` instance for `Data.Map`. If you're not too terribly opposed to potentially breaking existing code to make future users happy, you can avoid the problem...
`Data.Map` always uses the keys from left arguments in preference to right ones. I can't tell what the rules are here, if there are any. I think this should either...
The following type family is often useful: ```haskell type LazyTake :: Nat -> [k] -> [k] type family LazyTake n xs where LazyTake 0 _ = '[] LazyTake n xs...
Just for fun, I decided to try porting `Data.Map` to `singletons`. I know, that's crazy. [Here's the code](https://gist.github.com/treeowl/c35362c7a7874a3c2b5643544639f1bb). It takes a while to compile that, but that doesn't bother me....
`listFilesRecursive` is defined using `for` and `mconcat`. Better to use `foldM` or `foldlM`, which will allow you to force set insertions as you go.