packages feed

fudgets-0.18.3: hsrc/exists.h

#if defined(__HBC__) || defined(__GLASGOW_HASKELL__) || defined(__NHC__) || defined(__PFE__)
#define USE_EXIST_Q
#else
#warning No existential types! The type Gfx will be omitted and the function g will be less general.
#endif

#ifdef USE_EXIST_Q
#define IFNOEXIST(e)
#define IFEXIST(e) e
#else
#define IFNOEXIST(e) e
#define IFEXIST(e)
#endif

-- Syntax for existential quantification varies:
#if defined(__HBC__)
#define EQV(x) ?x
#define EXISTS(x) 
#elif defined(__GLASGOW_HASKELL__) || defined(__PFE__)
#define EQV(x) x
#define EXISTS(x) forall x .
#else
-- assume any free type variable is existential (like in NHC and old HBC)
#define EQV(x) x
#define EXISTS(x) 
#endif


#ifdef __PFE__
#define TSTHACK(e) e
#else
#define TSTHACK(e) e
#endif