summaryrefslogtreecommitdiff
path: root/testsuite/tests/simplCore/should_compile/T20112.hs
blob: 72a4198246eab6ae1dc9337acb73575fe523907d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
module T20112 (
    -- * Data structure
    AdjacencyMap, transpose, overlays1

    ) where

import Prelude hiding (reverse)
import Data.List.NonEmpty(NonEmpty, toList)
import Data.Coerce

import qualified T20112A as AM

newtype AdjacencyMap a = NAM ( AM.AdjacencyMap a )

overlays1 :: Ord a => NonEmpty (AdjacencyMap a) -> AdjacencyMap a
overlays1 = coerce AM.overlays . toList
{-# NOINLINE overlays1 #-}

transpose :: Ord a => AdjacencyMap a -> AdjacencyMap a
transpose = coerce AM.transpose
{-# NOINLINE [1] transpose #-}

{-# RULES
"transpose/overlays1" forall xs. transpose (overlays1 xs) = overlays1 (fmap transpose xs)
 #-}