(# pm-api +-
    (% ulong : +-
        integer : 2^32
    )

    (% mparam : +-
        integer : 2^64 | record
    )

    (% handle : +-
        integer : 2^32 : {#1}
    )

    (% msg-queue : +- handle [MsgQueue])
    (% desktop : +- handle [Desktop])
    (% window : +- handle [Window])
    (% frame : +- handle [Frame])
    (% port : +- handle [Port])

    (% HWND_* +-
        DESKTOP
        PARENT
        OWNER
        TOP
    )

    ...

    (@ locate :: +- {HWND_*} / {desktop})
    (@ alert :: +- {desktop} {string} {string} / .)
;

## pm api :: pm-api : {*}