Size: a a a

PureScript — русскоговорящее сообщество

2018 August 23

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
если нужно что-то более изощренное:

import Record as Record
import Type.Prelude (SProxy(..))

# Record.delete (SProxy ∷ SProxy "password1")
# Record.delete (SProxy ∷ SProxy "password2")
# Record.insert (SProxy ∷ SProxy "id") userId
etc

insert - Insert a new property for a label which is specified using a value-level proxy for a type-level string.
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
type Foo' r = { a :: String | r}
type Foo = Foo' ()
источник

Вл

В ладу in PureScript — русскоговорящее сообщество
Зигохистоморфный Препроморфизм
type Foo' r = { a :: String | r}
type Foo = Foo' ()
кажется уже было
источник

Вл

В ладу in PureScript — русскоговорящее сообщество
где-то
источник

p

parket in PureScript — русскоговорящее сообщество
кана
если бы был свой, я бы сделал

type Foo' r = { r | a :: String }
type Foo = Foo' {}

тогда бы код не менялся старый
Да, только надо #Type а не Type
источник

p

parket in PureScript — русскоговорящее сообщество
type EffModelX' base xmsg
   =  { xmsgs :: Array xmsg | base }

type EffModelX model effects xmsg
   =  EffModelX' (EffModel model effects) xmsg
источник

p

parket in PureScript — русскоговорящее сообщество
Это не работает, по выше описаной причине.
источник

к

кана in PureScript — русскоговорящее сообщество
parket
Да, только надо #Type а не Type
ну просто () вместо {} значит
источник

p

parket in PureScript — русскоговорящее сообщество
Да, понятно. Где его взять то #Type. Расширяемый рекорд из либы, да.
источник

к

кана in PureScript — русскоговорящее сообщество
type Foo' r = { a :: String | r }
type Foo = Foo' ()
type Foo2 = Foo' (b :: String)
источник

p

parket in PureScript — русскоговорящее сообщество
Скорее всего я неточно описал задачу.

Есть рекорд из либы, назовём его Rec.

Его кайнд - Type ( не #Type -> Type)

Можно ли (как) на базе этого рекорда построить некторый тип вида { Rec | { a :: String } }, например.
источник

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
можно, с помощью модуля Record
источник

p

parket in PureScript — русскоговорящее сообщество
Vasiliy Yorkin
можно, с помощью модуля Record
Пропустил твой ответ выше. Спасибо.
источник

p

parket in PureScript — русскоговорящее сообщество
Только для него нужен тип :)
источник

к

кана in PureScript — русскоговорящее сообщество
можно было бы и без unsafe в Record, если бы в языке были семейства
источник

к

кана in PureScript — русскоговорящее сообщество

type family GetRow (t :: Type) :: #Type where
 GetRow (Record x) = x

type X = { x :: String }
type Y = { y :: String  | GetRow X }
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
можно заменить на FD
источник

p

parket in PureScript — русскоговорящее сообщество
кана

type family GetRow (t :: Type) :: #Type where
 GetRow (Record x) = x

type X = { x :: String }
type Y = { y :: String  | GetRow X }
Похоже не правду.
источник

к

кана in PureScript — русскоговорящее сообщество
но семейств нет)
источник

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
ну да и скорее всего никогда не будет
источник