# Ideally, people should be able to declare these in the program. # limits.h, float.h, inttypes.h # Lhc.Prim.Char, ubits32, char, UINT32_MAX, 0 Lhc.Prim.Int, sbits32, int, INT_MAX, INT_MIN Lhc.Basics.Integer, sbits, int, INTMAX_MAX, INTMAX_MIN Data.Int.Int8, sbits8, int, INT8_MAX, INT8_MIN Data.Int.Int16, sbits16, int, INT16_MAX, INT16_MIN Data.Int.Int32, sbits32, int, INT32_MAX, INT32_MIN Data.Int.Int64, sbits64, int, INT64_MAX, INT64_MIN Data.Int.IntMax, sbits, int, INTMAX_MAX, INTMAX_MIN Data.Int.IntPtr, sbits, int, INTPTR_MAX, INTPTR_MIN Data.Word.Word, ubits32, int, UINT_MAX, 0 Data.Word.Word8, ubits8, int, UINT8_MAX, 0 Data.Word.Word16, ubits16, int, UINT16_MAX, 0 Data.Word.Word32, ubits32, int, UINT32_MAX, 0 Data.Word.Word64, ubits64, int, UINT64_MAX, 0 Data.Word.WordMax, ubits, int, UINTMAX_MAX, 0 Data.Word.WordPtr, ubits, int, UINTPTR_MAX, 0 #Lhc.Float.Float, fbits, float, FLT_MAX, FLT_MIN #Lhc.Float.Double, fbits, float, DBL_MAX, DBL_MIN #Lhc.Addr.Addr, ubits, ptr,UINTPTR_MAX, 0 #Lhc.Addr.FunAddr, ubits, ptr,UINTPTR_MAX,0 Foreign.C.Types.CChar, sbits8, int, CHAR_MAX, CHAR_MIN Foreign.C.Types.CShort, sbits, int, SHORT_MAX, SHORT_MIN Foreign.C.Types.CInt, sbits, int, INT_MAX, INT_MIN Foreign.C.Types.CUInt, ubits, int, UINT_MAX, 0 Foreign.C.Types.CSize, ubits, int, UINTPTR_MAX, 0 Foreign.C.Types.CWchar, ubits32, int, 0x10FFFF, 0 Foreign.C.Types.CWint, sbits32, int, 0x10FFFF, 0 # not really right, need to find out actual minimum/maximum somehow Foreign.C.Types.CTime, ubits, float, 0xffffffffff, 0