Commits on Jul 26, 2016
  1. @treeowl

    Merge pull request #305 from treeowl/restriction

    Add restrictKeys and withoutKeys
    treeowl committed on GitHub Jul 26, 2016
  2. @treeowl

    Add restrictKeys and withoutKeys

    * Add `restrictKeys` and `withoutKeys` to `Data.Map` and
    `Data.IntMap`.
    
    * Add tests for the defining properties of these operations.
    treeowl committed Jul 26, 2016
Commits on Jul 25, 2016
  1. @treeowl

    Merge pull request #303 from treeowl/fix-replace

    Actually define the (<$) method
    treeowl committed on GitHub Jul 25, 2016
  2. @treeowl

    Actually define the (<$) method

    Accidentally defined a separate `(<$)` function for `Data.Map`.
    
    Also, fix unused binding warnings.
    treeowl committed Jul 25, 2016
  3. @treeowl

    Merge pull request #302 from treeowl/intmap-inline-map

    Rewrite IntMap map so it can inline; define <$
    treeowl committed on GitHub Jul 25, 2016
  4. @treeowl

    Rewrite IntMap map so it can inline; define <$

    Previously, mapping a constant function would fill an `IntMap`
    with thunks.
    treeowl committed Jul 25, 2016
  5. @treeowl

    Merge pull request #301 from treeowl/map-inline-map

    Inline Map.map; define Map <$
    treeowl committed on GitHub Jul 25, 2016
  6. @treeowl

    Inline Map.map; define Map <$

    Previously, `<$` would fill a map with thunks. Rewriting
    `map` so it can inline fixes this. Defined a custom `<$` anyway.
    
    Fixes #300
    treeowl committed Jul 25, 2016
Commits on Jul 14, 2016
  1. @treeowl

    Merge pull request #298 from treeowl/narrow-pattern-synonyms

    Define pattern synonyms only for GHC >=8
    treeowl committed on GitHub Jul 13, 2016
  2. @treeowl

    Define pattern synonyms only for GHC >=8

    The CPP required to support pattern synonyms with earlier GHC
    versions produces too much clutter. It's bad enough having to
    deal with exports with and without testing and with and without
    pattern synonyms. Having two different export mechanisms goes too
    far. If users demand support very strenuously, we can put some of
    it back. Until then, I don't want to commit to supporting it
    indefinitely.
    
    Fixes #297
    treeowl committed Jul 13, 2016
Commits on Jul 8, 2016
  1. @treeowl

    Merge pull request #296 from treeowl/fromDescList

    Add fromDescList and fromDistinctDescList
    treeowl committed on GitHub Jul 8, 2016
  2. @treeowl

    Add fromDescList and fromDistinctDescList

    The set versions are just like the map versions, pretty much.
    treeowl committed Jul 8, 2016
Commits on Jul 7, 2016
  1. @treeowl

    Merge pull request #295 from treeowl/map-fromDescending

    Add fromDesc functions for Data.Map
    treeowl committed on GitHub Jul 7, 2016
  2. @treeowl

    Add fromDesc functions for Data.Map

    Add functions to convert descending lists to maps.
    treeowl committed Jul 7, 2016
  3. @treeowl

    Merge pull request #294 from treeowl/sequence-adjust

    Add Data.Sequence.adjust'
    treeowl committed on GitHub Jul 7, 2016
  4. @treeowl

    Add Data.Sequence.adjust'

    * Add `adjust'`, which forces the new value before installing it
    in the sequence.
    
    * Improve the documentation for `lookup`.
    
    * Cut out some unnecessary code from `traverse`.
    treeowl committed Jul 7, 2016
Commits on Jun 29, 2016
  1. @treeowl

    Merge pull request #292 from treeowl/spitzner-nines

    Use Lennart Spitzner's implementation of `fromList`.
    treeowl committed on GitHub Jun 28, 2016
  2. @treeowl

    Clean up fromList

    Remove unnecessary `s` parameter for tree top.
    
    Remove unnecessary `let`s, and generally make things neater.
    
    Make trees lean left.
    
    Use local type signatures under GHC, where scoped
    type variables are available.
    
    Remove unnecessary bang patterns.
    
    Begin to document design.
    treeowl committed Jun 15, 2016
Commits on Jun 15, 2016
  1. @lspitzner @treeowl
  2. @lspitzner @treeowl
Commits on Jun 14, 2016
  1. @treeowl

    Add longer fromList benchmark

    The previous benchmarks weren't big enough to reveal certain
    cache effects.
    treeowl committed Jun 14, 2016
Commits on Jun 11, 2016
  1. @treeowl

    Merge pull request #287 from treeowl/clean-typeable

    Clean up Typeable; derive more Generic
    treeowl committed on GitHub Jun 11, 2016
  2. @treeowl

    Clean up Typeable; derive more Generic

    * Remove gunk apparently intended to support `Typeable` for
    Hugs.
    
    * Derive `Generic` and `Generic1` for `Data.Sequence.ViewL`
    and `Data.Sequence.ViewR`.
    treeowl committed Jun 11, 2016
  3. @treeowl

    Update and organize changelog

    treeowl committed on GitHub Jun 10, 2016
  4. @treeowl

    Merge pull request #286 from treeowl/strictify-seq-fromList

    Make Data.Sequence.fromList more eager
    treeowl committed on GitHub Jun 10, 2016
  5. @treeowl

    Make Data.Sequence.fromList more eager

    `fromList` previously suspended most of its work,
    storing the structure in thunks rather than trees.
    Now it builds everything.
    
    Old:
    
    benchmarking fromList/10
    time                 175.2 ns   (174.7 ns .. 175.7 ns)
                         1.000 R²   (1.000 R² .. 1.000 R²)
    mean                 175.2 ns   (174.8 ns .. 175.6 ns)
    std dev              1.383 ns   (1.124 ns .. 1.775 ns)
    
    benchmarking fromList/100
    time                 2.712 μs   (2.707 μs .. 2.720 μs)
                         1.000 R²   (1.000 R² .. 1.000 R²)
    mean                 2.732 μs   (2.717 μs .. 2.779 μs)
    std dev              76.64 ns   (40.38 ns .. 147.1 ns)
    variance introduced by outliers: 35% (moderately inflated)
    
    benchmarking fromList/1000
    time                 32.24 μs   (32.18 μs .. 32.33 μs)
                         1.000 R²   (1.000 R² .. 1.000 R²)
    mean                 32.26 μs   (32.22 μs .. 32.35 μs)
    std dev              194.7 ns   (100.0 ns .. 371.4 ns)
    
    benchmarking fromList/10000
    time                 510.3 μs   (508.2 μs .. 511.9 μs)
                         1.000 R²   (1.000 R² .. 1.000 R²)
    mean                 508.1 μs   (506.2 μs .. 509.8 μs)
    std dev              5.787 μs   (4.788 μs .. 7.175 μs)
    
    New:
    
    benchmarking fromList/10
    time                 139.8 ns   (139.5 ns .. 140.2 ns)
                         1.000 R²   (1.000 R² .. 1.000 R²)
    mean                 139.8 ns   (139.6 ns .. 140.3 ns)
    std dev              1.023 ns   (547.5 ps .. 1.573 ns)
    
    benchmarking fromList/100
    time                 1.520 μs   (1.517 μs .. 1.525 μs)
                         1.000 R²   (1.000 R² .. 1.000 R²)
    mean                 1.522 μs   (1.518 μs .. 1.529 μs)
    std dev              16.53 ns   (10.57 ns .. 24.26 ns)
    
    benchmarking fromList/1000
    time                 16.00 μs   (15.97 μs .. 16.05 μs)
                         1.000 R²   (1.000 R² .. 1.000 R²)
    mean                 15.99 μs   (15.97 μs .. 16.04 μs)
    std dev              89.39 ns   (39.63 ns .. 151.2 ns)
    
    benchmarking fromList/10000
    time                 262.8 μs   (262.3 μs .. 263.5 μs)
                         1.000 R²   (1.000 R² .. 1.000 R²)
    mean                 262.8 μs   (262.4 μs .. 264.7 μs)
    std dev              2.559 μs   (757.4 ns .. 5.482 μs)
    treeowl committed Jun 10, 2016
  6. @treeowl

    Merge pull request #283 from recursion-ninja/master

    Corrected drawTree & drawForest to render multiline String values in a palatable manner.
    treeowl committed on GitHub Jun 10, 2016
  7. @treeowl

    Merge pull request #285 from treeowl/strictify-more-sequence

    Be more eager about building by consing
    treeowl committed on GitHub Jun 10, 2016
  8. @treeowl

    Be more eager about building by consing

    Also make `partition` build things much more eagerly.
    treeowl committed Jun 10, 2016
Commits on Jun 10, 2016
  1. @treeowl

    Merge pull request #284 from treeowl/seq-traverse-map-less

    Make traverse fmap less
    treeowl committed on GitHub Jun 10, 2016
  2. @treeowl

    Make traverse fmap less

    Use safe coercions to avoid `fmap` at the leaves to deal with
    `Elem` and at the root to deal with `Seq`. This should speed
    things up for non-trivial functors.
    treeowl committed Jun 10, 2016
Commits on Jun 9, 2016
  1. Corrected drawTree to render multi-line String values in a palatable …

    …manner.
    recursion-ninja committed Jun 9, 2016
Commits on Jun 4, 2016
  1. @oherrala @treeowl

    Update .travis.yml with new GHC versions (#282)

    Add GHC 8.0.1 and replace 7.10.1 with 7.10.3.
    
    Fixes #269
    oherrala committed with treeowl Jun 5, 2016
Commits on Jun 2, 2016
  1. @treeowl

    Write custom strict folds (#281)

    Writing `foldl'` and `foldr'` by hand, instead of using the
    default definitions, makes them about twice as fast.
    
    Fix completely bogus definition of `length` for `ViewR`.
    treeowl committed Jun 1, 2016
Commits on Jun 1, 2016
  1. @treeowl

    Use ScopedTypeVariables to optimize zipping (#280)

    `splitMap` was annoyingly sensitive to any minor change anywhere,
    presumably because it was tough on the inliner. Using
    `ScopedTypeVariables` when compiling with GHC, we can pull the
    splitting function out of the polymorphic recursion. Suddenly
    GHC starts unboxing `Int`s and generally acting like a happier
    compiler. I'm hopeful that `ScopedTypeVariables` will be in the
    next standard so we can eventually drop the other code.
    
    Also, modify the `Split` type to make it more obvious that we
    only force things we're allowed to.
    
    Also also, make `chunksOf` a bit more tolerant. Now it only
    complains if it's asked to produce non-positive-sized chunks
    of a non-empty sequence.
    treeowl committed Jun 1, 2016