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)
#-}
|