WASM file does not contain proper IDL

When I try to install by ic.install_code() my .wasm file created by

moc `vessel sources` FILE.mo

into a canister, I receive

trapped explicitly: IDL error: unexpected IDL type when parsing [Principal]

Apparently, my .wasm file does not contain IDL. How to create a WASM file with IDL inside without using DFX?

Oh, I see: arg of install_code should be an actual arg to be passed to the actor constructor.