Size: a a a

2021 February 12

MK

Maxim Koltsov in Haskell
обычный коерс может приводить только параметры типа representational
источник

MK

Maxim Koltsov in Haskell
а хотя фантомные мб тоже
источник

DB

Danil Berestov in Haskell
Ага, понял
источник

DB

Danil Berestov in Haskell
Кек
источник

MK

Maxim Koltsov in Haskell
но я не проверял
источник

DB

Danil Berestov in Haskell
Ща в поезде, не могу проверить (
источник

MK

Maxim Koltsov in Haskell
λ> data Kek a = Kek deriving Show; type role Kek phantom
λ> coerce (Kek @Int) :: Kek Bool
Kek
источник

MK

Maxim Koltsov in Haskell
λ> data Kek a = Kek deriving Show; type role Kek nominal
λ> coerce (Kek @Int) :: Kek Bool

<interactive>:13:1: error:
   • Couldn't match type ‘Int’ with ‘Bool’
       arising from a use of ‘coerce’
источник

DB

Danil Berestov in Haskell
Maxim Koltsov
λ> data Kek a = Kek deriving Show; type role Kek phantom
λ> coerce (Kek @Int) :: Kek Bool
Kek
Обычный коерс, получается, ломает энти индексированные монады, печально
источник

к

кана in Haskell
ну, не ломает, если просто роль указать
источник

DB

Danil Berestov in Haskell
Maxim Koltsov
λ> data Kek a = Kek deriving Show; type role Kek phantom
λ> coerce (Kek @Int) :: Kek Bool
Kek
Так указана же
источник

MK

Maxim Koltsov in Haskell
так укажи номинал
источник

MK

Maxim Koltsov in Haskell
чтобы не коерсить)
источник

DB

Danil Berestov in Haskell
Норм)
источник

к

кана in Haskell
Danil Berestov
Так указана же
ну и поэтому и не получилось скоерсить, после того как указана
источник

DB

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

к

кана in Haskell
на самом деле фантом не очень вписывается в эту схему
источник

к

кана in Haskell
потому что индексы это оч даже номинал
источник

к

кана in Haskell
идем дальше
источник

к

кана in Haskell
написать функцию m i j x -> m I J x не выйдет
источник