macro_rules! EXTERN {
    (extern $c:tt {$(
        fn $n:ident ($( $p:tt $(: $t:ty)?),* $(,)?) $(-> $r:ty)?;
    )+}) => { ... };
    (extern $c:tt {$(
        static mut $n:ident : $t:ty;
    )+}) => { ... };
}