#define VariableKind 0x100
#define AssignableKind 0x200
#define MissingKind 0x10
#define NumericKind 0x20
#define IntegerKind (NumericKind|2)
#define RealKind (NumericKind|3)
#define SymbolKind  0x30
#define MappingKind 0x40
#define FunctionKind 0x50
#define QFunctionKind 0x58
#define SeriesKind 0x60

#define BasicKindMask 0xFF // strip VariableKind and AssignableKind flags

#define MultipleKind 0xF0

#define PosInfinityCode 1
#define NegInfinityCode (-PosInfinityCode)

#define FunctionLike(ob) (((ob)->magic() & 0xF0) == FunctionKind)
