Dmitry
т.е зачем на них оглядываться?
Aλexander
Aλexander
Имеется в виду - для чего?
Dmitry
@fly_style тут http://fprog.ru/2009/issue2/
Dmitry
@fly_style тут https://habrahabr.ru/post/134432/
Aλexander
@fly_style тут http://fprog.ru/2009/issue2/
Спасибо. Тоже смотрю в сторону системного программирования, но не знаю, где себя применить
A64m
Ничего, сейчас улучшат все процессы так что развитие остановится.
A64m
кстати, кто-то помнит что прошло за год через новый мегапроцесс проводки фич? Только ОРФ, который при этом стерся просто в ноль, и, думаю, что большинство его присутствия в 8.2 вообще не заметили
A64m
фичи, решения о которых приняли до процесса и которые там участвовали "для тренировки" вроде бекпака и левити-полиморфизма я не учитываю
Alexander
я почти не слежу
A64m
Но надо сказать, что "участие" процесс обеспечил, там отписались куча людей с _очень странными_ предложениями
A64m
а те, кто хотел что-то имплементировать начали не дожидаясь решения по фиче вообще
Denis
а можно как-нибудь стеком юзать GHC HEAD без танцев?
Denis
у меня тут два бага назрели в GHC, которые нужно на хеде протестить
A64m
сейчас нет
A64m
но, может, будет
Алексей
Alexander
да
Алексей
Интересно julia кто-нибудь запросит?
Alexander
главное чтобы не J
A64m
какие-то конкретные странные языки кроме окамла не назывались? Только то что может еще какие будут?
Alexander
пока ничего
Alexander
вообще пока там их нахаляву подключать нельзя
Alexander
вообще все подробности на fby докладе
Alexander
если его примут
Denis
а можно гадт как-нибудь переписать на классах + ассоциированных ньютайпах, чтобы coerce для конструкторов работал?
Алексей
А какой гадт?
Alexander
data X where A :: ... -> X 1; B :: ... -> X 2, case coerce A of B -> ?
Denis
data JsonRepr :: Schema -> Type where ReprText :: Text -> JsonRepr ('SchemaText cs) ReprNumber :: Scientific -> JsonRepr ('SchemaNumber cs) ReprBoolean :: Bool -> JsonRepr 'SchemaBoolean ReprNull :: JsonRepr 'SchemaNull ReprArray :: V.Vector (JsonRepr s) -> JsonRepr ('SchemaArray cs s) ReprObject :: Rec FieldRepr fs -> JsonRepr ('SchemaObject fs) ReprOptional :: Maybe (JsonRepr s) -> JsonRepr ('SchemaOptional s) ReprUnion :: Union JsonRepr (h ': tl) -> JsonRepr ('SchemaUnion (h ': tl))
Denis
вот такой
Denis
просто то что я с его конструкторами хочу делать очень похоже на coerce, там как раз пригодится его “транзитивность"
Denis
я смутно помню что где-то видел ассоциированные ньютайпы
Denis
но никогда не пробовал сам так делать
Алексей
Ассоцированные ньютайпы это то же, что обычные data familes. newtype instance вместо data instance
Алексей
Но на ум ничего не идёт
Denis
Pineapple но для них инстансы Coercible должны создаваться, в моем представлении
Алексей
Они автоматически созадются по моему
Alexander
угу
A64m
так ньютайп же не упакует тип т.е. можно сделать только JsonRepr ... Text, JsonRepr ... Scientific и т.д.
Denis
Они автоматически созадются по моему
ну да, а руками их писать компилятор запрещает
Denis
потому что не доказана безопасность
Denis
class JsonRepresentable schema where type ReprType schema :: * newtype JsonRepr schema :: * wrap :: ReprType schema -> JsonRepr schema
Denis
я вот про что-то такое думаю
Denis
сейчас инстансы напишу, посмотрим что ghc скажет
Aleksei (astynax)
Вербозота, да. И это ещё до применения elm-format :)
A64m
т.е. они на эфшарпе хотят писать?
A64m
Удивительные предпочтения у людей, конечно
Denis
parse error on input ‘newtype’ | 329 | newtype JsonRepr schema :: *
Denis
на класс ругается 🙁
A64m
а если написать newtype family и вне класса?
Алексей
newtype instance но data family
Denis
тоже не хавает
Alexander
забить и писать бойлерплейт уже предлагали?
Alexander
и unsafeCoerce
Denis
тут подсказали что в классе надо писать data, а в инстансах newtype
Denis
парсер сожрал
Denis
смотрим дальше
Denis
и unsafeCoerce
это план Б
A64m
а ансейф коерс между чем и чем планируется-то?
Denis
ReprType schema и JsonRepr schema
Denis
столько кода сломалось от добавления этого класса, что я видимо нескоро узнаю проканало или нет
Alexander
@NCrashed ping ты не в курсе могу ли я сравнительно нахаляву с accelerate сгенерить просто си код?
Alexander
если у меня есть AST-шка
NC
придётся бекенд-либу написать
Alexander
т.е. у меня есть своя задача, где для мат методов мне бы хотелось генерить код
Alexander
мне вот интересно самому писать или что готовое есть
NC
взять тот же llvm бекенд и перевести генерацию в си
Alexander
accelerate если умеет подошёл бы
Alexander
ну llvm код в общем-то тоже устроит если его каким-то разумным способом можно было пускать
NC
я с ним два года назад работал, меня интересовали только GPU для рейтрейсинга
Alexander
даже не из haskell
NC
llvm бекенд там mature
NC
хм, за два года к нему напилили ещё специфичные BLAS and LAPACK беки
Alexander
о забавно
Alexander
хотя мне не так важно, у меня что были задачи везде мало переменных было
NC
подозреваю, что тогда это llvm case
Alexander
надо бы попробовать продолжить играться с этим
Alexander
раз в fast-builder все приняли