diff --git a/src/newSchemable.ts b/src/newSchemable.ts
index 0166eb5..98a5498 100644
--- a/src/newSchemable.ts
+++ b/src/newSchemable.ts
@@ -13,7 +13,7 @@ type NewSchemableArgs =
: [] | [values: Input, ...args: ParamsArgs]
-export const newSchemable = <
+export function newSchemable<
C extends SchemableClass<
SchemaT,
SchemaUnknownKeys,
@@ -42,13 +42,14 @@ export const newSchemable = <
...[values, params]: NewSchemableArgs<
SchemableClassInput
>
-) =>
- new class_(
+) {
+ return new class_(
class_.schema.parse({ ...class_.defaultValues, ...values }, params)
) as InstanceType
+}
-export const newSchemablePromise = async <
+export async function newSchemablePromise<
C extends SchemableClass<
SchemaT,
SchemaUnknownKeys,
@@ -77,13 +78,14 @@ export const newSchemablePromise = async <
...[values, params]: NewSchemableArgs<
SchemableClassInput
>
-) =>
- new class_(
+) {
+ return new class_(
await class_.schema.parseAsync({ ...class_.defaultValues, ...values }, params)
) as InstanceType
+}
-export const newSchemableEffect = <
+export function newSchemableEffect<
C extends SchemableClass<
SchemaT,
SchemaUnknownKeys,
@@ -112,12 +114,14 @@ export const newSchemableEffect = <
...[values, params]: NewSchemableArgs<
SchemableClassInput
>
-) => pipe(
- parseZodTypeEffect(
- class_.schema,
- { ...class_.defaultValues, ...values },
- params,
- ),
+) {
+ return pipe(
+ parseZodTypeEffect(
+ class_.schema,
+ { ...class_.defaultValues, ...values },
+ params,
+ ),
- Effect.map(values => new class_(values) as InstanceType),
-)
+ Effect.map(values => new class_(values) as InstanceType),
+ )
+}