Size: a a a

2021 January 25

MK

Maxim Koltsov in Haskell
ты на каком гхц?
источник

MP

Misha Puzanov in Haskell
8.8.4
источник

к

кана in Haskell
Зигохистоморфный Препроморфизм
почему оно не кастится?
ведь
Exp (ListF a0 [k0]) и Base [k0] [k0] -> Type одно и тоже
да как одно и то же, там же переменная a0 из воздуха
источник

MK

Maxim Koltsov in Haskell
--disable-delayed-os-memory-return
If given, uses MADV_DONTNEED instead of MADV_FREE on platforms where this results in more accurate resident memory usage of the program as shown in memory usage reporting tools (e.g. the RSS column in top and htop).

Using this is expected to make the program slightly slower.
источник

MK

Maxim Koltsov in Haskell
можешь попробовать с этим?
источник

MK

Maxim Koltsov in Haskell
правда это вроде в 8.10 появилось всё-таки...
источник

ЗП

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

MK

Maxim Koltsov in Haskell
правда я совсем не уверен, что это наш случай
источник

MP

Misha Puzanov in Haskell
Maxim Koltsov
--disable-delayed-os-memory-return
If given, uses MADV_DONTNEED instead of MADV_FREE on platforms where this results in more accurate resident memory usage of the program as shown in memory usage reporting tools (e.g. the RSS column in top and htop).

Using this is expected to make the program slightly slower.
ага
интересно
попробую
на nightly вроде тоже собиралось с allow-newer
источник

MK

Maxim Koltsov in Haskell
ага, в мане 8.8 этого флага нет
источник

MK

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

к

кана in Haskell
Зигохистоморфный Препроморфизм
как имея StandaloneKindSignatures

специфицировать

type Project2 :: forall a. a -> Exp (Base a a)
data Project2 a t

type instance Eval (Project2 '[]) = 'NilF
type instance Eval (Project2 (x ': xs)) = 'ConsF x xs

Expected kind ‘Exp (ListF a0 [k0])’,
   but ‘Project2 '[]’ has kind ‘Base [k0] [k0] -> *’
forall a k. Exp (ListF a [k])
это
forall a k. ListF a [k] -> Type



теперь покажи как определен Base
источник

ЗП

Зигохистоморфный Пре... in Haskell
type Base :: Type -> (Type -> Type)
type family Base t
источник

к

кана in Haskell
а определение где
источник

ЗП

Зигохистоморфный Пре... in Haskell
type instance Base [a] = ListF a
источник

ЗП

Зигохистоморфный Пре... in Haskell
type ListF :: Type -> Type -> Type
data ListF a b = ConsF a b | NilF
источник

к

кана in Haskell
forall k. Base [k] [k]
это
forall k. ListF k [k]

получается два типа

forall a k. ListF a [k] -> Type
и
forall k. ListF k [k] -> Type
источник

ЗП

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

к

кана in Haskell
| Expected kind ‘Exp (ListF a0 [k0])’,
   but ‘Project2 '[]’ has kind ‘Base [k0] [k0] -> *’


а кто ожидает такой тип? По коду не ясно, в каком месте ошибка
источник

ЗП

Зигохистоморфный Пре... in Haskell
type Base :: Type -> (Type -> Type)
type family Base t

type Project2 :: forall (a :: Type). a -> Exp (Base a a)
data Project2 a t

type ListF :: Type -> Type -> Type
data ListF a b = ConsF a b | NilF

type instance Base [a] = ListF a

type instance Eval (Project2 '[]) = 'NilF
type instance Eval (Project2 (x ': xs)) = 'ConsF x xs
источник