yumemi/gen/emit/query
束2 ── 読みの語彙。3 module に割れる。
src/gen/query/from.gleam ── From だけ
src/gen/query/field.gleam ── Field だけ
src/gen/query.gleam ── 残り(Arrow / Operand / Cond / … / Select)と From / Field の型別名
From と Field を同じ module に置くと構成子の名前空間が衝突する(Entity consent_version の
From と Entity Consent の version 列が ConsentVersion で衝突し Duplicate definition)。
From / Field / Arrow / Operand は Entity 宣言から、残りは yumemi/query.gleam の
構成子をそのまま単型に写す(アプリは語彙を足せない、20:664)。Select の Pick も
framework 側に同じ形で在る(1 対 1 は test が見る)。
Values
pub fn collisions(app: model.App) -> List(#(String, String))
構成子は module ごとに1つの名前空間に並ぶ。割ったあとも同じ module の中で 名前が重なりうる(Arrow と KeyOf、Field どうし)ので、module ごとに数えて報告する。 20 は直し方を決めていないので、生成器は黙って直さない。
pub fn emit(
app: model.App,
input_hash: String,
) -> List(types.File)