Export_candid export public names not internal

export_candid is exporting the internal names of a test crate rather than the exposed public names.

How can I fix this?

Lib:

mod my_module {
    use candid::{CandidType};
    use serde::Deserialize;

    #[derive(CandidType, Deserialize)]
    pub struct Demo {
        pub text: String,
    }
}

pub use my_module::Demo as ExposedDemo;

Consumer:

use ic_cdk::{export_candid, query};
use lib::{ExposedDemo};

#[query]
fn greet(name: String) -> ExposedDemo {
    ExposedDemo {
        text: format!("Hello, {}!", name)
    }
}

export_candid!();

Result

type Demo = record { "text" : text };
service : { greet : (text) -> (Demo) query }

I guess it’s not possible because the macro does have information about the aliasing.