投稿されたa similar question earlier、修正されました。しかし、この質問をするために、私は最初の問題を単純化しました。しかし、この簡単な質問の解決策は私の初期の問題を解決するようには見えない洗練された制約Interval.Closedを使用してコンパイルエラー
洗練されたライブラリ(https://github.com/fthomas/refined)のInterval.Closed型を使用してDouble型を制約しようとするこの短いコードを試してみると、コンパイルエラーが発生します。
import eu.timepit.refined._
import eu.timepit.refined.api.{Refined, Validate}
import eu.timepit.refined.auto._
import eu.timepit.refined.numeric._
import eu.timepit.refined.api.Refined
import eu.timepit.refined.numeric.Interval
object Lala {
type UnitReal = Double Refined Interval.Closed[W.`0.0`.T, W.`1.0`.T]
def foo(x: Double): Either[String, UnitReal] = refineV[UnitReal](x)
}
このコンパイルエラーが表示されます。
Error:(13, 67) could not find implicit value for parameter v: eu.timepit.refined.api.Validate[Double,xxx.Lala.UnitReal] def foo(x: Double): Either[String, UnitReal] = refineVUnitReal
そこからInterval.Closedタイプのための検証の実装が欠落しているようです。 Interval.Closed型のValidate特性のインスタンスを誰かが見つけるのを助けることができるかどうか疑問に思っていましたか?あるいは、私はそのようなインスタンスを自分で提供すべきですか?