interface UserRepository {
save: (user: User) => Effect.Effect<never, UserExistsError, void>
getById: (id: ID) => Effect.Effect<never, never, Option.Option<User>>
}
const UserRepository = Context.Tag<UserRepository>()
interface UserRepository {
save: (user: User) => Effect.Effect<never, UserExistsError, void>
getById: (id: ID) => Effect.Effect<never, never, Option.Option<User>>
}
const UserRepository = Context.Tag<UserRepository>()