|
1 | 1 | {-# LANGUAGE CPP #-} |
| 2 | +#include "containers.h" |
2 | 3 | {-# LANGUAGE BangPatterns #-} |
3 | 4 | #if __GLASGOW_HASKELL__ |
4 | 5 | {-# LANGUAGE RankNTypes #-} |
5 | 6 | {-# LANGUAGE DeriveDataTypeable #-} |
6 | 7 | {-# LANGUAGE DeriveGeneric #-} |
7 | 8 | {-# LANGUAGE DeriveLift #-} |
8 | | -{-# LANGUAGE PatternSynonyms #-} |
9 | 9 | {-# LANGUAGE StandaloneDeriving #-} |
10 | 10 | {-# LANGUAGE Safe #-} |
11 | 11 | {-# LANGUAGE TemplateHaskellQuotes #-} |
| 12 | +#endif |
| 13 | +#ifdef DEFINE_PATTERN_SYNONYMS |
| 14 | +{-# LANGUAGE PatternSynonyms #-} |
12 | 15 | {-# LANGUAGE ViewPatterns #-} |
13 | 16 | #endif |
14 | 17 |
|
15 | | -#include "containers.h" |
16 | | - |
17 | 18 | ----------------------------------------------------------------------------- |
18 | 19 | -- | |
19 | 20 | -- Module : Data.Graph |
@@ -81,7 +82,7 @@ module Data.Graph ( |
81 | 82 |
|
82 | 83 | -- * Strongly Connected Components |
83 | 84 | , SCC(.. |
84 | | -#ifdef __GLASGOW_HASKELL__ |
| 85 | +#ifdef DEFINE_PATTERN_SYNONYMS |
85 | 86 | , CyclicSCC |
86 | 87 | #endif |
87 | 88 | ) |
@@ -167,15 +168,17 @@ data SCC vertex |
167 | 168 | , Read -- ^ @since 0.5.9 |
168 | 169 | ) |
169 | 170 |
|
170 | | -#ifdef __GLASGOW_HASKELL__ |
| 171 | +#ifdef DEFINE_PATTERN_SYNONYMS |
171 | 172 | -- | Partial pattern synonym for backward compatibility with @containers < 0.7@. |
172 | 173 | pattern CyclicSCC :: [vertex] -> SCC vertex |
173 | 174 | pattern CyclicSCC xs <- NECyclicSCC (NE.toList -> xs) where |
174 | 175 | CyclicSCC [] = error "CyclicSCC: an argument cannot be an empty list" |
175 | 176 | CyclicSCC (x : xs) = NECyclicSCC (x :| xs) |
176 | 177 |
|
177 | 178 | {-# COMPLETE AcyclicSCC, CyclicSCC #-} |
| 179 | +#endif |
178 | 180 |
|
| 181 | +#ifdef __GLASGOW_HASKELL__ |
179 | 182 | -- | @since 0.5.9 |
180 | 183 | deriving instance Data vertex => Data (SCC vertex) |
181 | 184 |
|
|
0 commit comments