IDL: sharing intermediate representations | Synapse