2024-05-13 00:00:51 +0200 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
2024-05-13 00:01:03 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-05-13 00:02:13 +0200 | gmg | (~user@user/gehmehgeh) |
2024-05-13 00:05:15 +0200 | yin_ | (~yin@user/zero) (Ping timeout: 255 seconds) |
2024-05-13 00:11:19 +0200 | gmg | (~user@user/gehmehgeh) (Quit: Leaving) |
2024-05-13 00:15:15 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2024-05-13 00:21:04 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Quit: peterbecich) |
2024-05-13 00:21:32 +0200 | yin_ | (~yin@user/zero) |
2024-05-13 00:21:48 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
2024-05-13 00:37:04 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
2024-05-13 00:38:05 +0200 | acidjnk_new | (~acidjnk@p200300d6e714dc538d2f4966c160723d.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2024-05-13 00:41:42 +0200 | yin_ | (~yin@user/zero) (Ping timeout: 255 seconds) |
2024-05-13 00:43:38 +0200 | yin_ | (~yin@user/zero) |
2024-05-13 00:53:38 +0200 | target_i | (~target_i@user/target-i/x-6023099) (Quit: leaving) |
2024-05-13 00:53:46 +0200 | yin_ | zzz |
2024-05-13 00:54:20 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds) |
2024-05-13 00:54:52 +0200 | euleritian | (~euleritia@dynamic-176-006-176-035.176.6.pool.telefonica.de) |
2024-05-13 00:58:21 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 255 seconds) |
2024-05-13 01:02:23 +0200 | yin | (~yin@user/zero) (Ping timeout: 264 seconds) |
2024-05-13 01:05:33 +0200 | yin | (~yin@user/zero) |
2024-05-13 01:21:57 +0200 | phma_ | (~phma@2001:5b0:211b:f8f8:8558:8264:69ae:a8e6) |
2024-05-13 01:22:40 +0200 | lisbeths | (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2024-05-13 01:24:29 +0200 | phma | (phma@2001:5b0:211f:3048:948d:80d2:e152:3a7b) (Ping timeout: 240 seconds) |
2024-05-13 01:26:08 +0200 | yin | (~yin@user/zero) (Ping timeout: 252 seconds) |
2024-05-13 01:27:33 +0200 | yin | (~yin@user/zero) |
2024-05-13 01:31:57 +0200 | raehik | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 256 seconds) |
2024-05-13 01:35:41 +0200 | yin | (~yin@user/zero) (Ping timeout: 240 seconds) |
2024-05-13 01:39:09 +0200 | yin | (~yin@user/zero) |
2024-05-13 01:44:21 +0200 | philopsos1 | (~caecilius@user/philopsos) |
2024-05-13 01:52:35 +0200 | philopsos1 | (~caecilius@user/philopsos) (Ping timeout: 272 seconds) |
2024-05-13 01:58:21 +0200 | raehik | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) |
2024-05-13 02:36:24 +0200 | yin | (~yin@user/zero) (Ping timeout: 268 seconds) |
2024-05-13 02:39:07 +0200 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 260 seconds) |
2024-05-13 02:44:12 +0200 | yin | (~yin@user/zero) |
2024-05-13 02:45:04 +0200 | ropwareJB | (~ropwareJB@2601:602:9100:1460:c8dc:a946:242d:d890) |
2024-05-13 02:48:19 +0200 | euleritian | (~euleritia@dynamic-176-006-176-035.176.6.pool.telefonica.de) (Ping timeout: 256 seconds) |
2024-05-13 02:49:03 +0200 | euleritian | (~euleritia@dynamic-176-001-008-241.176.1.pool.telefonica.de) |
2024-05-13 02:49:34 +0200 | <ropwareJB> | Hi folks, need some direction with Nix + GHCJS, I'm receiving the following compile error and not sure how to proceed: |
2024-05-13 02:49:35 +0200 | <ropwareJB> | ``` |
2024-05-13 02:49:35 +0200 | <ropwareJB> | building '/nix/store/da6mc29mxdygpy3wz1d3vd7z9j308j3v-entropy-0.4.1.10.drv'... |
2024-05-13 02:49:36 +0200 | <ropwareJB> | Running phase: setupCompilerEnvironmentPhase |
2024-05-13 02:49:36 +0200 | <ropwareJB> | Build with /nix/store/n3aank8ia8qjqyv0lqslbz1bahpyg59s-ghcjs-8.10.7. |
2024-05-13 02:49:37 +0200 | <ropwareJB> | Running phase: unpackPhase |
2024-05-13 02:49:37 +0200 | <ropwareJB> | unpacking source archive /nix/store/sh4n8xmf2ydjgz1qbmr6qr0mzwsv3cxv-entropy-0.4.1.10.tar.gz |
2024-05-13 02:49:38 +0200 | <ropwareJB> | source root is entropy-0.4.1.10 |
2024-05-13 02:49:38 +0200 | <ropwareJB> | setting SOURCE_DATE_EPOCH to timestamp 1000000000 of file entropy-0.4.1.10/System/EntropyWindows.hs |
2024-05-13 02:49:39 +0200 | <ropwareJB> | Running phase: patchPhase |
2024-05-13 02:49:39 +0200 | <ropwareJB> | Replace Cabal file with edited version from mirror://hackage/entropy-0.4.1.10/revision/1.cabal. |
2024-05-13 02:49:40 +0200 | <ropwareJB> | Running phase: compileBuildDriverPhase |
2024-05-13 02:49:40 +0200 | <ropwareJB> | setupCompileFlags: -package-db=/build/tmp.S8Sc2uLXHZ/setup-package.conf.d -j8 +RTS -A64M -RTS -threaded -rtsopts |
2024-05-13 02:49:41 +0200 | <ropwareJB> | [1 of 1] Compiling Main ( Setup.hs, /build/tmp.S8Sc2uLXHZ/Main.o ) |
2024-05-13 02:49:41 +0200 | <ropwareJB> | Linking Setup ... |
2024-05-13 02:49:42 +0200 | <ropwareJB> | Running phase: updateAutotoolsGnuConfigScriptsPhase |
2024-05-13 02:49:42 +0200 | <ropwareJB> | Running phase: configurePhase |
2024-05-13 02:49:43 +0200 | <ropwareJB> | configureFlags: --verbose --prefix=/nix/store/jq14b9dgm4k5jj134g8lndflxr13m8ib-entropy-0.4.1.10 --libdir=$prefix/lib/$compiler --libsubdir=$abi/$libname --docdir=/nix/store/iy0hyw7lvgvgwz54ag86g04sxxjm01fa-entropy-0.4.1.10-doc/share/doc/entropy-0.4.1.10 --with-gcc=gcc --package-db=/build/tmp.S8Sc2uLXHZ/package.conf.d --ghc-options=-j8 +RTS -A64M |
2024-05-13 02:55:14 +0200 | <probie> | ropwareJB: Use a pastebin like https://paste.tomsmeding.com/ for things which are more than 3-4 lines |
2024-05-13 02:59:25 +0200 | <johnw> | Is there a lens that will do this: |
2024-05-13 02:59:31 +0200 | <johnw> | 123 & something . _head .~ 4 ==> 423 |
2024-05-13 03:13:39 +0200 | otto_s | (~user@p4ff27bc4.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
2024-05-13 03:14:40 +0200 | <glguy> | > (123::Int) & _Show . _head .~ '4' --? |
2024-05-13 03:14:42 +0200 | <lambdabot> | <hint>:1:38: error: |
2024-05-13 03:14:42 +0200 | <lambdabot> | parse error (possibly incorrect indentation or mismatched brackets) |
2024-05-13 03:14:43 +0200 | otto_s | (~user@p5de2fd19.dip0.t-ipconnect.de) |
2024-05-13 03:14:56 +0200 | <glguy> | > (123::Int) & _Show . _head .~ '4' -- ? |
2024-05-13 03:14:57 +0200 | <lambdabot> | error: |
2024-05-13 03:14:57 +0200 | <lambdabot> | • Couldn't match type ‘[Char]’ with ‘Int’ |
2024-05-13 03:14:57 +0200 | <lambdabot> | Expected type: ASetter Int String Char Char |
2024-05-13 03:16:18 +0200 | <probie> | johnw: What do you expect the result of `123 & something . _head .~ 42` to be? |
2024-05-13 03:19:44 +0200 | <probie> | > let something f s = fmap ((read :: String -> Int) . concatMap show) $ f (map digitToInt (show s)) in 123 & something . _head .~ 4 |
2024-05-13 03:19:46 +0200 | <lambdabot> | 423 |
2024-05-13 03:19:59 +0200 | <probie> | > let something f s = fmap ((read :: String -> Int) . concatMap show) $ f (map digitToInt (show s)) in 123 & something . _head .~ 42 |
2024-05-13 03:20:00 +0200 | <lambdabot> | 4223 |
2024-05-13 03:22:53 +0200 | raehik | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 256 seconds) |
2024-05-13 03:40:05 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
2024-05-13 03:53:12 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) (Quit: au revoir) |
2024-05-13 04:05:13 +0200 | tv | (~tv@user/tv) (Quit: derp) |
2024-05-13 04:05:37 +0200 | tv | (~tv@user/tv) |
2024-05-13 04:07:08 +0200 | zzz | (~yin@user/zero) (Ping timeout: 256 seconds) |
2024-05-13 04:08:47 +0200 | zzz | (~yin@user/zero) |
2024-05-13 04:15:04 +0200 | td_ | (~td@i53870913.versanet.de) (Ping timeout: 268 seconds) |
2024-05-13 04:15:44 +0200 | cyphase | (~cyphase@user/cyphase) (Quit: cyphase.com) |
2024-05-13 04:16:47 +0200 | td_ | (~td@i53870933.versanet.de) |
2024-05-13 04:20:21 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) |
2024-05-13 04:21:26 +0200 | phma_ | (~phma@2001:5b0:211b:f8f8:8558:8264:69ae:a8e6) (Read error: Connection reset by peer) |
2024-05-13 04:22:51 +0200 | phma_ | (phma@2001:5b0:210b:c738:d0e0:5870:ec8f:f731) |
2024-05-13 04:35:17 +0200 | euleritian | (~euleritia@dynamic-176-001-008-241.176.1.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-05-13 04:35:34 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-05-13 05:00:00 +0200 | Taneb | (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0) (Quit: I seem to have stopped.) |
2024-05-13 05:01:11 +0200 | Taneb | (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0) |
2024-05-13 05:01:47 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 264 seconds) |
2024-05-13 05:06:46 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) (Quit: au revoir) |
2024-05-13 05:08:40 +0200 | random-jellyfish | (~developer@user/random-jellyfish) (Ping timeout: 260 seconds) |
2024-05-13 05:14:51 +0200 | zzz | (~yin@user/zero) (Ping timeout: 255 seconds) |
2024-05-13 05:18:14 +0200 | philopsos | (~caecilius@user/philopsos) (Ping timeout: 252 seconds) |
2024-05-13 05:21:23 +0200 | random-jellyfish | (~developer@user/random-jellyfish) |
2024-05-13 05:22:05 +0200 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 240 seconds) |
2024-05-13 05:23:35 +0200 | philopsos1 | (~caecilius@user/philopsos) |
2024-05-13 05:37:28 +0200 | JimL | (~quassel@89.162.16.26) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2024-05-13 05:40:22 +0200 | JimL | (~quassel@89.162.16.26) |
2024-05-13 05:43:31 +0200 | lisbeths | (uid135845@id-135845.lymington.irccloud.com) |
2024-05-13 05:47:16 +0200 | random-jellyfish | (~developer@user/random-jellyfish) (Ping timeout: 255 seconds) |
2024-05-13 05:48:47 +0200 | xigua | (~xigua@user/xigua) (Read error: Connection reset by peer) |
2024-05-13 05:49:02 +0200 | xigua | (~xigua@user/xigua) |
2024-05-13 05:55:09 +0200 | Square | (~Square@user/square) (Ping timeout: 272 seconds) |
2024-05-13 05:56:09 +0200 | aforemny | (~aforemny@i59F516F4.versanet.de) |
2024-05-13 05:57:27 +0200 | aforemny_ | (~aforemny@i59F516F5.versanet.de) (Ping timeout: 260 seconds) |
2024-05-13 06:06:03 +0200 | ddellacosta | (~ddellacos@ool-44c73d29.dyn.optonline.net) |
2024-05-13 06:06:17 +0200 | rosco | (~rosco@yp-146-6.tm.net.my) |
2024-05-13 06:13:43 +0200 | <johnw> | I think 423 |
2024-05-13 06:13:55 +0200 | <johnw> | I want to treat the int like a string, manipulate the string, and then store it back as an int |
2024-05-13 06:14:24 +0200 | <johnw> | the _Show prism is the precise opposite of what I am looking for |
2024-05-13 06:14:40 +0200 | <johnw> | I mean, this is highly suspect, but: |
2024-05-13 06:14:40 +0200 | <johnw> | shown f a = read <$> f (show a) |
2024-05-13 06:15:11 +0200 | <johnw> | this is only valid if you never make modification that cause the number to not be a number anymore |
2024-05-13 06:19:31 +0200 | phma_ | phma |
2024-05-13 06:27:29 +0200 | ropwareJB | (~ropwareJB@2601:602:9100:1460:c8dc:a946:242d:d890) (Quit: Client closed) |
2024-05-13 06:35:00 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2024-05-13 06:35:42 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-05-13 06:39:27 +0200 | <probie> | Do you really need a `String`, or would a sign and a list of digits be preferable? |
2024-05-13 06:40:45 +0200 | michalz | (~michalz@185.246.207.197) |
2024-05-13 06:40:56 +0200 | sadome | (~sadome@182.69.182.31) |
2024-05-13 06:40:56 +0200 | sadome | (~sadome@182.69.182.31) (Changing host) |
2024-05-13 06:40:56 +0200 | sadome | (~sadome@user/sadome) |
2024-05-13 06:40:56 +0200 | sadome | (~sadome@user/sadome) (Excess Flood) |
2024-05-13 06:41:30 +0200 | sadome | (~sadome@182.69.182.31) |
2024-05-13 06:41:30 +0200 | sadome | (~sadome@182.69.182.31) (Changing host) |
2024-05-13 06:41:30 +0200 | sadome | (~sadome@user/sadome) |
2024-05-13 06:41:30 +0200 | sadome | (~sadome@user/sadome) (Excess Flood) |
2024-05-13 06:42:39 +0200 | sadome | (~sadome@182.69.182.31) |
2024-05-13 06:42:39 +0200 | sadome | (~sadome@182.69.182.31) (Changing host) |
2024-05-13 06:42:39 +0200 | sadome | (~sadome@user/sadome) |
2024-05-13 06:42:39 +0200 | sadome | (~sadome@user/sadome) (Excess Flood) |
2024-05-13 06:43:35 +0200 | sadome | (~sadome@user/sadome) |
2024-05-13 06:43:35 +0200 | sadome | (~sadome@user/sadome) (Excess Flood) |
2024-05-13 06:45:36 +0200 | michalz | (~michalz@185.246.207.197) (Client Quit) |
2024-05-13 06:47:10 +0200 | sadome | (~sadome@user/sadome) |
2024-05-13 06:47:10 +0200 | sadome | (~sadome@user/sadome) (Excess Flood) |
2024-05-13 06:47:51 +0200 | sadome | (~sadome@user/sadome) |
2024-05-13 06:47:51 +0200 | sadome | (~sadome@user/sadome) (Excess Flood) |
2024-05-13 06:48:28 +0200 | michalz | (~michalz@185.246.207.203) |
2024-05-13 06:50:53 +0200 | xdminsy | (~xdminsy@117.147.70.240) |
2024-05-13 06:53:57 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2024-05-13 06:55:22 +0200 | <sm> | @where+ ultimate-string-guide https://hasufell.github.io/posts/2024-05-07-ultimate-string-guide.html |
2024-05-13 06:55:22 +0200 | <lambdabot> | I will never forget. |
2024-05-13 06:55:38 +0200 | <sm> | epic post by maerwald |
2024-05-13 07:16:06 +0200 | mailman | (~mailman@192.210.255.34) |
2024-05-13 07:16:14 +0200 | acidjnk_new | (~acidjnk@p200300d6e714dc3784e5c6ff7798483a.dip0.t-ipconnect.de) |
2024-05-13 07:18:07 +0200 | mailman | (~mailman@192.210.255.34) (Client Quit) |
2024-05-13 07:18:57 +0200 | mailman | (~mailman@192.210.255.34) |
2024-05-13 07:23:51 +0200 | ft | (~ft@p508db8fc.dip0.t-ipconnect.de) (Quit: leaving) |
2024-05-13 07:28:03 +0200 | mailman | (~mailman@192.210.255.34) (Ping timeout: 250 seconds) |
2024-05-13 07:34:16 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds) |
2024-05-13 07:34:52 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2024-05-13 07:34:55 +0200 | euleritian | (~euleritia@dynamic-176-001-008-241.176.1.pool.telefonica.de) |
2024-05-13 07:38:51 +0200 | notzmv | (~daniel@user/notzmv) (Ping timeout: 255 seconds) |
2024-05-13 07:44:45 +0200 | <johnw> | probie: I actually want a string, so that I can turn it into a Text and use that someplace. It just fits the pattern if it's a lens or traversal. It's OK, though, there are many ways around this problem. |
2024-05-13 07:47:09 +0200 | causal | (~eric@50.35.88.207) |
2024-05-13 07:50:35 +0200 | philopsos1 | (~caecilius@user/philopsos) (Quit: Lost terminal) |
2024-05-13 07:51:03 +0200 | xdminsy | (~xdminsy@117.147.70.240) (Quit: Konversation terminated!) |
2024-05-13 07:51:27 +0200 | xdminsy | (~xdminsy@117.147.70.240) |
2024-05-13 08:01:56 +0200 | ames | (~amelia@offtopia/offtopian/amelia) (Quit: Ping timeout (120 seconds)) |
2024-05-13 08:02:03 +0200 | ames4 | (~amelia@offtopia/offtopian/amelia) |
2024-05-13 08:02:41 +0200 | stefan-__ | (~m-yh2rcc@42dots.de) (Ping timeout: 252 seconds) |
2024-05-13 08:02:55 +0200 | stefan-__ | (~m-yh2rcc@42dots.de) |
2024-05-13 08:03:43 +0200 | ames4 | ames |
2024-05-13 08:03:47 +0200 | wz1000 | (~zubin@static.11.113.47.78.clients.your-server.de) (Ping timeout: 252 seconds) |
2024-05-13 08:04:10 +0200 | wz1000 | (~zubin@static.11.113.47.78.clients.your-server.de) |
2024-05-13 08:04:17 +0200 | philopsos1 | (~caecilius@user/philopsos) |
2024-05-13 08:07:27 +0200 | cyphase | (~cyphase@user/cyphase) |
2024-05-13 08:07:28 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-05-13 08:07:44 +0200 | cyphase | (~cyphase@user/cyphase) (Remote host closed the connection) |
2024-05-13 08:12:59 +0200 | lisbeths | (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2024-05-13 08:14:56 +0200 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) |
2024-05-13 08:20:22 +0200 | Square2 | (~Square4@user/square) |
2024-05-13 08:31:13 +0200 | <c_wraith> | johnw: it's inherently going to be unlawful, because invalid changes to the string will break it. There's nothing in lens that's allowed to fail in that direction. If you accept that and simply proceed with something like your shown definition, that's as good as you'll get without inventing something new. |
2024-05-13 08:36:05 +0200 | <c_wraith> | there are some unlawful things in lens with failure modes like that, which sort of just... Make something up if their preconditions are violated. |
2024-05-13 08:36:12 +0200 | <c_wraith> | > (1,2,3) & partsOf each %~ tail |
2024-05-13 08:36:13 +0200 | <lambdabot> | (2,3,3) |
2024-05-13 08:42:38 +0200 | cyphase | (~cyphase@user/cyphase) |
2024-05-13 08:48:43 +0200 | cyphase | (~cyphase@user/cyphase) (Ping timeout: 256 seconds) |
2024-05-13 08:48:49 +0200 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2024-05-13 08:51:13 +0200 | hippoid | (~hippoid@user/hippoid) (Ping timeout: 272 seconds) |
2024-05-13 08:52:50 +0200 | hippoid | (~hippoid@c-98-213-162-40.hsd1.il.comcast.net) |
2024-05-13 08:53:56 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-05-13 08:54:38 +0200 | rosco | (~rosco@yp-146-6.tm.net.my) (Quit: Lost terminal) |
2024-05-13 08:57:13 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2024-05-13 08:57:36 +0200 | euleritian | (~euleritia@dynamic-176-001-008-241.176.1.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-05-13 08:57:56 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-05-13 09:01:00 +0200 | sawilagar | (~sawilagar@user/sawilagar) |
2024-05-13 09:01:43 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-05-13 09:02:22 +0200 | cfricke | (~cfricke@user/cfricke) |
2024-05-13 09:17:46 +0200 | __monty__ | (~toonn@user/toonn) |
2024-05-13 09:24:35 +0200 | Mach | (~Mach@2a02:2f09:d304:200:c99a:4ebf:7882:c432) |
2024-05-13 09:26:29 +0200 | philopsos1 | (~caecilius@user/philopsos) (Ping timeout: 268 seconds) |
2024-05-13 09:30:00 +0200 | Mach` | (~Mach@86.127.202.233) |
2024-05-13 09:33:53 +0200 | Mach | (~Mach@2a02:2f09:d304:200:c99a:4ebf:7882:c432) (Ping timeout: 268 seconds) |
2024-05-13 09:35:45 +0200 | syscall1 | (~syscall@2409:40c1:500a:3a4f:c203:8a4c:1ac4:3af) |
2024-05-13 09:37:17 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Ping timeout: 252 seconds) |
2024-05-13 09:44:17 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) |
2024-05-13 09:45:39 +0200 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 260 seconds) |
2024-05-13 09:48:12 +0200 | brox66 | (~brox66@user/brox66) |
2024-05-13 09:49:09 +0200 | notzmv | (~daniel@user/notzmv) |
2024-05-13 09:50:05 +0200 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) |
2024-05-13 09:52:25 +0200 | <brox66> | Hello, I want to set up a stack project that uses BNFC to generate some parser code. Is it possible to configure a pre-build hook that calls bnfc's makefile before stack's build starts? |
2024-05-13 09:54:06 +0200 | <Hecate> | it's usually what a Setup.hs helps you with |
2024-05-13 09:54:08 +0200 | <Hecate> | Custom build type |
2024-05-13 09:54:25 +0200 | <Hecate> | brox66: but personally I use a Makefile that calls the two rules one after the other |
2024-05-13 10:00:56 +0200 | cfricke | (~cfricke@user/cfricke) |
2024-05-13 10:01:33 +0200 | <brox66> | Thanks! Yes, I'll probably usa a Makefile instead. |
2024-05-13 10:14:32 +0200 | xdminsy | (~xdminsy@117.147.70.240) (Read error: Connection reset by peer) |
2024-05-13 10:14:38 +0200 | <Hecate> | brox66: here's an example: https://github.com/flora-pm/flora-server/blob/development/Makefile#L7-L8 |
2024-05-13 10:15:39 +0200 | xdminsy | (~xdminsy@117.147.70.240) |
2024-05-13 10:17:07 +0200 | chele | (~chele@user/chele) |
2024-05-13 10:17:20 +0200 | <brox66> | Hecate, big Makefile! |
2024-05-13 10:17:55 +0200 | m5zs7k | (aquares@web10.mydevil.net) (Ping timeout: 246 seconds) |
2024-05-13 10:19:07 +0200 | <Hecate> | brox66: aye |
2024-05-13 10:19:13 +0200 | <probie> | That's a neat low-effort way to do "help" |
2024-05-13 10:19:19 +0200 | m5zs7k | (aquares@web10.mydevil.net) |
2024-05-13 10:19:39 +0200 | <Hecate> | yup' |
2024-05-13 10:23:23 +0200 | titibandit | (~titibandi@user/titibandit) |
2024-05-13 10:29:18 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-05-13 10:31:05 +0200 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
2024-05-13 10:34:10 +0200 | syscall1 | (~syscall@2409:40c1:500a:3a4f:c203:8a4c:1ac4:3af) (Ping timeout: 256 seconds) |
2024-05-13 10:35:15 +0200 | brox66 | (~brox66@user/brox66) (Ping timeout: 250 seconds) |
2024-05-13 10:43:02 +0200 | danse-nr3 | (~danse-nr3@151.43.89.126) |
2024-05-13 10:45:34 +0200 | raehik | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) |
2024-05-13 10:51:11 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-05-13 11:07:46 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2024-05-13 11:07:54 +0200 | rosco | (~rosco@yp-146-6.tm.net.my) |
2024-05-13 11:34:31 +0200 | robosexual | (~spaceoyst@5.167.241.127) |
2024-05-13 11:44:39 +0200 | random-jellyfish | (~developer@2a02:2f04:11e:c600:4127:3bc6:8e36:8fc3) |
2024-05-13 11:44:39 +0200 | random-jellyfish | (~developer@2a02:2f04:11e:c600:4127:3bc6:8e36:8fc3) (Changing host) |
2024-05-13 11:44:39 +0200 | random-jellyfish | (~developer@user/random-jellyfish) |
2024-05-13 11:44:39 +0200 | tremon | (~tremon@83.80.159.219) |
2024-05-13 11:47:19 +0200 | cyphase | (~cyphase@user/cyphase) |
2024-05-13 11:49:38 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-05-13 12:01:48 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-05-13 12:02:12 +0200 | acidjnk_new | (~acidjnk@p200300d6e714dc3784e5c6ff7798483a.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
2024-05-13 12:21:03 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 260 seconds) |
2024-05-13 12:30:25 +0200 | econo_ | (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
2024-05-13 12:30:39 +0200 | syscall1 | (~syscall@2409:40c1:500a:3a4f:edc2:acd4:e500:7824) |
2024-05-13 12:32:21 +0200 | euphores | (~SASL_euph@user/euphores) (Quit: Leaving.) |
2024-05-13 12:32:25 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2024-05-13 12:34:08 +0200 | Mach` | (~Mach@86.127.202.233) (Quit: Leaving) |
2024-05-13 12:36:01 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2024-05-13 12:38:57 +0200 | euphores | (~SASL_euph@user/euphores) |
2024-05-13 12:41:28 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2024-05-13 12:41:48 +0200 | danse-nr3 | (~danse-nr3@151.43.89.126) (Ping timeout: 260 seconds) |
2024-05-13 12:52:52 +0200 | <ncf> | johnw: there isn't a lawful way to do this with lens, because you could modify the String to something that doesn't parse back as an Int. here's something i did a few days ago as a joke: https://ircbrowse.tomsmeding.com/day/lchaskell/2024/04/30?id=1266594#trid1266594 |
2024-05-13 12:53:38 +0200 | <ncf> | treats the _Show prism as a partial Iso and turns it around |
2024-05-13 12:53:46 +0200 | acidjnk_new | (~acidjnk@p200300d6e714dc37b9c7c34e6fbc03d6.dip0.t-ipconnect.de) |
2024-05-13 12:54:06 +0200 | rosco | (~rosco@yp-146-6.tm.net.my) (Quit: Lost terminal) |
2024-05-13 12:56:49 +0200 | <ncf> | > 123 & fromP' _Show . _head .~ '4' |
2024-05-13 12:56:51 +0200 | <lambdabot> | 423 |
2024-05-13 12:57:34 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-05-13 12:58:47 +0200 | <Taneb> | Nice |
2024-05-13 12:59:04 +0200 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2024-05-13 13:00:35 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 264 seconds) |
2024-05-13 13:01:59 +0200 | Lord_of_Life_ | Lord_of_Life |
2024-05-13 13:08:46 +0200 | <ncf> | maybe you could achieve something like this lawfully in a dependently typed language, with dependent lenses (https://www.cse.chalmers.se/~nad/publications/danielsson-dependent-lenses.pdf) |
2024-05-13 13:09:29 +0200 | <ncf> | approximating Int as a subtype of String |
2024-05-13 13:09:49 +0200 | <ncf> | Σ (s : String) "s parses as an Int" |
2024-05-13 13:10:54 +0200 | hammond | (proscan@gateway02.insomnia247.nl) (Remote host closed the connection) |
2024-05-13 13:16:38 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
2024-05-13 13:17:27 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2024-05-13 13:19:10 +0200 | demon-cat | (~demon-cat@dund-15-b2-v4wan-169642-cust1347.vm6.cable.virginm.net) (Ping timeout: 264 seconds) |
2024-05-13 13:19:37 +0200 | demon-cat | (~demon-cat@dund-15-b2-v4wan-169642-cust1347.vm6.cable.virginm.net) |
2024-05-13 13:19:43 +0200 | syscall1 | (~syscall@2409:40c1:500a:3a4f:edc2:acd4:e500:7824) (Ping timeout: 256 seconds) |
2024-05-13 13:24:31 +0200 | rvalue | (~rvalue@user/rvalue) (Ping timeout: 268 seconds) |
2024-05-13 13:24:40 +0200 | gehmehgeh | gmg |
2024-05-13 13:29:58 +0200 | <[exa]> | dmj`: re the MicroHs, I've got a tiny assembly graph reducing machine here and it looks like it could evaluate the combinators just as well. Which would be great because the footprint of microhs would basically lose the C compiler requirement, and there are a few other funny ways to make it portable |
2024-05-13 13:30:17 +0200 | <[exa]> | like, I'll try to do that in free time over the summer. Guess will post it here in case anything materializes |
2024-05-13 13:39:51 +0200 | syscall1 | (~syscall@2409:40c1:500a:3a4f:1bf3:ed53:e9f:88f4) |
2024-05-13 13:39:55 +0200 | <kuribas> | ncf: IsJust (readMaybe s : Maybe Int) |
2024-05-13 13:40:44 +0200 | <kuribas> | Or (s ** IsJust (readMaybe s : Maybe Int)) |
2024-05-13 13:41:14 +0200 | <kuribas> | But then why not just use Int? |
2024-05-13 13:41:31 +0200 | <ncf> | what's ** ? |
2024-05-13 13:42:48 +0200 | <ncf> | the point is to have a dependent lens that lets you modify the first component of the sigma type that is "isomorphic" to Int |
2024-05-13 13:43:02 +0200 | <ncf> | i don't think you can do this in haskell |
2024-05-13 13:44:00 +0200 | <kuribas> | ncf: idris dependent pair operator |
2024-05-13 13:44:09 +0200 | <ncf> | oh, so that's what i wrote then |
2024-05-13 13:44:48 +0200 | <kuribas> | But a string that is "isomorphic" to Int is not very useful. |
2024-05-13 13:44:52 +0200 | <kuribas> | Just use Int then. |
2024-05-13 13:45:54 +0200 | <ncf> | sure, the type is not very interesting on its own, it's just part of the definition of the lens |
2024-05-13 13:46:12 +0200 | <ncf> | just like a regular Lens a b is some type c with an isomorphism a ≃ b × c |
2024-05-13 13:46:37 +0200 | rvalue | (~rvalue@user/rvalue) |
2024-05-13 13:47:07 +0200 | <ncf> | (https://www.twanvl.nl/blog/haskell/isomorphism-lenses) |
2024-05-13 13:49:23 +0200 | Miroboru | (~myrvoll@178-164-114.82.3p.ntebredband.no) |
2024-05-13 13:49:23 +0200 | danse-nr3 | (~danse-nr3@an-19-162-214.service.infuturo.it) |
2024-05-13 13:51:10 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-05-13 13:54:03 +0200 | <ncf> | hmm this is probably not what dependent lenses actually achieve though |
2024-05-13 13:54:10 +0200 | danse-nr3 | (~danse-nr3@an-19-162-214.service.infuturo.it) (Ping timeout: 255 seconds) |
2024-05-13 13:54:32 +0200 | danse-nr3 | (~danse-nr3@an-19-162-214.service.infuturo.it) |
2024-05-13 13:57:54 +0200 | <syscall1> | LIST |
2024-05-13 13:58:09 +0200 | syscall1 | (~syscall@2409:40c1:500a:3a4f:1bf3:ed53:e9f:88f4) (Quit: WeeChat 4.2.2) |
2024-05-13 13:59:31 +0200 | <int-e> | . o O ( back to the BASICs ) |
2024-05-13 14:04:05 +0200 | <ncf> | like, in order to set (f : String → String) over the first component of Σ (s : String) P(s) you'd have to also provide a proof that P(s) → P(f(s))... but then you're not gaining anything from the lens interface |
2024-05-13 14:05:22 +0200 | <ncf> | and then if you wanted to somehow compose that with _head then that would turn into P(s) → P(over _head f s) |
2024-05-13 14:06:03 +0200 | billchenchina | (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) |
2024-05-13 14:06:55 +0200 | billchenchina | (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) (Max SendQ exceeded) |
2024-05-13 14:07:19 +0200 | billchenchina | (~billchenc@103.152.35.21) |
2024-05-13 14:07:20 +0200 | drdo | (~drdo@bl5-29-74.dsl.telepac.pt) |
2024-05-13 14:10:23 +0200 | yin | (~yin@user/zero) (Remote host closed the connection) |
2024-05-13 14:29:15 +0200 | ddellacosta | (~ddellacos@ool-44c73d29.dyn.optonline.net) (Ping timeout: 255 seconds) |
2024-05-13 14:32:52 +0200 | sandbag | (~syscall@user/sandbag) |
2024-05-13 14:38:52 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-05-13 14:39:26 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-05-13 14:52:21 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2024-05-13 15:02:31 +0200 | <dmj`> | [exa]: very cool, which assembly language |
2024-05-13 15:05:52 +0200 | zzz | (~yin@user/zero) |
2024-05-13 15:07:23 +0200 | danse-nr3 | (~danse-nr3@an-19-162-214.service.infuturo.it) (Ping timeout: 256 seconds) |
2024-05-13 15:07:52 +0200 | danse-nr3 | (~danse-nr3@an-19-162-214.service.infuturo.it) |
2024-05-13 15:22:11 +0200 | danse-nr3 | (~danse-nr3@an-19-162-214.service.infuturo.it) (Ping timeout: 264 seconds) |
2024-05-13 15:22:29 +0200 | _bo | (~bo@198.red-83-56-252.dynamicip.rima-tde.net) |
2024-05-13 15:23:21 +0200 | <zzz> | is this parenthesized correctly? https://i.stack.imgur.com/WQtuk.jpg |
2024-05-13 15:25:42 +0200 | <ski> | not if that's supposed to be a Y combinator, assuming usual precedence rules for application and lambda abstraction |
2024-05-13 15:27:12 +0200 | <mauke> | depends on what conventions you use |
2024-05-13 15:27:45 +0200 | <int-e> | apparently they use \x.(...) for a lambda abstraction and it binds stronger than application |
2024-05-13 15:28:13 +0200 | <int-e> | hmm, no |
2024-05-13 15:28:26 +0200 | <int-e> | hmm, yes. |
2024-05-13 15:28:26 +0200 | <mauke> | if your lambda calculus uses BlockArguments, then it is "wrong" |
2024-05-13 15:29:30 +0200 | <int-e> | you can verify that if you replace each \x.( by (\x. then things make sense with a Haskell-like convention. |
2024-05-13 15:29:33 +0200 | <mauke> | if your lambda calculus uses layout rules for lambda bodies, then it is "right", I think |
2024-05-13 15:29:54 +0200 | <mauke> | in that a parse error will implicitly terminate the block |
2024-05-13 15:31:06 +0200 | <tomsmeding> | % \f -> f 10 \x -> x + 1 |
2024-05-13 15:31:06 +0200 | <yahb2> | <interactive>:65:12: error: ; Unexpected lambda expression in function application: ; \ x -> x + 1 ; You could write it with parentheses ; Or perhaps you meant to enable BlockAr... |
2024-05-13 15:31:11 +0200 | <tomsmeding> | mauke: are you sure? |
2024-05-13 15:31:23 +0200 | <mauke> | pretty sure |
2024-05-13 15:31:34 +0200 | <tomsmeding> | I thought GHC used layout rules :p |
2024-05-13 15:31:44 +0200 | <mauke> | no, lambda doesn't layout in Haskell |
2024-05-13 15:32:16 +0200 | <tomsmeding> | what does? let? |
2024-05-13 15:32:25 +0200 | <tomsmeding> | % let f x = x + 1 in f let y = 17 in y |
2024-05-13 15:32:25 +0200 | <yahb2> | <interactive>:67:22: error: ; Unexpected let expression in function application: ; let y = 17 in y ; You could write it with parentheses ; Or perhaps you meant to enable BlockAr... |
2024-05-13 15:32:44 +0200 | <mauke> | I have code that is essentially: fmap (\x -> set _1 x proto) xs |
2024-05-13 15:32:48 +0200 | <ski> | `let',`where',`do' |
2024-05-13 15:33:07 +0200 | <mauke> | is there a way to write this as one lens expression, without the lambda/fmap? |
2024-05-13 15:34:01 +0200 | raehik | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 272 seconds) |
2024-05-13 15:35:04 +0200 | <ski> | (well, `of',`\case',`\cases' too) |
2024-05-13 15:35:58 +0200 | <zzz> | hot take: lenses are an antipattern |
2024-05-13 15:36:25 +0200 | <mauke> | (or alternatively: fmap (\x -> proto & _1 .~ x) xs) |
2024-05-13 15:36:52 +0200 | <mauke> | which you could @pl in the usual way, but that's just horrible |
2024-05-13 15:38:37 +0200 | <ski> | @type (?proto & _1 .~) |
2024-05-13 15:38:38 +0200 | <lambdabot> | error: |
2024-05-13 15:38:38 +0200 | <lambdabot> | The operator ‘.~’ [infixr 4] of a section |
2024-05-13 15:38:38 +0200 | <lambdabot> | must have lower precedence than that of the operand, |
2024-05-13 15:39:14 +0200 | <tomsmeding> | cute use of implicit params |
2024-05-13 15:39:18 +0200 | <mauke> | :t (?proto &) . (_1 .~) |
2024-05-13 15:39:19 +0200 | <lambdabot> | (?proto::s, Field1 s c a b) => b -> c |
2024-05-13 15:39:38 +0200 | <ski> | (imho, `(2 + 3 *)' ought to be a section for `\x -> 2 + 3 * x') |
2024-05-13 15:40:02 +0200 | <tomsmeding> | meh, it's ambiguous whether that would be (2 + 3) * _ or 2 + (3 * _) |
2024-05-13 15:40:07 +0200 | <tomsmeding> | it's probably better disallowed |
2024-05-13 15:40:33 +0200 | <mauke> | proto is actually a 5-tuple |
2024-05-13 15:40:39 +0200 | <ski> | it's as ambiguous as `2 + 3 * x' meaning either `(2 + 3) * x' or `2 + (3 * x)' |
2024-05-13 15:40:59 +0200 | <tomsmeding> | no, because that's a syntactically valid arithmetic expression where the normal precedence rules apply |
2024-05-13 15:41:33 +0200 | <ski> | (i have many times written `(f . g .)', only to have to change that to `((f . g) .)' alt. `(f .) . (g .)') |
2024-05-13 15:41:34 +0200 | <tomsmeding> | for (2 + 3 *), do the precedence rules take, well, precedence (yielding 2 + (3 * _)), or does the fact that it's a section take precedence (yielding (2 + 3) * _)? |
2024-05-13 15:41:41 +0200 | <tomsmeding> | where in the precedence hierarchy is "taking a section"? |
2024-05-13 15:41:51 +0200 | <tomsmeding> | and does everyone agree on where it is |
2024-05-13 15:41:59 +0200 | <ski> | "do the precedence rules take" -- yes, which would be the point |
2024-05-13 15:42:41 +0200 | <tomsmeding> | I would personally expect the normal section behaviour to take precedence, i.e. my second option |
2024-05-13 15:42:48 +0200 | <tomsmeding> | so our intuitions don't agree |
2024-05-13 15:42:50 +0200 | <ski> | same precedence rules as usual, just the circumstances in which they can be applied has been extended (as opposed to interpreting it as `((2 + 3) *)', which would just be weird) |
2024-05-13 15:43:06 +0200 | <tomsmeding> | I think that's a good reason to require this to be explicitly written down how you want it to be |
2024-05-13 15:43:30 +0200 | <ski> | `*' binds tigher than `+', there's no reason, if allowing `(2 + 3 *)', to sidestep that |
2024-05-13 15:43:48 +0200 | <tomsmeding> | there is -- this is special syntax for a section, which is (E op) |
2024-05-13 15:43:54 +0200 | <mauke> | ski: how would you write that rule in a grammar? |
2024-05-13 15:44:09 +0200 | <tomsmeding> | what would the grammar for E be, indeed |
2024-05-13 15:44:28 +0200 | <tomsmeding> | my intuition would say that E should just be a top-level expression; this yields (2 + 3) * _ |
2024-05-13 15:44:48 +0200 | <ski> | mauke : parenthesized sequence of atomic expressions, interleaved by operators, optional operator at start, and at end |
2024-05-13 15:44:49 +0200 | sandbag | (~syscall@user/sandbag) (Ping timeout: 268 seconds) |
2024-05-13 15:45:08 +0200 | <tomsmeding> | or rather, if we are to generalise E beyond the current definition, which is an expression at precedence level as expected on the LHS of 'op' |
2024-05-13 15:45:15 +0200 | <mauke> | can I get that in BNF? |
2024-05-13 15:45:25 +0200 | <tomsmeding> | ski: that's a lexing grammar, not a parsing grammar |
2024-05-13 15:45:27 +0200 | <tomsmeding> | :p |
2024-05-13 15:45:32 +0200 | <ski> | (then taking precedence and associativity into account in a later pass. or, if you prefer hardcoding that into the grammar, that should be doable) |
2024-05-13 15:45:37 +0200 | <tomsmeding> | right |
2024-05-13 15:45:47 +0200 | <tomsmeding> | I mean, GHC already does precedence and associativity in a later pass anyway |
2024-05-13 15:45:57 +0200 | <tomsmeding> | but as a human I prefer to pretend that it doesn't |
2024-05-13 15:46:12 +0200 | <tomsmeding> | baking the fact that it does into the syntax that the human needs to process fields weird to me |
2024-05-13 15:46:31 +0200 | <ski> | well, it's either that, or generating grammar rules at run-time, or something like that |
2024-05-13 15:46:56 +0200 | <tomsmeding> | my brain prefers to generate grammar rules at compile time, 'infix{,l,r}' statements being the way to do so |
2024-05-13 15:48:43 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds) |
2024-05-13 15:48:49 +0200 | ystael | (~ystael@user/ystael) |
2024-05-13 15:48:52 +0200 | <ski> | > let f x y z = x * y * z where (*) = (-); infixr 6 * in f 2 3 4 |
2024-05-13 15:48:53 +0200 | <lambdabot> | 3 |
2024-05-13 15:49:26 +0200 | euleritian | (~euleritia@dynamic-176-003-078-122.176.3.pool.telefonica.de) |
2024-05-13 15:49:56 +0200 | <tomsmeding> | define an operator (*) with level 6, right-associative; then parse f as usual |
2024-05-13 15:50:23 +0200 | <tomsmeding> | I don't think about this as "parse a token sequence for f, then reinterpret that token sequence using the infixr statement found later" |
2024-05-13 15:50:32 +0200 | <ski> | mauke : anyway, another way to do it in a grammar, is to use Definite Clause Grammar, with ordered logic, using implicational grammar categories |
2024-05-13 15:50:36 +0200 | <tomsmeding> | even though realistically a parser will have to do something like that |
2024-05-13 15:50:42 +0200 | raehik | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) |
2024-05-13 15:50:52 +0200 | syscall1 | (~syscall@2401:4900:16a3:3e97:3b3e:7956:62a8:2bba) |
2024-05-13 15:51:11 +0200 | <ski> | (there are papers about doing this, for intuitionistic, resp. linear (rather than ordered) logic, in order to capture "island constraints" in "coordination" in natural language) |
2024-05-13 15:52:31 +0200 | dezaaltor | (~dezaaltor@77-254-94-95.dynamic.inetia.pl) |
2024-05-13 15:52:34 +0200 | syscall1 | (~syscall@2401:4900:16a3:3e97:3b3e:7956:62a8:2bba) (Client Quit) |
2024-05-13 15:52:49 +0200 | dezaaltor | (~dezaaltor@77-254-94-95.dynamic.inetia.pl) (Remote host closed the connection) |
2024-05-13 15:54:22 +0200 | demon-cat | (~demon-cat@dund-15-b2-v4wan-169642-cust1347.vm6.cable.virginm.net) (Ping timeout: 268 seconds) |
2024-05-13 15:54:51 +0200 | dezalator | (~dezalator@77-254-94-95.dynamic.inetia.pl) |
2024-05-13 15:56:54 +0200 | dezalator | (~dezalator@77-254-94-95.dynamic.inetia.pl) (Remote host closed the connection) |
2024-05-13 16:01:09 +0200 | hueso | (~root@user/hueso) (Ping timeout: 268 seconds) |
2024-05-13 16:02:53 +0200 | demon-cat | (~demon-cat@dund-15-b2-v4wan-169642-cust1347.vm6.cable.virginm.net) |
2024-05-13 16:03:43 +0200 | raehik | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 246 seconds) |
2024-05-13 16:04:12 +0200 | <dmj`> | https://www.wired.com/story/inside-the-cult-of-the-haskell-programmer/ |
2024-05-13 16:04:33 +0200 | zzz_ | (~yin@user/zero) |
2024-05-13 16:04:58 +0200 | zzz | (~yin@user/zero) (Killed (NickServ (GHOST command used by zzz_))) |
2024-05-13 16:05:05 +0200 | zzz_ | zzz |
2024-05-13 16:06:14 +0200 | xdminsy | (~xdminsy@117.147.70.240) (Read error: Connection reset by peer) |
2024-05-13 16:07:01 +0200 | xdminsy | (~xdminsy@117.147.70.240) |
2024-05-13 16:07:28 +0200 | hueso | (~root@user/hueso) |
2024-05-13 16:13:14 +0200 | danse-nr3 | (~danse-nr3@an-19-162-214.service.infuturo.it) |
2024-05-13 16:13:56 +0200 | raehik | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) |
2024-05-13 16:20:58 +0200 | lisbeths | (uid135845@id-135845.lymington.irccloud.com) |
2024-05-13 16:30:53 +0200 | <ski> | "Specifying Filler-Gap Dependency Parsers in a Linear-Logic Programming Language" in 1992 at <https://repository.upenn.edu/server/api/core/bitstreams/5d453ced-e21d-46a5-9935-3f403a32b5a6/content>,"A Linear Logic Treatment of Phrase Structure Grammars For Unbounded Dependencies" in 1997-09 at <https://link.springer.com/content/pdf/10.1007/3-540-48975-4_8.pdf>, both by Joshua S. Hodas |
2024-05-13 16:36:03 +0200 | <ski> | dmj` : amusing |
2024-05-13 16:36:55 +0200 | hueso | (~root@user/hueso) (Ping timeout: 268 seconds) |
2024-05-13 16:39:56 +0200 | hueso | (~root@user/hueso) |
2024-05-13 16:46:25 +0200 | zzz | (~yin@user/zero) (Ping timeout: 246 seconds) |
2024-05-13 16:48:30 +0200 | zzz | (~yin@user/zero) |
2024-05-13 16:48:39 +0200 | danse-nr3 | (~danse-nr3@an-19-162-214.service.infuturo.it) (Remote host closed the connection) |
2024-05-13 16:49:10 +0200 | danse-nr3 | (~danse-nr3@an-19-162-214.service.infuturo.it) |
2024-05-13 16:52:01 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-05-13 16:53:46 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-05-13 17:05:09 +0200 | chele | (~chele@user/chele) (Remote host closed the connection) |
2024-05-13 17:10:56 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-05-13 17:11:47 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-05-13 17:14:54 +0200 | danse-nr3 | (~danse-nr3@an-19-162-214.service.infuturo.it) (Read error: Connection reset by peer) |
2024-05-13 17:15:43 +0200 | danse-nr3 | (~danse-nr3@151.57.39.218) |
2024-05-13 17:16:40 +0200 | demon-cat | (~demon-cat@dund-15-b2-v4wan-169642-cust1347.vm6.cable.virginm.net) (Remote host closed the connection) |
2024-05-13 17:16:54 +0200 | m1dnight | (~christoph@82.146.125.185) (Quit: WeeChat 4.2.2) |
2024-05-13 17:17:04 +0200 | demon-cat | (~demon-cat@dund-15-b2-v4wan-169642-cust1347.vm6.cable.virginm.net) |
2024-05-13 17:17:22 +0200 | m1dnight | (~christoph@82.146.125.185) |
2024-05-13 17:17:37 +0200 | raehik | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 268 seconds) |
2024-05-13 17:19:17 +0200 | Square2 | (~Square4@user/square) (Ping timeout: 252 seconds) |
2024-05-13 17:21:36 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-05-13 17:26:38 +0200 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection) |
2024-05-13 17:28:10 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.1) |
2024-05-13 17:30:39 +0200 | sawilagar | (~sawilagar@user/sawilagar) (Quit: Leaving) |
2024-05-13 17:33:01 +0200 | <stefan-__> | I am using haskell-language-server via Emacs' lsp-mode, any idea why only a minimal documentation is shown, e.g.: |
2024-05-13 17:33:04 +0200 | <stefan-__> | https://matrix.42dots.de/_matrix/media/v3/download/matrix.42dots.de/DiBITy1opNjoQQXCDOwuLjsM6vauzZ… |
2024-05-13 17:33:11 +0200 | sawilagar | (~sawilagar@user/sawilagar) |
2024-05-13 17:33:39 +0200 | <stefan-__> | I would expect it to show at least the description "Render the table.", as on hackage: https://hackage.haskell.org/package/brick-2.3.1/docs/Brick-Widgets-Table.html#v:renderTable |
2024-05-13 17:34:54 +0200 | <stefan-__> | also I followed this configuration for the cabal project: https://haskell-language-server.readthedocs.io/en/latest/configuration.html#how-to-show-local-docu… |
2024-05-13 17:36:02 +0200 | <c_wraith> | I wonder if it's just pulling from the .hi file. That looks like what you'd get from running :info in ghci |
2024-05-13 17:36:30 +0200 | <c_wraith> | the .hi file *can* contain documentation, but only if you've compiled the library with it enabled. |
2024-05-13 17:37:45 +0200 | <stefan-__> | after setting the cabal config I did a "cabal haddock" not sure if that is enough |
2024-05-13 17:38:31 +0200 | <c_wraith> | that only builds documentation for the package you're in. If you need documentation for your dependencies, you'll need to rebuild them |
2024-05-13 17:40:07 +0200 | <c_wraith> | yeah, that page definitely implies that it's pulling info out of the .hi file. I wish that wasn't so awkward to deal with. |
2024-05-13 17:40:11 +0200 | raehik | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) |
2024-05-13 17:40:48 +0200 | <stefan-__> | how do I do a rebuild of the dependencies? "cabal clean && cabal build" seems to build only my program |
2024-05-13 17:40:49 +0200 | euleritian | (~euleritia@dynamic-176-003-078-122.176.3.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-05-13 17:41:06 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-05-13 17:42:09 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-05-13 17:42:11 +0200 | <c_wraith> | yeah, you'd need to wipe the directory cabal builds stuff in. I honestly don't know where that is since they started using XDG stuff. I can't find it anymore. |
2024-05-13 17:42:17 +0200 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 268 seconds) |
2024-05-13 17:43:47 +0200 | <tomsmeding> | stefan-__: you can enable building documentation globally always by setting the 'documentation' key in ~/.cabal/config |
2024-05-13 17:44:03 +0200 | <tomsmeding> | but that hammer may be somewhat too large :p |
2024-05-13 17:45:15 +0200 | <tomsmeding> | stefan-__: have you tried putting 'documentation: True' in your cabal.project for the project? (If you don't have one yet, you also need 'packages: .' in there) |
2024-05-13 17:45:37 +0200 | <c_wraith> | tomsmeding: that doesn't build the same docs. |
2024-05-13 17:45:47 +0200 | <tomsmeding> | _oh_ |
2024-05-13 17:45:51 +0200 | <tomsmeding> | you're right |
2024-05-13 17:45:52 +0200 | <stefan-__> | it seems to build to "~/.cabal/store/ghc-9.8.2/" |
2024-05-13 17:45:55 +0200 | <tomsmeding> | oops |
2024-05-13 17:45:58 +0200 | <tomsmeding> | ignore me :) |
2024-05-13 17:46:14 +0200 | <stefan-__> | removed that directory, now the dependencies are rebuilding :) |
2024-05-13 17:46:36 +0200 | <c_wraith> | you still have a .cabal directory? lucky |
2024-05-13 17:47:02 +0200 | <dmj`> | ski: they make it sound like it's frankenstein |
2024-05-13 17:48:31 +0200 | dezalator | (~dezalator@77-254-94-95.dynamic.inetia.pl) |
2024-05-13 17:49:04 +0200 | titibandit | (~titibandi@user/titibandit) (Ping timeout: 246 seconds) |
2024-05-13 17:50:52 +0200 | <c_wraith> | ah. there it is. .local/state/cabal/store is the default if it's using XDG paths. |
2024-05-13 17:54:02 +0200 | <ski> | dmj` : because it's blub to them |
2024-05-13 17:57:29 +0200 | mdpete | (~mdpete@46.143.107.90) |
2024-05-13 17:58:09 +0200 | <stefan-__> | c_wraith: this helped https://github.com/haskell/haskell-language-server/issues/4210#issuecomment-2094925497 :) |
2024-05-13 17:58:18 +0200 | urdh | (~urdh@user/urdh) (Quit: Boom!) |
2024-05-13 17:59:47 +0200 | urdh | (~urdh@user/urdh) |
2024-05-13 18:00:46 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds) |
2024-05-13 18:00:55 +0200 | euleritian | (~euleritia@dynamic-176-003-078-122.176.3.pool.telefonica.de) |
2024-05-13 18:01:46 +0200 | <mdpete> | I have started to learn basics of programming . I read that there is no best first programming language. I guess Haskell programmers are more into joy of programming. Would you please recommend me as a beginner what you should do if you had the chance to srtart again as a total beginner? |
2024-05-13 18:01:47 +0200 | danse-nr3 | (~danse-nr3@151.57.39.218) (Ping timeout: 264 seconds) |
2024-05-13 18:04:20 +0200 | ft | (~ft@p508db8fc.dip0.t-ipconnect.de) |
2024-05-13 18:07:19 +0200 | <c_wraith> | stefan-__: note that for whatever reason, the -haddock flag seems to make installing primitive break. It's not really fully-supported yet... |
2024-05-13 18:07:59 +0200 | <EvanR> | mdpete, the same thing I did as a beginner. Figure out as soon as possible how to show graphics and make sounds |
2024-05-13 18:08:37 +0200 | <EvanR> | unless you really really like processing data files |
2024-05-13 18:09:32 +0200 | <stefan-__> | c_wraith: tnx, lets see how it goes |
2024-05-13 18:15:58 +0200 | <mdpete> | EvanR ,would you please explain a bit more, how I can do it |
2024-05-13 18:16:44 +0200 | <mdpete> | I just know ,variables, if statement, and lists |
2024-05-13 18:17:06 +0200 | <EvanR> | this is haskell, so you will be doing pattern matching a lot more than "if statement" |
2024-05-13 18:17:07 +0200 | <mdpete> | and how to define a function |
2024-05-13 18:17:15 +0200 | <EvanR> | have you tried following a basic haskell tutorial |
2024-05-13 18:18:00 +0200 | <mdpete> | I learned these in Python , and read some chapter of Scheme. |
2024-05-13 18:18:17 +0200 | <mdpete> | I am self studying without any university degree |
2024-05-13 18:18:49 +0200 | <EvanR> | the diagrams library and the gloss library are two things which can make showing some graphics easy |
2024-05-13 18:19:21 +0200 | <EvanR> | you probably have to forget any python you know to get started in haskell |
2024-05-13 18:20:07 +0200 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 4.2.2) |
2024-05-13 18:22:07 +0200 | dezalator | (~dezalator@77-254-94-95.dynamic.inetia.pl) (Remote host closed the connection) |
2024-05-13 18:24:02 +0200 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
2024-05-13 18:24:11 +0200 | <mdpete> | excuse me If I ask much questions, I am very patient , and I believe in learning foundations deeply. Do you recommend to spend time to get used to how haskell force its developers think? or the easy way of python , I don't have any favorites . |
2024-05-13 18:24:58 +0200 | <EvanR> | you're not forced to learn new things, but it's a good idea |
2024-05-13 18:25:19 +0200 | xal | (~xal@mx1.xal.systems) () |
2024-05-13 18:25:47 +0200 | xal | (~xal@mx1.xal.systems) |
2024-05-13 18:25:51 +0200 | <mdpete> | Thank you. |
2024-05-13 18:26:51 +0200 | <mdpete> | which has more beginner friendly learning resources, haskell or ocamel? |
2024-05-13 18:30:13 +0200 | crumpetsforlife | (~falafel@173-245-217-246.nrt.as54203.net) |
2024-05-13 18:30:13 +0200 | crumpetsforlife | falafel |
2024-05-13 18:31:03 +0200 | petrichor | (~znc-user@user/petrichor) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-05-13 18:34:17 +0200 | falafel_ | (~falafel@173-245-203-52.iad.as54203.net) |
2024-05-13 18:35:01 +0200 | falafel_ | (~falafel@173-245-203-52.iad.as54203.net) (Client Quit) |
2024-05-13 18:35:16 +0200 | xal | (~xal@mx1.xal.systems) () |
2024-05-13 18:35:19 +0200 | falafel | (~falafel@173-245-217-246.nrt.as54203.net) (Ping timeout: 268 seconds) |
2024-05-13 18:35:25 +0200 | falafel_ | (~falafel@173-245-203-52.iad.as54203.net) |
2024-05-13 18:35:50 +0200 | xal | (~xal@mx1.xal.systems) |
2024-05-13 18:36:31 +0200 | xal | (~xal@mx1.xal.systems) (Client Quit) |
2024-05-13 18:37:14 +0200 | xal | (~xal@mx1.xal.systems) |
2024-05-13 18:37:51 +0200 | xal | (~xal@mx1.xal.systems) (Client Quit) |
2024-05-13 18:37:59 +0200 | titibandit | (~titibandi@user/titibandit) |
2024-05-13 18:38:24 +0200 | xal | (~xal@mx1.xal.systems) |
2024-05-13 18:40:31 +0200 | xal | (~xal@mx1.xal.systems) (Client Quit) |
2024-05-13 18:41:14 +0200 | rosco | (rosco@gateway/vpn/airvpn/rosco) |
2024-05-13 18:43:09 +0200 | rosco | (rosco@gateway/vpn/airvpn/rosco) (Client Quit) |
2024-05-13 18:48:10 +0200 | mdpete | (~mdpete@46.143.107.90) () |
2024-05-13 18:51:24 +0200 | sawilagar | (~sawilagar@user/sawilagar) (Ping timeout: 260 seconds) |
2024-05-13 19:01:13 +0200 | econo_ | (uid147250@id-147250.tinside.irccloud.com) |
2024-05-13 19:01:55 +0200 | xal | (~xal@mx1.xal.systems) |
2024-05-13 19:02:38 +0200 | destituion | (~destituio@2a02:2121:2c4:e7b9:2895:2152:25e1:7ece) (Quit: Quit) |
2024-05-13 19:03:01 +0200 | __monty__ | (~toonn@user/toonn) (Ping timeout: 272 seconds) |
2024-05-13 19:09:17 +0200 | euleritian | (~euleritia@dynamic-176-003-078-122.176.3.pool.telefonica.de) (Ping timeout: 252 seconds) |
2024-05-13 19:13:12 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2024-05-13 19:16:29 +0200 | <cheater> | what are y'all approaches to the following? you have a piece of code (library) which is complex to use. you want to write a hello world for it that is self sufficient. do you put that in a separate module somewhere? |
2024-05-13 19:16:54 +0200 | <cheater> | tests aren't it |
2024-05-13 19:17:30 +0200 | <cheater> | divinating recommendations out of test suites is like reading poetry that's been translated to german, then to hungarian |
2024-05-13 19:20:53 +0200 | <[Leary]> | You can put such a module in extra-source-files, or embed the code in your docs and use 'doctest'. |
2024-05-13 19:21:27 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-05-13 19:32:11 +0200 | Miroboru | (~myrvoll@178-164-114.82.3p.ntebredband.no) (Quit: Lost terminal) |
2024-05-13 19:32:52 +0200 | <zzz> | what's going on with this table's formatting? https://github.com/ghc-proposals/ghc-proposals/blob/joachim/ghc2024/proposals/0000-ghc2024.rst#8wh… |
2024-05-13 19:37:41 +0200 | __monty__ | (~toonn@user/toonn) |
2024-05-13 19:38:34 +0200 | todi | (~todi@p57803331.dip0.t-ipconnect.de) |
2024-05-13 19:39:33 +0200 | ocra8 | (ocra8@user/ocra8) |
2024-05-13 19:42:16 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) |
2024-05-13 19:44:29 +0200 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) (Ping timeout: 240 seconds) |
2024-05-13 19:47:16 +0200 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) |
2024-05-13 19:48:35 +0200 | falafel_ | (~falafel@173-245-203-52.iad.as54203.net) (Ping timeout: 264 seconds) |
2024-05-13 19:48:40 +0200 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) (Excess Flood) |
2024-05-13 19:49:22 +0200 | rosco | (~rosco@yp-146-6.tm.net.my) |
2024-05-13 19:49:43 +0200 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
2024-05-13 19:52:28 +0200 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) |
2024-05-13 19:52:46 +0200 | gentauro | (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
2024-05-13 19:57:40 +0200 | hgolden | (~hgolden@2603:8000:9d00:3ed1:2678:8497:aa5c:7fa9) (Remote host closed the connection) |
2024-05-13 19:57:59 +0200 | hgolden | (~hgolden@2603:8000:9d00:3ed1:2678:8497:aa5c:7fa9) |
2024-05-13 19:58:18 +0200 | gentauro | (~gentauro@user/gentauro) |
2024-05-13 20:00:57 +0200 | <cheater> | [Leary]: what about putting the code right next to module Foo.Bar.Baz in something like Foo.Bar.Reference ? |
2024-05-13 20:03:59 +0200 | <cheater> | like if i'm writing a reference impl of Foo.Bar.Baz |
2024-05-13 20:04:14 +0200 | <cheater> | or maybe Foo.Bar.Help |
2024-05-13 20:07:12 +0200 | <glguy> | cheater: you'd just need to make sure that your examples didn't get compiled into the library itself. Users of the library shouldn't be including your examples |
2024-05-13 20:07:44 +0200 | <cheater> | glguy: what suggestions do you have for that? |
2024-05-13 20:07:53 +0200 | <cheater> | (if any) (this sounds a little tough) |
2024-05-13 20:08:09 +0200 | <glguy> | Is your example an executable, then you'd make an extra executable target in the cabal file |
2024-05-13 20:08:23 +0200 | <cheater> | nah it's a lib |
2024-05-13 20:08:29 +0200 | raehik | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 240 seconds) |
2024-05-13 20:08:36 +0200 | <glguy> | You might even make it buildable:False by default if it's not something a user of the library needs |
2024-05-13 20:09:05 +0200 | <glguy> | You can make it a test component of your package if it building is part of your testing process |
2024-05-13 20:09:11 +0200 | <cheater> | i do want it *built* during a normal local or CI build so that the Help module gets typechecked |
2024-05-13 20:09:30 +0200 | <glguy> | If you're building it in CI you'd just set up your CI environment to build it |
2024-05-13 20:09:38 +0200 | <glguy> | set a flag that causes it to build, for example |
2024-05-13 20:09:45 +0200 | <cheater> | hmm i wouldn't like Help for a module under /src to live under /somethingelse |
2024-05-13 20:09:58 +0200 | <cheater> | i'd really prefer for Help.hs to be in the same dir as Foo.hs for which Help.hs is meant |
2024-05-13 20:10:20 +0200 | raehik | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) |
2024-05-13 20:10:54 +0200 | <glguy> | Since you're trying to show users how to use your library, it'll make sense for your example usage of it to be "outside" the library |
2024-05-13 20:11:33 +0200 | <cheater> | idk that it does. doc comments live right next to the function |
2024-05-13 20:11:40 +0200 | <cheater> | we don't put them in /comments/Foo.hs |
2024-05-13 20:11:46 +0200 | <glguy> | comments aren't a replacement for full documentation |
2024-05-13 20:12:08 +0200 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 268 seconds) |
2024-05-13 20:12:33 +0200 | <cheater> | idk that i agree since most haskell code is *only* documented by comments. but even then, if we follow this logic, then neither is Help.hs going to be a replacement for full documentation. |
2024-05-13 20:12:56 +0200 | <glguy> | You don't need us to approve, you can just do whatever feels good |
2024-05-13 20:13:19 +0200 | tremon | (~tremon@83.80.159.219) (Quit: getting boxed in) |
2024-05-13 20:13:20 +0200 | <cheater> | i don't mean to be overly defensive, i'm just trying to understand the different kinds of arguments for and against |
2024-05-13 20:13:45 +0200 | <glguy> | You'll get the most out of your examples if they use the public interface to the library |
2024-05-13 20:13:57 +0200 | <glguy> | and if you don't burden consumers of the library with having to build examples |
2024-05-13 20:14:11 +0200 | <glguy> | and the best way to demonstrate the public interface is to be a public interface consume |
2024-05-13 20:14:12 +0200 | <glguy> | r |
2024-05-13 20:14:43 +0200 | <cheater> | oh, well |
2024-05-13 20:14:53 +0200 | <cheater> | i see what you mean |
2024-05-13 20:15:09 +0200 | <cheater> | but in this case, i'm working on a massive monorepo with dozens of libs |
2024-05-13 20:15:25 +0200 | <cheater> | so there isn't even a public interface |
2024-05-13 20:15:27 +0200 | <glguy> | the example should have a build-dep: with whatever the library is |
2024-05-13 20:15:34 +0200 | <glguy> | that's the "public interface" from Haskell point of view |
2024-05-13 20:15:50 +0200 | philopsos1 | (~caecilius@user/philopsos) |
2024-05-13 20:16:04 +0200 | <cheater> | yeah. i'm just saying it's like, all private interface |
2024-05-13 20:16:07 +0200 | <cheater> | very intertwined |
2024-05-13 20:16:29 +0200 | <cheater> | the dependency graph looks like that red string meme |
2024-05-13 20:17:10 +0200 | <glguy> | In the case the example might be useful to the users as it shows what a mess of build-deps they'll need |
2024-05-13 20:17:39 +0200 | <cheater> | the only other users are the devs of the monorepo |
2024-05-13 20:17:47 +0200 | <glguy> | that's fine |
2024-05-13 20:17:55 +0200 | <cheater> | hmm |
2024-05-13 20:18:11 +0200 | <glguy> | presumably those devs aren't forming a hivemend or you wouldn't be making examples in the first place |
2024-05-13 20:18:28 +0200 | <cheater> | sometimes i wonder |
2024-05-13 20:18:53 +0200 | <glguy> | if they are, then just think the examples to them :) |
2024-05-13 20:19:06 +0200 | <cheater> | but what if they forget |
2024-05-13 20:21:13 +0200 | <cheater> | sometimes my own forgetfulness makes me think our memories are just biological cassette tape |
2024-05-13 20:21:58 +0200 | <glguy> | I do support [Leary]'s suggestion of putting the examples in module comments and using doctest to check them, especially for very limited scope examples: here's how to use just this one function/module |
2024-05-13 20:22:12 +0200 | <glguy> | at least for the cases that are simple enough for doctest to load them |
2024-05-13 20:25:34 +0200 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Ping timeout: 260 seconds) |
2024-05-13 20:26:28 +0200 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2024-05-13 20:26:34 +0200 | roboguy_ | (~roboguy_@216.147.124.110) |
2024-05-13 20:26:40 +0200 | roboguy_ | (~roboguy_@216.147.124.110) (Client Quit) |
2024-05-13 20:34:43 +0200 | <cheater> | the examples i'm thinking of are a little more involved than that |
2024-05-13 20:34:53 +0200 | <cheater> | like 2-3 screens of code |
2024-05-13 20:36:01 +0200 | <zzz> | how can i visualize a dependency graph? cabal-plan? |
2024-05-13 20:37:29 +0200 | <tomsmeding> | cabal-plan dot |
2024-05-13 20:37:45 +0200 | <zzz> | tomsmeding: ty |
2024-05-13 20:37:55 +0200 | <tomsmeding> | zzz: tip: cabal-plan dot --hide-builtin |
2024-05-13 20:43:22 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-05-13 20:44:13 +0200 | <ncf> | why the hell do we have xor :: NonEmpty Bool -> Bool but not [Bool] -> Bool |
2024-05-13 20:46:29 +0200 | gawen | (~gawen@user/gawen) (Quit: cya) |
2024-05-13 20:46:53 +0200 | zzz | (~yin@user/zero) (Ping timeout: 272 seconds) |
2024-05-13 20:47:15 +0200 | <glguy> | probably xor had it before getting pulled into base |
2024-05-13 20:47:31 +0200 | <tomsmeding> | s/xor/nonempty/ |
2024-05-13 20:47:42 +0200 | <mauke> | :t xor |
2024-05-13 20:47:43 +0200 | <lambdabot> | Bits a => a -> a -> a |
2024-05-13 20:48:29 +0200 | zzz | (~yin@user/zero) |
2024-05-13 20:48:29 +0200 | <mauke> | :t foldl' (/=) False |
2024-05-13 20:48:30 +0200 | <lambdabot> | Foldable t => t Bool -> Bool |
2024-05-13 20:51:13 +0200 | <zzz> | mauke: thath's fun |
2024-05-13 20:51:17 +0200 | <monochrom> | https://www.cs.utoronto.ca/~trebla/eq-wiltink.pdf shows how to use how xnor aka (==) as a monoid operator to solve a famous logic puzzle. |
2024-05-13 20:51:40 +0200 | <tomsmeding> | (hey, a dutchman) |
2024-05-13 20:53:26 +0200 | gawen | (~gawen@user/gawen) |
2024-05-13 20:54:54 +0200 | <tomsmeding> | that proof on the first page conflates booleans and truth values |
2024-05-13 20:54:58 +0200 | <tomsmeding> | feels very weird to read that |
2024-05-13 20:55:20 +0200 | <monochrom> | It is a correct conflation in classical logic. |
2024-05-13 20:55:24 +0200 | <tomsmeding> | it is |
2024-05-13 20:55:43 +0200 | <tomsmeding> | I'm not saying the proof is wrong, but the first step took me embarrassingly long to understand |
2024-05-13 20:55:57 +0200 | <tomsmeding> | "what does that even mean" |
2024-05-13 20:56:24 +0200 | <tomsmeding> | "associativity of ===" is also a funny statement to make to a constructivist |
2024-05-13 20:58:10 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-05-13 20:59:27 +0200 | <tomsmeding> | monochrom: the case of the paper is a bit weird though, I think; the author argues that natural deduction is not great because it is inefficient, but efficiency is not really the point of natural deduction, is it? |
2024-05-13 20:59:41 +0200 | <tomsmeding> | being obviously based on the axioms and thus obviously correct is the point, I thought |
2024-05-13 21:00:11 +0200 | <tomsmeding> | the author even quotes Gentzen referring to formalisation of mathematical proofs |
2024-05-13 21:00:27 +0200 | <mauke> | I don't understand the problem |
2024-05-13 21:00:31 +0200 | <tomsmeding> | possibly a confusion of terminology occurred here |
2024-05-13 21:00:46 +0200 | <mauke> | the solution is clearly that not enough information is given to determine an answer |
2024-05-13 21:01:04 +0200 | <tomsmeding> | where Wiltink interpreted "formalisation" to mean "writing proofs in a formalism", whereas Gentzen perhaps intended it to mean "expressing proofs in terms of axioms" |
2024-05-13 21:01:36 +0200 | <tomsmeding> | mauke: it's given that one of the two caskets contains a portrait |
2024-05-13 21:01:42 +0200 | <monochrom> | I acknowledge and like the value of natural deduction in being in perfect correspondence with functional programming. |
2024-05-13 21:01:47 +0200 | <mauke> | yes |
2024-05-13 21:01:58 +0200 | <APic> | Yes. |
2024-05-13 21:02:30 +0200 | <mauke> | so far there are three possible universes |
2024-05-13 21:02:39 +0200 | <monochrom> | But I disdain the "value" in corresponding to verbal reasoning. Natural languages were not intelligently designed. |
2024-05-13 21:03:01 +0200 | <tomsmeding> | monochrom: who claims that value? |
2024-05-13 21:03:12 +0200 | <monochrom> | Gentzen? |
2024-05-13 21:03:17 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) |
2024-05-13 21:03:20 +0200 | <tomsmeding> | he doesn't in the text quoted by Wiltink |
2024-05-13 21:03:20 +0200 | <monochrom> | Everyone else? |
2024-05-13 21:03:48 +0200 | <tomsmeding> | so if he does, then Wiltink chose a very awkward piece of Gentzen's writing to quote :p |
2024-05-13 21:04:13 +0200 | <mauke> | one where the gold casket contains a portrait and the silver casket doesn't, one where the silver casket contains a portrait and the gold one doesn't, and one where both caskets contain a portrait |
2024-05-13 21:04:26 +0200 | <monochrom> | During Gentzen's time, "actual reasoning" means verbal reasoning. |
2024-05-13 21:04:28 +0200 | <mauke> | this is unrelated to any inscriptions on the caskets |
2024-05-13 21:04:32 +0200 | kadir | (~kadir@85.103.183.96) |
2024-05-13 21:04:33 +0200 | <tomsmeding> | mauke: "one of which contains a portrait of a lady" |
2024-05-13 21:04:38 +0200 | <tomsmeding> | one /= two |
2024-05-13 21:04:45 +0200 | <tomsmeding> | your third universe is excluded by assumption |
2024-05-13 21:04:51 +0200 | <mauke> | one is a subset of two |
2024-05-13 21:04:58 +0200 | <tomsmeding> | ah, natural language strikes again |
2024-05-13 21:05:30 +0200 | <mauke> | consider this situation: there are two caskets, one of which does not contain a portrait |
2024-05-13 21:06:54 +0200 | <mauke> | anyway, even in the "exactly one" interpretation we're left with two possible outcomes and nothing to disambiguate |
2024-05-13 21:07:04 +0200 | <tomsmeding> | right |
2024-05-13 21:07:37 +0200 | <tomsmeding> | mauke: the gold inscription talks about "The portrait" |
2024-05-13 21:07:47 +0200 | <mauke> | if the portrait is in the gold casket, the gold inscription is false and the silver inscription is self-reinforcing (it is false if assumed to be false and true if assumed to be true) |
2024-05-13 21:08:02 +0200 | <tomsmeding> | if you modify the gold inscription to "A portrait" and the proof's conclusion also to "A portrait", I think the result continues to hold |
2024-05-13 21:08:13 +0200 | <mauke> | if the portrait is in the silver casket, the gold inscription is true and the silver inscription is self-refuting (it is false if assumed to be true and true if assumed to be false) |
2024-05-13 21:08:15 +0200 | <tomsmeding> | now with ambiguity whether the silver one also contains a portrait |
2024-05-13 21:09:01 +0200 | <tomsmeding> | mauke: isn't a self-refuting statement a contradiction? |
2024-05-13 21:09:05 +0200 | <ncf> | yeah |
2024-05-13 21:09:21 +0200 | <ncf> | the hidden piece of information is that both sentences are meaningful |
2024-05-13 21:09:23 +0200 | <mauke> | it's a paradox |
2024-05-13 21:09:40 +0200 | <tomsmeding> | isn't that kind of the semantical definition of a contradiction |
2024-05-13 21:09:48 +0200 | <mauke> | sure |
2024-05-13 21:09:50 +0200 | <tomsmeding> | "this thing is true but it's also not true" |
2024-05-13 21:10:03 +0200 | <mauke> | but I can write all kinds of things on caskets |
2024-05-13 21:10:08 +0200 | <mauke> | doesn't affect their contents in any way |
2024-05-13 21:10:21 +0200 | lisbeths | (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2024-05-13 21:10:27 +0200 | <ncf> | (as in, have a truth value) |
2024-05-13 21:10:37 +0200 | <ncf> | mauke: think of it this way: there are 2^3 = 8 universes |
2024-05-13 21:10:49 +0200 | <ncf> | one bit for the position of the thing, and one bit for the truth of each sentence |
2024-05-13 21:10:59 +0200 | <tomsmeding> | I think doubting the validity of the inscriptions misses the point of the puzzle :p |
2024-05-13 21:11:00 +0200 | <ncf> | your argument shows that only two universes are possible, and in those two the thing is in the thing |
2024-05-13 21:11:18 +0200 | ncf | checks page again |
2024-05-13 21:11:27 +0200 | <ncf> | the portrait is in the gold casket |
2024-05-13 21:11:41 +0200 | <mauke> | if both inscriptions are required to have a truth value, no solutions are possible |
2024-05-13 21:11:45 +0200 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
2024-05-13 21:12:05 +0200 | <ncf> | yes: portrait in gold casket, gold casket lying, silver casket who cares |
2024-05-13 21:12:13 +0200 | <tomsmeding> | there are -- gold is false, silver is either true or false |
2024-05-13 21:12:29 +0200 | <tomsmeding> | two possible universes, but the solution of where the portrait is doesn't depend on that choice |
2024-05-13 21:12:30 +0200 | <mauke> | in one case, the silver inscription is neither true nor false (paradox), in the other, the silver inscription is both true and false |
2024-05-13 21:12:37 +0200 | <mauke> | "who cares" is not a truth value |
2024-05-13 21:12:47 +0200 | <ncf> | its' not both true and false |
2024-05-13 21:12:49 +0200 | <ncf> | it can be either |
2024-05-13 21:12:50 +0200 | euleritian | (~euleritia@dynamic-176-006-186-214.176.6.pool.telefonica.de) |
2024-05-13 21:12:55 +0200 | <ncf> | both worlds are possible |
2024-05-13 21:13:06 +0200 | <mauke> | they are the same world |
2024-05-13 21:13:24 +0200 | <ncf> | do i need to slap you with a fixed point |
2024-05-13 21:13:47 +0200 | <ncf> | "this sentence is true" denotes a fixed point of the identity. in classical logic there are two: true and false |
2024-05-13 21:13:48 +0200 | rosco | (~rosco@yp-146-6.tm.net.my) (Quit: Lost terminal) |
2024-05-13 21:13:50 +0200 | <mauke> | no, a continuum hypothesis |
2024-05-13 21:14:11 +0200 | <monochrom> | I was just hoping to show that it is beautiful that boolean (==) makes a monoid. |
2024-05-13 21:14:36 +0200 | <monochrom> | But I guess I am speaking to a community that even refuse to use booleans for logic at all. |
2024-05-13 21:14:56 +0200 | <tomsmeding> | I don't think this discussion was about that :) |
2024-05-13 21:15:26 +0200 | <tomsmeding> | this discussion was about interpreting the puzzle's text too literally so that you miss the point of the puzzle |
2024-05-13 21:15:45 +0200 | <tomsmeding> | although I agree that if you start writing self-referential sentences, you better be damn clear about what exactly you mean |
2024-05-13 21:17:38 +0200 | <monochrom> | Yeah there is the assumption that this self-reference has a solution. |
2024-05-13 21:17:51 +0200 | <tomsmeding> | there is the implicit "the" |
2024-05-13 21:18:08 +0200 | <tomsmeding> | which is admittedly unrelated, but at the level of preciseness that you need in such a context |
2024-05-13 21:18:13 +0200 | zzz | (~yin@user/zero) (Quit: leaving) |
2024-05-13 21:18:16 +0200 | <tomsmeding> | it clearly threw mauke off |
2024-05-13 21:18:49 +0200 | <ncf> | mauke: if i were to formalise this in, say, Agda, i would postulate that there is a boolean type Casket = gold | silver, a predicate HasPainting : Casket → DecProp such that HasPainting(gold) ∨ HasPainting(silver), a DecProp Gold such that Gold ≃ ¬HasPainting(gold), and a DecProp Silver such that Silver ≃ ExactlyOne Gold Silver, and then proceed to show that HasPainting(gold) holds |
2024-05-13 21:19:58 +0200 | <mauke> | I think I need to reformulate this problem a bit |
2024-05-13 21:20:30 +0200 | euleritian | (~euleritia@dynamic-176-006-186-214.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-05-13 21:20:48 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-05-13 21:21:11 +0200 | <mauke> | I am a violent lunatic who hates your guts. I have trapped you in a locked room. In the room, there are two boxes. One of them contains a key that lets you out, the other contains a bomb that goes off when you open the box and blows you to bits. |
2024-05-13 21:21:18 +0200 | <mauke> | also, there are inscriptions on the boxes or whatever |
2024-05-13 21:21:22 +0200 | <mauke> | which box do you open? |
2024-05-13 21:22:21 +0200 | <tomsmeding> | mauke: you can still do logic on the inscriptions |
2024-05-13 21:22:35 +0200 | <mauke> | yes, but what good will that do you? |
2024-05-13 21:22:37 +0200 | <tomsmeding> | whether the conclusion applies to reality is then predicated on whether you believe that the inscriptions apply to reality |
2024-05-13 21:22:54 +0200 | <tomsmeding> | the article does not claim that the portrait is _actually_ in that casket |
2024-05-13 21:23:01 +0200 | <tomsmeding> | it just claims that it is the logical conclusion of the inscriptions |
2024-05-13 21:23:03 +0200 | <monochrom> | But the casket logic puzzle does not begin with someone who is a violent lunatic who gates my guts. |
2024-05-13 21:23:05 +0200 | <mauke> | in the original puzzle, you know that at least one inscription does not apply to reality |
2024-05-13 21:23:10 +0200 | <mauke> | because the gold inscription is false |
2024-05-13 21:23:34 +0200 | <tomsmeding> | mauke: the article does not draw a conclusion about the caskets |
2024-05-13 21:23:46 +0200 | <monochrom> | It begins with someone who makes sure that each sentence is honest or lying. |
2024-05-13 21:23:47 +0200 | <int-e> | the inscription could be meaningless |
2024-05-13 21:23:49 +0200 | <tomsmeding> | it draws a conclusion from the inscriptions |
2024-05-13 21:24:11 +0200 | <ncf> | we've been over this <ncf> the hidden piece of information is that both sentences are meaningful |
2024-05-13 21:24:19 +0200 | <ncf> | if you refuse to read the inscriptions there is no puzzle |
2024-05-13 21:24:37 +0200 | <monochrom> | In the same way the sentinel puzzle begins with "you don't know whether he's honest or lying but it is one of them". |
2024-05-13 21:24:44 +0200 | <int-e> | ncf: ah. how long has... oh god. |
2024-05-13 21:25:26 +0200 | <ncf> | in other words, logic puzzles are not a survival manual |
2024-05-13 21:27:04 +0200 | <monochrom> | For the lunatic case, I may consider adding the simulation hypothesis and say that I'm in a simulation, not the least because why else there is lunatic targetting me, so I open both boxes to ensure efficient end of the simulation. >:) |
2024-05-13 21:28:22 +0200 | <monochrom> | Right? We know of escape rooms that are way more logical than the lunatic. :) |
2024-05-13 21:33:20 +0200 | yin | (~yin@user/zero) |
2024-05-13 21:34:43 +0200 | <mauke> | ok, what's wrong with the following? consider a similar situation but with the gold inscription G being "the silver inscription is true" and the silver inscription S being "the gold inscription is false". I can then formally prove that the portrait is in the gold casket (P(G)) in a derivation similar to that in the paper. |
2024-05-13 21:35:51 +0200 | <mauke> | true ==> true \/ P(G) ==> (S = -G) \/ P(G) ==> (S = -S) \/ P(G) ==> false \/ P(G) ==> P(G) |
2024-05-13 21:36:07 +0200 | <int-e> | has anybody mentioned https://en.wikipedia.org/wiki/Unexpected_hanging_paradox yet? (at least not by this name) |
2024-05-13 21:37:40 +0200 | <monochrom> | My supervisor (that would be the Hehner mentioned in the paper) changed that to the less morbid: The teacher says there is a surprise test this week. :) |
2024-05-13 21:38:57 +0200 | <int-e> | mauke: You can also prove that the portrait is in the silver casket, so you get two portraits! |
2024-05-13 21:39:05 +0200 | <mauke> | yes :-) |
2024-05-13 21:39:15 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-05-13 21:40:21 +0200 | <mauke> | I consider this derivation defective because you can't just plug some (possibly contradictory) statements into a formula, derive a result according to some logical rules, and then call it a day |
2024-05-13 21:40:54 +0200 | <mauke> | but what makes this derivation different from the "proof" in the paper? |
2024-05-13 21:43:40 +0200 | <int-e> | It's not. It's just assumed that the assumptions are consistent, and in your case they aren't. |
2024-05-13 21:43:50 +0200 | <monochrom> | You are right, but since your version contains a contradiction (equivalently a fixed point equation that has no solution), every complete proof system will prove the same nonsense. This means even natural deduction is vulnerable. |
2024-05-13 21:44:37 +0200 | rekahsoft | (~rekahsoft@184.148.6.204) |
2024-05-13 21:44:37 +0200 | <monochrom> | But I don't worry about it because it is then the question's fault. |
2024-05-13 21:44:43 +0200 | <int-e> | (I feel that a complete solution to the original problem should exhibit a model. Or both :)) |
2024-05-13 21:44:59 +0200 | <mauke> | ooh, I know what this is |
2024-05-13 21:45:08 +0200 | <mauke> | this is like the C standard and undefined behavior |
2024-05-13 21:45:27 +0200 | <monochrom> | FSVO "like". |
2024-05-13 21:45:32 +0200 | <mauke> | and mathematicians are C compilers that blindly assume UB can never happen :-) |
2024-05-13 21:45:47 +0200 | euphores | (~SASL_euph@user/euphores) (Quit: Leaving.) |
2024-05-13 21:46:14 +0200 | <int-e> | Eh I wouldn't call it blind trust. |
2024-05-13 21:46:24 +0200 | <int-e> | cf. Gödel |
2024-05-13 21:46:27 +0200 | <mauke> | <monochrom> But I don't worry about it because it is then the question's fault. |
2024-05-13 21:46:28 +0200 | <int-e> | (and many others) |
2024-05-13 21:46:44 +0200 | <mauke> | similarly, the compiler doesn't worry about it because it is then the programmer's fault |
2024-05-13 21:47:04 +0200 | <EvanR> | i didn't follow the entire discussion but can I fork two processes each opens one of the boxes |
2024-05-13 21:47:33 +0200 | <EvanR> | like quantum suicide |
2024-05-13 21:47:38 +0200 | <monochrom> | The lunatic didn't give you a Geiger counter, so you probably can't. :) |
2024-05-13 21:47:52 +0200 | <dolio> | If that's the analogy, then aren't you the one assuming that the program does have undefined behavior even though it doesn't? |
2024-05-13 21:48:07 +0200 | <monochrom> | Then you need to appeal to Penrose and hope that your brain has a Geiger counter built-in. |
2024-05-13 21:48:29 +0200 | <int-e> | Oh and I also love this take on this general type of puzzle: https://xkcd.com/246/ |
2024-05-13 21:49:17 +0200 | <monochrom> | Yeah I was ready to believe that the lunatic has one more locked room outside my current locked room. |
2024-05-13 21:49:26 +0200 | <mauke> | hah. "None of the doors actually lead out." |
2024-05-13 21:49:56 +0200 | <monochrom> | It's why my really pragmatic choices are starving to death or blowing to death. |
2024-05-13 21:50:11 +0200 | <mauke> | monochrom: in my version of the puzzle, it is very possible that neither box contains the key since all the information you have about the situation came from me |
2024-05-13 21:50:21 +0200 | yin | (~yin@user/zero) (Quit: leaving) |
2024-05-13 21:54:25 +0200 | robosexual | (~spaceoyst@5.167.241.127) (Quit: Konversation terminated!) |
2024-05-13 21:56:52 +0200 | philopsos1 | (~caecilius@user/philopsos) (Ping timeout: 246 seconds) |
2024-05-13 21:59:23 +0200 | philopsos | (~caecilius@user/philopsos) |
2024-05-13 22:12:33 +0200 | todi | (~todi@p57803331.dip0.t-ipconnect.de) (Remote host closed the connection) |
2024-05-13 22:14:16 +0200 | euphores | (~SASL_euph@user/euphores) |
2024-05-13 22:24:46 +0200 | Ryan54 | (~Ryan@2601:602:8b00:b0f0:598b:fb7d:e718:eb36) |
2024-05-13 22:24:50 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
2024-05-13 22:26:33 +0200 | sawilagar | (~sawilagar@user/sawilagar) |
2024-05-13 22:29:43 +0200 | <Ryan54> | Hey all, looking for some help handling a nested Conduit and wondering if I'm going about it wrong. I have a function someFunc that calls paginate on an aws resource, so the signature is |
2024-05-13 22:29:43 +0200 | <Ryan54> | -- given an environment and uuid, return a stream of results" (MonadResource m) => Env -> UUID -> ConduitT () [[Maybe Text]] m () |
2024-05-13 22:29:44 +0200 | <Ryan54> | I have a conduit that's calling that based on an input stream: someTextSource |
2024-05-13 22:29:44 +0200 | <Ryan54> | .| mapMC (startQuery env query) |
2024-05-13 22:29:45 +0200 | <Ryan54> | .| concatMapMC (waitForQuery env) |
2024-05-13 22:29:45 +0200 | <Ryan54> | .| concatC |
2024-05-13 22:29:46 +0200 | <Ryan54> | .| mapM_C (liftIO . print) |
2024-05-13 22:29:46 +0200 | <Ryan54> | This doesn't seem to work unfortunately. Does conduit not allow you to produce a stream of streams during the pipeline and concatenate them together? I couldn't tell if ConduitT had a MonoFoldable instance. |
2024-05-13 22:30:00 +0200 | todi | (~todi@p57803331.dip0.t-ipconnect.de) |
2024-05-13 22:31:31 +0200 | pavonia | (~user@user/siracusa) |
2024-05-13 22:40:35 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 256 seconds) |
2024-05-13 22:43:03 +0200 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) |
2024-05-13 23:05:40 +0200 | hiredman | (~hiredman@frontier1.downey.family) |
2024-05-13 23:07:13 +0200 | sawilagar | (~sawilagar@user/sawilagar) (Ping timeout: 256 seconds) |
2024-05-13 23:18:38 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer) |
2024-05-13 23:19:22 +0200 | Ryan53 | (~Ryan@2601:602:8b00:b0f0:598b:fb7d:e718:eb36) |
2024-05-13 23:19:25 +0200 | <ncf> | > undefined :: String |
2024-05-13 23:19:27 +0200 | <lambdabot> | "*Exception: Prelude.undefined |
2024-05-13 23:19:31 +0200 | <ncf> | > undefined :: [Int] |
2024-05-13 23:19:32 +0200 | <lambdabot> | *Exception: Prelude.undefined |
2024-05-13 23:19:41 +0200 | <ncf> | i wonder why the latter doesn't print the first [ |
2024-05-13 23:20:02 +0200 | Ryan53 | (~Ryan@2601:602:8b00:b0f0:598b:fb7d:e718:eb36) (Client Quit) |
2024-05-13 23:20:10 +0200 | todi | (~todi@p57803331.dip0.t-ipconnect.de) (Remote host closed the connection) |
2024-05-13 23:23:09 +0200 | <mauke> | https://hackage.haskell.org/package/base-4.19.1.0/docs/src/GHC.Show.html#showList |
2024-05-13 23:23:47 +0200 | <mauke> | showList__ is strict in its second arg |
2024-05-13 23:27:50 +0200 | <monochrom> | Probably two persons picked two different arbitrary choices of "pattern match first" vs "output delimiter first". |
2024-05-13 23:28:21 +0200 | <ncf> | seems likely |
2024-05-13 23:36:11 +0200 | Guest63 | (~Guest63@dynamic-077-187-048-242.77.187.pool.telefonica.de) |
2024-05-13 23:36:43 +0200 | Guest63 | (~Guest63@dynamic-077-187-048-242.77.187.pool.telefonica.de) (Client Quit) |
2024-05-13 23:36:52 +0200 | titibandit | (~titibandi@user/titibandit) (Ping timeout: 268 seconds) |
2024-05-13 23:45:42 +0200 | sadome | (~sadome@user/sadome) |
2024-05-13 23:45:42 +0200 | sadome | (~sadome@user/sadome) (Excess Flood) |
2024-05-13 23:50:11 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2024-05-13 23:51:39 +0200 | kadir | (~kadir@85.103.183.96) (WeeChat 4.2.2) |
2024-05-13 23:59:55 +0200 | raehik | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 256 seconds) |