• Haskell typefun specialolympic А давайте спецолимпиадку по типам? Есть код codegists.com это Freer для стрелок, но с ним проблема, нужно квадратичное число инстансов, так надо определять Category (Freer Category eff), Category (Freer Arrow eff), несмотря на то, что Category => Arrow. Что очевидно очень печально, и хотелось бы это поправить.

    У меня получилось такое:

    gist.github.com

    Есть чуть более простые варианты но с тоже с квадратичным числом инстансов, хоть и более простых. Так же можно запилить вариант на TH который будет сразу генерить полный instance search, но это читерство.

    Принимаются варианты и предложения по улучшению гиста.
    ♡ recommended by @ndtimofeev

Replies (2)

  • @qnikst, бонусные очки тем, кто научит работать объединению констрейнтов, т.е. что-то вроде Freer (ArrowChoice, ArrowError) eff a b, должно автоматом получать ArrowChoice и ArrowError.
    Что-то вроде поскольку (ArrowChoice, ArrowError) не подходят по кайнду и там нужно свое объединение писать.
    В моём решении этого нету
  • @qnikst, Тройные бонусные очки тому, чье решение будет гарантировано когерентным