]> git.saurik.com Git - cycript.git/blobdiff - Bridge.def
Progress on autoconf doom!
[cycript.git] / Bridge.def
index e6071ef6c5991ec854a0b4808e7944af7907bb40..b3792aa6a87e7b803677756e79585fe42efce8e5 100644 (file)
@@ -1,9 +1,35 @@
 C YES true
 C NO false
 C nil null
+C NULL null
 
 : applicationDidFinishLaunching: v12@0:4@8
 
+T id @
+
+T short s
+T int i
+T long l
+
+T byte C
+T uint I
+T ulong L
+T ushort S
+
+T char c
+T boolean B
+T float f
+T double d
+
+T Boolean B
+
+T SInt8 {char}
+T UInt8 {byte}
+T SInt16 {short}
+T UInt16 {ushort}
+T SInt32 {int}
+T UInt32 {uint}
+
 S CGPoint "x"f"y"f
 S CGRect "origin"{CGPoint}"size"{CGSize}
 S CGSize "width"f"height"f
@@ -12,6 +38,9 @@ l c
 
 S nlist_64 "_un"(?="n_strx"I)"n_type"C"n_sect"C"n_desc"S"n_value"Q
 
+F malloc ^vL
+F free v^v
+
 l objc
 
 F class_addIvar B#*LC*
@@ -107,12 +136,15 @@ C UIBarStyleDefault 0
 C UIBarStyleBlack 1
 C UIBarStyleBlackOpaque 2
 C UIBarStyleBlackTranslucent 3
+T UIBarStyle i
 
 C UIDataDetectorTypePhoneNumber (1<<0)
 C UIDataDetectorTypeLink (1<<1)
 C UIDataDetectorTypeNone 0
-# XXX: NSUIntegerMax
 C UIDataDetectorTypeAll -1
+T UIDataDetectorTypes {NSUInteger}
+
+S UIEdgeInsets "top"{CGFloat}"left"{CGFloat}"bottom"{CGFloat}"right"{CGFloat}
 
 # UINavigationBar
 
@@ -173,7 +205,7 @@ C UITableViewRowAnimationFade 0
 C UITableViewRowAnimationRight 1
 C UITableViewRowAnimationLeft 2
 C UITableViewRowAnimationTop 3
-C UITableViewRowAnimationTop 4
+C UITableViewRowAnimationBottom 4
 C UITableViewRowAnimationNone 5
 
 V UITableViewIndexSearch @
@@ -308,29 +340,29 @@ F UIVideoAtPathIsCompatibleWithSavedPhotosAlbum B@
 F UIGraphicsGetCurrentContext @
 F UIGraphicsPushContext v@
 F UIGraphicsPopContext v
-F UIGraphicsBeginImageContext v{CGSize=ff}
+F UIGraphicsBeginImageContext v{CGSize}
 F UIGraphicsGetImageFromCurrentImageContext @
 F UIGraphicsEndImageContext v
-F UIRectClip v{CGRect={CGPoint=ff}{CGSize=ff}}
-F UIRectFill v{CGRect={CGPoint=ff}{CGSize=ff}}
-F UIRectFillUsingBlendMode v{CGRect={CGPoint=ff}{CGSize=ff}}i
-F UIRectFrame v{CGRect={CGPoint=ff}{CGSize=ff}}
-F UIRectFrameUsingBlendMode v{CGRect={CGPoint=ff}{CGSize=ff}}i
-
-F CGPointFromString {CGPoint=ff}@
-F CGRectFromString  {CGRect={CGPoint=ff}{CGSize=ff}}@
-F CGSizeFromString {CGSize=ff}@
-F CGAffineTransformFromString {CGAffineTransform=ffffff}@
+F UIRectClip v{CGRect}
+F UIRectFill v{CGRect}
+F UIRectFillUsingBlendMode v{CGRect}{CGBlendMode}
+F UIRectFrame v{CGRect}
+F UIRectFrameUsingBlendMode v{CGRect}{CGBlendMode}
+
+F CGPointFromString {CGPoint}@
+F CGRectFromString  {CGRect}@
+F CGSizeFromString {CGSize}@
+F CGAffineTransformFromString {CGAffineTransform}@
 F UIEdgeInsetsFromString {UIEdgeInsets=ffff}@
-F NSStringFromCGPoint @{CGPoint=ff}
-F NSStringFromCGRect @{CGRect={CGPoint=ff}{CGSize=ff}}
-F NSStringFromCGSize @{CGSize=ff}
-F NSStringFromCGAffineTransform @{CGAffineTransform=ffffff}
+F NSStringFromCGPoint @{CGPoint}
+F NSStringFromCGRect @{CGRect}
+F NSStringFromCGSize @{CGSize}
+F NSStringFromCGAffineTransform @{CGAffineTransform}
 F NSStringFromUIEdgeInsets @{UIEdgeInsets=ffff}
 
 F UIEdgeInsetsMake {UIEdgeInsets=ffff}ffff
 F UIEdgeInsetsEqualToEdgeInsets B{UIEdgeInsets=ffff}{UIEdgeInsets=ffff}
-F UIEdgeInsetsInsetRect {CGRect={CGPoint=ff}{CGSize=ff}}{CGRect={CGPoint=ff}{CGSize=ff}}{UIEdgeInsets=ffff}
+F UIEdgeInsetsInsetRect {CGRect}{CGRect}{UIEdgeInsets=ffff}
 
 # XXX: UIInterfaceOrientationIsPortrait
 # XXX: UIInterfaceOrientationIsLandscape
@@ -343,6 +375,29 @@ F UIAccessibilityPostNotification vI@
 
 # Miscellaneous
 
+F UIGetScreenImage @
+
+V UIAbbreviatedMonthDayFormat @
+V UIAbbreviatedWeekdayDateFormat @
+V UIAbbreviatedWeekdayFormat @
+V UIAbbreviatedWeekdayMonthDayFormat @
+V UIAbbreviatedWeekdayMonthDayMinutelessFormat @
+V UIAbbreviatedWeekdayMonthDayTimeFormat @
+V UIDatePickerDayFormat @
+V UIDatePickerMonthFormat @
+V UIDatePickerYearFormat @
+V UIHourFormat @
+V UIMinutelessTimeFormat @
+V UIMonthYearFormat @
+V UINoAMPMTimeFormat @
+V UIShortMonthDayFormat @
+V UIWeekdayAbbreviatedDateFormat @
+V UIWeekdayAbbreviatedNoYearDateFormat @
+V UIWeekdayFormat @
+V UIWeekdayNoYearDateFormat @
+
+F UIDateFormatStringForFormatType @@
+
 F UIApplicationUseLegacyEvents vB
 
 F UIKeyboardDisableAutomaticAppearance v
@@ -369,11 +424,6 @@ V kUIButtonBarButtonTitleVerticalHeight @
 V kUIButtonBarButtonTitleWidth @
 V kUIButtonBarButtonType @
 
-V UIKeyboardAnimationCurveUserInfoKey @
-V UIKeyboardAnimationDurationUserInfoKey @
-V UIKeyboardBoundsUserInfoKey @
-V UIKeyboardCenterBeginUserInfoKey @
-V UIKeyboardCenterEndUserInfoKey @
 V UIKeyboardRequiresInternationalKey @
 
 V UIKeyboardCandidateCorrectionDidChangeNotification @
@@ -393,6 +443,17 @@ V UIWebViewScalesToFitScale f
 
 f AddressBook
 
+# Private
+
+F CPPhoneNumberCopyNetworkCountryCode @
+F ABCGetSharedAddressBook @
+F ABCFindPersonMatchingPhoneNumberWithCountry @@@@^i^i
+F ABCRecordCopyCompositeName @@
+F ABCFindPersonMatchingPhoneNumber @@@^i^i
+F ABCCopyLocalizedPropertyOrLabel @i
+
+# Public
+
 F ABAddressBookAddRecord B@@^@
 F ABAddressBookCopyArrayOfAllGroups @@
 F ABAddressBookCopyArrayOfAllPeople @@
@@ -555,6 +616,35 @@ V kABWorkLabel @
 V kABHomeLabel @
 V kABOtherLabel @
 
+f Calendar
+
+F CalDatabaseCopyEventOccurrencesInDateRange {CFArrayRef}^{CalDatabase}^{CalFilter}{CFGregorianDate}{CFGregorianDate}{CFTimeZoneRef}
+F CalFilterCreateWithDatabase ^{CalFilter}^{CalDatabase}
+
+F CalEventOccurrenceGetEvent @@
+F CalEventCopySummary @@
+F CalEventOccurrenceGetDate I@
+
+f CoreAnimation
+
+S CATransform3D "m11"{CGFloat}"m12"{CGFloat}"m13"{CGFloat}"m14"{CGFloat}"m21"{CGFloat}"m22"{CGFloat}"m23"{CGFloat}"m24"{CGFloat}"m31"{CGFloat}"m32"{CGFloat}"m33"{CGFloat}"m34"{CGFloat}"m41"{CGFloat}"m42"{CGFloat}"m43"{CGFloat}"m44"{CGFloat}
+
+F CACurrentMediaTime {CFTimeInterval}
+
+F CATransform3DIsIdentity B{CATransform3D}
+F CATransform3DEqualToTransform B{CATransform3D}{CATransform3D}
+F CATransform3DMakeTranslation {CATransform3D}{CGFloat}{CGFloat}{CGFloat}
+F CATransform3DMakeScale {CATransform3D}{CGFloat}{CGFloat}{CGFloat}
+F CATransform3DMakeRotation {CATransform3D}{CGFloat}{CGFloat}{CGFloat}{CGFloat}
+F CATransform3DTranslate {CATransform3D}{CATransform3D}{CGFloat}{CGFloat}{CGFloat}
+F CATransform3DScale {CATransform3D}{CATransform3D}{CGFloat}{CGFloat}{CGFloat}
+F CATransform3DRotate {CATransform3D}{CATransform3D}{CGFloat}{CGFloat}{CGFloat}{CGFloat}
+F CATransform3DConcat {CATransform3D}{CATransform3D}{CATransform3D}
+F CATransform3DInvert {CATransform3D}{CATransform3D}
+F CATransform3DMakeAffineTransform {CATransform3D}{CGAffineTransform}
+F CATransform3DIsAffine B{CATransform3D}
+F CATransform3DGetAffineTransform {CGAffineTransform}{CATransform3D}
+
 f CoreData
 
 C NSUndefinedAttributeType 0
@@ -583,7 +673,7 @@ V NSMigrationSourceObjectKey @
 V NSMigrationDestinationObjectKey @
 V NSMigrationEntityMappingKey @
 V NSMigrationPropertyMappingKey @
-V NSMigrationPropertyMappingKey @
+V NSMigrationEntityPolicyKey @
 
 C NSManagedObjectResultType 0x00
 C NSManagedObjectIDResultType 0x01
@@ -709,45 +799,540 @@ C NSCoreDataVersionNumber10_5_3 186.0
 
 f CoreFoundation
 
-# XXX: incomplete by any stretch of the imagination
+# Base Utilities
+
+F CFRangeMake {CFRange}{CFIndex}{CFIndex}
+
+# Time Utilities
+
+F CFAbsoluteTimeAddGregorianUnits {CFAbsoluteTime}{CFAbsoluteTime}{CFTimeZoneRef}{CFGregorianUnits}
+F CFAbsoluteTimeGetCurrent {CFAbsoluteTime}
+F CFAbsoluteTimeGetDayOfWeek {SInt32}{CFAbsoluteTime}{CFTimeZoneRef}
+F CFAbsoluteTimeGetDayOfYear {SInt32}{CFAbsoluteTime}{CFTimeZoneRef}
+F CFAbsoluteTimeGetDifferenceAsGregorianUnits {CFGregorianUnits}{CFAbsoluteTime}{CFAbsoluteTime}{CFTimeZoneRef}{CFOptionFlags}
+F CFAbsoluteTimeGetGregorianDate {CFGregorianDate}{CFAbsoluteTime}{CFTimeZoneRef}
+F CFAbsoluteTimeGetWeekOfYear {SInt32}{CFAbsoluteTime}{CFTimeZoneRef}
+F CFGregorianDateGetAbsoluteTime {CFAbsoluteTime}{CFGregorianDate}{CFTimeZoneRef}
+F CFGregorianDateIsValid {Boolean}{CFGregorianDate}{CFOptionFlags}
+
+T CFAbsoluteTime {CFTimeInterval}
+S CFGregorianDate "year"{SInt32}"month"{SInt8}"day"{SInt8}"hour"{SInt8}"minute"{SInt8}"second"{double}
+S CFGregorianUnits "years"{SInt32}"months"{SInt32}"days"{SInt32}"hours"{SInt32}"minutes"{SInt32}"second"{double}
+T CFTimeInterval {double}
+
+C kCFGregorianUnitsYears 1<<0
+C kCFGregorianUnitsMonths 1<<1
+C kCFGregorianUnitsDays 1<<2
+C kCFGregorianUnitsHours 1<<3
+C kCFGregorianUnitsMinutes 1<<4
+C kCFGregorianUnitsSeconds 1<<5
+C kCFGregorianAllUnits 0x00FFFFFF
+
+V kCFAbsoluteTimeIntervalSince1970 {CFTimeInterval}
+V kCFAbsoluteTimeIntervalSince1904 {CFTimeInterval}
+
+# CFComparatorFunction
+
+T CFIndex l
+T CFOptionFlags {UInt32}
+S CFRange "location"{CFIndex}"length"{CFIndex}
+
+E CFComparisonResult
+C kCFCompareLessThan -1
+C kCFCompareEqualTo 0
+C kCFCompareGreaterThan 1
+# CFComparisonResult CFComparisonResult
+
+C kCFNotFound -1
+
+V kCFCoreFoundationVersionNumber d
+
+C kCFCoreFoundationVersionNumber10_0 196.40
+C kCFCoreFoundationVersionNumber10_0_3 196.50
+C kCFCoreFoundationVersionNumber10_1 226.00
+C kCFCoreFoundationVersionNumber10_1_1 226.00
+C kCFCoreFoundationVersionNumber10_1_2 227.20
+C kCFCoreFoundationVersionNumber10_1_3 227.20
+C kCFCoreFoundationVersionNumber10_1_4 227.30
+C kCFCoreFoundationVersionNumber10_2 263.00
+C kCFCoreFoundationVersionNumber10_2_1 263.10
+C kCFCoreFoundationVersionNumber10_2_2 263.10
+C kCFCoreFoundationVersionNumber10_2_3 263.30
+C kCFCoreFoundationVersionNumber10_2_4 263.30
+C kCFCoreFoundationVersionNumber10_2_5 263.50
+C kCFCoreFoundationVersionNumber10_2_6 263.50
+C kCFCoreFoundationVersionNumber10_2_7 263.50
+C kCFCoreFoundationVersionNumber10_2_8 263.50
+C kCFCoreFoundationVersionNumber10_3 299.00
+C kCFCoreFoundationVersionNumber10_3_1 299.00
+C kCFCoreFoundationVersionNumber10_3_2 299.00
+C kCFCoreFoundationVersionNumber10_3_3 299.30
+C kCFCoreFoundationVersionNumber10_3_4 299.31
+C kCFCoreFoundationVersionNumber10_3_5 299.31
+C kCFCoreFoundationVersionNumber10_3_6 299.32
+C kCFCoreFoundationVersionNumber10_3_7 299.33
+C kCFCoreFoundationVersionNumber10_3_8 299.33
+C kCFCoreFoundationVersionNumber10_3_9 299.35
+C kCFCoreFoundationVersionNumber10_4 368.00
+C kCFCoreFoundationVersionNumber10_4_1 368.10
+C kCFCoreFoundationVersionNumber10_4_2 368.11
+C kCFCoreFoundationVersionNumber10_4_3 368.18
+C kCFCoreFoundationVersionNumber10_4_4_Intel 368.26
+C kCFCoreFoundationVersionNumber10_4_4_PowerPC 368.25
+C kCFCoreFoundationVersionNumber10_4_5_Intel 368.26
+C kCFCoreFoundationVersionNumber10_4_5_PowerPC 368.25
+C kCFCoreFoundationVersionNumber10_4_6_Intel 368.26
+C kCFCoreFoundationVersionNumber10_4_6_PowerPC 368.25
+C kCFCoreFoundationVersionNumber10_4_7 368.27
+C kCFCoreFoundationVersionNumber10_4_8 368.27
+C kCFCoreFoundationVersionNumber10_4_9 368.28
+C kCFCoreFoundationVersionNumber10_4_10 368.28
+C kCFCoreFoundationVersionNumber10_4_11 368.31
+C kCFCoreFoundationVersionNumber10_5 476.00
+C kCFCoreFoundationVersionNumber10_5_1 476.00
+C kCFCoreFoundationVersionNumber10_5_2 476.10
+C kCFCoreFoundationVersionNumber10_5_3 476.13
+C kCFCoreFoundationVersionNumber10_5_4 476.14
+C kCFCoreFoundationVersionNumber10_5_5 476.15
+C kCFCoreFoundationVersionNumber10_5_6 476.17
+
+# CFAllocator
+
+F CFAllocatorCreate {CFAllocatorRef}{CFAllocatorRef}{CFAllocatorContext}
+
+F CFAllocatorAllocate ^v{CFAllocatorRef}{CFIndex}{CFOptionFlags}
+F CFAllocatorDeallocate v{CFAllocatorRef}^v
+F CFAllocatorGetPreferredSizeForSize {CFIndex}{CFAllocatorRef}{CFIndex}{CFOptionFlags}
+F CFAllocatorReallocate ^v{CFAllocatorRef}^v{CFIndex}{CFOptionFlags}
+
+F CFAllocatorGetDefault {CFAllocatorRef}
+f CFAllocatorSetDefault v{CFAllocatorRef}
+
+F CFAllocatorGetContext v{CFAllocatorRef}^{CFAllocatorContext}
+
+F CFAllocatorGetTypeID {CFTypeID}
+
+# CFAllocatorAllocateCallBack
+# CFAllocatorCopyDescriptionCallBack
+# CFAllocatorDeallocateCallBack
+# CFAllocatorPreferredSizeCallBack
+# CFAllocatorReallocateCallBack
+# CFAllocatorReleaseCallBack
+# CFAllocatorRetainCallBack
+
+S CFAllocatorContext "version"{CFIndex}"info"^v"retain"{CFAllocatorRetainCallBack}"release"{CFAllocatorReleaseCallBack}"copyDescription"{CFAllocatorCopyDescriptionCallBack}"allocate"{CFAllocatorAllocateCallBack}"reallocate"{CFAllocatorReallocateCallBack}"deallocate"{CFAllocatorDeallocateCallBack}"preferredSize"{CFAllocatorPreferredSizeCallBack}
+# CFAllocatorContext CFAllocatorContext
+
+T CFAllocatorRef @
+# CFAllocatorRef ^r{__CFAllocator}
+
+V kCFAllocatorDefault {CFAllocatorRef}
+V kCFAllocatorSystemDefault {CFAllocatorRef}
+V kCFAllocatorMalloc {CFAllocatorRef}
+V kCFAllocatorMallocZone {CFAllocatorRef}
+V kCFAllocatorNull {CFAllocatorRef}
+V kCFAllocatorUseContext {CFAllocatorRef}
+
+# CFByteOrderUtils
+
+E __CFByteOrder
+C CFByteOrderUnknown 0
+C CFByteOrderLittleEndian 1
+C CFByteOrderBigEndian 2
+T CFByteOrder __CFByteOrder
+
+# CFArray
+
+T CFArrayRef @
+
+# CFData
+
+F CFDataCreate {CFDataRef}{CFAllocatorRef}^r{UInt8}{CFIndex}
+F CFDataCreateCopy {CFDataRef}{CFAllocatorRef}{CFDataRef}
+F CFDataCreateWithBytesNoCopy {CFDataRef}{CFAllocatorRef}^r{UInt8}{CFIndex}{CFAllocatorRef}
+
+F CFDataGetBytePtr ^r{UInt8}{CFDataRef}
+F CFDataGetBytes v{CFDataRef}{CFRange}^{UInt8}
+F CFDataGetLength {CFIndex}{CFDataRef}
+
+F CFDataGetTypeID {CFTypeID}
+
+T CFDataRef @
+# CFDataRef ^r{__CFData}
+
+# CFDate
+
+F CFDateCompare {CFComparisonResult}{CFDateRef}{CFDateRef}^v
+F CFDateCreate {CFDateRef}{CFAllocatorRef}{CFAbsoluteTime}
+F CFDateGetAbsoluteTime {CFAbsoluteTime}{CFDateRef}
+F CFDateGetTimeIntervalSinceDate {CFTimeInterval}{CFDateRef}{CFDateRef}
+F CFDateGetTypeID {CFTypeID}
+
+T CFDateRef @
+# CFDateRef ^r{__CFDate}
+
+# CFDateFormatter
+
+F CFDateFormatterCreate {CFDateFormatterRef}{CFAllocatorRef}{CFLocaleRef}{CFDateFormatterStyle}{CFDateFormatterStyle}
+
+F CFDateFormatterSetFormat v{CFDateFormatterRef}{CFStringRef}
+F CFDateFormatterSetProperty v{CFDateFormatterRef}{CFStringRef}{CFTypeRef}
+
+F CFDateFormatterCreateDateFromString {CFDateRef}{CFAllocatorRef}{CFDateFormatterRef}{CFStringRef}^{CFRange}
+F CFDateFormatterGetAbsoluteTimeFromString {Boolean}{CFDateFormatterRef}{CFStringRef}^{CFRange}^{CFAbsoluteTime}
+
+F CFDateFormatterCreateStringWithAbsoluteTime {CFStringRef}{CFAllocatorRef}{CFDateFormatterRef}{CFAbsoluteTime}
+F CFDateFormatterCreateStringWithDate {CFStringRef}{CFAllocatorRef}{CFDateFormatterRef}{CFDateRef}
+F CFDateFormatterCreateDateFormatFromTemplate {CFStringRef}{CFAllocatorRef}{CFStringRef}{CFOptionFlags}{CFLocaleRef}
+
+F CFDateFormatterCopyProperty {CFTypeRef}{CFDateFormatterRef}{CFStringRef}
+F CFDateFormatterGetDateStyle {CFDateFormatterStyle}{CFDateFormatterRef}
+F CFDateFormatterGetFormat {CFStringRef}{CFDateFormatterRef}
+F CFDateFormatterGetLocale {CFLocaleRef}{CFDateFormatterRef}
+F CFDateFormatterGetTimeStyle {CFDateFormatterStyle}{CFDateFormatterRef}
+
+F CFDateFormatterGetTypeID {CFTypeID}
+
+T CFDateFormatterRef @
+# CFDateFormatterRef ^r{__CFDateFormatter}
+
+T CFDateFormatterStyle {CFIndex}
+
+C kCFDateFormatterNoStyle 0
+C kCFDateFormatterShortStyle 1
+C kCFDateFormatterMediumStyle 2
+C kCFDateFormatterLongStyle 3
+C kCFDateFormatterFullStyle 4
+
+V kCFDateFormatterIsLenient @
+V kCFDateFormatterTimeZone @
+V kCFDateFormatterCalendarName @
+V kCFDateFormatterDefaultFormat @
+   
+V kCFDateFormatterTwoDigitStartDate @
+V kCFDateFormatterDefaultDate @
+V kCFDateFormatterCalendar @
+V kCFDateFormatterEraSymbols @
+V kCFDateFormatterMonthSymbols @
+V kCFDateFormatterShortMonthSymbols @
+V kCFDateFormatterWeekdaySymbols @
+V kCFDateFormatterShortWeekdaySymbols @
+V kCFDateFormatterAMSymbol @
+V kCFDateFormatterPMSymbol @
+   
+V kCFDateFormatterLongEraSymbols @
+V kCFDateFormatterVeryShortMonthSymbols @
+V kCFDateFormatterStandaloneMonthSymbols @
+V kCFDateFormatterShortStandaloneMonthSymbols @
+V kCFDateFormatterVeryShortStandaloneMonthSymbols @
+V kCFDateFormatterVeryShortWeekdaySymbols @
+V kCFDateFormatterStandaloneWeekdaySymbols @
+V kCFDateFormatterShortStandaloneWeekdaySymbols @
+V kCFDateFormatterVeryShortStandaloneWeekdaySymbols @
+V kCFDateFormatterQuarterSymbols @
+V kCFDateFormatterShortQuarterSymbols @
+V kCFDateFormatterStandaloneQuarterSymbols @
+V kCFDateFormatterShortStandaloneQuarterSymbols @
+V kCFDateFormatterGregorianStartDate @
+
+V CFGregorianCalendar @
+
+# CFLocale
+
+F CFLocaleCopyCurrent {CFLocaleRef}
+F CFLocaleCreate {CFLocaleRef}{CFAllocatorRef}{CFStringRef}
+F CFLocaleCreateCopy {CFLocaleRef}{CFAllocatorRef}{CFLocaleRef}
+F CFLocaleGetSystem {CFLocaleRef}
+
+F CFLocaleCopyAvailableLocaleIdentifiers {CFArrayRef}
+
+F CFLocaleCopyISOCountryCodes {CFArrayRef}
+F CFLocaleCopyISOLanguageCodes {CFArrayRef}
+F CFLocaleCopyISOCurrencyCodes {CFArrayRef}
+F CFLocaleCopyCommonISOCurrencyCodes {CFArrayRef}
+
+F CFLocaleCopyPreferredLanguages {CFArrayRef}
+
+F CFLocaleCopyDisplayNameForPropertyValue {CFStringRef}{CFLocaleRef}{CFStringRef}{CFStringRef}
+F CFLocaleGetValue {CFTypeRef}{CFLocaleRef}{CFStringRef}
+F CFLocaleGetIdentifier {CFStringRef}{CFLocaleRef}
+
+F CFLocaleCreateCanonicalLocaleIdentifierFromScriptManagerCodes {CFStringRef}{CFAllocatorRef}{LangCode}{RegionCode}
+F CFLocaleCreateCanonicalLanguageIdentifierFromString {CFStringRef}{CFAllocatorRef}{CFStringRef}
+F CFLocaleCreateCanonicalLocaleIdentifierFromString {CFStringRef}{CFAllocatorRef}{CFStringRef}
+F CFLocaleCreateComponentsFromLocaleIdentifier {CFDictionaryRef}{CFAllocatorRef}{CFStringRef}
+F CFLocaleCreateLocaleIdentifierFromComponents {CFStringRef}{CFAllocatorRef}{CFDictionaryRef}
+
+F CFLocaleGetTypeID {CFTypeID}
+
+F CFLocaleCreateLocaleIdentifierFromWindowsLocaleCode {CFStringRef}{CFAllocatorRef}{uint32_t}
+F CFLocaleGetLanguageCharacterDirection {CFLocaleLanguageDirection}{CFStringRef}
+F CFLocaleGetLanguageLineDirection {CFLocaleLanguageDirection}{CFStringRef}
+F CFLocaleGetWindowsLocaleCodeFromLocaleIdentifier {uint32_t}{CFStringRef}
+
+T CFLocaleRef @
+# CFLocaleRef ^r{__CFLocale}
+
+C kCFLocaleLanguageDirectionUnknown 0
+C kCFLocaleLanguageDirectionLeftToRight 1
+C kCFLocaleLanguageDirectionRightToLeft 2
+C kCFLocaleLanguageDirectionTopToBottom 3
+C kCFLocaleLanguageDirectionBottomToTop 4
+
+T CFLocaleLanguageDirection {CFIndex}
+
+V kCFLocaleMeasurementSystem @
+V kCFLocaleDecimalSeparator @
+V kCFLocaleGroupingSeparator @
+V kCFLocaleCurrencySymbol @
+V kCFLocaleCurrencyCode @
+
+V kCFLocaleIdentifier @
+V kCFLocaleLanguageCode @
+V kCFLocaleCountryCode @
+V kCFLocaleScriptCode @
+V kCFLocaleVariantCode @
+V kCFLocaleExemplarCharacterSet @
+V kCFLocaleCalendarIdentifier @
+V kCFLocaleCalendar @
+V kCFLocaleCollationIdentifier @
+V kCFLocaleUsesMetricSystem @
+
+V kCFGregorianCalendar @
+V kCFBuddhistCalendar @
+V kCFChineseCalendar @
+V kCFHebrewCalendar @
+V kCFIslamicCalendar @
+V kCFIslamicCivilCalendar @
+V kCFJapaneseCalendar @
+V kCFRepublicOfChinaCalendar @
+V kCFPersianCalendar @
+V kCFIndianCalendar @
+V kCFISO8601Calendar @
+
+V kCFLocaleCurrentLocaleDidChangeNotificatio @
+
+# CFRunLoop
+
+F CFRunLoopGetCurrent {CFRunLoopRef}
+F CFRunLoopGetMain {CFRunLoopRef}
+
+F CFRunLoopRun v
+F CFRunLoopRunInMode {SInt32}{CFStringRef}{CFTimeInterval}{Boolean}
+F CFRunLoopWakeUp v{CFRunLoopRef}
+F CFRunLoopStop v{CFRunLoopRef}
+F CFRunLoopIsWaiting {Boolean}{CFRunLoopRef}
 
-F CFShow v@
-F CFShowStr v@
+F CFRunLoopAddSource v{CFRunLoopRef}{CFRunLoopSourceRef}{CFStringRef}
+F CFRunLoopContainsSource {Boolean}{CFRunLoopRef}{CFRunLoopSourceRef}{CFStringRef}
+F CFRunLoopRemoveSource v{CFRunLoopRef}{CFRunLoopSourceRef}{CFStringRef}
 
-f CoreGraphics
+F CFRunLoopAddObserver v{CFRunLoopRef}{CFRunLoopObserverRef}{CFStringRef}
+F CFRunLoopContainsObserver {Boolean}{CFRunLoopRef}{CFRunLoopObserverRef}{CFStringRef}
+F CFRunLoopRemoveObserver v{CFRunLoopRef}{CFRunLoopObserverRef}{CFStringRef}
 
-# CGAffineTransform
+F CFRunLoopAddCommonMode v{CFRunLoopRef}{CFStringRef}
+F CFRunLoopCopyAllModes {CFArrayRef}{CFRunLoopRef}
+F CFRunLoopCopyCurrentMode {CFStringRef}{CFRunLoopRef}
+
+F CFRunLoopAddTimer v{CFRunLoopRef}{CFRunLoopTimerRef}{CFStringRef}
+F CFRunLoopGetNextTimerFireDate {CFAbsoluteTime}{CFRunLoopRef}{CFStringRef}
+F CFRunLoopRemoveTimer v{CFRunLoopRef}{CFRunLoopTimerRef}{CFStringRef}
+F CFRunLoopContainsTimer {Boolean}{CFRunLoopRef}{CFRunLoopTimerRef}{CFStringRef}
+
+# F CFRunLoopPerformBlock
+
+F CFRunLoopGetTypeID {CFTypeID}
+
+T CFRunLoopRef @
+
+C kCFRunLoopRunFinished 1
+C kCFRunLoopRunStopped 2
+C kCFRunLoopRunTimedOut 3
+C kCFRunLoopRunHandledSource 4
+
+V kCFRunLoopCommonModes {CFStringRef}
+V kCFRunLoopDefaultMode {CFStringRef}
+
+# CFRunLoopTimer
+
+T CFRunLoopTimerRef @
+
+# CFString
+
+T CFStringRef @
+
+# CFTimeZone
+
+F CFTimeZoneCreateWithName {CFTimeZoneRef}{CFAllocatorRef}{CFStringRef}{Boolean}
+F CFTimeZoneCreateWithTimeIntervalFromGMT {CFTimeZoneRef}{CFAllocatorRef}{CFTimeInterval}
+F CFTimeZoneCreate {CFTimeZoneRef}{CFAllocatorRef}{CFStringRef}{CFDataRef}
 
-F CGAffineTransformMake {CGAffineTransform=ffffff}ffffff
-F CGAffineTransformMakeRotation {CGAffineTransform=ffffff}f
-F CGAffineTransformMakeScale {CGAffineTransform=ffffff}ff
-F CGAffineTransformMakeTranslation {CGAffineTransform=ffffff}ff
+F CFTimeZoneCopyAbbreviationDictionary {CFDictionaryRef}
+F CFTimeZoneCopyAbbreviation {CFStringRef}{CFTimeZoneRef}{CFAbsoluteTime}
+F CFTimeZoneCopyDefault {CFTimeZoneRef}
+F CFTimeZoneCopySystem {CFTimeZoneRef}
+F CFTimeZoneSetDefault v{CFTimeZoneRef}
+F CFTimeZoneCopyKnownNames {CFArrayRef}
+F CFTimeZoneResetSystem v
+F CFTimeZoneSetAbbreviationDictionary v{CFDictionaryRef}
 
-F CGAffineTransformTranslate {CGAffineTransform=ffffff}{CGAffineTransform=ffffff}ff
-F CGAffineTransformScale {CGAffineTransform=ffffff}{CGAffineTransform=ffffff}ff
-F CGAffineTransformRotate {CGAffineTransform=ffffff}{CGAffineTransform=ffffff}f
-F CGAffineTransformInvert {CGAffineTransform=ffffff}{CGAffineTransform=ffffff}
-F CGAffineTransformConcat {CGAffineTransform=ffffff}{CGAffineTransform=ffffff}{CGAffineTransform=ffffff}
+F CFTimeZoneGetName {CFStringRef}{CFTimeZoneRef}
+F CFTimeZoneCopyLocalizedName {CFStringRef}{CFTimeZoneRef}{CFTimeZoneNameStyle}{CFLocaleRef}
+F CFTimeZoneGetSecondsFromGMT {CFTimeInterval}{CFTimeZoneRef}{CFAbsoluteTime}
+F CFTimeZoneGetData {CFDataRef}{CFTimeZoneRef}
 
-F CGPointApplyAffineTransform {CGPoint=ff}{CGPoint=ff}{CGAffineTransform=ffffff}
-F CGSizeApplyAffineTransform {CGSize=ff}{CGSize=ff}{CGAffineTransform=ffffff}
-F CGRectApplyAffineTransform {CGRect={CGPoint=ff}{CGSize=ff}}{CGRect={CGPoint=ff}{CGSize=ff}}{CGAffineTransform=ffffff}
+F CFTimeZoneIsDaylightSavingTime {Boolean}{CFTimeZoneRef}{CFAbsoluteTime}
+F CFTimeZoneGetDaylightSavingTimeOffset {CFTimeInterval}{CFTimeZoneRef}{CFAbsoluteTime}
+F CFTimeZoneGetNextDaylightSavingTimeTransition {CFAbsoluteTime}{CFTimeZoneRef}{CFAbsoluteTime}
 
-F CGAffineTransformIsIdentity B{CGAffineTransform=ffffff}
-F CGAffineTransformEqualToTransform B{CGAffineTransform=ffffff}{CGAffineTransform=ffffff}
+F CFTimeZoneGetTypeID {CFTypeID}
 
-S CGAffineTransform "a"f"b"f"c"f"d"f"tx"f"ty"f
+T CFTimeZoneNameStyle {CFIndex}
+T CFTimeZoneRef @
+# CFTimeZoneRef ^r{__CFTimeZoneRef}
 
-V CGAffineTransformIdentity {CGAffineTransform=ffffff}
+V kCFTimeZoneSystemTimeZoneDidChangeNotification {CFStringRef}
+
+C kCFTimeZoneNameStyleStandard 0
+C kCFTimeZoneNameStyleShortStandard 1
+C kCFTimeZoneNameStyleDaylightSaving 2
+C kCFTimeZoneNameStyleShortDaylightSaving 3
+
+# CFType
+
+F CFGetAllocator {CFAllocatorRef}{CFTypeRef}
+F CFGetRetainCount {CFIndex}{CFTypeRef}
+F CFMakeCollectable {CFTypeRef}{CFTypeRef}
+F CFRelease v{CFTypeRef}
+F CFRetain {CFTypeRef}{CFTypeRef}
+
+F CFEqual 
+
+F CFHash {CFHashCode}{CFTypeRef}
+
+F CFGetTypeID {CFTypeID}{CFTypeRef}
+F CFShow v{CFTypeRef}
+
+T CFHashCode L
+T CFTypeID L
+
+T CFTypeRef @
+# CFTypeRef ^rv
+
+# Private
+
+F CFShowStr v@
+
+f CoreGraphics
+
+T CGFloat f
+
+# CGAffineTransform
+
+F CGAffineTransformMake {CGAffineTransform}{CGFloat}{CGFloat}{CGFloat}{CGFloat}{CGFloat}{CGFloat}
+F CGAffineTransformMakeRotation {CGAffineTransform}{CGFloat}
+F CGAffineTransformMakeScale {CGAffineTransform}{CGFloat}{CGFloat}
+F CGAffineTransformMakeTranslation {CGAffineTransform}{CGFloat}{CGFloat}
+
+F CGAffineTransformTranslate {CGAffineTransform}{CGAffineTransform}{CGFloat}{CGFloat}
+F CGAffineTransformScale {CGAffineTransform}{CGAffineTransform}{CGFloat}{CGFloat}
+F CGAffineTransformRotate {CGAffineTransform}{CGAffineTransform}{CGFloat}
+F CGAffineTransformInvert {CGAffineTransform}{CGAffineTransform}
+F CGAffineTransformConcat {CGAffineTransform}{CGAffineTransform}{CGAffineTransform}
+
+F CGPointApplyAffineTransform {CGPoint}{CGPoint}{CGAffineTransform}
+F CGSizeApplyAffineTransform {CGSize}{CGSize}{CGAffineTransform}
+F CGRectApplyAffineTransform {CGRect}{CGRect}{CGAffineTransform}
+
+F CGAffineTransformIsIdentity B{CGAffineTransform}
+F CGAffineTransformEqualToTransform B{CGAffineTransform}{CGAffineTransform}
+
+S CGAffineTransform "a"{CGFloat}"b"{CGFloat}"c"{CGFloat}"d"{CGFloat}"tx"{CGFloat}"ty"{CGFloat}
+
+V CGAffineTransformIdentity {CGAffineTransform}
+
+# CGContext
+
+T CGContextRef ^{CGContext}
+
+E CGBlendMode
+C kCGBlendModeNormal 0
+C kCGBlendModeMultiply 1
+C kCGBlendModeScreen 2
+C kCGBlendModeOverlay 3
+C kCGBlendModeDarken 4
+C kCGBlendModeLighten 5
+C kCGBlendModeColorDodge 6
+C kCGBlendModeColorBurn 7
+C kCGBlendModeSoftLight 8
+C kCGBlendModeHardLight 9
+C kCGBlendModeDifference 10
+C kCGBlendModeExclusion 11
+C kCGBlendModeHue 12
+C kCGBlendModeSaturation 13
+C kCGBlendModeColor 14
+C kCGBlendModeLuminosity 15
+C kCGBlendModeClear 16
+C kCGBlendModeCopy 17
+C kCGBlendModeSourceIn 18
+C kCGBlendModeSourceOut 19
+C kCGBlendModeSourceAtop 20
+C kCGBlendModeDestinationOver 21
+C kCGBlendModeDestinationIn 22
+C kCGBlendModeDestinationOut 23
+C kCGBlendModeDestinationAtop 24
+C kCGBlendModeXOR 25
+C kCGBlendModePlusDarker 26
+C kCGBlendModePlusLighter 27
+
+E CGInterpolationQuality
+C kCGInterpolationDefault 0
+C kCGInterpolationNone 1
+C kCGInterpolationLow 2
+C kCGInterpolationHigh 3
+
+E CGLineCap
+C kCGLineCapButt 0
+C kCGLineCapRound 1
+C kCGLineCapSquare 2
+
+E CGLineJoin
+C kCGLineJoinMiter 0
+C kCGLineJoinRound 1
+C kCGLineJoinBevel 2
+
+E CGTextDrawingMode
+C kCGTextFill 0
+C kCGTextStroke 1
+C kCGTextFillStroke 2
+C kCGTextInvisible 3
+C kCGTextFillClip 4
+C kCGTextStrokeClip 5
+C kCGTextFillStrokeClip 6
+C kCGTextClip 7
+
+E CGTextEncoding
+C kCGEncodingFontSpecific 0
+C kCGEncodingMacRoman 1
 
 f CoreLocation
 
+T CLLocationDegrees d
+
+S CLLocationCoordinate2D "latitude"{CLLocationDegrees}"longitude"{CLLocationDegrees}
+
+T CLLocationAccuracy d
+
 V kCLLocationAccuracyBest d
 V kCLLocationAccuracyNearestTenMeters d
 V kCLLocationAccuracyHundredMeters d
 V kCLLocationAccuracyKilometer d
 V kCLLocationAccuracyThreeKilometers d
 
+T CLLocationSpeed d
+T CLLocationDirection d
+
 V kCLDistanceFilterNone d
 V kCLHeadingFilterNone d
 
@@ -758,15 +1343,117 @@ C kCLErrorHeadingFailure 3
 
 V kCLErrorDomain @
 
+f CoreTelephony
+
+# most of this is garbage
+
+T CTCallRef @
+
+# CTCallAddressBlocked
+# CTCallAnswer
+# CTCallAnswerEndingActive
+# CTCallAnswerEndingAllOthers
+# CTCallAnswerEndingHeld
+# CTCallAnswerWithSourceIdentifier
+F CTCallCopyAddress {CFStringRef}{CFAllocatorRef}{CTCallRef}
+# CTCallCopyAllCallsSince
+# CTCallCopyAllIncomingCallsSince
+F CTCallCopyAllMissedCallsAfterRowID {CFArrayRef}{CFAllocatorRef}l
+F CTCallCopyAllMissedCallsSince {CFArrayRef}{CFAllocatorRef}{CFDateRef}
+# CTCallCopyAllOutgoingCallsSince
+# CTCallCopyName
+# CTCallCopyUUID
+# CTCallDeleteAllCallsBeforeDate
+# CTCallDial
+# CTCallDialEmergency
+# CTCallDialEmergencyWithSourceIdentifier
+# CTCallDialVoicemail
+# CTCallDialVoicemailWithSourceIdentifier
+# CTCallDialWithID
+# CTCallDialWithIDAndSourceIdentifier
+# CTCallDialWithSourceIdentifier
+# CTCallDisconnect
+# CTCallGetCauseCode
+# CTCallGetDuration
+# CTCallGetEmergencyStatus
+F CTCallGetGetRowIDOfLastInsert i
+F CTCallGetID l{CTCallRef}
+# CTCallGetMultiPartyCallCountMax
+F CTCallGetStartTime B{CTCallRef}^d
+# CTCallGetStatus
+F CTCallGetTypeID {CFTypeID}
+# CTCallHistoryInvalidateCaches
+# CTCallHold
+# CTCallIsAlerting
+# CTCallIsConferenced
+# CTCallIsOutgoing
+# CTCallIsToVoicemail
+# CTCallIsWaiting
+# CTCallJoinConference
+# CTCallLeaveConference
+# CTCallListDisconnect
+# CTCallListDisconnectAll
+# CTCallResume
+# CTCallTimersGetAll
+# CTCallTimersGetIncoming
+# CTCallTimersGetLast
+# CTCallTimersGetLastResetTime
+# CTCallTimersGetLifetime
+# CTCallTimersGetOutgoing
+# CTCallTimersReset
+
 f Foundation
 
-S _NSRange "location"I"length"I
+T NSAppleEventManagerSuspensionID ^r{__NSAppleEventManagerSuspension}
+
+E _NSByteOrder
+C NS_UnknownByteOrder CFByteOrderUnknown
+C NS_LittleEndian CFByteOrderLittleEndian
+C NS_BigEndian CFByteOrderBigEndian
+
+# NSComparator
+
+C NSOrderedAscending -1
+C NSOrderedSame 0
+C NSOrderedDescending 1
+T NSComparisonResult {NSInteger}
+
+# NSDecimal
+
+T NSEnumerationOptions {NSUInteger}
+# NSHashEnumerator
+T NSHashTable {_NSHashTable}
+# NSHashTableCallBacks
+
+T NSHashTableOptions {NSUInteger}
+T NSInteger l
+
+# NSMapEnumerator
+
+T NSMapTable {_NSMapTable}
+# NSMapTableKeyCallBacks
+
+T NSMapTableOptions {NSUInteger}
+# NSMapTableValueCallBacks
+
+T NSPoint {_NSPoint}
+T NSPointArray ^{NSPoint}
+T NSPointPointer ^{NSPoint}
+
+S _NSRange "location"{NSUInteger}"length"{NSUInteger}
+T NSRange {_NSRange}
+T NSRangePointer ^{NSRange}
+
+S _NSRect "origin"{NSPoint}"size"{NSSize}
+T NSRectArray ^{NSRect}
 
 C NSMinXEdge 0
 C NSMinYEdge 1
 C NSMaxXEdge 2
 C NSMaxYEdge 3
 
+T NSRectPointer ^{NSRect}
+
 C NSApplicationDirectory 1
 C NSDemoApplicationDirectory 2
 C NSDeveloperApplicationDirectory 3
@@ -792,12 +1479,27 @@ C NSPreferencePanesDirectory 22
 C NSItemReplacementDirectory 99
 C NSAllApplicationsDirectory 100
 C NSAllLibrariesDirectory 101
+T NSSearchPathDirectory {NSUInteger}
 
 C NSUserDomainMask 1
 C NSLocalDomainMask 2
 C NSNetworkDomainMask 4
 C NSSystemDomainMask 8
 C NSAllDomainsMask 0x0ffff
+T NSSearchPathDomainMask {NSUInteger}
+
+S _NSSize "width"{CGFloat}"height"{CGFloat}
+T NSSize {_NSSize}
+
+T NSSizePointer ^{NSSize}
+T NSSocketNativeHandle i
+T NSStringEncoding {NSUInteger}
+S NSSwappedDouble "v"Q
+S NSSwappedFloat "v"L
+T NSTimeInterval d
+# NSUncaughtExceptionHandler
+T NSUInteger L
+T NSZone {_NSZone}
 
 f MapKit
 
@@ -817,9 +1519,74 @@ C MKPinAnnotationColorGreen 1
 C MKPinAnnotationColorPurple 2
 
 # MKCoordinateRegionMake
-# MKCoordinateRegionMakeWithDistance
+F MKCoordinateRegionMakeWithDistance {MKCoordinateRegion}{CLLocationCoordinate2D}{CLLocationDistance}{CLLocationDistance}
 # MKCoordinateSpanMake
 
+f MobileWiFi
+
+#F WiFiManagerClientAddNetwork
+#F WiFiManagerClientCopyDevices
+#F WiFiManagerClientCopyNetworks
+#F WiFiManagerClientCopyProperty
+#F WiFiManagerClientCreate
+#F WiFiManagerClientDisable
+#F WiFiManagerClientDisableNetwork
+#F WiFiManagerClientDispatchNotificationResponse
+#F WiFiManagerClientEnable
+#F WiFiManagerClientEnableNetwork
+#F WiFiManagerClientGetAssociationMode
+#F WiFiManagerClientGetDevice
+#F WiFiManagerClientGetType
+#F WiFiManagerClientGetTypeID
+#F WiFiManagerClientIsNetworkEnabled
+#F WiFiManagerClientRegisterNotificationCallback
+#F WiFiManagerClientRemoveNetwork
+#F WiFiManagerClientScheduleWithRunLoop
+#F WiFiManagerClientSetAssociationMode
+#F WiFiManagerClientSetPower
+#F WiFiManagerClientSetProperty
+#F WiFiManagerClientSetType
+#F WiFiManagerClientUnscheduleFromRunLoop
+#F WiFiManagerClientUpdateNetwork
+
+F WiFiNetworkComparePriority B@@
+#F WiFiNetworkCopyFilteredRecord
+F WiFiNetworkCopyPassword @@
+#F WiFiNetworkCopyPreparedEAPProfile
+#F WiFiNetworkCopyRecord
+#F WiFiNetworkCreate
+#F WiFiNetworkCreateCopy
+F WiFiNetworkGetAssociationDate @@
+#F WiFiNetworkGetAuthFlags
+#F WiFiNetworkGetDirectedState
+#F WiFiNetworkGetFloatProperty
+#F WiFiNetworkGetIntProperty
+#F WiFiNetworkGetProperty
+#F WiFiNetworkGetRateBounds
+F WiFiNetworkGetSSID @@
+F WiFiNetworkGetSSIDData @@
+F WiFiNetworkGetTypeID {CFTypeID}
+F WiFiNetworkIsEAP B@
+F WiFiNetworkIsEnabled B@
+F WiFiNetworkIsHidden B@
+F WiFiNetworkIsHiddenSSID B@
+F WiFiNetworkIsWEP B@
+F WiFiNetworkIsWPA B@
+#F WiFiNetworkMerge
+#F WiFiNetworkMergeForAssociation
+#F WiFiNetworkMergeProperties
+F WiFiNetworkRemovePassword v@
+F WiFiNetworkRequiresIdentity B@
+F WiFiNetworkRequiresOneTimePassword B@
+F WiFiNetworkRequiresPassword B@
+F WiFiNetworkRequiresUsername B@
+F WiFiNetworkSetAssociationDate v@@
+#F WiFiNetworkSetDirectedState
+#F WiFiNetworkSetFloatProperty
+#F WiFiNetworkSetIntProperty
+F WiFiNetworkSetPassword v@@
+#F WiFiNetworkSetProperty
+
 C RTLD_LAZY 0x1
 C RTLD_NOW 0x2
 C RTLD_LOCAL 0x4
@@ -833,7 +1600,10 @@ C RTLD_NEXT -1
 C RTLD_DEFAULT -2
 C RTLD_SELF -3
 
-# XXX: dladdr
+S dl_info "dli_fname"*"dli_fbase"v^"dli_sname"*"dli_saddr"^v
+T Dl_info {dl_info}
+
+F dladdr i^rv^{dl_info}
 F dlclose i^v
 F dlerror *
 F dlopen ^v*i