Попытка сохранить типы развернутыми при использовании очищенных - PullRequest
1 голос
/ 07 ноября 2019

Я пытаюсь использовать уточненный для создания интеллектуальных конструкторов на основе примитивов и избегать переносов, поскольку в больших коллекциях могут использоваться одни и те же типы. Я делаю это правильно? Кажется, работает, но немного боулплаты

    type ONE_Pred = = MatchesRegex[W....
    type ONE = String @@ ONE_Pred
    type TWO_Pred = OneOf[...
    type TWO = String @@ TWO_PRED 

, а затем

 case class C(one:ONE, two:TWO)
 object C {
  def apply(one:String, two:String):Either[String, C] = 
  (
   refineT[ONE_Pred](one),
   refineT[TWO_Pred](two)
  ).mapN(C.apply)
}
...