diff --git a/.changeset/eight-files-joke.md b/.changeset/eight-files-joke.md
new file mode 100644
index 00000000000..41db2b2da55
--- /dev/null
+++ b/.changeset/eight-files-joke.md
@@ -0,0 +1,5 @@
+---
+"@effect/schema": patch
+---
+
+fix templateLiteral signature (R should be never)
diff --git a/packages/schema/src/Schema.ts b/packages/schema/src/Schema.ts
index be5e5a6fc54..19607ed4961 100644
--- a/packages/schema/src/Schema.ts
+++ b/packages/schema/src/Schema.ts
@@ -412,9 +412,9 @@ export type Join<T> = T extends [infer Head, ...infer Tail]
  * @category constructors
  * @since 1.0.0
  */
-export const templateLiteral = <T extends [Schema<any, any>, ...Array<Schema<any, any>>]>(
+export const templateLiteral = <T extends [Schema<never, any>, ...Array<Schema<never, any>>]>(
   ...[head, ...tail]: T
-): Schema<Schema.Context<T[number]>, Join<{ [K in keyof T]: Schema.To<T[K]> }>> => {
+): Schema<never, Join<{ [K in keyof T]: Schema.To<T[K]> }>> => {
   let types: ReadonlyArray<AST.TemplateLiteral | AST.Literal> = getTemplateLiterals(head.ast)
   for (const span of tail) {
     types = ReadonlyArray.flatMap(