2024-03-26 00:00:34 +0100 | AlexNoo_ | (~AlexNoo@178.34.163.255) |
2024-03-26 00:03:39 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-03-26 00:04:00 +0100 | AlexNoo | (~AlexNoo@178.34.163.255) (Ping timeout: 252 seconds) |
2024-03-26 00:06:08 +0100 | acidjnk_new | (~acidjnk@p200300d6e733bd6460cb954dffdecc30.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2024-03-26 00:06:20 +0100 | EvanR | (~EvanR@user/evanr) (Remote host closed the connection) |
2024-03-26 00:06:39 +0100 | EvanR | (~EvanR@user/evanr) |
2024-03-26 00:07:09 +0100 | tremon | (~tremon@83.80.159.219) (Quit: getting boxed in) |
2024-03-26 00:10:37 +0100 | emmanuelux | (~emmanuelu@user/emmanuelux) |
2024-03-26 00:14:35 +0100 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2024-03-26 00:19:16 +0100 | sadie_ | (~sadie@c-76-155-235-153.hsd1.co.comcast.net) (Remote host closed the connection) |
2024-03-26 00:25:30 +0100 | benjaminl | (~benjaminl@user/benjaminl) (Read error: Connection reset by peer) |
2024-03-26 00:25:46 +0100 | benjaminl | (~benjaminl@user/benjaminl) |
2024-03-26 00:33:28 +0100 | dorin | (~dorin@user/dorin) (Ping timeout: 250 seconds) |
2024-03-26 00:35:47 +0100 | target_i | (~target_i@user/target-i/x-6023099) (Quit: leaving) |
2024-03-26 00:45:10 +0100 | oo_miguel | (~Thunderbi@78-11-181-16.static.ip.netia.com.pl) (Ping timeout: 256 seconds) |
2024-03-26 01:02:40 +0100 | caconym7 | (~caconym@user/caconym) |
2024-03-26 01:04:15 +0100 | caconym | (~caconym@user/caconym) (Ping timeout: 260 seconds) |
2024-03-26 01:04:15 +0100 | caconym7 | caconym |
2024-03-26 01:04:36 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
2024-03-26 01:09:19 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) |
2024-03-26 01:10:32 +0100 | tushar | (~tushar@103.46.201.22) (Ping timeout: 260 seconds) |
2024-03-26 01:14:59 +0100 | rvalue | (~rvalue@user/rvalue) (Ping timeout: 260 seconds) |
2024-03-26 01:22:32 +0100 | rvalue | (~rvalue@user/rvalue) |
2024-03-26 01:33:14 +0100 | Lycurgus | (~georg@user/Lycurgus) |
2024-03-26 01:33:23 +0100 | [Leary] | (~Leary]@user/Leary/x-0910699) (Remote host closed the connection) |
2024-03-26 01:41:50 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) |
2024-03-26 01:45:58 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 246 seconds) |
2024-03-26 01:47:24 +0100 | mima | (~mmh@aftr-62-216-211-241.dynamic.mnet-online.de) (Ping timeout: 260 seconds) |
2024-03-26 01:53:32 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2024-03-26 01:54:32 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2024-03-26 01:57:55 +0100 | drdo | (~drdo@bl5-29-74.dsl.telepac.pt) |
2024-03-26 02:09:07 +0100 | shapr | (~user@c-24-218-186-89.hsd1.ma.comcast.net) (Ping timeout: 256 seconds) |
2024-03-26 02:12:48 +0100 | Square | (~Square4@user/square) |
2024-03-26 02:19:21 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) |
2024-03-26 02:29:34 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 255 seconds) |
2024-03-26 02:30:44 +0100 | califax_ | (~califax@user/califx) |
2024-03-26 02:30:46 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
2024-03-26 02:32:01 +0100 | califax_ | califax |
2024-03-26 02:35:41 +0100 | forell_ | (~forell@host-178-216-90-220.sta.tvknaszapraca.pl) (Ping timeout: 240 seconds) |
2024-03-26 02:40:26 +0100 | cheater | (~Username@user/cheater) |
2024-03-26 02:41:30 +0100 | sprout_ | (~quassel@2a02-a448-3a80-0-e595-ce43-46c0-8c8c.fixed6.kpn.net) |
2024-03-26 02:41:41 +0100 | sprout | (~quassel@2a02-a448-3a80-0-355e-e5b2-f32d-a9c5.fixed6.kpn.net) (Ping timeout: 240 seconds) |
2024-03-26 02:42:34 +0100 | notzmv | (~daniel@user/notzmv) |
2024-03-26 02:45:18 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection) |
2024-03-26 02:47:47 +0100 | sprout_ | sprout |
2024-03-26 02:47:55 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
2024-03-26 02:48:28 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 255 seconds) |
2024-03-26 02:49:10 +0100 | petrichor | (~znc-user@user/petrichor) (Ping timeout: 268 seconds) |
2024-03-26 02:50:21 +0100 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 256 seconds) |
2024-03-26 02:53:41 +0100 | petrichor | (~znc-user@user/petrichor) |
2024-03-26 03:02:59 +0100 | petrichor | (~znc-user@user/petrichor) (Ping timeout: 264 seconds) |
2024-03-26 03:03:21 +0100 | petrichor | (~znc-user@user/petrichor) |
2024-03-26 03:10:28 +0100 | xff0x | (~xff0x@2405:6580:b080:900:3f35:2895:6fd4:d2c6) (Ping timeout: 260 seconds) |
2024-03-26 03:14:59 +0100 | mulk | (~mulk@p5b112c85.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
2024-03-26 03:15:15 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) |
2024-03-26 03:16:01 +0100 | mulk | (~mulk@p5b2dc4f3.dip0.t-ipconnect.de) |
2024-03-26 03:16:57 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) |
2024-03-26 03:17:58 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection) |
2024-03-26 03:18:31 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) |
2024-03-26 03:18:57 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection) |
2024-03-26 03:19:09 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) |
2024-03-26 03:23:16 +0100 | otto_s | (~user@p4ff27516.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
2024-03-26 03:24:09 +0100 | Natch | (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Read error: Connection reset by peer) |
2024-03-26 03:24:59 +0100 | otto_s | (~user@p4ff27cae.dip0.t-ipconnect.de) |
2024-03-26 03:25:01 +0100 | [Leary] | (~Leary]@user/Leary/x-0910699) |
2024-03-26 03:27:26 +0100 | hammond__ | h_______________ |
2024-03-26 03:27:59 +0100 | Natch | (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) |
2024-03-26 03:28:11 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer) |
2024-03-26 03:36:08 +0100 | liskin | (~liskin@xmonad/liskin) (Ping timeout: 260 seconds) |
2024-03-26 03:36:27 +0100 | liskin | (~liskin@xmonad/liskin) |
2024-03-26 03:40:57 +0100 | tertek | (~tertek@user/tertek) (Quit: %quit%) |
2024-03-26 03:41:18 +0100 | tertek | (~tertek@user/tertek) |
2024-03-26 03:51:05 +0100 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 272 seconds) |
2024-03-26 03:56:04 +0100 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
2024-03-26 04:21:32 +0100 | forell | (~forell@user/forell) |
2024-03-26 04:28:30 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection) |
2024-03-26 04:30:59 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) |
2024-03-26 04:36:48 +0100 | forell | (~forell@user/forell) (Ping timeout: 260 seconds) |
2024-03-26 04:41:42 +0100 | td__ | (~td@i53870914.versanet.de) (Ping timeout: 268 seconds) |
2024-03-26 04:43:01 +0100 | td_ | (~td@i5387093F.versanet.de) |
2024-03-26 04:43:26 +0100 | forell | (~forell@user/forell) |
2024-03-26 04:45:00 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 255 seconds) |
2024-03-26 04:48:49 +0100 | iteratee | (~kyle@162.218.222.207) (Read error: Connection reset by peer) |
2024-03-26 04:49:20 +0100 | iteratee | (~kyle@162.218.222.207) |
2024-03-26 04:51:45 +0100 | mei | (~mei@user/mei) (Ping timeout: 256 seconds) |
2024-03-26 05:01:49 +0100 | igemnace | (~ian@user/igemnace) |
2024-03-26 05:03:50 +0100 | mei | (~mei@user/mei) |
2024-03-26 05:05:05 +0100 | aforemny | (~aforemny@2001:9e8:6cfa:3600:3f10:37b1:467:310c) |
2024-03-26 05:05:56 +0100 | aforemny_ | (~aforemny@i59F516FA.versanet.de) (Ping timeout: 252 seconds) |
2024-03-26 05:07:52 +0100 | rosco | (~rosco@2402:b400:4460:fc63:80a6:a666:aa55:2612) |
2024-03-26 05:10:52 +0100 | forell | (~forell@user/forell) (Quit: ZNC - https://znc.in) |
2024-03-26 05:11:39 +0100 | forell | (~forell@user/forell) |
2024-03-26 05:14:58 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 260 seconds) |
2024-03-26 05:15:58 +0100 | dsmith | (~dsmith@024-029-202-168.inf.spectrum.com) (Ping timeout: 246 seconds) |
2024-03-26 05:16:10 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2024-03-26 05:18:33 +0100 | Pixi` | (~Pixi@user/pixi) |
2024-03-26 05:18:45 +0100 | dsmith | (~dsmith@024-029-202-168.inf.spectrum.com) |
2024-03-26 05:21:05 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) |
2024-03-26 05:21:42 +0100 | Pixi | (~Pixi@user/pixi) (Ping timeout: 256 seconds) |
2024-03-26 05:24:41 +0100 | falafel | (~falafel@2607:fb91:8aa:877b:62d7:31a2:4645:9cb9) |
2024-03-26 05:29:19 +0100 | falafel | (~falafel@2607:fb91:8aa:877b:62d7:31a2:4645:9cb9) (Ping timeout: 260 seconds) |
2024-03-26 05:35:52 +0100 | adium | (adium@user/adium) (Remote host closed the connection) |
2024-03-26 05:36:45 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2024-03-26 05:38:04 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2024-03-26 05:41:02 +0100 | pastly | (~pastly@gateway/tor-sasl/pastly) (Remote host closed the connection) |
2024-03-26 05:41:41 +0100 | pastly | (~pastly@gateway/tor-sasl/pastly) |
2024-03-26 05:41:55 +0100 | mmhat | (~mmh@p200300f1c706a298ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 4.2.1) |
2024-03-26 05:47:34 +0100 | tushar | (~tushar@103.46.201.22) |
2024-03-26 05:52:45 +0100 | pastly | (~pastly@gateway/tor-sasl/pastly) (Remote host closed the connection) |
2024-03-26 05:53:11 +0100 | pastly | (~pastly@gateway/tor-sasl/pastly) |
2024-03-26 05:59:48 +0100 | califax | (~califax@user/califx) (Read error: Connection reset by peer) |
2024-03-26 05:59:48 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Read error: Connection reset by peer) |
2024-03-26 05:59:48 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2024-03-26 06:00:14 +0100 | qqq | (~qqq@92.43.167.61) |
2024-03-26 06:00:17 +0100 | califax | (~califax@user/califx) |
2024-03-26 06:00:18 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2024-03-26 06:00:51 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2024-03-26 06:01:28 +0100 | aforemny | (~aforemny@2001:9e8:6cfa:3600:3f10:37b1:467:310c) (Ping timeout: 246 seconds) |
2024-03-26 06:01:46 +0100 | aforemny | (~aforemny@i59F516FD.versanet.de) |
2024-03-26 06:02:22 +0100 | Core7852 | (~rosco@183.171.72.200) |
2024-03-26 06:02:30 +0100 | rosco | (~rosco@2402:b400:4460:fc63:80a6:a666:aa55:2612) (Ping timeout: 256 seconds) |
2024-03-26 06:02:47 +0100 | <mauke> | > 1.1.1.1.1.1.1.1.1.1.1.1 + 2.3 $ () |
2024-03-26 06:02:48 +0100 | <lambdabot> | error: |
2024-03-26 06:02:48 +0100 | <lambdabot> | • Could not deduce (Fractional (b0 -> c)) |
2024-03-26 06:02:48 +0100 | <lambdabot> | (maybe you haven't applied a function to enough arguments?) |
2024-03-26 06:04:56 +0100 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
2024-03-26 06:11:52 +0100 | adium | (adium@user/adium) |
2024-03-26 06:16:08 +0100 | Me-me | (~me-me@user/me-me) (Remote host closed the connection) |
2024-03-26 06:16:35 +0100 | Me-me | (~me-me@2602:ff16:3:0:1:dc:beef:d00d) |
2024-03-26 06:19:25 +0100 | pastly | (~pastly@gateway/tor-sasl/pastly) (Remote host closed the connection) |
2024-03-26 06:19:45 +0100 | pastly | (~pastly@gateway/tor-sasl/pastly) |
2024-03-26 06:43:05 +0100 | hallucinagen | (~prodmezha@123.63.203.210) |
2024-03-26 06:53:34 +0100 | Me-me | (~me-me@2602:ff16:3:0:1:dc:beef:d00d) (Changing host) |
2024-03-26 06:53:34 +0100 | Me-me | (~me-me@user/me-me) |
2024-03-26 06:58:10 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2024-03-26 06:58:17 +0100 | euleritian | (~euleritia@77.22.252.56) |
2024-03-26 07:02:43 +0100 | rosco | (~rosco@180.75.255.16) |
2024-03-26 07:07:58 +0100 | michalz | (~michalz@185.246.207.221) |
2024-03-26 07:13:14 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection) |
2024-03-26 07:16:11 +0100 | Square | (~Square4@user/square) (Ping timeout: 260 seconds) |
2024-03-26 07:22:56 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds) |
2024-03-26 07:23:38 +0100 | tushar | (~tushar@103.46.201.22) (Quit: WeeChat 4.2.1) |
2024-03-26 07:29:29 +0100 | codolio | (~dolio@130.44.134.54) |
2024-03-26 07:29:46 +0100 | euleritian | (~euleritia@77.22.252.56) (Ping timeout: 256 seconds) |
2024-03-26 07:30:00 +0100 | euleritian | (~euleritia@dynamic-176-006-195-045.176.6.pool.telefonica.de) |
2024-03-26 07:30:35 +0100 | dolio | (~dolio@130.44.134.54) (Ping timeout: 264 seconds) |
2024-03-26 07:30:41 +0100 | caconym | (~caconym@user/caconym) (Quit: bye) |
2024-03-26 07:31:02 +0100 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection) |
2024-03-26 07:32:35 +0100 | caconym | (~caconym@user/caconym) |
2024-03-26 07:36:31 +0100 | zetef | (~quassel@5.2.182.99) |
2024-03-26 07:37:52 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2024-03-26 07:39:41 +0100 | rosco | (~rosco@180.75.255.16) (Ping timeout: 240 seconds) |
2024-03-26 07:40:22 +0100 | codolio | (~dolio@130.44.134.54) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-03-26 07:40:30 +0100 | dolio | (~dolio@130.44.134.54) |
2024-03-26 07:43:33 +0100 | acidjnk_new | (~acidjnk@p200300d6e708d544f8395f3770d8e9d9.dip0.t-ipconnect.de) |
2024-03-26 07:45:20 +0100 | <probie> | % instance (a ~ String, b ~ String) => Num (a -> b) where { fromInteger = (++) . show ; f + g = \x -> f x ++ g x } |
2024-03-26 07:45:20 +0100 | <yahb2> | <interactive>:13:10: error: ; • Illegal equational constraint a ~ String ; (Use GADTs or TypeFamilies to permit this) ; • In the instance declaration for ‘Num (a -> b)’ |
2024-03-26 07:45:27 +0100 | michalz | (~michalz@185.246.207.221) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-03-26 07:45:33 +0100 | <probie> | % :set -XGADTs |
2024-03-26 07:45:33 +0100 | <yahb2> | <no output> |
2024-03-26 07:45:39 +0100 | <probie> | % instance (a ~ String, b ~ String) => Num (a -> b) where { fromInteger = (++) . show ; f + g = \x -> f x ++ g x } |
2024-03-26 07:45:39 +0100 | <yahb2> | <interactive>:17:10: warning: [-Wmissing-methods] ; • No explicit implementation for ; ‘*’, ‘abs’, ‘signum’, and (either ‘negate’ or ‘-’) ; • In the instance declaration for ‘Num (a... |
2024-03-26 07:45:54 +0100 | <probie> | % instance (a ~ String, b ~ String) => Fractional (a -> b) where { fromRational = (++) . show } |
2024-03-26 07:45:54 +0100 | <yahb2> | <interactive>:19:10: warning: [-Wmissing-methods] ; • No explicit implementation for ; either ‘recip’ or ‘/’ ; • In the instance declaration for ‘Fractional (a -> b)’ |
2024-03-26 07:46:05 +0100 | <probie> | % 1.1.1.1.1.1.1.1.1.1.1.1 + 2.3 $ "" |
2024-03-26 07:46:05 +0100 | <yahb2> | "11 % 1011 % 1011 % 1011 % 1011 % 1011 % 1023 % 10" |
2024-03-26 07:48:36 +0100 | zetef | (~quassel@5.2.182.99) (Ping timeout: 255 seconds) |
2024-03-26 07:50:12 +0100 | michalz | (~michalz@185.246.207.215) |
2024-03-26 07:51:08 +0100 | CiaoSen | (~Jura@2a05:5800:2bf:c200:e6b9:7aff:fe80:3d03) |
2024-03-26 07:51:31 +0100 | euleritian | (~euleritia@dynamic-176-006-195-045.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-03-26 07:51:48 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-03-26 07:58:01 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 246 seconds) |
2024-03-26 07:58:29 +0100 | euleritian | (~euleritia@dynamic-176-006-195-045.176.6.pool.telefonica.de) |
2024-03-26 07:59:55 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2024-03-26 08:13:16 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2024-03-26 08:13:19 +0100 | JimL | (~quassel@89.162.16.26) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2024-03-26 08:13:38 +0100 | JimL | (~quassel@89.162.16.26) |
2024-03-26 08:17:43 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
2024-03-26 08:18:05 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2024-03-26 08:20:23 +0100 | JimL | (~quassel@89.162.16.26) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2024-03-26 08:20:40 +0100 | JimL | (~quassel@89.162.16.26) |
2024-03-26 08:22:30 +0100 | JimL | (~quassel@89.162.16.26) (Client Quit) |
2024-03-26 08:22:48 +0100 | JimL | (~quassel@89.162.16.26) |
2024-03-26 08:24:41 +0100 | JimL | (~quassel@89.162.16.26) (Client Quit) |
2024-03-26 08:25:00 +0100 | JimL | (~quassel@89.162.16.26) |
2024-03-26 08:26:56 +0100 | JimL | (~quassel@89.162.16.26) (Client Quit) |
2024-03-26 08:27:15 +0100 | JimL | (~quassel@89.162.16.26) |
2024-03-26 08:29:10 +0100 | JimL | (~quassel@89.162.16.26) (Client Quit) |
2024-03-26 08:29:28 +0100 | JimL | (~quassel@89.162.16.26) |
2024-03-26 08:45:17 +0100 | hiredman | (~hiredman@frontier1.downey.family) (Ping timeout: 240 seconds) |
2024-03-26 08:50:43 +0100 | hueso | (~root@user/hueso) (Ping timeout: 255 seconds) |
2024-03-26 08:52:26 +0100 | hiredman | (~hiredman@frontier1.downey.family) |
2024-03-26 08:53:18 +0100 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) |
2024-03-26 08:57:42 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-03-26 08:57:46 +0100 | triceraptor | (~prodmezha@115.248.21.178) |
2024-03-26 09:00:40 +0100 | oo_miguel | (~Thunderbi@78-11-181-16.static.ip.netia.com.pl) |
2024-03-26 09:01:17 +0100 | meritamen | (~meritamen@user/meritamen) |
2024-03-26 09:01:24 +0100 | hallucinagen | (~prodmezha@123.63.203.210) (Ping timeout: 260 seconds) |
2024-03-26 09:01:42 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2024-03-26 09:02:45 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2024-03-26 09:05:13 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2024-03-26 09:06:13 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2024-03-26 09:10:11 +0100 | euleritian | (~euleritia@dynamic-176-006-195-045.176.6.pool.telefonica.de) (Ping timeout: 264 seconds) |
2024-03-26 09:10:50 +0100 | CrunchyFlakes | (~CrunchyFl@146.52.130.128) |
2024-03-26 09:17:18 +0100 | triceraptor | (~prodmezha@115.248.21.178) (Read error: Connection reset by peer) |
2024-03-26 09:18:01 +0100 | hallucinagen | (~prodmezha@123.63.203.210) |
2024-03-26 09:18:15 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2024-03-26 09:20:19 +0100 | CrunchyFlakes | (~CrunchyFl@146.52.130.128) (Ping timeout: 260 seconds) |
2024-03-26 09:20:47 +0100 | zetef | (~quassel@5.2.182.99) |
2024-03-26 09:21:21 +0100 | CrunchyFlakes | (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) |
2024-03-26 09:24:19 +0100 | danse-nr3 | (~danse@151.37.211.199) |
2024-03-26 09:27:47 +0100 | hallucinagen | (~prodmezha@123.63.203.210) (Ping timeout: 260 seconds) |
2024-03-26 09:30:19 +0100 | mima | (~mmh@aftr-62-216-211-42.dynamic.mnet-online.de) |
2024-03-26 09:30:20 +0100 | danse-nr3 | (~danse@151.37.211.199) (Ping timeout: 260 seconds) |
2024-03-26 09:36:43 +0100 | marinelli | (~weechat@gateway/tor-sasl/marinelli) (Quit: marinelli) |
2024-03-26 09:36:53 +0100 | danse-nr3 | (~danse@151.37.211.199) |
2024-03-26 09:37:45 +0100 | Domitar | (~Domitar@193.198.16.218) |
2024-03-26 09:37:53 +0100 | Domitar | (~Domitar@193.198.16.218) (Remote host closed the connection) |
2024-03-26 09:39:36 +0100 | meritamen | (~meritamen@user/meritamen) (Quit: Client closed) |
2024-03-26 09:42:00 +0100 | mima | (~mmh@aftr-62-216-211-42.dynamic.mnet-online.de) (Ping timeout: 260 seconds) |
2024-03-26 09:49:32 +0100 | <Inst> | EvanR: Real World is ultimately built on magic, but the edifice is a consistent and logical system |
2024-03-26 09:49:43 +0100 | hallucinagen | (~prodmezha@123.63.203.210) |
2024-03-26 09:51:48 +0100 | <Inst> | grrr, still can't figure out how to get keys from a set / map |
2024-03-26 09:51:51 +0100 | <Inst> | via lens |
2024-03-26 09:52:32 +0100 | tomsmeding | . o O ( Data.Set.elems :: Set a -> [a] ) |
2024-03-26 09:52:49 +0100 | tzh_ | (~tzh@c-73-164-206-160.hsd1.or.comcast.net) (Quit: zzz) |
2024-03-26 09:55:48 +0100 | <Inst> | yeah but I'm trying to avoid the containers interface because it's not polymorphic enough for me :( |
2024-03-26 09:57:58 +0100 | <ncf> | > Set.fromList [0, 2, 4] ^.. folded |
2024-03-26 09:58:00 +0100 | <lambdabot> | error: |
2024-03-26 09:58:00 +0100 | <lambdabot> | Not in scope: ‘Set.fromList’ |
2024-03-26 09:58:00 +0100 | <lambdabot> | Perhaps you meant one of these: |
2024-03-26 10:00:29 +0100 | <danse-nr3> | seems a bit silly to be honest. Different data structures provide different operations |
2024-03-26 10:00:38 +0100 | <ncf> | and for maps, > Map.fromList [(0, ()), (2, ()), (4, ())] ^.. folded . asIndex |
2024-03-26 10:01:12 +0100 | <danse-nr3> | :t folded |
2024-03-26 10:01:13 +0100 | <lambdabot> | (Indexable Int p, Contravariant f1, Foldable f2, Applicative f1) => p a (f1 a) -> f2 a -> f1 (f2 a) |
2024-03-26 10:01:19 +0100 | igemnace | (~ian@user/igemnace) (Read error: Connection reset by peer) |
2024-03-26 10:01:20 +0100 | <danse-nr3> | :t (^..) |
2024-03-26 10:01:21 +0100 | <lambdabot> | s -> Getting (Endo [a]) s a -> [a] |
2024-03-26 10:02:04 +0100 | <danse-nr3> | (also, good morning from this part of the world) |
2024-03-26 10:05:36 +0100 | <Inst> | thanks |
2024-03-26 10:05:42 +0100 | <Inst> | i still can't read lens type sigs |
2024-03-26 10:05:50 +0100 | <Inst> | i just know they work and if i get a type error i screwed up somewhere |
2024-03-26 10:05:50 +0100 | <ncf> | good thing you don't need to |
2024-03-26 10:06:46 +0100 | <danse-nr3> | i can't read them either ... was trying because the other day they were tamer so i hoped it was one of those cases |
2024-03-26 10:06:51 +0100 | <danse-nr3> | maybe ... |
2024-03-26 10:07:04 +0100 | <danse-nr3> | :t (^.. folded) |
2024-03-26 10:07:05 +0100 | <lambdabot> | Foldable f => f a -> [a] |
2024-03-26 10:07:44 +0100 | <ncf> | the actual type signatures you should read are in the haddocks |
2024-03-26 10:07:46 +0100 | <ncf> | folded :: Foldable f => IndexedFold Int (f a) a |
2024-03-26 10:10:09 +0100 | <Inst> | yeah but folded is basically equiv to fromList here :( |
2024-03-26 10:11:03 +0100 | <ncf> | well what else do you want |
2024-03-26 10:11:58 +0100 | <Inst> | foo = S.fromList [1..10] |
2024-03-26 10:12:11 +0100 | <Inst> | foo ?? [???} <===> 3 |
2024-03-26 10:12:27 +0100 | <ncf> | what |
2024-03-26 10:12:57 +0100 | <Inst> | I want lens operations to extract the 3rd (2nd index) element from the Set Int foo |
2024-03-26 10:13:35 +0100 | <Inst> | foo ^.. folded & (!! 2) works |
2024-03-26 10:14:10 +0100 | <danse-nr3> | Set Int foo? |
2024-03-26 10:14:26 +0100 | <danse-nr3> | oh i see what you mean |
2024-03-26 10:14:41 +0100 | <ncf> | that's not really an operation Set provides... |
2024-03-26 10:15:27 +0100 | <danse-nr3> | yeah i never think of sets as anything ordered |
2024-03-26 10:15:32 +0100 | hueso | (~root@user/hueso) |
2024-03-26 10:17:01 +0100 | <ncf> | but if you insist |
2024-03-26 10:17:19 +0100 | <ncf> | Set.fromList [1..10] ^? folded . index 2 |
2024-03-26 10:18:18 +0100 | igemnace | (~ian@user/igemnace) |
2024-03-26 10:21:34 +0100 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) |
2024-03-26 10:22:48 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2024-03-26 10:25:15 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-03-26 10:25:30 +0100 | danse-nr3 | (~danse@151.37.211.199) (Ping timeout: 268 seconds) |
2024-03-26 10:26:35 +0100 | zetef | (~quassel@5.2.182.99) (Ping timeout: 260 seconds) |
2024-03-26 10:27:15 +0100 | <Inst> | i love you so much <3 |
2024-03-26 10:27:16 +0100 | <Inst> | thanks |
2024-03-26 10:27:23 +0100 | <Inst> | ehhh, it still seems ridiculous, but what can I do :( |
2024-03-26 10:29:52 +0100 | danse-nr3 | (~danse@151.37.211.199) |
2024-03-26 10:30:21 +0100 | mima | (~mmh@aftr-62-216-211-42.dynamic.mnet-online.de) |
2024-03-26 10:32:52 +0100 | danse-nr3 | (~danse@151.37.211.199) (Remote host closed the connection) |
2024-03-26 10:34:34 +0100 | danse-nr3 | (~danse@151.37.211.199) |
2024-03-26 10:41:21 +0100 | zetef | (~quassel@5.2.182.99) |
2024-03-26 10:50:02 +0100 | gehmehgeh | (~user@user/gehmehgeh) (Ping timeout: 260 seconds) |
2024-03-26 10:51:02 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2024-03-26 10:56:09 +0100 | <tomsmeding> | the Set data structure does not store sizes of subtrees |
2024-03-26 10:56:14 +0100 | <tomsmeding> | so it cannot provide log-time indexing |
2024-03-26 10:56:29 +0100 | <tomsmeding> | Inst: so anything you'd do is linear-time, so you might as well go through toList |
2024-03-26 10:57:01 +0100 | <tomsmeding> | as notably distinct from Seq from Data.Sequence, which does provide log-time indexing |
2024-03-26 10:57:23 +0100 | <tomsmeding> | as danse-nr3 said, different data structures provide different operations |
2024-03-26 10:58:12 +0100 | <tomsmeding> | er wait |
2024-03-26 10:58:37 +0100 | <tomsmeding> | it does |
2024-03-26 10:58:40 +0100 | <Inst> | iirc Set is weird |
2024-03-26 10:58:49 +0100 | <Inst> | it's a balanced binary tree that stores its own size |
2024-03-26 10:58:57 +0100 | <tomsmeding> | :t Data.Set.elemAt |
2024-03-26 10:58:58 +0100 | <lambdabot> | Int -> S.Set a -> a |
2024-03-26 10:59:07 +0100 | tomsmeding | was mistaken |
2024-03-26 10:59:38 +0100 | <tomsmeding> | that's not a very weird data structure, but I remembered incorrectly |
2024-03-26 10:59:46 +0100 | <Inst> | maybe we just need better lenses for containers, some additions to Lens and Optics |
2024-03-26 10:59:50 +0100 | <tomsmeding> | (the size is use for balancing as well) |
2024-03-26 10:59:59 +0100 | <tomsmeding> | you can be the one to write them :) |
2024-03-26 11:00:27 +0100 | <Inst> | right now, my goal is to get the NixOS server set up, then to put out a prototype site, working on postgresql / servant / blaze or lucid stack |
2024-03-26 11:00:28 +0100 | <ncf> | no please don't write lenses for accessing the internal structure of Set |
2024-03-26 11:00:31 +0100 | hallucinagen | (~prodmezha@123.63.203.210) (Ping timeout: 256 seconds) |
2024-03-26 11:00:54 +0100 | <Inst> | i just want to be able to access the key name, okay? |
2024-03-26 11:01:04 +0100 | <tomsmeding> | but indeed it's a bit strange that you'd want the _index_ of a value in a Set |
2024-03-26 11:01:16 +0100 | <Inst> | it's not exactly that I need an index |
2024-03-26 11:01:28 +0100 | <Inst> | when I use mySet ^. ix 3, I just get Just () |
2024-03-26 11:01:28 +0100 | lisbeths | (uid135845@id-135845.lymington.irccloud.com) |
2024-03-26 11:01:34 +0100 | <tomsmeding> | where does the 3 come from |
2024-03-26 11:01:38 +0100 | <Inst> | it's arbitrary |
2024-03-26 11:01:41 +0100 | hiredman | (~hiredman@frontier1.downey.family) (Ping timeout: 240 seconds) |
2024-03-26 11:01:47 +0100 | zetef | (~quassel@5.2.182.99) (Ping timeout: 264 seconds) |
2024-03-26 11:01:48 +0100 | <tomsmeding> | why do you need this expression |
2024-03-26 11:01:53 +0100 | <tomsmeding> | what's the X problem :p |
2024-03-26 11:01:55 +0100 | <ncf> | sets are not for indexing into |
2024-03-26 11:02:25 +0100 | <Inst> | iirc, sets have indexing functions in their lib |
2024-03-26 11:02:33 +0100 | <tomsmeding> | they do, but why are you using them |
2024-03-26 11:02:49 +0100 | <tomsmeding> | what thing are you implementing that you need to access elements in a set by their index |
2024-03-26 11:02:55 +0100 | <Inst> | the goal is to not use the containers interface and just use the lens interface to provide a polymorphic way to work with data structures in haskell |
2024-03-26 11:02:55 +0100 | hueso | (~root@user/hueso) (Ping timeout: 256 seconds) |
2024-03-26 11:03:19 +0100 | <tomsmeding> | well accessing elements by their index smells of not using a set like it should be used :p |
2024-03-26 11:03:23 +0100 | <Inst> | because the containers import Data.Set qualified as Bleh shibboleth is horrible |
2024-03-26 11:03:36 +0100 | <tomsmeding> | that's the problem with data structures, they don't all have precisely the same interface |
2024-03-26 11:03:43 +0100 | <Inst> | I'm just floating a hypothesis |
2024-03-26 11:03:44 +0100 | <tomsmeding> | that's just the module system being annoying |
2024-03-26 11:03:52 +0100 | <Inst> | does it make more sense to teach Haskell with lens instead of monads? ;3 |
2024-03-26 11:04:05 +0100 | <tomsmeding> | how does lens subsume monads |
2024-03-26 11:04:31 +0100 | <tomsmeding> | similar to how you don't want to index into a [] list |
2024-03-26 11:04:34 +0100 | <Inst> | insofar as the ideal is that after Haskell lessons, people get into practical programming, and monads are 80% a solved problem |
2024-03-26 11:04:45 +0100 | <Inst> | at least it's log n indexing! |
2024-03-26 11:04:49 +0100 | <tomsmeding> | you can, it's quite defineable, and lenses let you do it, but if you're indexing into a list you're probably doing the wrong thing |
2024-03-26 11:04:56 +0100 | <ncf> | you still haven't answered the question |
2024-03-26 11:05:03 +0100 | <Inst> | which one? |
2024-03-26 11:05:09 +0100 | <ncf> | why do you need to index into a Set |
2024-03-26 11:05:14 +0100 | <tomsmeding> | why don't you want to use a set like you're supposed to use it :p |
2024-03-26 11:05:24 +0100 | <Inst> | I want to index into a set to replace the entire Data.Set interface with Lens / Optics |
2024-03-26 11:05:27 +0100 | <tomsmeding> | not even talking about Data.Set.Set, just any set data structure will have this same discussion |
2024-03-26 11:05:39 +0100 | <ncf> | that's your end goal? |
2024-03-26 11:05:39 +0100 | <tomsmeding> | the key of a Set is not the index |
2024-03-26 11:05:42 +0100 | <tomsmeding> | the key is the value |
2024-03-26 11:05:43 +0100 | <Inst> | yeah |
2024-03-26 11:05:58 +0100 | <Inst> | except under ^. at... on Set, you get () |
2024-03-26 11:06:04 +0100 | <Inst> | because it's treating it as a map of () values |
2024-03-26 11:06:23 +0100 | <tomsmeding> | then write a lens thing ish (I don't lens) that doesn't! |
2024-03-26 11:06:24 +0100 | <ncf> | lenses are about mathematical representations of data, they're certainly not about peeking into the internal structure of things |
2024-03-26 11:06:40 +0100 | <Inst> | ncf: yes, because the whole qualified imports shit on Vector and Containers feels like it defeats the point of typeclasses |
2024-03-26 11:07:22 +0100 | <Inst> | like how there's no generic fmap on set etc because they're not functors |
2024-03-26 11:07:28 +0100 | hueso | (~root@user/hueso) |
2024-03-26 11:07:33 +0100 | <ncf> | if you're using Set.elemAt, you're either implementing some primitive function that nobody should look at, or using Set incorrectly. in either case, you shouldn't be using lens |
2024-03-26 11:07:35 +0100 | <Inst> | so you can sidestep the problem by going to lens instead |
2024-03-26 11:07:49 +0100 | <tomsmeding> | you cannot sidestep the problem by going to lens instead |
2024-03-26 11:07:56 +0100 | <Inst> | yeah, we can't :( |
2024-03-26 11:07:58 +0100 | <tomsmeding> | the problem that a Set is not a functor doesn't go away :p |
2024-03-26 11:08:13 +0100 | <tomsmeding> | you just hide it behind less readable types |
2024-03-26 11:08:23 +0100 | TMA | (tma@twin.jikos.cz) (Ping timeout: 264 seconds) |
2024-03-26 11:08:31 +0100 | <tomsmeding> | formulate the API that you want to use for a Set, convince yourself that that API is implementable, and then implement it |
2024-03-26 11:08:34 +0100 | gehmehgeh | (~user@user/gehmehgeh) (Remote host closed the connection) |
2024-03-26 11:08:38 +0100 | <Inst> | i still need to go through ploeh showing how Set can violate the functor composition law |
2024-03-26 11:08:39 +0100 | <tomsmeding> | well and that that API makes sense for the data structure |
2024-03-26 11:09:20 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2024-03-26 11:09:24 +0100 | <tomsmeding> | the reason Set cannot implement Functor is that there's no way to implement `lookup` after you've fmapped in uncomparable values |
2024-03-26 11:09:42 +0100 | <tomsmeding> | perhaps you can find some interesting violation of functor laws as well |
2024-03-26 11:09:50 +0100 | <Inst> | it's just a pet peeve, and I think others pointed out there's no easy way to generate maps in Haskell, i.e, Haskell, unlike more recent languages, doesn't have special syntax for other data structures |
2024-03-26 11:09:55 +0100 | <tomsmeding> | but the banal point is that the data structure just only works on orderable elements :p |
2024-03-26 11:09:56 +0100 | <Inst> | hell, it doesn't even have special syntax for array |
2024-03-26 11:10:12 +0100 | TMA | (tma@twin.jikos.cz) |
2024-03-26 11:10:44 +0100 | <tomsmeding> | what is `lookup id (fmap (+) (Set.fromList [1..5]))` supposed to do |
2024-03-26 11:11:18 +0100 | <tomsmeding> | any lensy interface that you devise that would allow this, is wrong |
2024-03-26 11:11:28 +0100 | <Inst> | Nothing? ;) |
2024-03-26 11:11:42 +0100 | zmt01 | (~zmt00@user/zmt00) |
2024-03-26 11:11:45 +0100 | <tomsmeding> | any lensy interface that uses elemAt excessively, or even at all, is likely inefficient and probably suboptimal |
2024-03-26 11:11:59 +0100 | <tomsmeding> | Inst: well that point you're _definitely_ breaking the functor laws :p |
2024-03-26 11:12:22 +0100 | <tomsmeding> | at least when you combine them in a reasonable way with the properties of the Set methods |
2024-03-26 11:12:23 +0100 | <Inst> | since list lookup returns a maybe |
2024-03-26 11:12:41 +0100 | <ncf> | you're not breaking the functor laws |
2024-03-26 11:13:01 +0100 | <tomsmeding> | yeah no you're breaking the presumed property that fmap commutes with lookup |
2024-03-26 11:13:07 +0100 | <tomsmeding> | with sounds like a thing you really want to have |
2024-03-26 11:13:16 +0100 | <ncf> | are you? |
2024-03-26 11:13:17 +0100 | ubert | (~Thunderbi@2a02:8109:ab8a:5a00:8aa0:2a1c:7c77:360a) |
2024-03-26 11:13:17 +0100 | zmt00 | (~zmt00@user/zmt00) (Ping timeout: 268 seconds) |
2024-03-26 11:13:23 +0100 | <Inst> | anyways, the tentative plan is to provide a scripting dialect of haskell (or properly an eDSL) for the platform I want to use |
2024-03-26 11:13:27 +0100 | <ncf> | i don't get your example |
2024-03-26 11:13:44 +0100 | hiredman | (~hiredman@frontier1.downey.family) |
2024-03-26 11:13:52 +0100 | <Inst> | so you can see how my concerns are different, i.e, the plan is that the platform is FOSS, the database is blockchain (eventually) |
2024-03-26 11:13:57 +0100 | <Inst> | but you can run apps on the platform |
2024-03-26 11:13:58 +0100 | <tomsmeding> | ncf: Inst was suggesting that (ignoring concerns of "you can't check if a type does _not_ implement a type class") if a Set contains uncomparable values, lookup should just always return Nothing |
2024-03-26 11:14:12 +0100 | <ncf> | oh sorry i skipped over half of the discussion |
2024-03-26 11:15:36 +0100 | <tomsmeding> | Inst: then the challenge you have is not "how do I use elemAt", but "how do I design an interface to a number of data structures that is consistent, conventional in lensy idioms, and still properly aligns to the varying support for various operations of those data structures" |
2024-03-26 11:15:38 +0100 | <ncf> | well, my point is just that the "exofunctor" instance for Set doesn't violate any functor laws. it's just not a Functor in the usual sense |
2024-03-26 11:16:12 +0100 | <ncf> | (for compile time reasons rather than runtime reasons) |
2024-03-26 11:16:18 +0100 | <Inst> | oh, i didn't understand what you meant by exofunctor to begin with |
2024-03-26 11:16:33 +0100 | <ncf> | silly word for "not endo"-functor |
2024-03-26 11:16:43 +0100 | <tomsmeding> | maybe the answer is to have `class CFunctor c f where cfmap :: c b => (a -> b) -> f a -> f b` |
2024-03-26 11:16:47 +0100 | <ncf> | in this case a functor from the subcategory of Hask on the Ord types to Hask |
2024-03-26 11:16:48 +0100 | <tomsmeding> | or, a part of the answer |
2024-03-26 11:16:50 +0100 | <Inst> | since Set a puts a restriction on a of being a member of Eq, and functor can theoretically move it to non-Eq |
2024-03-26 11:16:59 +0100 | <Inst> | which also creates the problem that, say, if it's non-Eq, how should Set behave? |
2024-03-26 11:17:11 +0100 | <tomsmeding> | maybe CFunctor can work well with the rest of lens! Maybe not! |
2024-03-26 11:17:23 +0100 | <Inst> | but Map at least is a functor, no? |
2024-03-26 11:17:29 +0100 | <tomsmeding> | if you want to map over sets using lensy stuff, that's the question you'll need to answer |
2024-03-26 11:17:30 +0100 | <ncf> | Map k is |
2024-03-26 11:17:34 +0100 | <tomsmeding> | yes, because you're mapping over the values, not the keys |
2024-03-26 11:17:45 +0100 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 252 seconds) |
2024-03-26 11:19:21 +0100 | <tomsmeding> | _embrace_ the fact that Set is not a Functor, and work with it |
2024-03-26 11:19:32 +0100 | <tomsmeding> | the fact that Set is not a Functor allows it to have logarithmic-time lookup |
2024-03-26 11:19:36 +0100 | <tomsmeding> | in a sense |
2024-03-26 11:20:15 +0100 | <tomsmeding> | if you care more about being a Functor then you should use lists instead :p |
2024-03-26 11:20:20 +0100 | <Inst> | as opposed to arrays with a constant time look-up? :) |
2024-03-26 11:20:22 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
2024-03-26 11:20:26 +0100 | <tomsmeding> | and linear-time insertion |
2024-03-26 11:20:32 +0100 | <tomsmeding> | it's all trade-offs |
2024-03-26 11:20:48 +0100 | <Inst> | yeah i'm still embarrassed i'm not good with ByteArray# |
2024-03-26 11:21:21 +0100 | <tomsmeding> | constant-insert linear-lookup ([a]), log-insert log-lookup (Map Int a), linear-insert constant-lookup (Array Int a) |
2024-03-26 11:21:56 +0100 | <Inst> | what's the standard implementation of set, anyways? |
2024-03-26 11:22:00 +0100 | <tomsmeding> | why do you need ByteArray# all of a sudden lol |
2024-03-26 11:22:01 +0100 | <Inst> | I'm surprised Data.Set is balanced binary tree |
2024-03-26 11:22:14 +0100 | <mauke> | what was that proposal for making datatype contexts useful again? |
2024-03-26 11:22:14 +0100 | ft | (~ft@p508db238.dip0.t-ipconnect.de) (Quit: leaving) |
2024-03-26 11:22:16 +0100 | <tomsmeding> | Data.Vector.Mutable is good enough |
2024-03-26 11:22:45 +0100 | <tomsmeding> | Inst: what else would it be? |
2024-03-26 11:23:20 +0100 | <tomsmeding> | because it's Haskell you have to choose from the persistent data structures |
2024-03-26 11:23:31 +0100 | <mauke> | I remember something about swapping out Applicative for Monoidal and also making Set an instance of Functor |
2024-03-26 11:23:35 +0100 | <Inst> | I'm just not familiar enough with fundamentals of computer science to think of it as such, I'm only starting to implement stuff in C and going through Udemy DS courses (which without exception, suck) |
2024-03-26 11:23:39 +0100 | <tomsmeding> | balanced binary trees are a sweet spot that have log-time for most things and are still persistent |
2024-03-26 11:23:47 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2024-03-26 11:23:47 +0100 | <Inst> | well, that's probably too harsh on Udemy, there's got to be a few good courses there |
2024-03-26 11:24:10 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds) |
2024-03-26 11:24:14 +0100 | AlexNoo_ | AlexNoo |
2024-03-26 11:24:16 +0100 | <Inst> | regarding sets, I'm just curious how sets are implemented in other languages |
2024-03-26 11:24:26 +0100 | <Inst> | I'd assume they'd be arrays with different accessors |
2024-03-26 11:24:34 +0100 | <Inst> | set object |
2024-03-26 11:24:35 +0100 | <mauke> | typically balanced trees or hashtables |
2024-03-26 11:24:39 +0100 | <Inst> | ah |
2024-03-26 11:24:47 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2024-03-26 11:24:54 +0100 | <Inst> | Data.HashSet |
2024-03-26 11:24:58 +0100 | <mauke> | or bit arrays if the elements are enums |
2024-03-26 11:24:59 +0100 | <tomsmeding> | i.e. the same as Map k () ;) |
2024-03-26 11:25:09 +0100 | <mauke> | (hi, pascal) |
2024-03-26 11:25:10 +0100 | <Inst> | Data.HashMap :) |
2024-03-26 11:25:30 +0100 | <tomsmeding> | Inst: those are still balanced binary trees |
2024-03-26 11:25:50 +0100 | <tomsmeding> | a proper hash table is backed by an array and thus requires mutability to have sub-linear mutation |
2024-03-26 11:27:06 +0100 | <tomsmeding> | B-trees also exist as an implementation of maps (and thus sets), but those are still balanced trees, just not binary any more |
2024-03-26 11:27:22 +0100 | <mauke> | ooh, the thing I remember is "partial type constructors"! |
2024-03-26 11:28:00 +0100 | <Inst> | ack, w/e, going back to being psised at nixos-anywhere |
2024-03-26 11:28:04 +0100 | <Inst> | sorry about that |
2024-03-26 11:28:06 +0100 | <tomsmeding> | mauke: has the feeling of a hack that would break completely once haskell gets dependent enough |
2024-03-26 11:28:09 +0100 | <tomsmeding> | but I dunno :) |
2024-03-26 11:28:09 +0100 | <Inst> | i need to get the VPS running NixOS |
2024-03-26 11:28:40 +0100 | <Inst> | tbh if Haskell gets dependent enough, any thoughts on fixing the freaking DS syntax? |
2024-03-26 11:28:43 +0100 | <tomsmeding> | not because of the partiality, but because of the "where do you put the type class constraint" |
2024-03-26 11:28:53 +0100 | <Inst> | XOverloadedLists is an ugly hack and the type inference engine knows it |
2024-03-26 11:28:57 +0100 | <mauke> | https://dl.acm.org/doi/pdf/10.1145/3371108 |
2024-03-26 11:29:01 +0100 | <tomsmeding> | -XOverloaded* needs to die |
2024-03-26 11:29:11 +0100 | <tomsmeding> | can I have -XNonOverloadedInts already |
2024-03-26 11:29:39 +0100 | <mauke> | -XNoOverloadedIntegers, please |
2024-03-26 11:29:50 +0100 | <mauke> | :-P |
2024-03-26 11:29:51 +0100 | <tomsmeding> | yes |
2024-03-26 11:30:02 +0100 | <tomsmeding> | and have 123i mean an Int literal |
2024-03-26 11:30:05 +0100 | <tomsmeding> | or something |
2024-03-26 11:30:08 +0100 | <mauke> | no, Integer |
2024-03-26 11:30:13 +0100 | <Inst> | default (Int, Float) |
2024-03-26 11:30:23 +0100 | <mauke> | you made your cake, now lie in it |
2024-03-26 11:30:33 +0100 | <tomsmeding> | and default declarations can go to hell as well |
2024-03-26 11:30:47 +0100 | <tomsmeding> | mauke: fair :p |
2024-03-26 11:31:25 +0100 | <Inst> | which language invented the [1 2 3] list syntax anyways? |
2024-03-26 11:31:32 +0100 | <mauke> | MicroHs defaults to "default ()" IIRC |
2024-03-26 11:32:20 +0100 | <tomsmeding> | mauke: ah, that paper gives a definition of Functor that is kind of in the direction of my CFunctor |
2024-03-26 11:32:49 +0100 | tomsmeding | questions that you need a custom type system for this |
2024-03-26 11:33:11 +0100 | <tomsmeding> | at the cost of some nice syntax, perhaps |
2024-03-26 11:33:17 +0100 | <tomsmeding> | anyway I also have work to do lol |
2024-03-26 11:34:33 +0100 | <mauke> | https://www.youtube.com/watch?v=rqmCwpRXT_E https://www.youtube.com/watch?v=oSWeQrQ9CCY |
2024-03-26 11:38:29 +0100 | tomsmeding | should watch that at some point |
2024-03-26 11:38:36 +0100 | <tomsmeding> | some interesting discussion under the munihac video |
2024-03-26 11:41:42 +0100 | zetef | (~quassel@5.2.182.99) |
2024-03-26 11:43:02 +0100 | zetef | (~quassel@5.2.182.99) (Remote host closed the connection) |
2024-03-26 11:45:58 +0100 | hiredman | (~hiredman@frontier1.downey.family) (Ping timeout: 268 seconds) |
2024-03-26 11:46:44 +0100 | <cheater> | anyone here running the discourse? |
2024-03-26 11:46:49 +0100 | <cheater> | it's not sending out activation emails |
2024-03-26 11:51:13 +0100 | zetef | (~quassel@5.2.182.99) |
2024-03-26 11:53:14 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-03-26 11:57:51 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) |
2024-03-26 11:58:40 +0100 | hiredman | (~hiredman@frontier1.downey.family) |
2024-03-26 12:04:09 +0100 | mmhat | (~mmh@p200300f1c706a298ee086bfffe095315.dip0.t-ipconnect.de) |
2024-03-26 12:09:42 +0100 | zetef | (~quassel@5.2.182.99) (Remote host closed the connection) |
2024-03-26 12:11:47 +0100 | xff0x | (~xff0x@2405:6580:b080:900:f97d:d4c:a5b1:7ce0) |
2024-03-26 12:18:23 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 272 seconds) |
2024-03-26 12:20:24 +0100 | rvalue | (~rvalue@user/rvalue) (Ping timeout: 255 seconds) |
2024-03-26 12:33:37 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2024-03-26 12:34:18 +0100 | <tomsmeding> | GHC at its best: |
2024-03-26 12:34:20 +0100 | <tomsmeding> | > Expected a type, but ‘a’ has kind ‘Type’ |
2024-03-26 12:35:27 +0100 | <Inst> | okay, so Nixos-anywhere is deploying now |
2024-03-26 12:35:30 +0100 | <Inst> | I can BS a bit more |
2024-03-26 12:35:44 +0100 | <Inst> | have there been any attempts to replace HTML with a Haskell-based eDSL? |
2024-03-26 12:36:00 +0100 | <Inst> | Because the whole golden trinity thing, (HTML + CSS + JS), feels like BS to me |
2024-03-26 12:36:09 +0100 | <Inst> | I guess it's what's been driving the development of frameworks and so on |
2024-03-26 12:37:17 +0100 | <Inst> | HTML, even HTML5, is an ad-hoc pragmatic approach that has little logic other than historical precedent, CSS makes even less sense |
2024-03-26 12:39:44 +0100 | <Inst> | i mean in the sense of something that compiles to HTML etc, anyways |
2024-03-26 12:40:11 +0100 | hallucinagen | (~prodmezha@123.63.203.210) |
2024-03-26 12:43:19 +0100 | Core7852 | (~rosco@183.171.72.200) (Ping timeout: 260 seconds) |
2024-03-26 12:50:07 +0100 | renpose | (~renpose@user/renpose) |
2024-03-26 12:56:34 +0100 | hueso | (~root@user/hueso) (Ping timeout: 246 seconds) |
2024-03-26 12:59:09 +0100 | hueso | (~root@user/hueso) |
2024-03-26 12:59:38 +0100 | rvalue | (~rvalue@user/rvalue) |
2024-03-26 13:01:49 +0100 | alexherbo2 | (~alexherbo@2a02-8440-3240-9adf-586c-24cb-10b4-f9fd.rev.sfr.net) |
2024-03-26 13:03:42 +0100 | __monty__ | (~toonn@user/toonn) |
2024-03-26 13:05:13 +0100 | danse-nr3 | (~danse@151.37.211.199) (Ping timeout: 268 seconds) |
2024-03-26 13:05:40 +0100 | alexherbo2 | (~alexherbo@2a02-8440-3240-9adf-586c-24cb-10b4-f9fd.rev.sfr.net) (Remote host closed the connection) |
2024-03-26 13:10:54 +0100 | rvalue | (~rvalue@user/rvalue) (Read error: Connection reset by peer) |
2024-03-26 13:11:19 +0100 | rvalue | (~rvalue@user/rvalue) |
2024-03-26 13:11:21 +0100 | robobub | (uid248673@id-248673.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2024-03-26 13:24:17 +0100 | alexherbo2 | (~alexherbo@209.15.23.93.rev.sfr.net) |
2024-03-26 13:27:46 +0100 | a51 | (a51@gateway/vpn/protonvpn/a51) (Quit: WeeChat 4.2.1) |
2024-03-26 13:35:15 +0100 | danse-nr3 | (~danse@na-19-81-54.service.infuturo.it) |
2024-03-26 13:35:47 +0100 | hallucinagen | (~prodmezha@123.63.203.210) (Ping timeout: 256 seconds) |
2024-03-26 13:50:20 +0100 | dminuoso | (~weechat@user/dminuoso) |
2024-03-26 13:52:13 +0100 | a51 | (a51@gateway/vpn/protonvpn/a51) |
2024-03-26 13:53:45 +0100 | h_______________ | hammond |
2024-03-26 13:53:54 +0100 | hammond | (~abner@gateway02.insomnia247.nl) (Changing host) |
2024-03-26 13:53:54 +0100 | hammond | (~abner@user/hammond2) |
2024-03-26 13:58:32 +0100 | danse-nr3 | (~danse@na-19-81-54.service.infuturo.it) (Remote host closed the connection) |
2024-03-26 13:58:54 +0100 | danse-nr3 | (~danse@na-19-81-54.service.infuturo.it) |
2024-03-26 14:01:08 +0100 | mei | (~mei@user/mei) (Remote host closed the connection) |
2024-03-26 14:01:18 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-03-26 14:03:33 +0100 | mei | (~mei@user/mei) |
2024-03-26 14:09:39 +0100 | CiaoSen | (~Jura@2a05:5800:2bf:c200:e6b9:7aff:fe80:3d03) (Ping timeout: 260 seconds) |
2024-03-26 14:22:05 +0100 | mmhat | (~mmh@p200300f1c706a298ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2024-03-26 14:22:27 +0100 | mmhat | (~mmh@p200300f1c706a2b6ee086bfffe095315.dip0.t-ipconnect.de) |
2024-03-26 14:22:47 +0100 | <[exa]> | Inst: you'd probably need to replace the whole DOM model in all browsers first, HTML is just a trasmissible encoding of DOM |
2024-03-26 14:39:01 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2024-03-26 14:39:26 +0100 | danse-nr3 | (~danse@na-19-81-54.service.infuturo.it) (Remote host closed the connection) |
2024-03-26 14:39:48 +0100 | danse-nr3 | (~danse@na-19-81-54.service.infuturo.it) |
2024-03-26 14:49:45 +0100 | danse-nr3 | (~danse@na-19-81-54.service.infuturo.it) (Ping timeout: 272 seconds) |
2024-03-26 14:55:11 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2024-03-26 14:55:21 +0100 | shapr | (~user@c-24-218-186-89.hsd1.ma.comcast.net) |
2024-03-26 15:01:30 +0100 | acidjnk_new | (~acidjnk@p200300d6e708d544f8395f3770d8e9d9.dip0.t-ipconnect.de) (Ping timeout: 255 seconds) |
2024-03-26 15:04:49 +0100 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection) |
2024-03-26 15:05:14 +0100 | <Hecate> | https://discourse.haskell.org/t/pre-hftp-ghc-should-offer-low-level-logging-infrastructure/9159/12 |
2024-03-26 15:09:41 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-03-26 15:10:56 +0100 | danse-nr3 | (~danse@na-19-81-54.service.infuturo.it) |
2024-03-26 15:11:01 +0100 | lisbeths | (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2024-03-26 15:11:18 +0100 | danse-nr3 | (~danse@na-19-81-54.service.infuturo.it) (Remote host closed the connection) |
2024-03-26 15:11:40 +0100 | danse-nr3 | (~danse@na-19-81-54.service.infuturo.it) |
2024-03-26 15:16:13 +0100 | noumenon | (~noumenon@113.51-175-156.customer.lyse.net) |
2024-03-26 15:22:23 +0100 | <Inst> | [exa]: it gets me thinking of FRP and attempts to create a functional GUI |
2024-03-26 15:22:50 +0100 | <Inst> | [exa]: I'm more thinking of something that transpiles to DOM, as an acceptable solution, until we have a proper functional GUI paradigm out |
2024-03-26 15:23:46 +0100 | omegatron | (~some@user/omegatron) |
2024-03-26 15:25:24 +0100 | a51 | (a51@gateway/vpn/protonvpn/a51) (Quit: WeeChat 4.2.1) |
2024-03-26 15:46:44 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer) |
2024-03-26 15:54:27 +0100 | <danse-nr3> | my personal advice would be to do backend in haskell and frontend in purescript considering the current state of the ecosystem Inst. From the little i know you, you might not like to learn some purescript, yet that seems the most effective solution to me at the moment |
2024-03-26 15:54:52 +0100 | <Inst> | i actually would prefer javascript :3 |
2024-03-26 15:55:45 +0100 | <Inst> | like nicholas nassim taleb's stance on "middlebrow" art and literature, he'd rather do the pop pulp stuff and the classics / avant garde stuff, but not in between |
2024-03-26 15:56:19 +0100 | <danse-nr3> | i thought you were asking about server-side rendering, then i must have misunderstood |
2024-03-26 15:56:28 +0100 | <nullie> | is reflex-dom still alive? |
2024-03-26 15:56:49 +0100 | <danse-nr3> | yeah some people use reflex as far as i know |
2024-03-26 15:56:57 +0100 | <Inst> | i'm not actually going to do something like that, i just want to get the site working, have it look attractive ,then slowly expand functionality |
2024-03-26 15:57:20 +0100 | <Inst> | my goal would be to have a Haskell eDSL for websites, which the server would then translate into html / css / js, etc |
2024-03-26 15:57:39 +0100 | <danse-nr3> | that is server-side rendering |
2024-03-26 15:58:25 +0100 | <Inst> | but that's like a long-term goal |
2024-03-26 15:59:00 +0100 | <danse-nr3> | i mean that is what yesod offered before client-side rendering became more comfortable |
2024-03-26 15:59:39 +0100 | <Inst> | did yesod really offer that? |
2024-03-26 15:59:53 +0100 | <Inst> | i tried it, i didn't feel it, you had shakespearean templates that didn't really impress me |
2024-03-26 16:01:12 +0100 | <danse-nr3> | i see what you mean. There were other attempts that get closer to an embedded language, but i don't think it is a viable path at the moment. Anyways, you seem to have more pressing goals |
2024-03-26 16:02:28 +0100 | <Inst> | i mean the goal is that users on the platform would be able to use the eDSL to build apps for it |
2024-03-26 16:02:57 +0100 | <danse-nr3> | huh i thought you wanted to make a "social marketplace"? |
2024-03-26 16:02:57 +0100 | <Inst> | and iirc the monomer developer eventually wants his app to be suitable for mobile apps as well |
2024-03-26 16:03:19 +0100 | <Inst> | an MMO of the real economy? I.e, some kind of weird metaverse concept? |
2024-03-26 16:03:37 +0100 | <Inst> | one of the big inspirations is Chinese omni-apps |
2024-03-26 16:03:52 +0100 | <Inst> | like, Wechat, there's tons of plug-in apps that wechat itself uses, connected to their payment system |
2024-03-26 16:04:19 +0100 | <Inst> | so you just use wechat, it downloads its own apps, runs those apps, and you can buy stuff from its client apps |
2024-03-26 16:04:58 +0100 | <Inst> | so an average user could easily design their own storefront app, or even a map app for their taxi service, etc |
2024-03-26 16:05:10 +0100 | <danse-nr3> | i lost you. Monomer for mobile could make sense, yes |
2024-03-26 16:06:04 +0100 | <Inst> | let's say i have a platform. The platform allows users to create their own apps to sell goods and services through their site |
2024-03-26 16:06:37 +0100 | <danse-nr3> | and then you deploy such apps ... where? |
2024-03-26 16:06:42 +0100 | <Inst> | on the website |
2024-03-26 16:06:53 +0100 | <Inst> | on the platform, properly, with both a web and mobile app version |
2024-03-26 16:07:19 +0100 | <danse-nr3> | and why would your website or app be full of buyers? |
2024-03-26 16:07:44 +0100 | <Inst> | i mean the prime target is fiver and upwork taking like 20-30% rakes |
2024-03-26 16:08:01 +0100 | <danse-nr3> | huh you are talking online jobs now |
2024-03-26 16:08:12 +0100 | <Inst> | ya, that's the core competency, or at least starting competency |
2024-03-26 16:08:34 +0100 | <Inst> | imagine if FOSS people (I'm not really one of them) decided to do a FOSS version of Uber, FiveRR, Upwork, and Amazon |
2024-03-26 16:08:41 +0100 | <danse-nr3> | yeah so my advice would be try to focus on the core because that sounds challenging already |
2024-03-26 16:08:56 +0100 | <Inst> | just put out a minimal app, that's essentially a social network |
2024-03-26 16:09:15 +0100 | <Inst> | then work on making it so that members of the social network can advertise for and arrange transactions through Stripe or Paypal |
2024-03-26 16:09:28 +0100 | Guest52 | (~Guest52@185.57.29.142) (Ping timeout: 250 seconds) |
2024-03-26 16:10:46 +0100 | <Inst> | and see here: |
2024-03-26 16:10:47 +0100 | <Inst> | https://www.fiverr.com/gigs/microsoft |
2024-03-26 16:11:20 +0100 | <Inst> | this, in my intended product, would instead be the Microsoft store presence on the social app |
2024-03-26 16:11:30 +0100 | <Inst> | displaying the contracts they're buying and the contracts they're selling |
2024-03-26 16:11:54 +0100 | <danse-nr3> | sounds ambitious, good luck |
2024-03-26 16:12:25 +0100 | <Inst> | one step at a time, first step: get freaking nixos installed onto this VPS |
2024-03-26 16:14:09 +0100 | zetef | (~quassel@5.2.182.99) |
2024-03-26 16:17:00 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) (Ping timeout: 268 seconds) |
2024-03-26 16:23:14 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Ping timeout: 260 seconds) |
2024-03-26 16:24:10 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2024-03-26 16:25:17 +0100 | tri | (~tri@ool-18bbef1a.static.optonline.net) |
2024-03-26 16:29:36 +0100 | tri | (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 252 seconds) |
2024-03-26 16:36:35 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) |
2024-03-26 16:37:05 +0100 | zetef | (~quassel@5.2.182.99) (Remote host closed the connection) |
2024-03-26 16:46:53 +0100 | acidjnk_new | (~acidjnk@p200300d6e708d544d1e6663fb0659050.dip0.t-ipconnect.de) |
2024-03-26 16:48:25 +0100 | [Leary] | (~Leary]@user/Leary/x-0910699) (Remote host closed the connection) |
2024-03-26 16:49:32 +0100 | marinelli | (~weechat@gateway/tor-sasl/marinelli) |
2024-03-26 16:51:09 +0100 | Lycurgus | (~georg@user/Lycurgus) (Quit: leaving) |
2024-03-26 16:55:54 +0100 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
2024-03-26 17:12:54 +0100 | danse-nr3 | (~danse@na-19-81-54.service.infuturo.it) (Ping timeout: 255 seconds) |
2024-03-26 17:13:59 +0100 | erisco | (~erisco@d24-141-66-165.home.cgocable.net) (Ping timeout: 260 seconds) |
2024-03-26 17:14:33 +0100 | erisco | (~erisco@d24-141-66-165.home.cgocable.net) |
2024-03-26 17:18:22 +0100 | zetef | (~quassel@5.2.182.99) |
2024-03-26 17:19:08 +0100 | tzh | (~tzh@c-73-164-206-160.hsd1.or.comcast.net) |
2024-03-26 17:24:27 +0100 | <dmj`> | Inst: htmx looks cool, you should check that out. Building a web framework around it w/ wai and jmacro could be nice |
2024-03-26 17:27:37 +0100 | tri | (~tri@ool-18bbef1a.static.optonline.net) |
2024-03-26 17:31:53 +0100 | <Inst> | https://hackage.haskell.org/package/lucid-htmx |
2024-03-26 17:32:05 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 256 seconds) |
2024-03-26 17:32:23 +0100 | tri | (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 264 seconds) |
2024-03-26 17:33:06 +0100 | alexherbo2 | (~alexherbo@209.15.23.93.rev.sfr.net) (Ping timeout: 250 seconds) |
2024-03-26 17:34:59 +0100 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 255 seconds) |
2024-03-26 17:39:10 +0100 | danza | (~francesco@151.37.183.29) |
2024-03-26 17:40:10 +0100 | <haskellbridge> | <Jade> why does `take 10 <$> readFile "/dev/random" result in an error `invalid argument (cannot decode byte sequence starting from <N>` after reading a few bytes? |
2024-03-26 17:40:10 +0100 | billchenchina | (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) |
2024-03-26 17:40:56 +0100 | gehmehgeh | gmg |
2024-03-26 17:41:03 +0100 | <geekosaur> | because your locale is probably a UTF8 and /dev/random can easily produce illegal UTF8 sequences |
2024-03-26 17:42:56 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-03-26 17:48:58 +0100 | phma_ | (~phma@host-67-44-208-68.hnremote.net) (Read error: Connection reset by peer) |
2024-03-26 17:50:04 +0100 | phma_ | (~phma@host-67-44-208-21.hnremote.net) |
2024-03-26 17:51:39 +0100 | <geekosaur> | the documentation says errors should be discarded, but https://downloads.haskell.org/ghc/9.8.1/docs/users_guide/bugs.html#in-prelude-support at end of subsection says ghc throws the error instead |
2024-03-26 17:54:50 +0100 | tremon | (~tremon@83.80.159.219) |
2024-03-26 17:55:39 +0100 | zetef | (~quassel@5.2.182.99) (Remote host closed the connection) |
2024-03-26 17:56:53 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2024-03-26 17:57:56 +0100 | <ncf> | what would happened if the error was discarded? would it read more data until 10 unicode characters are produced? i don't think that's what the report entails |
2024-03-26 17:57:59 +0100 | <ncf> | happen* |
2024-03-26 17:58:47 +0100 | igemnace | (~ian@user/igemnace) (Read error: Connection reset by peer) |
2024-03-26 17:58:51 +0100 | <dmj`> | Inst: yea but that's just generating htmx that has the data- annotations, I'm referring to mapping the ajax handlers back to pure haskell functions |
2024-03-26 17:59:03 +0100 | Guest52 | (~Guest52@185.57.29.142) |
2024-03-26 17:59:10 +0100 | <geekosaur> | the report says it acts like EOF |
2024-03-26 17:59:49 +0100 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
2024-03-26 18:00:44 +0100 | <geekosaur> | that said, this is actually a gray area: the report says I/O errors are discarded, but is silent about decoding errors (and in fact about decoding) |
2024-03-26 18:02:42 +0100 | a51 | (a51@gateway/vpn/protonvpn/a51) |
2024-03-26 18:03:27 +0100 | hackyhacker | (~hackyhack@45-105-169-81.mobileinternet.proximus.be) |
2024-03-26 18:03:59 +0100 | <Inst> | <Jade> Data.ByteString.readFile :3 |
2024-03-26 18:05:19 +0100 | hackyhacker | (~hackyhack@45-105-169-81.mobileinternet.proximus.be) (Read error: Connection reset by peer) |
2024-03-26 18:05:50 +0100 | <Inst> | actually, that doesn't work |
2024-03-26 18:06:41 +0100 | <Inst> | need Data.ByteString.Lazy.readFile |
2024-03-26 18:07:12 +0100 | <Inst> | and... it's beautiful :3 |
2024-03-26 18:10:03 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 255 seconds) |
2024-03-26 18:15:27 +0100 | igemnace | (~ian@user/igemnace) |
2024-03-26 18:25:12 +0100 | phma_ | phma |
2024-03-26 18:29:29 +0100 | <EvanR> | utf8 allows resuming decoding after encountering nonsense, in case valid utf8 was corrupted at some point |
2024-03-26 18:29:38 +0100 | igemnace | (~ian@user/igemnace) (Quit: WeeChat 4.2.1) |
2024-03-26 18:30:01 +0100 | <EvanR> | it could be used to derive fun and profit from /dev/random |
2024-03-26 18:30:18 +0100 | renpose | (~renpose@user/renpose) (Ping timeout: 250 seconds) |
2024-03-26 18:31:50 +0100 | hackyhacker | (~hackyhack@43-105-169-81.mobileinternet.proximus.be) |
2024-03-26 18:37:24 +0100 | hallucinagen | (~prodmezha@123.63.203.210) |
2024-03-26 18:45:53 +0100 | Square | (~Square4@user/square) |
2024-03-26 18:48:22 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 260 seconds) |
2024-03-26 18:50:16 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2024-03-26 18:53:41 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-03-26 18:58:39 +0100 | rvalue | (~rvalue@user/rvalue) (Ping timeout: 252 seconds) |
2024-03-26 19:00:10 +0100 | <Inst> | wait, a binary tree can be foldr-ed, right? |
2024-03-26 19:00:59 +0100 | <danza> | i would expect so |
2024-03-26 19:01:23 +0100 | tri | (~tri@ool-18bbef1a.static.optonline.net) |
2024-03-26 19:01:25 +0100 | <Inst> | oh, but this is really ugly |
2024-03-26 19:02:06 +0100 | <Inst> | nstance Foldable BTree where |
2024-03-26 19:02:07 +0100 | <Inst> | ghci| foldr f z Lf = z |
2024-03-26 19:02:07 +0100 | <Inst> | ghci| foldr f z (Br a cont1 cont2) = foldr f (f a (foldr f z cont1)) cont2 |
2024-03-26 19:02:07 +0100 | <Inst> | ghci| |
2024-03-26 19:02:50 +0100 | <Inst> | should be in reverse |
2024-03-26 19:03:48 +0100 | <Inst> | yeah, switching the conts should be correct |
2024-03-26 19:03:48 +0100 | hackyhacker | (~hackyhack@43-105-169-81.mobileinternet.proximus.be) (Read error: Connection reset by peer) |
2024-03-26 19:06:53 +0100 | danza | (~francesco@151.37.183.29) (Ping timeout: 268 seconds) |
2024-03-26 19:07:13 +0100 | rvalue | (~rvalue@user/rvalue) |
2024-03-26 19:10:26 +0100 | hackyhacker | (~hackyhack@43-105-169-81.mobileinternet.proximus.be) |
2024-03-26 19:23:52 +0100 | <EvanR> | Inst, just replace the leaves with the z and the constructors with f |
2024-03-26 19:24:12 +0100 | hackyhacker | (~hackyhack@43-105-169-81.mobileinternet.proximus.be) (Read error: Connection reset by peer) |
2024-03-26 19:27:22 +0100 | <Inst> | try it :3 |
2024-03-26 19:27:33 +0100 | <Inst> | :t foldr |
2024-03-26 19:27:34 +0100 | <lambdabot> | Foldable t => (a -> b -> b) -> b -> t a -> b |
2024-03-26 19:27:46 +0100 | <Inst> | you can't do it the easy way in a binary tree |
2024-03-26 19:28:25 +0100 | <Inst> | how about data RTree a = Rose [RTree a]? |
2024-03-26 19:29:05 +0100 | <Inst> | I'm busy trying to inject data BTree a = Lf | Br a (BTree a) (BTree a) into a traversable now |
2024-03-26 19:30:01 +0100 | <tomsmeding> | Inst: try writing the catamorphism |
2024-03-26 19:30:22 +0100 | <tomsmeding> | cataBTree :: r -> (a -> r -> r -> r) -> BTree a -> r |
2024-03-26 19:30:53 +0100 | <tomsmeding> | catamorphisms ("folds") are more well-behaved in a certain sense, but their signature naturally depends on the constructors of the data type |
2024-03-26 19:31:04 +0100 | <tomsmeding> | Data.Foldable.foldr is the catamorphism on lists |
2024-03-26 19:31:27 +0100 | <tomsmeding> | it so happens that you can also wrench it onto other data structures, but it was made for lists |
2024-03-26 19:31:48 +0100 | <tomsmeding> | EvanR: you could do that to /dev/urandom but you wouldn't get a uniform distribution on unicode codepoints |
2024-03-26 19:33:30 +0100 | <Inst> | i'm sort of embarrassed because I can't write instance Applicative BTree right now, nor can I write instance Applicative MyList :( |
2024-03-26 19:33:46 +0100 | <tomsmeding> | can you write the monad instance |
2024-03-26 19:34:02 +0100 | <Inst> | of course, that's easy |
2024-03-26 19:34:04 +0100 | <tomsmeding> | because then (<*>) = ap ;) |
2024-03-26 19:34:22 +0100 | <Inst> | yeah but that seems cheap |
2024-03-26 19:34:27 +0100 | <Inst> | and i keep on wondering if it's actually performant |
2024-03-26 19:34:40 +0100 | <tomsmeding> | it just calls (>>=) twice |
2024-03-26 19:35:09 +0100 | <tomsmeding> | you can expand the >>= calls manually and see what you end up with :p |
2024-03-26 19:35:17 +0100 | <tomsmeding> | and if you can simplify that |
2024-03-26 19:36:55 +0100 | triceraptor | (~prodmezha@223.187.113.18) |
2024-03-26 19:36:56 +0100 | <tomsmeding> | the thing is that there are multiple possible Applicative instances for rose trees I think |
2024-03-26 19:37:11 +0100 | <tomsmeding> | and I think also multiple monad instances |
2024-03-26 19:37:26 +0100 | <tomsmeding> | Applicative and Monad for rose trees are the weirdest things |
2024-03-26 19:37:50 +0100 | <tomsmeding> | you're forced to combine things that ought to be separate, and it's kind of arbitrary how you do so |
2024-03-26 19:38:12 +0100 | <ncf> | every Monad instance yields two Applicative instances, for starters |
2024-03-26 19:38:32 +0100 | <monochrom> | :( |
2024-03-26 19:38:35 +0100 | <tomsmeding> | iirc for containers:Data.Tree.Tree there are actually multiple lawful monad instances |
2024-03-26 19:38:42 +0100 | <tomsmeding> | and none of them is sensible (imo) |
2024-03-26 19:40:47 +0100 | hallucinagen | (~prodmezha@123.63.203.210) (Ping timeout: 264 seconds) |
2024-03-26 19:41:52 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2024-03-26 19:47:53 +0100 | <EvanR> | tomsmeding, uniform would be boring anyway |
2024-03-26 19:48:07 +0100 | <tomsmeding> | :p |
2024-03-26 19:51:05 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-03-26 19:55:47 +0100 | linzage | (~prodmezha@223.187.113.18) |
2024-03-26 19:58:05 +0100 | ft | (~ft@p508db238.dip0.t-ipconnect.de) |
2024-03-26 19:58:41 +0100 | triceraptor | (~prodmezha@223.187.113.18) (Ping timeout: 268 seconds) |
2024-03-26 20:05:15 +0100 | <Inst> | https://paste.tomsmeding.com/2nrNVPi9 |
2024-03-26 20:05:32 +0100 | <Inst> | oh, i'm an idiot |
2024-03-26 20:06:05 +0100 | linzage | (~prodmezha@223.187.113.18) (Ping timeout: 268 seconds) |
2024-03-26 20:06:36 +0100 | <Inst> | I don't think I can do better than this for explicit recursive solutions, right? |
2024-03-26 20:07:04 +0100 | <tomsmeding> | what is MyList |
2024-03-26 20:07:30 +0100 | <Inst> | data MyList a = MLL | MLBr a (MyList a) |
2024-03-26 20:07:58 +0100 | <tomsmeding> | which applicative instance are you going for :p |
2024-03-26 20:08:15 +0100 | <tomsmeding> | the interleaving one, presumably |
2024-03-26 20:08:21 +0100 | <Inst> | the standard one |
2024-03-26 20:08:24 +0100 | <Inst> | not ziplist |
2024-03-26 20:08:53 +0100 | <Inst> | i'm bored and bashing my head in against trying to install nixos, so might as well go review implementation of list applicatives and foldr |
2024-03-26 20:09:30 +0100 | <tomsmeding> | MLBr f fcont <*> l = fmap f l ++ (fcont <*> l) |
2024-03-26 20:09:32 +0100 | <tomsmeding> | right? |
2024-03-26 20:09:36 +0100 | <EvanR> | review your scriptures |
2024-03-26 20:09:54 +0100 | <tomsmeding> | potentially you can write a special-case fmap-plus-append |
2024-03-26 20:09:55 +0100 | <monochrom> | Explicit recursion is OK. |
2024-03-26 20:10:57 +0100 | <Inst> | the append is less efficient, no? |
2024-03-26 20:11:14 +0100 | <tomsmeding> | yeah, so you'd manually fuse fmap and append |
2024-03-26 20:11:24 +0100 | <tomsmeding> | which results in roughly the same code as you currently have :p |
2024-03-26 20:11:28 +0100 | <tomsmeding> | slightly less special-cased |
2024-03-26 20:11:34 +0100 | <monochrom> | In the case of list's <*>, it is even more enlightening to see that one of your two explicit recursions is just fmap. |
2024-03-26 20:11:36 +0100 | <Inst> | oh wait, append should be doubly strict? I forget |
2024-03-26 20:11:46 +0100 | <tomsmeding> | monochrom: have you looked at the paste |
2024-03-26 20:12:11 +0100 | <monochrom> | Yes. It has an outer recursion and an inner recursion. One of them is fmap. |
2024-03-26 20:12:19 +0100 | Guest28 | (~Guest28@broadband-178-140-136-65.ip.moscow.rt.ru) |
2024-03-26 20:12:26 +0100 | <tomsmeding> | no |
2024-03-26 20:12:36 +0100 | <tomsmeding> | note the last equation of go |
2024-03-26 20:12:49 +0100 | <Inst> | yeah, it is, but the point is that i'm trying to avoid the <> |
2024-03-26 20:12:57 +0100 | <Inst> | (except this one doesn't even have a semigroup instance written for it) |
2024-03-26 20:13:01 +0100 | <tomsmeding> | it's _approximately_ fmap, but not precisely |
2024-03-26 20:13:10 +0100 | <tomsmeding> | it's fmap fused with this particular append |
2024-03-26 20:13:52 +0100 | <monochrom> | Ugh then it's poorly written :) |
2024-03-26 20:13:57 +0100 | <Inst> | ugh why |
2024-03-26 20:14:00 +0100 | <Inst> | :( |
2024-03-26 20:14:02 +0100 | <Inst> | oh, monochrom |
2024-03-26 20:14:06 +0100 | <tomsmeding> | monochrom: would you use (++)? |
2024-03-26 20:17:09 +0100 | ezzieygu1wuf | ezzieyguywuf |
2024-03-26 20:18:05 +0100 | <monochrom> | Yes. |
2024-03-26 20:18:19 +0100 | <tomsmeding> | then you have two traversals over each part: one in fmap and one in (++) |
2024-03-26 20:18:42 +0100 | <tomsmeding> | barring clever deforestation by ghc (does that happen here? I dunno), that's less efficient than one traversal |
2024-03-26 20:20:27 +0100 | elkcl | (~elkcl@broadband-178-140-136-65.ip.moscow.rt.ru) (Remote host closed the connection) |
2024-03-26 20:21:17 +0100 | <monochrom> | I have trouble seeing why that is a priority, given that the prior conversation seems to be on learning applicatives and monads. |
2024-03-26 20:21:24 +0100 | elkcl | (~elkcl@broadband-178-140-136-65.ip.moscow.rt.ru) |
2024-03-26 20:21:24 +0100 | <tomsmeding> | fair :D |
2024-03-26 20:21:43 +0100 | <tomsmeding> | Inst: ^ |
2024-03-26 20:22:21 +0100 | <tomsmeding> | and it's a minor problem anyway, it's a constant factor overhead that won't even reach 2x; the complexity is fine |
2024-03-26 20:22:55 +0100 | <Inst> | ??? |
2024-03-26 20:22:59 +0100 | <Inst> | relearning applicatives and monads |
2024-03-26 20:23:14 +0100 | <Inst> | the real goal is more like, actually getting a solid understanding of traversable |
2024-03-26 20:23:14 +0100 | <tomsmeding> | still, the version with fmap and ++ is much nicer |
2024-03-26 20:23:16 +0100 | <Inst> | I'm thinking about |
2024-03-26 20:23:39 +0100 | <tomsmeding> | and much clearer in the actual data flow |
2024-03-26 20:23:50 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2024-03-26 20:23:51 +0100 | <monochrom> | An insight I discovered when writing lectures for them was precisely that not only applicative does more than functor, but also an internal sense of how much: in many cases (at least Maybe and []), <*> can build upon fmap, but also needs to add its own case analysis. |
2024-03-26 20:23:59 +0100 | <Inst> | traverseB_ :: (Applicative f, Traversable t) :: (a -> Maybe (f b)) -> t a -> f () |
2024-03-26 20:24:35 +0100 | zetef | (~quassel@5.2.182.98) |
2024-03-26 20:24:36 +0100 | <Inst> | you can get what this is really about, right? |
2024-03-26 20:24:39 +0100 | <monochrom> | For code optimization, I would still start with map and (++), then recongize that they are both foldr's, then try to use one of those foldr fusion laws. |
2024-03-26 20:24:53 +0100 | <elkcl> | hi, maybe a bit of an offtopic question (idk of a better place to ask this): is there a more a less practical example of a type constructor in lambda *weak* omega? I tried writing down the pair type constructor as an example (pairs like in untyped lambda calculus, where pair a b = λf. f a b), but looks like I still need П-types for that (because it is unclear what the result type of f would be), which makes it lambda omega, not |
2024-03-26 20:24:54 +0100 | <elkcl> | lambda *weak* omega |
2024-03-26 20:25:09 +0100 | <Inst> | lol nested loops? :3 |
2024-03-26 20:25:24 +0100 | <monochrom> | (And I don't commit to whether it is human or computer who do that rewrite.) |
2024-03-26 20:25:31 +0100 | <tomsmeding> | monochrom: a <*> b == ap a b == do { f <- a; x <- b; return (f x) } == do { f <- a; f <$> b } |
2024-03-26 20:25:42 +0100 | <tomsmeding> | it can always build on fmap |
2024-03-26 20:25:58 +0100 | <monochrom> | But that one builds on >>= and join :( |
2024-03-26 20:26:04 +0100 | <Inst> | okay, thanks for the challenge, i'll rewrite both of them as foldr :) |
2024-03-26 20:26:13 +0100 | <tomsmeding> | monochrom: unless you inline this particular application of >>= :p |
2024-03-26 20:26:20 +0100 | <tomsmeding> | which is the same anyway |
2024-03-26 20:26:23 +0100 | <monochrom> | Yeah I inline that. |
2024-03-26 20:26:31 +0100 | <Inst> | since i have a foldable implementation up already |
2024-03-26 20:27:33 +0100 | <tomsmeding> | elkcl: try ##dependent or #agda perhaps |
2024-03-26 20:28:10 +0100 | zetef | (~quassel@5.2.182.98) (Remote host closed the connection) |
2024-03-26 20:28:21 +0100 | <monochrom> | So I write like "Nothing <*> _ = Nothing; Just f <*> xs = fmap f xs" |
2024-03-26 20:28:32 +0100 | <elkcl> | tomsmeding: ok thanks |
2024-03-26 20:28:34 +0100 | tomsmeding | writes the same |
2024-03-26 20:31:57 +0100 | Angelz | Back. |
2024-03-26 20:32:04 +0100 | <Inst> | ugh, needs same number of arguments |
2024-03-26 20:32:47 +0100 | <mauke> | Just f <*> Just x = pure (f x); _ <*> _ = mempty |
2024-03-26 20:33:08 +0100 | <Inst> | (<*>) a = case a of Nothing -> Nothing; Just f -> fmap f |
2024-03-26 20:33:09 +0100 | <Inst> | pffft |
2024-03-26 20:33:26 +0100 | <Inst> | still need to deconstruct the thing |
2024-03-26 20:33:31 +0100 | <Inst> | can't get it point free |
2024-03-26 20:34:17 +0100 | <[exa]> | Inst: guards should help a little there |
2024-03-26 20:34:18 +0100 | <mauke> | @pl \f x -> f >>= (<$> x) |
2024-03-26 20:34:18 +0100 | <lambdabot> | (. flip (<$>)) . (>>=) |
2024-03-26 20:34:33 +0100 | <Inst> | (<*>) = fromMaybe (const Nothing) |
2024-03-26 20:35:16 +0100 | <Inst> | that doesn't work |
2024-03-26 20:35:41 +0100 | <mauke> | :t fmap . fromMaybe (const Nothing) |
2024-03-26 20:35:42 +0100 | <lambdabot> | Functor f => Maybe (a1 -> Maybe a2) -> f a1 -> f (Maybe a2) |
2024-03-26 20:36:08 +0100 | <tomsmeding> | :t \f -> maybe Nothing (Just . f) |
2024-03-26 20:36:09 +0100 | <lambdabot> | (a1 -> a2) -> Maybe a1 -> Maybe a2 |
2024-03-26 20:37:09 +0100 | <tomsmeding> | @pl \f x -> maybe Nothing (\g -> g <$> x) f |
2024-03-26 20:37:09 +0100 | <lambdabot> | flip (maybe Nothing . flip (<$>)) |
2024-03-26 20:37:26 +0100 | <tomsmeding> | :t flip (maybe Nothing `fmap` flip fmap) |
2024-03-26 20:37:27 +0100 | <lambdabot> | Maybe (a1 -> a2) -> Maybe a1 -> Maybe a2 |
2024-03-26 20:38:29 +0100 | <Inst> | a <*> b = foldr (\f -> foldr ((:) . f) [] b) [] a |
2024-03-26 20:38:32 +0100 | <Inst> | still doesn't work :( |
2024-03-26 20:39:12 +0100 | <Inst> | should be able to figure out how to do it with foldr, but avoid the (<>) |
2024-03-26 20:40:09 +0100 | <tomsmeding> | @pl \fs xs -> foldr (\f acc -> foldr (\x acc' -> f x : acc') acc xs) [] fs |
2024-03-26 20:40:09 +0100 | <lambdabot> | flip (flip foldr [] . flip (flip . foldr . ((:) .))) |
2024-03-26 20:40:16 +0100 | <tomsmeding> | chef's kiss |
2024-03-26 20:41:44 +0100 | <mauke> | :t \a b -> foldr (\f z -> foldr ((:) . f) z b) [] a |
2024-03-26 20:41:45 +0100 | <lambdabot> | (Foldable t1, Foldable t2) => t1 (a1 -> a2) -> t2 a1 -> [a2] |
2024-03-26 20:42:09 +0100 | Pozyomka | (~pyon@user/pyon) (Ping timeout: 255 seconds) |
2024-03-26 20:43:55 +0100 | Pozyomka | (~pyon@user/pyon) |
2024-03-26 20:47:24 +0100 | <Inst> | grrrr! |
2024-03-26 20:48:21 +0100 | <Inst> | and yeah that's better cuz of foldr streaming, no? |
2024-03-26 20:48:46 +0100 | <ski> | Right x >>= k = k x |
2024-03-26 20:48:58 +0100 | <ski> | e@(Left _) >>= _ = e |
2024-03-26 20:53:38 +0100 | <tomsmeding> | ski: that second equation doesn't typecheck |
2024-03-26 20:53:43 +0100 | <tomsmeding> | unfortunately |
2024-03-26 20:54:18 +0100 | zetef | (~quassel@5.2.182.98) |
2024-03-26 20:54:53 +0100 | <mauke> | e@Left{} >>= _ = unsafeCoerce e |
2024-03-26 20:55:55 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2024-03-26 21:00:06 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
2024-03-26 21:00:52 +0100 | <haskellbridge> | <Jade> mauke: can you use record syntax for normal ADTs? |
2024-03-26 21:01:08 +0100 | <tomsmeding> | only {} |
2024-03-26 21:02:53 +0100 | <geekosaur> | is the as-pattern even needed there? the first pattern should have already forced it |
2024-03-26 21:03:38 +0100 | <tomsmeding> | I should show that instance to my students lol |
2024-03-26 21:03:42 +0100 | <tomsmeding> | they be "uh" |
2024-03-26 21:03:52 +0100 | <haskellbridge> | <Jade> omsmeding: interesting, thanks |
2024-03-26 21:04:03 +0100 | <ski> | tomsmeding : the point would be to have `e' get assigned the type `forall b. Either a b', there |
2024-03-26 21:04:11 +0100 | <haskellbridge> | <Jade> oops, I'm sorry for cutting off your name |
2024-03-26 21:04:17 +0100 | <tomsmeding> | ski: yeah but it doesn't :p |
2024-03-26 21:04:25 +0100 | <ski> | in the current type system |
2024-03-26 21:04:33 +0100 | <tomsmeding> | indeed |
2024-03-26 21:04:46 +0100 | <tomsmeding> | Jade: I've seen much weirder misspellings :p |
2024-03-26 21:04:58 +0100 | <tomsmeding> | and I sympathise because autocomplete is broken across the bridge |
2024-03-26 21:05:05 +0100 | <tomsmeding> | (presumably; it is on this side) |
2024-03-26 21:05:12 +0100 | hackyhacker | (~hackyhack@109.140.160.93) |
2024-03-26 21:05:15 +0100 | <ski> | with "polymorphic variants" (lightweight variants, using row types) in OCaml, the type of `e' in the corresponding code would not include the alternative `Right' |
2024-03-26 21:05:35 +0100 | <haskellbridge> | <Jade> sadly can't blame this one on technology :P |
2024-03-26 21:05:36 +0100 | <haskellbridge> | <Jade> purely my fault |
2024-03-26 21:06:23 +0100 | <ski> | geekosaur : strictly speaking, no. i just tend to prefer to make the defining equations independent of each other, so that the result (not considering bottoms at least) does not depend on the ordering |
2024-03-26 21:07:10 +0100 | <ski> | (in some cases, that does make the size of the code explode, though) |
2024-03-26 21:09:25 +0100 | target_i | (~target_i@user/target-i/x-6023099) |
2024-03-26 21:13:18 +0100 | dhil | (~dhil@2001:8e0:2014:3100:65f2:4b8b:1e5:eca) |
2024-03-26 21:15:54 +0100 | pavonia | (~user@user/siracusa) |
2024-03-26 21:21:56 +0100 | hackyhacker | (~hackyhack@109.140.160.93) (Read error: Connection reset by peer) |
2024-03-26 21:36:52 +0100 | zetef | (~quassel@5.2.182.98) (Remote host closed the connection) |
2024-03-26 21:51:53 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
2024-03-26 21:54:12 +0100 | Guest28 | (~Guest28@broadband-178-140-136-65.ip.moscow.rt.ru) (Quit: Client closed) |
2024-03-26 21:54:43 +0100 | elkcl | (~elkcl@broadband-178-140-136-65.ip.moscow.rt.ru) (Quit: Konversation terminated!) |
2024-03-26 21:58:23 +0100 | siw5ohs0 | (~aiw5ohs0@user/aiw5ohs0) |
2024-03-26 21:58:37 +0100 | siw5ohs0 | (~aiw5ohs0@user/aiw5ohs0) (Leaving) |
2024-03-26 22:05:43 +0100 | target_i | (~target_i@user/target-i/x-6023099) (Ping timeout: 268 seconds) |
2024-03-26 22:05:59 +0100 | target_i | (~target_i@user/target-i/x-6023099) |
2024-03-26 22:06:16 +0100 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) |
2024-03-26 22:08:47 +0100 | sprout | (~quassel@2a02-a448-3a80-0-e595-ce43-46c0-8c8c.fixed6.kpn.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2024-03-26 22:09:23 +0100 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht) |
2024-03-26 22:15:08 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.1.1) |
2024-03-26 22:16:07 +0100 | sprout | (~quassel@2a02-a448-3a80-0-7de0-65dd-3177-b6a5.fixed6.kpn.net) |
2024-03-26 22:16:23 +0100 | michalz | (~michalz@185.246.207.215) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-03-26 22:27:07 +0100 | ania123 | (~ania123@94-43-231-47.dsl.utg.ge) |
2024-03-26 22:31:18 +0100 | tri | (~tri@ool-18bbef1a.static.optonline.net) (Remote host closed the connection) |
2024-03-26 22:31:51 +0100 | tri | (~tri@ool-18bbef1a.static.optonline.net) |
2024-03-26 22:36:27 +0100 | tri | (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 252 seconds) |
2024-03-26 22:38:11 +0100 | flukiluke | (~m-7humut@2603:c023:c000:6c7e:8945:ad24:9113:a962) (Remote host closed the connection) |
2024-03-26 22:39:23 +0100 | flukiluke | (~m-7humut@2603:c023:c000:6c7e:8945:ad24:9113:a962) |
2024-03-26 22:40:09 +0100 | [Leary] | (~Leary]@user/Leary/x-0910699) |
2024-03-26 22:51:28 +0100 | omegatron | (~some@user/omegatron) (Quit: Power is a curious thing. It can be contained, hidden, locked away, and yet it always breaks free.) |
2024-03-26 22:57:29 +0100 | Lycurgus | (~georg@user/Lycurgus) |
2024-03-26 23:01:42 +0100 | sawilagar | (~sawilagar@user/sawilagar) |
2024-03-26 23:02:39 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) |
2024-03-26 23:11:41 +0100 | dhil | (~dhil@2001:8e0:2014:3100:65f2:4b8b:1e5:eca) (Ping timeout: 240 seconds) |
2024-03-26 23:12:19 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds) |
2024-03-26 23:12:58 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 260 seconds) |
2024-03-26 23:13:57 +0100 | Sgeo | (~Sgeo@user/sgeo) |
2024-03-26 23:15:27 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2024-03-26 23:16:21 +0100 | ania123 | (~ania123@94-43-231-47.dsl.utg.ge) (Quit: Client closed) |
2024-03-26 23:18:32 +0100 | target_i | (~target_i@user/target-i/x-6023099) (Quit: leaving) |
2024-03-26 23:19:13 +0100 | a51 | (a51@gateway/vpn/protonvpn/a51) (Quit: WeeChat 4.2.1) |
2024-03-26 23:20:34 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2024-03-26 23:36:02 +0100 | gabiruh | (~gabiruh@vps19177.publiccloud.com.br) (Quit: ZNC 1.7.5 - https://znc.in) |
2024-03-26 23:36:35 +0100 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Ping timeout: 264 seconds) |
2024-03-26 23:39:49 +0100 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) |
2024-03-26 23:42:24 +0100 | gabiruh | (~gabiruh@vps19177.publiccloud.com.br) |
2024-03-26 23:44:55 +0100 | Square | (~Square4@user/square) (Ping timeout: 272 seconds) |
2024-03-26 23:47:06 +0100 | gabiruh | (~gabiruh@vps19177.publiccloud.com.br) (Remote host closed the connection) |
2024-03-26 23:51:16 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-03-26 23:51:19 +0100 | tri | (~tri@2607:fb90:b11c:c26:dd1e:45f1:66e:dece) |
2024-03-26 23:59:30 +0100 | gabiruh | (~gabiruh@vps19177.publiccloud.com.br) |