@@ -19,7 +19,7 @@ object Lens {
1919 def setterBody (obj : Term , value : Term , parts : List [String ]): Term = {
2020 // o.copy(field = value)
2121 def helper (obj : Term , value : Term , field : String ): Term =
22- Select .overloaded(obj, " copy" , Nil , NamedArg (field, value) :: Nil )
22+ Select .overloaded(obj, " copy" , Nil , NamedArg (field, value) :: Nil , TypeBounds .minmax )
2323
2424 parts match {
2525 case field :: Nil => helper(obj, value, field)
@@ -118,7 +118,7 @@ object Iso {
118118 // (p: S) => p._1
119119 val to = (p : S ) => $ { Select .unique((' p ).unseal, " _1" ).seal.cast[A ] }
120120 // (p: A) => S(p)
121- val from = (p : A ) => $ { Select .overloaded(Ident (companion), " apply" , Nil , (' p ).unseal :: Nil ).seal.cast[S ] }
121+ val from = (p : A ) => $ { Select .overloaded(Ident (companion), " apply" , Nil , (' p ).unseal :: Nil , TypeBounds .minmax ).seal.cast[S ] }
122122 apply(from)(to)
123123 }
124124 }
@@ -147,7 +147,7 @@ object Iso {
147147 case TypeRef (prefix, name) => TermRef (prefix, name)
148148 }
149149
150- val obj = Select .overloaded(Ident (companion), " apply" , Nil , Nil ).seal.cast[S ]
150+ val obj = Select .overloaded(Ident (companion), " apply" , Nil , Nil , TypeBounds .minmax ).seal.cast[S ]
151151
152152 ' {
153153 Iso [S , 1 ](Function .const($obj))(Function .const(1 ))
@@ -217,4 +217,4 @@ object GenPrism {
217217 * }(jstr => jstr)
218218 */
219219 inline def apply [S , A <: S ]: Prism [S , A ] = $ { Prism .impl[S , A ] }
220- }
220+ }
0 commit comments