Namespace merged with the M value export so users can write
M.infer<typeof pattern>, analogous to Zod's z.infer<typeof schema>.
TypeScript allows value + namespace declaration merging (const + namespace
share the same identifier). The namespace adds only the type-level
infer<P> member and no runtime-accessible properties, so there is no
collision with the runtime M value. Generic type parameters also named
M (e.g. <M extends Methods>) are locally scoped and do not conflict.
Namespace merged with the
Mvalue export so users can writeM.infer<typeof pattern>, analogous to Zod'sz.infer<typeof schema>.TypeScript allows value + namespace declaration merging (const + namespace share the same identifier). The namespace adds only the type-level
infer<P>member and no runtime-accessible properties, so there is no collision with the runtimeMvalue. Generic type parameters also namedM(e.g.<M extends Methods>) are locally scoped and do not conflict.