+#include <bindings.dsl.h>
+#include <CoreServices/../Frameworks/CarbonCore.framework/Headers/MacTypes.h>
+
+module Bindings.CoreServices.CarbonCore.MacTypes where
+#strict_import
+
+#integral_t UInt8
+#integral_t SInt8
+#integral_t UInt16
+#integral_t SInt16
+#integral_t UInt32
+#integral_t SInt32
+
+#starttype struct wide
+# field hi, <SInt32>
+# field lo, <UInt32>
+#stoptype
+
+#starttype struct UnsignedWide
+# field hi, <UInt32>
+# field lo, <UInt32>
+#stoptype
+
+#if TYPE_LONGLONG
+# integral_t SInt64
+# integral_t UInt64
+#else
+# synonym_t SInt64, <wide>
+# synonym_t UInt64, <UnsignedWide>
+#endif
+
+#integral_t Fixed
+#synonym_t FixedPtr, Ptr <Fixed>
+#integral_t Fract
+#synonym_t FractPtr, Ptr <Fract>
+#integral_t UnsignedFixed
+#synonym_t UnsignedFixedPtr, Ptr <UnsignedFixed>
+#integral_t ShortFixed
+#synonym_t ShortFixedPtr, Ptr <ShortFixed>
+
+#synonym_t Float32, CFloat
+#synonym_t Float64, CDouble
+
+#starttype struct Float80
+# field exp, <SInt16>
+# array_field man, <UInt16>
+#stoptype
+
+#starttype struct Float96
+# array_field exp, <SInt16>
+# array_field man, <UInt16>
+#stoptype
+
+#starttype struct Float32Point
+# field x, <Float32>
+# field y, <Float32>
+#stoptype
+
+#synonym_t Ptr , Ptr CChar
+#synonym_t Handle, Ptr <Ptr>
+#integral_t Size
+
+#integral_t OSErr
+#integral_t OSStatus
+#synonym_t LogicalAddress , Ptr ()
+#synonym_t ConstLogicalAddress, Ptr ()
+#synonym_t PhysicalAddress , Ptr ()
+#synonym_t BytePtr , Ptr <UInt8>
+#integral_t ByteCount
+#integral_t ByteOffset
+#integral_t Duration
+#synonym_t AbsoluteTime, <UnsignedWide>
+#integral_t OptionBits
+#integral_t ItemCount
+#integral_t PBVersion
+#integral_t ScriptCode
+#integral_t LangCode
+#integral_t RegionCode
+#integral_t FourCharCode
+#integral_t OSType
+#integral_t ResType
+#synonym_t OSTypePtr , Ptr <OSType>
+#synonym_t ResTypePtr, Ptr <ResType>
+
+#integral_t Boolean
+
+#callback ProcPtr, IO CLong
+#callback Register68kProcPtr, IO ()
+
+#if TARGET_RT_MAC_CFM
+# error CFM Carbon is not supported.
+#else
+# synonym_t UniversalProcPtr , <ProcPtr>
+#endif
+
+#synonym_t ProcHandle , Ptr <ProcPtr>
+#synonym_t UniversalProcHandle, Ptr <UniversalProcPtr>
+
+#synonym_t PRefCon, Ptr ()
+
+#if __LP64__
+# synonym_t URefCon, Ptr ()
+# synonym_t SRefCon, Ptr ()
+#else
+# integral_t URefCon
+# integral_t SRefCon
+#endif
+
+#num noErr
+#num kNilOptions
+#num kInvalidID
+#num kVariableLengthArray
+#num kUnknownType
+
+#integral_t UnicodeScalarValue
+#integral_t UTF32Char
+#integral_t UniChar
+#integral_t UTF16Char
+#integral_t UTF8Char
+#synonym_t UniCharPtr, Ptr <UniChar>
+#integral_t UniCharCount
+#synonym_t UniCharCountPtr , Ptr <UniCharCount>
+#synonym_t Str255 , Ptr CUChar
+#synonym_t Str63 , Ptr CUChar
+#synonym_t Str32 , Ptr CUChar
+#synonym_t Str31 , Ptr CUChar
+#synonym_t Str27 , Ptr CUChar
+#synonym_t Str15 , Ptr CUChar
+#synonym_t Str32Field , Ptr CUChar
+#synonym_t StrFileName , <Str63>
+#synonym_t StringPtr , Ptr CUChar
+#synonym_t StringHandle , Ptr <StringPtr>
+#synonym_t ConstStringPtr , Ptr CUChar
+#synonym_t ConstStr255Param, Ptr CUChar
+#synonym_t ConstStr63Param , Ptr CUChar
+#synonym_t ConstStr32Param , Ptr CUChar
+#synonym_t ConstStr31Param , Ptr CUChar
+#synonym_t ConstStr27Param , Ptr CUChar
+#synonym_t ConstStr15Param , Ptr CUChar
+#synonym_t ConstStrFileNameParam, <ConstStr63Param>
+
+#cinline StrLength, <ConstStr255Param> -> IO CUChar
+
+#starttype struct ProcessSerialNumber
+# field highLongOfPSN, <UInt32>
+# field lowLongOfPSN , <UInt32>
+#stoptype
+#synonym_t ProcessSerialNumberPtr, Ptr <ProcessSerialNumber>
+
+#starttype struct Point
+# field v, CShort
+# field h, CShort
+#stoptype
+#synonym_t PointPtr, Ptr <Point>
+
+#starttype struct Rect
+# field top , CShort
+# field left , CShort
+# field bottom, CShort
+# field right , CShort
+#stoptype
+#synonym_t RectPtr, Ptr <Rect>
+
+#starttype struct FixedPoint
+# field x, <Fixed>
+# field y, <Fixed>
+#stoptype
+
+#starttype struct FixedRect
+# field top , <Fixed>
+# field left , <Fixed>
+# field bottom, <Fixed>
+# field right , <Fixed>
+#stoptype
+
+#integral_t CharParameter
+#num normal
+#num bold
+#num italic
+#num underline
+#num outline
+#num shadow
+#num condense
+#num extend
+
+#integral_t Style
+#integral_t StyleParameter
+#synonym_t StyleField, <Style>
+
+#synonym_t TimeValue , <SInt32>
+#synonym_t TimeScale , <SInt32>
+#synonym_t CompTimeValue, <wide>
+#synonym_t TimeValue64 , <SInt64>
+
+#opaque_t TimeBaseRecord
+#synonym_t TimeBase, Ptr <TimeBaseRecord>
+
+#starttype TimeRecord
+# field value, <CompTimeValue>
+# field scale, <TimeScale>
+# field base , <TimeBase>
+#stoptype
+
+#starttype struct NumVersion
+# field majorRev , <UInt8>
+# field minorAndBugRev, <UInt8>
+# field stage , <UInt8>
+# field nonRelRev , <UInt8>
+#stoptype
+
+#num developStage
+#num alphaStage
+#num betaStage
+#num finalStage
+
+#starttype union NumVersionVariant
+# union_field parts, <NumVersion>
+# union_field whole, <UInt32>
+#stoptype
+#synonym_t NumVersionVariantPtr , Ptr <NumVersionVariant>
+#synonym_t NumVersionVariantHandle, Ptr <NumVersionVariantPtr>
+
+#starttype struct VersRec
+# field numericVersion, <NumVersion>
+# field countryCode , CShort
+# field shortVersion , <Str255>
+# field reserved , <Str255>
+#stoptype
+#synonym_t VersRecPtr , Ptr <VersRec>
+#synonym_t VersRecHndl, Ptr <VersRecPtr>
+
+#synonym_t Byte , <UInt8>
+#synonym_t SignedByte , <SInt8>
+#synonym_t WidePtr , Ptr <wide>
+#synonym_t UnsignedWidePtr, Ptr <UnsignedWide>
+#synonym_t extended80 , <Float80>
+#synonym_t extended96 , <Float96>
+#synonym_t VHSelect , <SInt8>
+
+#ccall Debugger , IO ()
+#ccall DebugStr , <ConstStr255Param> -> IO ()
+#ccall SysBreak , IO ()
+#ccall SysBreakStr , <ConstStr255Param> -> IO ()
+#ccall SysBreakFunc, <ConstStr255Param> -> IO ()