diff options
| author | Mikolaj Konarski <mikolaj.konarski@funktory.com> | 2026-01-20 23:39:15 +0100 |
|---|---|---|
| committer | Mikolaj Konarski <mikolaj.konarski@funktory.com> | 2026-01-20 23:40:33 +0100 |
| commit | 44c5622fba89bc7fed5523f4a397f1e2f95c62c9 (patch) | |
| tree | 2ddd51f6d697a16d135ec2c1ce3d2b9e2dd53d4e /test/Main.hs | |
| parent | f21de5faf99f5a26510a0e1b2216a12e68f5182c (diff) | |
Make the test non-trivial again
Diffstat (limited to 'test/Main.hs')
| -rw-r--r-- | test/Main.hs | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/test/Main.hs b/test/Main.hs index 209b88e..37e75b3 100644 --- a/test/Main.hs +++ b/test/Main.hs @@ -8,8 +8,9 @@ module Main where import Data.Dependent.EnumMap.Strict qualified as DE +import Data.Dependent.EnumMap.Strict.Internal (coe1) import Data.Dependent.Sum - +import Data.Functor.Const data Tag = A | B | C deriving (Show) @@ -21,9 +22,16 @@ data STag tag where deriving instance Show (STag tag) instance DE.Enum1 STag where - type Enum1Info STag = STag - fromEnum1 = \case { SA -> (0, SA); SB -> (1, SB); SC -> (2, SC) } - toEnum1 n t = case (n, t) of { (0, SA) -> SA; (1, SB) -> SB; (2, SC) -> SC; _ -> error "invalid tag" } + type Enum1Info STag = Const () + fromEnum1 = \case + SA -> (0, Const ()) + SB -> (1, Const ()) + SC -> (2, Const ()) + toEnum1 n _ = case n of + 0 -> coe1 SA + 1 -> coe1 SB + 2 -> coe1 SC + _ -> error "invalid tag" data Value tag where VA :: Int -> Value A |
