#ifdef FCPP_THIS_IS_NEVER_DEFINED echo '#include "prelude.h"' echo '#undef FCPP_MAYBE_INIT' echo '#define FCPP_MAYBE_INIT(x) x' echo 'namespace fcpp {' for FILE in *.h do echo "// from $FILE" cat $FILE | grep ^FCPP_MAYBE_EXTERN | cut -c18- done echo '}' exit #endif #include "prelude.h" #undef FCPP_MAYBE_INIT #define FCPP_MAYBE_INIT(x) x namespace fcpp { // from config.h // from curry.h AutoCurryType _; // this is a legal identifier as fcpp::_ Const const_; // C++ keyword, so add trailing underscore Bind1of1 bind1of1; Bind1of2 bind1of2; Bind2of2 bind2of2; Bind1and2of2 bind1and2of2; Bind1and2and3of3 bind1and2and3of3; Bind1and2of3 bind1and2of3; Bind2and3of3 bind2and3of3; Bind1and3of3 bind1and3of3; Bind1of3 _bind1of3; Curryable2 bind1of3 FCPP_MAYBE_INIT((_bind1of3)); Bind2of3 _bind2of3; Curryable2 bind2of3 FCPP_MAYBE_INIT((_bind2of3)); Bind3of3 _bind3of3; Curryable2 bind3of3 FCPP_MAYBE_INIT((_bind3of3)); Curry3 curry3; Curry2 curry2; Curry1 curry1, curry; // "curry" is the same as "curry1" // from function.h // from list.h Head head; Tail tail; Null null; Cons _cons; Curryable2 cons FCPP_MAYBE_INIT((_cons)); Cat _cat; Curryable2 cat FCPP_MAYBE_INIT((_cat)); Delay delay; Force force; // from operator.h MakePair _makePair; Curryable2 makePair FCPP_MAYBE_INIT((_makePair)); Min _min; Curryable2 min FCPP_MAYBE_INIT((_min)); Max _max; Curryable2 max FCPP_MAYBE_INIT((_max)); Plus _plus; Curryable2 plus FCPP_MAYBE_INIT((_plus)); Minus _minus; Curryable2 minus FCPP_MAYBE_INIT((_minus)); Multiplies _multiplies; Curryable2 multiplies FCPP_MAYBE_INIT((_multiplies)); Divides _divides; Curryable2 divides FCPP_MAYBE_INIT((_divides)); Modulus _modulus; Curryable2 modulus FCPP_MAYBE_INIT((_modulus)); Negate negate; Equal _equal; Curryable2 equal FCPP_MAYBE_INIT((_equal)); NotEqual _notEqual; Curryable2 notEqual FCPP_MAYBE_INIT((_notEqual)); Greater _greater; Curryable2 greater FCPP_MAYBE_INIT((_greater)); Less _less; Curryable2 less FCPP_MAYBE_INIT((_less)); GreaterEqual _greaterEqual; Curryable2 greaterEqual FCPP_MAYBE_INIT((_greaterEqual)); LessEqual _lessEqual; Curryable2 lessEqual FCPP_MAYBE_INIT((_lessEqual)); LogicalAnd _logicalAnd; Curryable2 logicalAnd FCPP_MAYBE_INIT((_logicalAnd)); LogicalOr _logicalOr; Curryable2 logicalOr FCPP_MAYBE_INIT((_logicalOr)); LogicalNot logicalNot; Dereference dereference; AddressOf addressOf; Inc inc; Always1 always1; Never1 never1; // from prelude.h Id id; Compose compose_; Curryable2 compose FCPP_MAYBE_INIT((compose_)); Compose2 _compose2; Curryable3 compose2 FCPP_MAYBE_INIT((_compose2)); Until _until; Curryable3 until FCPP_MAYBE_INIT((_until)); Last last; Init init; Length length; At _at; Curryable2 at FCPP_MAYBE_INIT((_at)); Filter _filter; Curryable2 filter FCPP_MAYBE_INIT((_filter)); Concat concat; Foldr _foldr; Curryable3 foldr FCPP_MAYBE_INIT((_foldr)); Foldr1 _foldr1; Curryable2 foldr1 FCPP_MAYBE_INIT((_foldr1)); Foldl _foldl; Curryable3 foldl FCPP_MAYBE_INIT((_foldl)); Foldl1 _foldl1; Curryable2 foldl1 FCPP_MAYBE_INIT((_foldl1)); Scanr _scanr; Curryable3 scanr FCPP_MAYBE_INIT((_scanr)); Scanr1 _scanr1; Curryable2 scanr1 FCPP_MAYBE_INIT((_scanr1)); Scanl _scanl; Curryable3 scanl FCPP_MAYBE_INIT((_scanl)); Scanl1 _scanl1; Curryable2 scanl1 FCPP_MAYBE_INIT((_scanl1)); Iterate _iterate; Curryable2 iterate FCPP_MAYBE_INIT((_iterate)); Repeat repeat; Map _map; Curryable2 map FCPP_MAYBE_INIT((_map)); Take _take; Curryable2 take FCPP_MAYBE_INIT((_take)); Drop _drop; Curryable2 drop FCPP_MAYBE_INIT((_drop)); TakeWhile _takeWhile; Curryable2 takeWhile FCPP_MAYBE_INIT((_takeWhile)); DropWhile _dropWhile; Curryable2 dropWhile FCPP_MAYBE_INIT((_dropWhile)); Replicate _replicate; Curryable2 replicate FCPP_MAYBE_INIT((_replicate)); Cycle cycle; SplitAt _splitAt; Curryable2 splitAt FCPP_MAYBE_INIT((_splitAt)); Span _span; Curryable2 span FCPP_MAYBE_INIT((_span)); Break _break_; Curryable2 break_ FCPP_MAYBE_INIT((_break_)); Flip flip; Reverse reverse; And and_; Or or_; All _all; Curryable2 all FCPP_MAYBE_INIT((_all)); Any _any; Curryable2 any FCPP_MAYBE_INIT((_any)); Elem _elem; Curryable2 elem FCPP_MAYBE_INIT((_elem)); NotElem _notElem; Curryable2 notElem FCPP_MAYBE_INIT((_notElem)); Sum sum; Product product; Minimum minimum; Maximum maximum; ZipWith _zipWith; Curryable3 zipWith FCPP_MAYBE_INIT((_zipWith)); Zip _zip; Curryable2 zip FCPP_MAYBE_INIT((_zip)); Fst fst; Snd snd; Unzip unzip; Gcd _gcd; Curryable2 gcd FCPP_MAYBE_INIT((_gcd)); Odd odd; Even even; EnumFrom enumFrom; EnumFromTo _enumFromTo; Curryable2 enumFromTo FCPP_MAYBE_INIT((_enumFromTo)); ListUntil _listUntil; Curryable3 listUntil FCPP_MAYBE_INIT((_listUntil)); NoOp noOp; Before before_; Curryable2 before FCPP_MAYBE_INIT((before_)); After after_; Curryable2 after FCPP_MAYBE_INIT((after_)); Uncurry uncurry; Duplicate duplicate; Ignore ignore; // from ref_count.h // from reuse.h AUniqueTypeForNil NIL; // from signature.h }