Size: a a a

2021 April 24

к

кана in Haskell
да понятно что есть, если решение подойдет, то можно и найти его
источник

к

кана in Haskell
я правда не видел, видел только одинарные теги
источник

ЗП

Зигохистоморфный Пре... in Haskell
источник

к

кана in Haskell
ну вот, это не то
источник

к

кана in Haskell
это ничем не лучше чем просто написать свой ньютайп, потому что все функции для аппенда тегов в список все равно придется самому писать
источник

ЗП

Зигохистоморфный Пре... in Haskell
даже если каинд сигнатуру указать?
источник

к

кана in Haskell
как из каинд сигнатуры сгенерируются функции работы со списком в теге?
источник

к

кана in Haskell
в общем можно что-то такое запилить, и порядок будет не важен, но это отстой все равно
источник

к

кана in Haskell
или что-то такое
источник

к

кана in Haskell
источник

A

Aleksandr Khristenko in Haskell
А вот этот равно с тильдой, это по какому слову гуглить надо чтобы разобратся?
источник

к

кана in Haskell
там сверху определение
источник

A

Aleksandr Khristenko in Haskell
А, невнимательно смотрю.
источник

A

Aleksandr Khristenko in Haskell
Хм, а когда мы используем ньютайп можно как-то задерайвить для него автоматически инстансы всех тайпклассов, которые есть для содержимого?
источник

MK

Maxim Koltsov in Haskell
Всех - нет, руками надо перечислять
источник
2021 April 25

A

Aleksandr Khristenko in Haskell
А вот такое вообще нормально как идея
data Item = Item String

class HasTag a t

newtype Sorted a = Sorted a
instance {-# OVERLAPS #-} HasTag "sorted" (Sorted a)
instance HasTag t a => HasTag t (Sorted a)

newtype Positive a = Positive a
instance {-# OVERLAPS #-} HasTag "positive" (Positive a)
instance HasTag t a => HasTag t (Positive a)

testFn :: (Coercible a Item, HasTag "sorted" a, HasTag "positive" a) => a -> String
testFn (coerce -> Item s) = s
res = testFn (Positive (Sorted (Item "res")))
res' = testFn (Sorted (Positive (Item "res")))
источник

к

кана in Haskell
ну, это была одна из первых идей, но потом я увидел что класс можно заменить на тайпфемели и заменил
источник

к

кана in Haskell
только вместо строк я прям тип и использовал

HasTag Sorted (Sorted a)
источник

A

Aleksandr Khristenko in Haskell
А это тайпфемили просто получается проверяет, что в цепочке конструкторов где-то присутствует нужный нам
источник

к

кана in Haskell
+
источник