Add operator IntMap.!?. (#454)
authorMatt Renaud <matt@m-renaud.com>
Wed, 20 Dec 2017 22:56:24 +0000 (14:56 -0800)
committerDavid Feuer <David.Feuer@gmail.com>
Wed, 20 Dec 2017 22:56:24 +0000 (17:56 -0500)
commitc4903a7228c45975d650793652abdb2375bfaff0
treecf17568e6c9faba9302fe503802496a89fd20acf
parenta31128425972d09d70afb416e9d740283eada021
Add operator IntMap.!?. (#454)

Add operator `IntMap.!?`.

This operator was added to `Data.Map` but was accidentally left out of the `IntMap`
API.

```haskell
(!?) :: IntMap a -> Key -> Maybe a
```

Fixes #453

* Add missing import of operator (!?) from internal module.

* Add operator !? property tests to test list.

* Fix precedence issue in properties test.

* Add @since 0.5.11 annotation to Data.IntMap.!?.

* Use Prelude.map instead of <$> in intmap-properties.

<$> was not introduced into base until GHC 7.10 so integration tests run against
earlier compilers fail[1]. We go with Prelude.map since it is the simplest way
to be compatible with all GHC versions.

Alternatives considered:
  - import Data.Functor ((<$>)) or fmap
    - causes unused import warnings for GHC versions with <$> in base.
  - conditionally import <$>
    - Unnecessary noise in compile list.

[1]
https://travis-ci.org/haskell/containers/builds/318987347?utm_source=github_status&utm_medium=notification
Data/IntMap/Internal.hs
Data/IntMap/Lazy.hs
Data/IntMap/Strict.hs
tests/intmap-properties.hs
tests/intmap-strictness.hs