File tree Expand file tree Collapse file tree 4 files changed +25
-12
lines changed Expand file tree Collapse file tree 4 files changed +25
-12
lines changed Original file line number Diff line number Diff line change 44
55package doobie .util
66
7- class Derived [+ I ](val instance : I ) extends AnyVal
7+ final class Derived [+ I ](val instance : I ) extends AnyVal
Original file line number Diff line number Diff line change 1+ // Copyright (c) 2013-2020 Rob Norris and Contributors
2+ // This software is licensed under the MIT License (MIT).
3+ // For more information see LICENSE or https://opensource.org/licenses/MIT
4+
5+ package doobie .util
6+
7+ opaque type Derived [+ I ] = I
8+
9+ object Derived :
10+ def apply [I ](i : I ): Derived [I ] = i
11+
12+ extension [I ](d : Derived [I ])
13+ def instance : I = d
Original file line number Diff line number Diff line change @@ -20,16 +20,16 @@ trait MkReadPlatform:
2020 ): Derived [MkRead [P ]] = {
2121 val _ = isNotCaseObj
2222 val read = r.fold(identity, _.instance).map(a => m.fromProduct(i(a)))
23- new Derived (new MkRead (read))
23+ Derived (new MkRead (read))
2424 }
2525
2626 // Derivation base case for tuple (1-element)
2727 implicit def productBase [H ](
2828 implicit H : Read [H ] `OrElse` Derived [MkRead [H ]]
2929 ): Derived [MkRead [H *: EmptyTuple ]] = {
3030 val headInstance = H .fold(identity, _.instance)
31- new Derived (
32- new MkRead (
31+ Derived (
32+ MkRead (
3333 Read .Transform (
3434 headInstance,
3535 h => h *: EmptyTuple
@@ -46,8 +46,8 @@ trait MkReadPlatform:
4646 val headInstance = H .fold(identity, _.instance)
4747 val tailInstance = T .fold(identity, _.instance)
4848
49- new Derived (
50- new MkRead (
49+ Derived (
50+ MkRead (
5151 Read .Composite (
5252 headInstance,
5353 tailInstance,
Original file line number Diff line number Diff line change @@ -20,17 +20,17 @@ trait MkWritePlatform:
2020 ): Derived [MkWrite [P ]] =
2121 val _ = isNotCaseObj
2222 val write : Write [P ] = w.fold(identity, _.instance).contramap(p => i(Tuple .fromProductTyped(p)))
23- new Derived (
24- new MkWrite (write)
23+ Derived (
24+ MkWrite (write)
2525 )
2626
2727 // Derivation base case for tuple (1-element)
2828 implicit def productBase [H ](
2929 implicit H : Write [H ] `OrElse` Derived [MkWrite [H ]]
3030 ): Derived [MkWrite [H *: EmptyTuple ]] = {
3131 val headInstance = H .fold(identity, _.instance)
32- new Derived (
33- new MkWrite (Write .Composite (
32+ Derived (
33+ MkWrite (Write .Composite (
3434 List (headInstance),
3535 { case h *: EmptyTuple =>
3636 List (h)
@@ -48,8 +48,8 @@ trait MkWritePlatform:
4848 val headWrite = H .fold(identity, _.instance)
4949 val tailWrite = T .fold(identity, _.instance)
5050
51- new Derived (
52- new MkWrite (Write .Composite (
51+ Derived (
52+ MkWrite (Write .Composite (
5353 List (headWrite, tailWrite),
5454 { case h *: t =>
5555 List (h, t)
You can’t perform that action at this time.
0 commit comments