Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions dependent-hashmap.cabal
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
cabal-version: 1.12

-- This file has been generated from package.yaml by hpack version 0.31.2.
-- This file has been generated from package.yaml by hpack version 0.37.0.
--
-- see: https://github.com/sol/hpack
--
-- hash: b1b80454bb1a4bd3fb3e2976fb1f71a32f82a469a194644d39d6413ad4fdeac7
-- hash: f758a439a88b7648585bdfa3209959bdf6702b90a3da0c170320c2a39da42222

name: dependent-hashmap
version: 0.1.0.1
Expand All @@ -17,7 +17,8 @@ maintainer: fredriksson.olle@gmail.com
copyright: 2020 Olle Fredriksson
license: BSD3
license-file: LICENSE
tested-with: GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.3, GHC == 8.6.5, GHC == 8.8.3
tested-with:
GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.3, GHC == 8.6.5, GHC == 8.8.3
build-type: Simple
extra-source-files:
README.md
Expand Down Expand Up @@ -55,5 +56,6 @@ test-suite test-dependent-hashmap
, hashable >=1.3
, hedgehog
, mtl
, some >=1.0.6 && <=1.1
, unordered-containers >=0.2.9
default-language: Haskell2010
1 change: 1 addition & 0 deletions package.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,4 @@ tests:
- dependent-hashmap
- hedgehog
- mtl
- some >= 1.0.6 && <= 1.1
8 changes: 4 additions & 4 deletions stack.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
resolver: lts-15.1
resolver: lts-23.18
packages:
- .
extra-deps:
- dependent-sum-0.6.2.0
- constraints-extras-0.3.0.2
# extra-deps:
# - dependent-sum-0.6.2.0
# - constraints-extras-0.3.0.2
29 changes: 15 additions & 14 deletions tests/Main.hs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import Data.Constraint.Extras.TH
import Data.GADT.Compare
import Data.GADT.Show
import Data.Hashable
import Data.Type.Equality ( (:~:)( .. ) )
import Hedgehog
import qualified Hedgehog.Gen as Gen
import qualified Hedgehog.Range as Range
Expand All @@ -27,6 +28,18 @@ data Key v where

deriving instance Show (Key v)

deriveArgDict ''Key

instance GEq Key where
geq (IntKey i1) (IntKey i2)
| i1 == i2 =
Just Refl
geq (StringKey s1) (StringKey s2)
| s1 == s2 =
Just Refl
geq _ _ =
Nothing

instance GShow Key where
gshowsPrec = showsPrec

Expand All @@ -40,7 +53,7 @@ instance GRead Key where
greadsPrec d s =
readParen (d > 10)
(\s' ->
[ (GReadResult $ \f -> f $ IntKey i, s''')
[ (mkGReadResult $ IntKey i, s''')
| ("IntKey", s'') <- lex s'
, (i, s''') <- readsPrec (10+1) s''
]
Expand All @@ -49,25 +62,13 @@ instance GRead Key where
++
readParen (d > 10)
(\s' ->
[ (GReadResult $ \f -> f $ StringKey m, s''')
[ (mkGReadResult $ StringKey m, s''')
| ("StringKey", s'') <- lex s'
, (m, s''') <- readsPrec (10+1) s''
]
)
s

deriveArgDict ''Key

instance GEq Key where
geq (IntKey i1) (IntKey i2)
| i1 == i2 =
Just Refl
geq (StringKey s1) (StringKey s2)
| s1 == s2 =
Just Refl
geq _ _ =
Nothing

int :: Gen Int
int = Gen.int (Range.linear 0 100)

Expand Down