Skip to content

Commit 2859d46

Browse files
authored
Guard CyclicSCC with DEFINE_PATTERN_SYNONYMS (#1085)
DEFINE_PATTERN_SYNONYMS is set for GHC and MicroHs.
1 parent 8e7530e commit 2859d46

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

containers/src/Data/Graph.hs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
11
{-# LANGUAGE CPP #-}
2+
#include "containers.h"
23
{-# LANGUAGE BangPatterns #-}
34
#if __GLASGOW_HASKELL__
45
{-# LANGUAGE RankNTypes #-}
56
{-# LANGUAGE DeriveDataTypeable #-}
67
{-# LANGUAGE DeriveGeneric #-}
78
{-# LANGUAGE DeriveLift #-}
8-
{-# LANGUAGE PatternSynonyms #-}
99
{-# LANGUAGE StandaloneDeriving #-}
1010
{-# LANGUAGE Safe #-}
1111
{-# LANGUAGE TemplateHaskellQuotes #-}
12+
#endif
13+
#ifdef DEFINE_PATTERN_SYNONYMS
14+
{-# LANGUAGE PatternSynonyms #-}
1215
{-# LANGUAGE ViewPatterns #-}
1316
#endif
1417

15-
#include "containers.h"
16-
1718
-----------------------------------------------------------------------------
1819
-- |
1920
-- Module : Data.Graph
@@ -81,7 +82,7 @@ module Data.Graph (
8182

8283
-- * Strongly Connected Components
8384
, SCC(..
84-
#ifdef __GLASGOW_HASKELL__
85+
#ifdef DEFINE_PATTERN_SYNONYMS
8586
, CyclicSCC
8687
#endif
8788
)
@@ -167,15 +168,17 @@ data SCC vertex
167168
, Read -- ^ @since 0.5.9
168169
)
169170

170-
#ifdef __GLASGOW_HASKELL__
171+
#ifdef DEFINE_PATTERN_SYNONYMS
171172
-- | Partial pattern synonym for backward compatibility with @containers < 0.7@.
172173
pattern CyclicSCC :: [vertex] -> SCC vertex
173174
pattern CyclicSCC xs <- NECyclicSCC (NE.toList -> xs) where
174175
CyclicSCC [] = error "CyclicSCC: an argument cannot be an empty list"
175176
CyclicSCC (x : xs) = NECyclicSCC (x :| xs)
176177

177178
{-# COMPLETE AcyclicSCC, CyclicSCC #-}
179+
#endif
178180

181+
#ifdef __GLASGOW_HASKELL__
179182
-- | @since 0.5.9
180183
deriving instance Data vertex => Data (SCC vertex)
181184

0 commit comments

Comments
 (0)