プレースホルダが要求する型
T extends Placeholder[]
T extends [infer Head extends Placeholder, ...infer Tail extends Placeholder[]] ? Head extends { kind: "exec"; } ? PlaceholderParamaters<Tail, [...Rec, Parameters<Head["compile"]>[0]]> : Head extends Prim<infer Type extends StringLike, infer HasDefault extends boolean> ? HasDefault extends true ? PlaceholderParamaters<Tail, [...Rec, (Type | (null | undefined))]> : PlaceholderParamaters<Tail, [...Rec, Type]> : never : Rec