split `module compile` to `compile` and `combine`
support custom define literal