169 похожих чатов

{-# LANGUAGE ImplicitParams, ConstraintKinds, GADTs, RankNTypes #-} module Main where — начинается

имплементация рекордов

data Rec fields where
Rec :: fields => Rec fields

infixr 1 ?
(?) :: Rec fields -> (fields => r) -> r
Rec ? e = e

— готово

type RXY = Rec (?x::Int, ?y::Int)

xy, xy' :: RXY

xy = let ?x = 1; ?y = 2 in Rec

xy' = Rec where ?x = 3; ?y = 4

foo :: RXY -> Int
foo r = r ? ?x + ?y

type RZ = Rec (?z::Int)

z :: RZ
z = Rec where ?z = 42

— type RXYZ = (RXY, RZ)
type RXYZ = Rec (?x::Int, ?y::Int, ?z::Int)

xyz :: RXYZ
xyz = xy ? z ? Rec — concatenation

t1 = foo xy
t2 = foo (xyz ? Rec) — subtyping
t3 = foo (xy ? Rec)

main = print $ foo xy

2 ответов

5 просмотров

отличный синтакс абьюз

то я попутал, когда чувак переносил с Dict на квантифаед, это я про free-functors там сабконстрейнты были, типа супер класс

Похожие вопросы

Обсуждают сегодня

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
Всем вечера. Подскажите как лучше сделать. делаю на Д10 Например будет база данных на SQLite. в ней будет много таблиц. более 50шт Типа справочник. Содержать ID Name Id p...
Андрей Т 🐎
10
подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
Добрый день! Хочу спросить совета. Хочется в скрипт добавить некую конструкцию, что скрипт создал файл, который нужно потом скопировать в определенное место. Нашел такой сп...
Mikhail
4
Вопрос по WIN32: Насколько я понимаю то все функции win32 привязаны к объектам операционной системы. Например консоль, файл, кисть, окна итд. Следовательно функции win32 упра...
Tommy Vercetti
6
in telegram can i have multiple username? so instead of having multiple account for example one for work, one for friend and one for family with three diff numbers. using one ...
Mr Thieves
6
кто-то пользуется компонентами rx ? как их лучше ставить, через OPM? (lazarus)
Iluha Companets
15
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Hello, can I install macOS and run flutter on a virtual machine? Is it possible to print for iphone?
Mazones
11
есть тут кто-то , кто только начал изучать си? если проходите курс на степике или как-то сами изучаете, пишите, может, скооперируемся?..
Eule
25
Карта сайта