Convert to cabal.project
[packages/containers.git] / containers / include / containers.h
1 /*
2 * Common macros for containers
3 */
4
5 #ifndef HASKELL_CONTAINERS_H
6 #define HASKELL_CONTAINERS_H
7
8 /*
9 * On GHC, include MachDeps.h to get WORD_SIZE_IN_BITS macro.
10 */
11 #ifdef __GLASGOW_HASKELL__
12 #include "MachDeps.h"
13 #endif
14
15 /*
16 * Define INSTANCE_TYPEABLE[0-2]
17 */
18 #if __GLASGOW_HASKELL__ >= 707
19 #define INSTANCE_TYPEABLE0(tycon) deriving instance Typeable tycon
20 #define INSTANCE_TYPEABLE1(tycon) deriving instance Typeable tycon
21 #define INSTANCE_TYPEABLE2(tycon) deriving instance Typeable tycon
22 #elif defined(__GLASGOW_HASKELL__)
23 #define INSTANCE_TYPEABLE0(tycon) deriving instance Typeable tycon
24 #define INSTANCE_TYPEABLE1(tycon) deriving instance Typeable1 tycon
25 #define INSTANCE_TYPEABLE2(tycon) deriving instance Typeable2 tycon
26 #else
27 #define INSTANCE_TYPEABLE0(tycon)
28 #define INSTANCE_TYPEABLE1(tycon)
29 #define INSTANCE_TYPEABLE2(tycon)
30 #endif
31
32 #if __GLASGOW_HASKELL__ >= 800
33 #define DEFINE_PATTERN_SYNONYMS 1
34 #endif
35
36 #ifdef __GLASGOW_HASKELL__
37 # define USE_ST_MONAD 1
38 # define USE_UNBOXED_ARRAYS 1
39 #endif
40
41 #endif