message: feat(syncLayers): use serviceConstructor in syncLayers
diff: @@ -7,7 +7,7 @@ import { AtomicReference } from "@effect-ts/system/Support/AtomicReference"
  import * as A from "../../Collections/Immutable/Array"
  import { pipe } from "../../Function"
  -import type { AnyService, Has, Tag } from "../../Has"
  +import type { AnyService, Has, ServiceConstructor, Tag } from "../../Has"
  import type { Erase, UnionToIntersection } from "../../Utils"
  import * as Sy from "../_internal"
  @@ -282,17 +282,18 @@ export function suspended<R, E, A>(layer: () => SyncLayer<R, E, A>) {
  }
  export function fromSync<T extends AnyService>(tag: Tag<T>) {
  - return <R, E>(_: Sy.Sync<R, E, T>): SyncLayer<R, E, Has<T>> =>
  + return <R, E>(_: Sy.Sync<R, E, ServiceConstructor<T>>): SyncLayer<R, E, Has<T>> =>
  new Of(pipe(_, Sy.map(tag.has)))
  }
  export function fromFunction<T extends AnyService>(tag: Tag<T>) {
  - return <R>(_: (_: R) => T): SyncLayer<R, never, Has<T>> =>
  + return <R>(_: (_: R) => ServiceConstructor<T>): SyncLayer<R, never, Has<T>> =>
  new Of(pipe(Sy.access(_), Sy.map(tag.has)))
  }
  export function fromValue<T extends AnyService>(tag: Tag<T>) {
  - return (_: T): SyncLayer<unknown, never, Has<T>> => new Of(Sy.succeed(tag.has(_)))
  + return (_: ServiceConstructor<T>): SyncLayer<unknown, never, Has<T>> =>
  + new Of(Sy.succeed(tag.has(_)))
  }
  export function and<R2, E2, A2>(left: SyncLayer<R2, E2, A2>) {
  