Size: a a a

2020 December 05

к

кана in Haskell
как типа так и функций
источник

YR

Yuki Rito in Haskell
доверяешься имплементации :)
источник

AV

Alexander Vershilov in Haskell
вон newtype выше тоже гарантрует
источник

к

кана in Haskell
нет, ньютайп ничего не гарантирует
источник

AV

Alexander Vershilov in Haskell
они или оба гарантируют или оба нет, выбирай
источник

к

кана in Haskell
а вот функции которые будут возвращать ньютайп своим определением могут что-то гарантировать
источник

AV

Alexander Vershilov in Haskell
Я согласен с любым выбором
источник

AV

Alexander Vershilov in Haskell
а реализация insert x t = coerce x:filter (=/x) t
источник

AV

Alexander Vershilov in Haskell
Вот эта штука верная, а то, что в set insert верный ещё доказать надо
источник

AV

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

YR

Yuki Rito in Haskell
ну можно обвешать все LiquidHaskell-ем и "гарантировать"
источник

AV

Alexander Vershilov in Haskell
Это гарантия - да
источник

к

кана in Haskell
newtype NotZero = NotZero Int

ничего не гарантирует

пара
module NotZero (NotZero, makeNotZero) where
 newtype NotZero = NotZero Int
 makeNotZero :: Int -> Maybe NotZero
 makeNotZero 0 = Nothing
 makeNotZero x = Just (NotZero x)

своим определением гарантирует что NotZero это не не 0
источник

AV

Alexander Vershilov in Haskell
Но гарантировать на списках на порядок проще
источник

к

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

к

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

AV

Alexander Vershilov in Haskell
1. не похоже на сет
2. не гарантирует
источник

к

кана in Haskell
как же не гарантирует, я в документации указываю что гарантирует
источник

к

кана in Haskell
а в документации списка ничего такого не указано
источник

AV

Alexander Vershilov in Haskell
ты врёшь
источник