Size: a a a

2020 December 18

MK

Maxim Koltsov in Haskell
A64m AL256m qn I0
вот импортировали откуда то Foo { x :: ...} и Bar { x :: ...}
должно ли работать
baz Foo{ x = x0} = ... что-то делаем с x0 ...
?
кажется что конечно должно, но нет, нужен этот экстеншон
ужас
источник

ЗП

Зигохистоморфный Пре... in Haskell
Сергей
можно первую часть?
там же обе
источник

VK

Vladimir Klntsky in Haskell
Хочу сделать функцию, проверяющую, совпадает ли значение с соответствующим promoted-типом:

check :: forall a b. ??? => Proxy a -> b -> Bool


Должно выполняться:

data X = A | B

check (Proxy :: Proxy 'A) A == True
check (Proxy :: Proxy 'B) A == False


Можно ad hoc.
источник

MK

Maxim Koltsov in Haskell
Синглтоны или сделать функцию методом тайпкласса
источник

к

кана in Haskell
data AB = A | B

class Check (a :: AB) where
 check :: AB -> Bool

instance Check A where
 check A = True
 check _ = False

instance Check B where
 check B = True
 check _ = False

x = check @A A -- True
y = check @B A -- False
источник

MK

Maxim Koltsov in Haskell
мне кажется хотелось делать check @'A A
источник

MK

Maxim Koltsov in Haskell
правда не знаю как это в сигнатуре отразить, возможно никак
источник

MK

Maxim Koltsov in Haskell
промоученный тип и сам тип вроде не очень знают друг о друге
источник

IK

Ilya Kos in Haskell
Maxim Koltsov
промоученный тип и сам тип вроде не очень знают друг о друге
+
источник

IK

Ilya Kos in Haskell
Maxim Koltsov
мне кажется хотелось делать check @'A A
А в чем проблема?
источник

к

кана in Haskell
Maxim Koltsov
мне кажется хотелось делать check @'A A
а у меня не так?
источник

MK

Maxim Koltsov in Haskell
а гм, да
источник

MK

Maxim Koltsov in Haskell
интересно, а можно сделать  check (a :: k) where check :: k -> Bool ?
источник

к

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

к

кана in Haskell
придется Eq еще добавлять
источник

к

кана in Haskell
вот такое работает
источник

к

кана in Haskell
от улитки не могу избавиться
источник

MK

Maxim Koltsov in Haskell
ну это не интересно, без синглетонов хотелось бы
источник

VK

Vladimir Klntsky in Haskell
кана
data AB = A | B

class Check (a :: AB) where
 check :: AB -> Bool

instance Check A where
 check A = True
 check _ = False

instance Check B where
 check B = True
 check _ = False

x = check @A A -- True
y = check @B A -- False
Спасибо
источник

MK

Maxim Koltsov in Haskell
ну хотя то, что можно singleton :: k написать это интересно
источник