summaryrefslogtreecommitdiff
path: root/testsuite/tests/simplCore/should_compile/T20112.hs
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tests/simplCore/should_compile/T20112.hs')
-rw-r--r--testsuite/tests/simplCore/should_compile/T20112.hs26
1 files changed, 26 insertions, 0 deletions
diff --git a/testsuite/tests/simplCore/should_compile/T20112.hs b/testsuite/tests/simplCore/should_compile/T20112.hs
new file mode 100644
index 0000000000..72a4198246
--- /dev/null
+++ b/testsuite/tests/simplCore/should_compile/T20112.hs
@@ -0,0 +1,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)
+ #-}
+