Logs on 2022-07-29 (liberachat/#haskell)
| 00:00:40 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 00:02:00 | → | califax joins (~califax@user/califx) |
| 00:03:35 | <slack1256> | geekosaur: After convincing stack to build using ghc-9.2.3 I discovered the leak. I did not sleep yesterday because today I had a demo. But atleast I can finally present this. Thank you soo much for you advice, I am literally weeping :'-) |
| 00:03:44 | → | mvk joins (~mvk@2607:fea8:5ce3:8500::311d) |
| 00:05:20 | × | Guest3 quits (~textual@pool-100-11-18-203.phlapa.fios.verizon.net) (Quit: Textual IRC Client: www.textualapp.com) |
| 00:05:36 | → | Guest3 joins (~textual@pool-100-11-18-203.phlapa.fios.verizon.net) |
| 00:05:57 | → | jinsun__ joins (~jinsun@user/jinsun) |
| 00:05:57 | jinsun | is now known as Guest123 |
| 00:05:57 | jinsun__ | is now known as jinsun |
| 00:09:39 | × | Guest123 quits (~jinsun@user/jinsun) (Ping timeout: 244 seconds) |
| 00:10:02 | → | Haskelytic joins (~Haskelyti@118.179.211.17) |
| 00:12:47 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 00:12:50 | × | Guest3 quits (~textual@pool-100-11-18-203.phlapa.fios.verizon.net) (Quit: Textual IRC Client: www.textualapp.com) |
| 00:15:45 | × | Haskelytic quits (~Haskelyti@118.179.211.17) (Quit: Ping timeout (120 seconds)) |
| 00:17:56 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 00:18:58 | × | zeenk quits (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) (Quit: Konversation terminated!) |
| 00:19:06 | × | hgolden quits (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection) |
| 00:20:02 | × | dvdrw quits (~dvdrw@user/dvdrw) (Ping timeout: 245 seconds) |
| 00:22:03 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 00:22:44 | → | hgolden joins (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) |
| 00:24:10 | × | hgolden quits (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection) |
| 00:24:38 | × | slack1256 quits (~slack1256@191.126.99.71) (Remote host closed the connection) |
| 00:26:02 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 00:26:39 | → | hgolden joins (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) |
| 00:28:04 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 00:29:20 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5) |
| 00:30:38 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 00:34:38 | × | stiell quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
| 00:35:06 | → | k8yun__ joins (~k8yun@user/k8yun) |
| 00:35:12 | → | stiell joins (~stiell@gateway/tor-sasl/stiell) |
| 00:37:32 | × | qhong quits (~qhong@rescomp-21-400677.stanford.edu) (Read error: Connection reset by peer) |
| 00:37:38 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 00:37:41 | → | qhong joins (~qhong@rescomp-21-400677.stanford.edu) |
| 00:39:39 | × | k8yun__ quits (~k8yun@user/k8yun) (Ping timeout: 268 seconds) |
| 00:39:55 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 00:40:41 | → | Haskelytic joins (~Haskelyti@118.179.211.17) |
| 00:43:07 | → | cbdlt^ joins (~cbdlt@50-242-35-142-static.hfc.comcastbusiness.net) |
| 00:45:02 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds) |
| 00:46:36 | → | stiell_ joins (~stiell@gateway/tor-sasl/stiell) |
| 00:47:08 | × | stiell quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 268 seconds) |
| 00:50:17 | <albet70> | joinCont :: ((a->b) -> (a->b)->c) -> (a->b)->c, is that joinCont == const? |
| 00:51:05 | <Axman6> | :t const `asTypeOf` (undefined :: ((a->b) -> (a->b)->c) -> (a->b)->c) |
| 00:51:07 | <lambdabot> | error: |
| 00:51:07 | <lambdabot> | • Occurs check: cannot construct the infinite type: |
| 00:51:07 | <lambdabot> | c ~ (a -> b) -> (a -> b) -> c |
| 00:51:40 | <Axman6> | making it const seems like it would be pretty useless |
| 00:52:10 | <Axman6> | try to write joinCont f k = ??? using both f and k |
| 00:53:25 | <albet70> | I don't know how... |
| 00:53:35 | <albet70> | :t const |
| 00:53:36 | <lambdabot> | a -> b -> a |
| 00:53:49 | <Axman6> | what is the type of f? |
| 00:54:36 | <albet70> | f :: a->b; k :: (a->b)->c |
| 00:54:54 | <Axman6> | no |
| 00:55:06 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4) |
| 00:55:11 | <Axman6> | look at the type again, and pay attention to the brackets |
| 00:56:12 | <albet70> | f :: ((a->b) -> (a->b)->c); k:: a->b |
| 00:56:20 | <Axman6> | correct |
| 00:56:39 | <Axman6> | so, what is the type of the (first) argument to f? do you have something of that type? |
| 00:57:08 | <albet70> | joinCont f k = f k k? |
| 00:57:16 | <Axman6> | does that type check? |
| 00:57:57 | <Axman6> | :t let joinCont :: ((a->b) -> (a->b)->c) -> (a->b)->c; joinCont f k = f k k in joinCont |
| 00:57:58 | <lambdabot> | ((a -> b) -> (a -> b) -> c) -> (a -> b) -> c |
| 00:58:04 | <Axman6> | looks pretty good to me |
| 00:58:09 | × | cbdlt^ quits (~cbdlt@50-242-35-142-static.hfc.comcastbusiness.net) (Ping timeout: 268 seconds) |
| 00:59:36 | <albet70> | @djinn ((a -> b) -> (a -> b) -> c) -> (a -> b) -> c |
| 00:59:36 | <lambdabot> | f a b = a b b |
| 01:00:13 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4) (Ping timeout: 272 seconds) |
| 01:00:23 | <Axman6> | :t join @((->) a) |
| 01:00:25 | <lambdabot> | error: parse error on input ‘->’ |
| 01:00:29 | <Axman6> | % :t join @((->) a) |
| 01:00:29 | <yahb2> | <interactive>:1:13: error: Not in scope: type variable ‘a’ |
| 01:00:34 | <Axman6> | % :t join @((->) Int) |
| 01:00:34 | <yahb2> | <interactive>:1:1: error: Variable not in scope: join |
| 01:00:44 | Axman6 | glares |
| 01:05:33 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
| 01:07:03 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 01:07:03 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 01:07:03 | × | noteness quits (~noteness@user/noteness) (Remote host closed the connection) |
| 01:07:03 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 01:07:03 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
| 01:07:03 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 01:07:04 | × | gmg quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 01:07:40 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 01:07:51 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 01:07:52 | → | noteness joins (~noteness@user/noteness) |
| 01:07:54 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 01:07:54 | → | califax joins (~califax@user/califx) |
| 01:08:08 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 01:08:12 | → | gmg joins (~user@user/gehmehgeh) |
| 01:08:48 | <albet70> | join : (w -> (w -> a)) -> w -> a |
| 01:09:15 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 260 seconds) |
| 01:09:26 | <Axman6> | if you look closely, you should see those are the same function,. but joinCont has a slightly more specific type, where w ~ a -> b |
| 01:10:25 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
| 01:10:50 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 01:11:06 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 01:13:47 | × | xff0x quits (~xff0x@ae129043.dynamic.ppp.asahi-net.or.jp) (Ping timeout: 245 seconds) |
| 01:14:37 | <hasbae> | I'm exploring the ghc source repo, and trying to find the file(s) that contain the code for readFile https://hackage.haskell.org/package/base-4.16.3.0/docs/src/System.IO.html#readFile. I've got the latest commit fc23b5ed0f7924308040bf4163fc0a6da176feed from https://gitlab.haskell.org/ghc/ghc.git, but I can't find where readFile is defined. |
| 01:14:54 | × | hsw quits (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Remote host closed the connection) |
| 01:14:59 | × | nerdypepper quits (~nerdypepp@user/nerdypepper) (Quit: bye) |
| 01:15:31 | <hasbae> | am i looking in the right place? |
| 01:16:14 | → | nerdypepper joins (~nerdypepp@user/nerdypepper) |
| 01:17:14 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 01:21:30 | → | jinsun__ joins (~jinsun@user/jinsun) |
| 01:21:30 | jinsun | is now known as Guest9702 |
| 01:21:30 | jinsun__ | is now known as jinsun |
| 01:23:29 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4) |
| 01:23:50 | × | naso quits (~naso@193-116-244-197.tpgi.com.au) (Remote host closed the connection) |
| 01:24:03 | × | Guest9702 quits (~jinsun@user/jinsun) (Ping timeout: 244 seconds) |
| 01:24:40 | → | naso joins (~naso@193-116-244-197.tpgi.com.au) |
| 01:24:45 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 268 seconds) |
| 01:25:16 | <albet70> | > join (*) fmap [1..6] |
| 01:25:18 | <lambdabot> | error: |
| 01:25:18 | <lambdabot> | • Couldn't match type ‘[a0]’ with ‘a -> b’ |
| 01:25:18 | <lambdabot> | Expected type: ((a -> b) -> f a -> f b) -> [a0] -> f a -> f b |
| 01:25:57 | <albet70> | > join fmap (*) [1..6] |
| 01:25:59 | <lambdabot> | error: |
| 01:25:59 | <lambdabot> | • Couldn't match type ‘[a]’ with ‘[a] -> [a]’ |
| 01:25:59 | <lambdabot> | Expected type: ([a] -> [a] -> [a]) -> [a] -> [a] |
| 01:26:01 | <byorgey> | hasbae: I think there is a separate repo for the base package somewhere |
| 01:26:25 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 01:26:41 | <byorgey> | oh, never mind, https://hackage.haskell.org/package/base suggests it is in that repo under libraries/base |
| 01:26:49 | → | califax joins (~califax@user/califx) |
| 01:27:24 | <byorgey> | hasbae: https://gitlab.haskell.org/ghc/ghc/-/blob/master/libraries/base/System/IO.hs#L340 |
| 01:27:43 | <albet70> | what's the scenario join used for? |
| 01:27:45 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 01:29:12 | × | naso quits (~naso@193-116-244-197.tpgi.com.au) (Ping timeout: 245 seconds) |
| 01:29:31 | × | dknite quits (~dknite@49.37.45.188) (Read error: Connection reset by peer) |
| 01:29:44 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 01:30:00 | → | naso joins (~naso@193-116-244-197.tpgi.com.au) |
| 01:30:41 | <hasbae> | byorgey: now i've found it, thanks! |
| 01:32:27 | → | dknite joins (~dknite@223.191.52.173) |
| 01:32:50 | <byorgey> | happy to help! |
| 01:33:36 | <albet70> | > join (fmap (+)) [1..6] |
| 01:33:38 | <lambdabot> | error: |
| 01:33:38 | <lambdabot> | • Couldn't match type ‘[a0]’ with ‘[a0] -> a’ |
| 01:33:38 | <lambdabot> | Expected type: [a0] -> [a0] -> a -> a |
| 01:34:37 | <Haskelytic> | albet70: what are you trying to do? |
| 01:35:05 | → | k8yun__ joins (~k8yun@user/k8yun) |
| 01:35:10 | <albet70> | I'd like to which scenario join would use for |
| 01:35:30 | <albet70> | please help |
| 01:35:45 | <Axman6> | > join ["hello",", world!" |
| 01:35:47 | <lambdabot> | <hint>:1:25: error: |
| 01:35:47 | <lambdabot> | parse error (possibly incorrect indentation or mismatched brackets) |
| 01:35:47 | <hasbae> | when there's an import like "import Data.ByteString.Lazy", does the name with the dots between it correspond to some directory path like <some dir>/Data/ByteString/Lazy? |
| 01:35:52 | <Axman6> | > join (+) 7 |
| 01:35:54 | <lambdabot> | 14 |
| 01:35:57 | <Axman6> | > join ["hello",", world!'] |
| 01:35:59 | <lambdabot> | <hint>:1:26: error: |
| 01:35:59 | <lambdabot> | lexical error in string/character literal at end of input |
| 01:36:03 | <Axman6> | > join ["hello",", world!"] |
| 01:36:05 | <lambdabot> | "hello, world!" |
| 01:36:05 | × | k8yun__ quits (~k8yun@user/k8yun) (Remote host closed the connection) |
| 01:36:10 | <Haskelytic> | :t join |
| 01:36:11 | <lambdabot> | Monad m => m (m a) -> m a |
| 01:36:17 | <Axman6> | > join (Just (Just 7)) |
| 01:36:19 | <lambdabot> | Just 7 |
| 01:36:24 | <Axman6> | > join (Just Nothing) |
| 01:36:26 | <lambdabot> | Nothing |
| 01:36:42 | <Haskelytic> | join combines monadic contexts |
| 01:36:54 | <Haskelytic> | `m (m a)` goes to `m a` |
| 01:37:13 | <Haskelytic> | so for list it takes `[[a]]` to `[a] |
| 01:37:32 | → | king_gs joins (~Thunderbi@2806:103e:29:a1b3:d33d:90f:3255:af90) |
| 01:37:33 | <Haskelytic> | i.e. concatentation |
| 01:37:56 | <Haskelytic> | for `Maybe` it takes `Maybe (Maybe a)` to `Maybe a` |
| 01:38:14 | <Axman6> | for functions, it takes a -> a -> b to a -> b |
| 01:38:34 | <jackdk> | hasbae: `Data/ByteString/Lazy.hs`. If you want the ancient source: http://web.archive.org/web/20100703071858/http://www.haskell.org/hierarchical-modules/hier.pdf |
| 01:39:18 | <albet70> | > join (*) <$> [1..6] |
| 01:39:19 | <lambdabot> | [1,4,9,16,25,36] |
| 01:40:28 | <albet70> | join (*) <$> x == join ((*) <$>) x? |
| 01:40:40 | → | lys joins (~lys@user/lys) |
| 01:40:56 | <albet70> | i don't understand the syntax here |
| 01:41:05 | <hasbae> | jackdk: are you implying that it's deprecated, ie no longer part of Base? |
| 01:41:18 | <Haskelytic> | @albet |
| 01:41:18 | <lambdabot> | Maybe you meant: let leet |
| 01:41:25 | <hasbae> | as in why do I need to look at ancient source to find it |
| 01:41:26 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 01:41:38 | <Haskelytic> | albet70: the first one creates a squaring function basically |
| 01:41:43 | <Haskelytic> | :t (*) |
| 01:41:44 | <lambdabot> | Num a => a -> a -> a |
| 01:41:47 | <Haskelytic> | :t join (*) |
| 01:41:48 | <lambdabot> | Num a => a -> a |
| 01:42:04 | <Haskelytic> | the monad here is `(->) a` |
| 01:42:39 | <Haskelytic> | so `(*)` can be seen as `(->) a ( (->) a a )` |
| 01:43:06 | <Haskelytic> | running `join (*)` collapses the monad `m = (->) a` part |
| 01:44:45 | <hasbae> | if so, that's a good explanation for why I can't find it in the current repo. Possibly a hidden danger of reading blog posts from 2014 |
| 01:45:15 | <jackdk> | hasbae: It's been this way for so long (e.g., GHC5) that nobody keeps the spec around anymore except wayback, apparently |
| 01:45:18 | <Axman6> | base IIRC has been split into several smaller packages these days |
| 01:45:39 | <jackdk> | to be clear, this is the layout that we still use. |
| 01:46:25 | <albet70> | join (*) <$> x == ( join (*)) <$> x == liftM2 (*) x x? |
| 01:47:29 | → | cirilla joins (sid194105@user/lys) |
| 01:47:44 | × | king_gs quits (~Thunderbi@2806:103e:29:a1b3:d33d:90f:3255:af90) (Quit: king_gs) |
| 01:50:17 | <hasbae> | > import Data.ByteString.Lazy |
| 01:50:19 | <lambdabot> | <hint>:1:1: error: parse error on input ‘import’ |
| 01:50:25 | <hasbae> | import Data.ByteString.Lazy |
| 01:50:31 | <hasbae> | :i readFile |
| 01:52:52 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 01:53:13 | → | califax joins (~califax@user/califx) |
| 01:53:32 | <Haskelytic> | albet70: `liftM2 (*) x x` lifts `(*)` into the list `[]` monad, so you don't get the same behavior as `join (*) <$> x`, which is using the function monad |
| 01:53:49 | <hasbae> | I don't understand how readFile is defined in System.IO, yet I can import it with Data.ByteString.Lazy |
| 01:54:30 | → | xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
| 01:55:37 | <jackdk> | because there's also a readFile defined in that module. |
| 01:56:54 | <hasbae> | ok, different readFiles |
| 01:57:19 | <hasbae> | where is the module Data.ByteString.Lazy defined? |
| 01:58:53 | <hasbae> | is it not part of Base, and that's why I don't see it in the Base repo? |
| 01:59:42 | <hasbae> | must be it, it has its own repo https://github.com/haskell/bytestring |
| 02:00:13 | × | dcoutts__ quits (~duncan@host86-150-41-142.range86-150.btcentralplus.com) (Remote host closed the connection) |
| 02:00:21 | × | dcoutts quits (~duncan@host86-150-41-142.range86-150.btcentralplus.com) (Remote host closed the connection) |
| 02:00:37 | → | dcoutts__ joins (~duncan@host86-150-41-142.range86-150.btcentralplus.com) |
| 02:00:43 | → | dcoutts joins (~duncan@host86-150-41-142.range86-150.btcentralplus.com) |
| 02:01:43 | <hasbae> | note to self: next time just read the hackage page |
| 02:01:45 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 268 seconds) |
| 02:02:58 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 02:03:26 | × | zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection) |
| 02:05:17 | → | cbdlt^ joins (~cbdlt@50-242-35-142-static.hfc.comcastbusiness.net) |
| 02:06:35 | × | enemeth79 quits (uid309041@id-309041.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 02:07:21 | → | enemeth79 joins (uid309041@id-309041.lymington.irccloud.com) |
| 02:07:30 | → | [_] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 02:08:27 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 268 seconds) |
| 02:12:59 | → | gurkenglas joins (~gurkengla@p548ac71b.dip0.t-ipconnect.de) |
| 02:13:33 | × | naso quits (~naso@193-116-244-197.tpgi.com.au) () |
| 02:14:49 | × | [_] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 02:16:27 | × | cbdlt^ quits (~cbdlt@50-242-35-142-static.hfc.comcastbusiness.net) (Ping timeout: 252 seconds) |
| 02:17:51 | × | lys quits (~lys@user/lys) (Ping timeout: 276 seconds) |
| 02:21:56 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 02:23:32 | → | califax joins (~califax@user/califx) |
| 02:23:33 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:23:33 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 02:23:33 | finn_elija | is now known as FinnElija |
| 02:28:21 | → | _xor joins (~xor@74.215.182.83) |
| 02:33:07 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
| 02:34:18 | × | alp_ quits (~alp@user/alp) (Ping timeout: 244 seconds) |
| 02:35:54 | → | zaquest joins (~notzaques@5.130.79.72) |
| 02:37:36 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 02:38:00 | → | cbdlt^ joins (~cbdlt@50-242-35-142-static.hfc.comcastbusiness.net) |
| 02:43:37 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 02:46:17 | × | td_ quits (~td@muedsl-82-207-238-045.citykom.de) (Ping timeout: 245 seconds) |
| 02:46:53 | × | gurkenglas quits (~gurkengla@p548ac71b.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 02:48:06 | → | td_ joins (~td@muedsl-82-207-238-203.citykom.de) |
| 02:48:30 | ← | hasbae parts (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (WeeChat 3.5) |
| 02:50:55 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 252 seconds) |
| 02:51:04 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 02:52:10 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 02:52:10 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 02:52:10 | → | wroathe joins (~wroathe@user/wroathe) |
| 02:52:19 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 268 seconds) |
| 02:53:19 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:57:51 | <albet70> | I see, join (*) == \x -> (*) x x |
| 02:58:43 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 02:58:47 | <albet70> | join (*) <$> xs == fmap (\x -> (*) x x) xs |
| 03:00:27 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 03:07:03 | × | cbdlt^ quits (~cbdlt@50-242-35-142-static.hfc.comcastbusiness.net) (Ping timeout: 252 seconds) |
| 03:07:07 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 245 seconds) |
| 03:09:10 | → | cbdlt^ joins (~cbdlt@50-242-35-142-static.hfc.comcastbusiness.net) |
| 03:11:19 | <Haskelytic> | yep |
| 03:11:59 | <albet70> | @djinn ((_1 -> _2) -> a) -> (a -> (_1 -> _2) -> b) -> (_1 -> _2) -> b |
| 03:12:00 | <lambdabot> | Cannot parse command |
| 03:12:03 | <Haskelytic> | it's easier to see why `join (*)` gives you a squaring function if you understand the `(->) a` monad |
| 03:12:43 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 03:12:50 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 03:12:57 | × | yin quits (~yin@user/zero) (Ping timeout: 245 seconds) |
| 03:14:05 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 03:14:37 | → | yin joins (~yin@user/zero) |
| 03:14:57 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 03:23:59 | × | Vajb quits (~Vajb@n1zigc3rgo9mpde2w-1.v6.elisa-mobile.fi) (Read error: Connection reset by peer) |
| 03:24:44 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) |
| 03:28:22 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds) |
| 03:30:06 | <albet70> | that (->) _ is Reader, (->) (_ -> _) is Cont, so I wonder is that all monads can be expressed by (->) form? |
| 03:32:56 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 268 seconds) |
| 03:37:17 | ← | cirilla parts (sid194105@user/lys) () |
| 03:42:39 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 03:42:53 | × | zebrag quits (~chris@user/zebrag) (Read error: Connection reset by peer) |
| 03:50:09 | × | jargon quits (~jargon@184.101.188.251) (Remote host closed the connection) |
| 03:50:47 | × | mvk quits (~mvk@2607:fea8:5ce3:8500::311d) (Ping timeout: 244 seconds) |
| 03:52:14 | <qrpnxz> | type NotCont a = (? -> ?) -> a |
| 03:52:34 | <qrpnxz> | type Cont r a = (a -> r) -> r |
| 03:58:44 | × | yin quits (~yin@user/zero) (Quit: Lost terminal) |
| 04:02:57 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 04:03:38 | → | Vajb joins (~Vajb@n1zigc3rgo9mpde2w-1.v6.elisa-mobile.fi) |
| 04:04:23 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 04:06:20 | <Axman6> | albet70: http://blog.sigfpe.com/2008/12/mother-of-all-monads.html?m=0 |
| 04:07:57 | → | mvk joins (~mvk@2607:fea8:5ce3:8500::311d) |
| 04:08:10 | × | califax quits (~califax@user/califx) (Ping timeout: 268 seconds) |
| 04:08:43 | → | califax joins (~califax@user/califx) |
| 04:16:35 | × | enemeth79 quits (uid309041@id-309041.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 04:28:40 | → | irfan joins (~irfan@user/irfan) |
| 04:33:34 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 04:35:12 | → | yauhsien joins (~yauhsien@61-231-60-109.dynamic-ip.hinet.net) |
| 04:40:48 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 04:41:33 | → | califax joins (~califax@user/califx) |
| 04:45:02 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 04:48:10 | × | yauhsien quits (~yauhsien@61-231-60-109.dynamic-ip.hinet.net) (Ping timeout: 268 seconds) |
| 04:51:55 | × | mncheck-m quits (~mncheck@193.224.205.254) (Read error: Connection reset by peer) |
| 04:51:58 | × | Haskelytic quits (~Haskelyti@118.179.211.17) (Ping timeout: 252 seconds) |
| 04:52:39 | × | cyphase quits (~cyphase@user/cyphase) (Ping timeout: 252 seconds) |
| 04:55:34 | × | cbdlt^ quits (~cbdlt@50-242-35-142-static.hfc.comcastbusiness.net) (Ping timeout: 268 seconds) |
| 04:57:16 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 05:01:11 | → | Gambino joins (~textual@user/polo) |
| 05:01:41 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 05:04:13 | → | raym joins (~raym@user/raym) |
| 05:07:07 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 245 seconds) |
| 05:09:23 | → | cyphase joins (~cyphase@user/cyphase) |
| 05:15:20 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 05:16:43 | × | Gambino quits (~textual@user/polo) (Ping timeout: 272 seconds) |
| 05:18:38 | → | yin joins (~yin@user/zero) |
| 05:20:31 | → | Haskelytic joins (~Haskelyti@118.179.211.17) |
| 05:22:10 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 268 seconds) |
| 05:24:34 | <Haskelytic> | `type ReaderT r m a = r -> m a` whereas `type MaybeT m a = m (Maybe a)` |
| 05:25:49 | <Haskelytic> | interesting that ReaderT composes `(->) r` after `m` |
| 05:26:15 | <Haskelytic> | but MaybeT composes `m` after `Maybe` |
| 05:26:32 | × | bilegeek quits (~bilegeek@2600:1008:b009:a40a:238d:fd4d:a133:b04d) (Quit: Leaving) |
| 05:29:55 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 05:30:43 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 05:32:19 | → | gmg joins (~user@user/gehmehgeh) |
| 05:35:13 | → | inversed joins (~inversed@90.209.137.56) |
| 05:35:47 | → | Guest3_ joins (~textual@pool-100-11-18-203.phlapa.fios.verizon.net) |
| 05:36:28 | → | jese joins (~nikola@178-221-253-164.dynamic.isp.telekom.rs) |
| 05:38:34 | <jese> | i have a wrapper function around a C function, and where the C function accepts const char* the wrapper accepts String. how can i pass NULL to this function through wrapper? |
| 05:39:09 | <c_wraith> | You can't. |
| 05:39:16 | <c_wraith> | You'd need a different wrapper. |
| 05:40:21 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 05:42:53 | × | Guest3_ quits (~textual@pool-100-11-18-203.phlapa.fios.verizon.net) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 05:44:38 | → | MajorBiscuit joins (~MajorBisc@c-001-028-058.client.tudelft.eduvpn.nl) |
| 05:55:23 | → | machinedgod joins (~machinedg@d172-219-86-154.abhsia.telus.net) |
| 05:56:03 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 05:56:34 | → | califax joins (~califax@user/califx) |
| 06:03:20 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 06:04:04 | → | califax joins (~califax@user/califx) |
| 06:04:39 | <Christoph[m]> | <c_wraith> "You'd need a different wrapper." <- Like a wrapper that takes a `Maybe String` and translates `Nothing` into `NULL`? |
| 06:04:56 | <c_wraith> | that would be one approach, yes |
| 06:06:46 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 06:07:55 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 06:09:08 | → | mbuf joins (~Shakthi@122.165.55.71) |
| 06:09:42 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 06:09:43 | × | stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
| 06:10:04 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 06:10:52 | → | stiell_ joins (~stiell@gateway/tor-sasl/stiell) |
| 06:11:45 | → | benin0 joins (~benin@183.82.26.87) |
| 06:17:31 | → | michalz joins (~michalz@185.246.204.75) |
| 06:19:37 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds) |
| 06:21:31 | → | Tuplanolla joins (~Tuplanoll@91-159-68-204.elisa-laajakaista.fi) |
| 06:21:48 | × | Haskelytic quits (~Haskelyti@118.179.211.17) (Ping timeout: 252 seconds) |
| 06:25:52 | → | chomwitt joins (~chomwitt@2a02:587:dc00:5a00:ef54:f708:6c70:62e3) |
| 06:30:11 | × | mvk quits (~mvk@2607:fea8:5ce3:8500::311d) (Ping timeout: 272 seconds) |
| 06:31:52 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 06:32:12 | → | acidjnk joins (~acidjnk@p200300d6e70586975cbe70e1c6972498.dip0.t-ipconnect.de) |
| 06:36:10 | → | alternateved joins (~user@staticline-31-183-144-54.toya.net.pl) |
| 06:36:37 | → | yvan-sraka joins (uid419690@id-419690.lymington.irccloud.com) |
| 06:38:56 | → | gurkenglas joins (~gurkengla@84.138.199.27) |
| 06:45:31 | × | tcard quits (~tcard@p945242-ipngn9701hodogaya.kanagawa.ocn.ne.jp) (Quit: Leaving) |
| 06:45:58 | → | yauhsien joins (~yauhsien@61-231-60-109.dynamic-ip.hinet.net) |
| 06:48:41 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 06:50:37 | → | tcard joins (~tcard@p945242-ipngn9701hodogaya.kanagawa.ocn.ne.jp) |
| 06:53:40 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 06:53:52 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:a442:f89a:164c:a1c) |
| 06:54:33 | → | sandydoo joins (~sandydoo@185.209.196.136) |
| 06:54:35 | <jackdk> | This might have been lost in a scrollback, but is there a settled state-of-the-art binary serialisation library? I am interesting in parsing and tinkering with old game file formats |
| 06:54:59 | × | shriekingnoise quits (~shrieking@186.137.167.202) (Quit: Quit) |
| 06:55:09 | × | joo-_ quits (~joo-_@fsf/member/joo--) (Quit: leaving) |
| 06:57:03 | × | lemonsni- quits (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Ping timeout: 268 seconds) |
| 06:57:32 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 245 seconds) |
| 06:58:28 | → | Guest3_ joins (~textual@pool-100-11-18-203.phlapa.fios.verizon.net) |
| 06:58:47 | × | yauhsien quits (~yauhsien@61-231-60-109.dynamic-ip.hinet.net) (Ping timeout: 245 seconds) |
| 06:58:53 | <Axman6> | binary gets you long way, cereal also exists |
| 06:59:15 | <jackdk> | I am aware of the existence of both, how do I choose between them? |
| 06:59:33 | <Axman6> | IIRC the main difference was strict vs lazy for the bytestrings |
| 06:59:39 | × | causal quits (~user@2001:470:ea0f:3:329c:23ff:fe3f:1e0e) (Quit: WeeChat 3.5) |
| 06:59:54 | <Axman6> | cborg/serialise did its own thing IIRC |
| 07:00:15 | → | eod|fserucas_ joins (~eod|fseru@83.223.227.100) |
| 07:05:28 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 245 seconds) |
| 07:09:21 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 07:10:10 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 07:13:16 | → | Haskelytic joins (~Haskelyti@118.179.211.17) |
| 07:13:47 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 245 seconds) |
| 07:14:04 | → | chele joins (~chele@user/chele) |
| 07:20:25 | × | dknite quits (~dknite@223.191.52.173) (Read error: Connection reset by peer) |
| 07:20:30 | × | acidjnk quits (~acidjnk@p200300d6e70586975cbe70e1c6972498.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 07:21:03 | → | dknite joins (~dknite@203.110.242.103) |
| 07:23:59 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 07:25:11 | × | dknite quits (~dknite@203.110.242.103) (Ping timeout: 252 seconds) |
| 07:25:43 | → | dknite joins (~dknite@223.191.52.173) |
| 07:28:59 | → | acidjnk joins (~acidjnk@p200300d6e7058697f9c73f5459b42564.dip0.t-ipconnect.de) |
| 07:29:08 | × | Guest3_ quits (~textual@pool-100-11-18-203.phlapa.fios.verizon.net) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 07:29:10 | → | zeenk joins (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) |
| 07:31:39 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 07:34:43 | × | sandydoo quits (~sandydoo@185.209.196.136) (Ping timeout: 252 seconds) |
| 07:36:02 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 07:38:25 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 07:38:46 | × | zmt00 quits (~zmt00@user/zmt00) (Read error: Connection reset by peer) |
| 07:39:28 | → | sandydoo joins (~sandydoo@185.209.196.136) |
| 07:39:33 | → | ccntrq joins (~Thunderbi@exit-3.office.han.de.mhd.medondo.com) |
| 07:39:47 | → | zmt00 joins (~zmt00@user/zmt00) |
| 07:41:27 | → | eod|fserucas__ joins (~eod|fseru@83.223.227.100) |
| 07:41:36 | → | JannisO joins (~JannisO@dyndsl-089-166-213-108.ewe-ip-backbone.de) |
| 07:43:47 | × | eod|fserucas_ quits (~eod|fseru@83.223.227.100) (Ping timeout: 245 seconds) |
| 07:43:53 | × | eod|fserucas quits (~eod|fseru@83.223.227.100) (Ping timeout: 252 seconds) |
| 07:44:19 | → | eod|fserucas joins (~eod|fseru@83.223.227.100) |
| 07:44:54 | → | Guest3 joins (~textual@pool-100-11-18-203.phlapa.fios.verizon.net) |
| 07:48:08 | × | jese quits (~nikola@178-221-253-164.dynamic.isp.telekom.rs) (Quit: leaving) |
| 07:50:27 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 07:52:38 | → | nschoe joins (~quassel@178.251.84.79) |
| 07:54:09 | → | naso joins (~naso@193-116-244-197.tpgi.com.au) |
| 07:56:43 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 252 seconds) |
| 07:58:47 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 08:00:08 | × | Guest3 quits (~textual@pool-100-11-18-203.phlapa.fios.verizon.net) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 08:00:42 | → | vpan joins (~0@212.117.1.172) |
| 08:01:48 | → | comerijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 08:04:53 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
| 08:06:16 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
| 08:09:00 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 08:21:19 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 08:21:40 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 08:23:31 | → | crazazy joins (~user@130.89.171.62) |
| 08:35:06 | × | dextaa quits (~DV@user/dextaa) (Ping timeout: 268 seconds) |
| 08:37:21 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4) (Remote host closed the connection) |
| 08:37:42 | → | alp_ joins (~alp@user/alp) |
| 08:37:59 | <albet70> | :t (>>=) @((->)_) |
| 08:38:00 | <lambdabot> | error: parse error on input ‘->’ |
| 08:38:09 | × | gurkenglas quits (~gurkengla@84.138.199.27) (Ping timeout: 252 seconds) |
| 08:38:43 | <albet70> | (>>=) @((->)_) :: (_-> a)->(a -> _ -> b) _ -> b |
| 08:39:09 | <albet70> | (>>=) = \g -> \f -> \x -> f (g x) x |
| 08:40:34 | <albet70> | (>>=) @((->)(_->_)) :: ((_1 -> _2) -> a) -> (a -> (_1 -> _2) -> b) -> (_1 -> _2) -> b |
| 08:41:00 | <albet70> | (>>=) = \g -> \f -> k -> f (g k) k |
| 08:41:23 | <albet70> | why this Read and Cont are same? |
| 08:44:18 | → | CiaoSen joins (~Jura@p200300c9570ffb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 08:48:57 | <int-e> | :t They're both Read, there's only theo one Monad instance for (->) r |
| 08:48:58 | <lambdabot> | error: parse error on input ‘,’ |
| 08:49:01 | <int-e> | Err. |
| 08:50:58 | <tomsmeding> | newtype Cont r a = Cont ((a -> r) -> r) |
| 08:51:59 | <tomsmeding> | So (>>=) on Cont r a would have the following type, if we unwrap the newtype: ((a -> r) -> r) -> (a -> (b -> r) -> r) -> (b -> r) -> r |
| 08:52:21 | <tomsmeding> | @djinn ((a -> r) -> r) -> (a -> (b -> r) -> r) -> (b -> r) -> r |
| 08:52:21 | <lambdabot> | f a b c = a (\ d -> b d c) |
| 08:52:34 | → | ubert joins (~Thunderbi@178.115.57.195.wireless.dyn.drei.com) |
| 08:52:43 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4) |
| 08:52:46 | <tomsmeding> | @djinn (r -> a) -> (a -> r -> b) -> r -> b -- reader |
| 08:52:46 | <lambdabot> | Cannot parse command |
| 08:52:58 | <tomsmeding> | @djinn (r -> a) -> (a -> r -> b) -> r -> b |
| 08:52:58 | <lambdabot> | f a b c = b (a c) c |
| 08:53:06 | <tomsmeding> | Quite different :) |
| 08:53:14 | <tomsmeding> | albet70: ^ |
| 08:53:51 | <int-e> | :t \f g cont -> f (\x -> g x cont) -- those names are a bit better |
| 08:53:52 | <lambdabot> | ((t1 -> t2) -> t3) -> (t1 -> t4 -> t2) -> t4 -> t3 |
| 08:54:15 | <int-e> | (The type really doesn't help though because it's too general) |
| 08:54:34 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 08:55:22 | <tomsmeding> | "do f, then (in its continuation) do g x, then (in its continuation) do the remainer of the computation" |
| 08:56:27 | × | naso quits (~naso@193-116-244-197.tpgi.com.au) (Remote host closed the connection) |
| 08:56:30 | <int-e> | Anyway, the Cont newtype wrapper isn't just for show, it's required to select a different Monad instance. |
| 08:57:12 | → | __monty__ joins (~toonn@user/toonn) |
| 08:57:17 | → | yauhsien joins (~yauhsien@61-231-60-109.dynamic-ip.hinet.net) |
| 08:59:46 | → | Guest3 joins (~textual@pool-100-11-18-203.phlapa.fios.verizon.net) |
| 09:00:10 | × | steshaw[m] quits (~steshawma@2001:470:69fc:105::1:a963) (Quit: You have been kicked for being idle) |
| 09:00:11 | × | Las[m] quits (~lasmatrix@2001:470:69fc:105::74e) (Quit: You have been kicked for being idle) |
| 09:00:25 | × | ollenurb[m] quits (~ollenurbm@2001:470:69fc:105::2:39d2) (Quit: You have been kicked for being idle) |
| 09:01:25 | → | naso joins (~naso@193-116-244-197.tpgi.com.au) |
| 09:01:30 | → | cirilla joins (sid194105@user/lys) |
| 09:02:14 | × | JannisO quits (~JannisO@dyndsl-089-166-213-108.ewe-ip-backbone.de) (Ping timeout: 268 seconds) |
| 09:04:55 | × | Guest3 quits (~textual@pool-100-11-18-203.phlapa.fios.verizon.net) (Ping timeout: 252 seconds) |
| 09:07:52 | × | califax quits (~califax@user/califx) (Ping timeout: 268 seconds) |
| 09:08:30 | → | califax joins (~califax@user/califx) |
| 09:09:38 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 09:10:06 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
| 09:10:06 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 09:10:06 | × | gmg quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 09:10:06 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 09:10:38 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 09:10:44 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 09:10:52 | × | yauhsien quits (~yauhsien@61-231-60-109.dynamic-ip.hinet.net) (Ping timeout: 268 seconds) |
| 09:11:05 | → | gmg joins (~user@user/gehmehgeh) |
| 09:11:21 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 09:13:39 | × | alternateved quits (~user@staticline-31-183-144-54.toya.net.pl) (Quit: Fading out...) |
| 09:13:41 | × | dknite quits (~dknite@223.191.52.173) (Read error: Connection reset by peer) |
| 09:15:06 | → | dknite joins (~dknite@223.191.52.173) |
| 09:17:18 | × | dknite quits (~dknite@223.191.52.173) (Read error: Connection reset by peer) |
| 09:18:16 | → | Simon59 joins (~Simon@2a02:810d:1540:5e75:e45f:ea67:bf35:add9) |
| 09:19:10 | → | dknite joins (~dknite@223.191.52.173) |
| 09:21:25 | <Simon59> | Dear lovely people. I'm trying to understand when we can use foldl und foldr equally and when not. |
| 09:21:25 | <Simon59> | I know that foldl does not work with endless lists. |
| 09:21:26 | <Simon59> | 1) Why can we instantiate Foldable with BB a and foldlBB here? |
| 09:21:26 | <Simon59> | 2) And why can we implement reverse also with foldl (even though it could be given an endless list? |
| 09:21:27 | <Simon59> | 3) How would the implementation with foldl instead look like? |
| 09:21:27 | <Simon59> | https://paste.tomsmeding.com/KviiLese |
| 09:23:01 | <comerijn> | Simon59: Generally whenever you want foldl, you really want foldl' (i.e. strict foldl) |
| 09:23:04 | <[exa]> | BB is a binary tree right? |
| 09:23:20 | <Simon59> | Yes |
| 09:23:38 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 09:23:39 | <comerijn> | Simon59: But do you know *why* foldl does not work with endless lists? |
| 09:23:48 | comerijn | is now known as merijn |
| 09:23:48 | → | alternateved joins (~user@staticline-31-183-144-54.toya.net.pl) |
| 09:24:12 | <Simon59> | comerijn I see, however we were not really dealing with foldl' in university. |
| 09:24:13 | <Simon59> | Because it would just fold endlessly? |
| 09:24:18 | <merijn> | > foldr f z [a,b,c] |
| 09:24:20 | <lambdabot> | f a (f b (f c z)) |
| 09:24:23 | <[exa]> | Simon59: in that case the difference between foldr and foldl is basically none (the tree can be infinite to the left just as weel to the right) |
| 09:24:25 | <merijn> | > foldl f z [a,b,c] |
| 09:24:26 | <lambdabot> | f (f (f z a) b) c |
| 09:24:43 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4) (Remote host closed the connection) |
| 09:25:01 | <merijn> | Simon59: Compare those two outputs and really ponder what it means in a context of lazy evaluation (i.e. when does/doesn't 'f' force its result, and how does that affect the traversal?) |
| 09:25:06 | <Simon59> | [exa]so why would foldl work then? |
| 09:26:01 | <[exa]> | Simon59: a typical list would be isomorphic to a BB that only has the "right" branches. You can see there that foldl can still break because it tries to reach that right branch, but foldr can process the root and decide to quit. |
| 09:26:43 | <[exa]> | Simon59: you can make a helper function: flipBB L=L; flipBB K l x r = K (flipBB r) x (flipBB r) |
| 09:27:03 | <[exa]> | foldr and foldl on your BB tree are the same if you flip the BB via this |
| 09:27:50 | <[exa]> | (whoops there's a typo in the definition, last 'r' should be 'l') |
| 09:27:58 | <[exa]> | (but I hope the intuition there is clear) |
| 09:28:05 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 09:28:07 | <Simon59> | Yes |
| 09:28:43 | → | coco joins (~coco@212-51-146-199.fiber7.init7.net) |
| 09:29:26 | <Simon59> | I'm also wondering about that one. |
| 09:29:26 | <Simon59> | Prof says here that there cannot be an instance of Foldable exclusively with foldlBB. Why? |
| 09:29:27 | <Simon59> | https://paste.tomsmeding.com/DHNTZNVc |
| 09:29:45 | <Simon59> | (Ah, it's just the same one) |
| 09:30:02 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 245 seconds) |
| 09:31:02 | <Simon59> | I mean, what else is missing that I can instantiate Foldable? |
| 09:31:03 | <Simon59> | Wouldn't ist just be: |
| 09:31:03 | <Simon59> | instance Foldable BB where |
| 09:31:04 | <Simon59> | foldr = foldlBB? |
| 09:31:11 | <[exa]> | what does "exclusively with foldlBB" mean? |
| 09:32:19 | <Simon59> | These were pretty much the words he used: Is it possible to create a Haskell type of type class Foldable from type BB using only the function foldlBB? |
| 09:32:19 | <Simon59> | type of the type class Foldable? |
| 09:32:21 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 09:33:10 | <Simon59> | And the answer is apprently: no |
| 09:33:25 | <[exa]> | ah so, good question. I'd say no but you probably want some kind of proof/counter-example right? |
| 09:34:26 | <[exa]> | can you make a BB where foldlBB fails but `foldr` from Foldable should work? |
| 09:35:53 | × | dknite quits (~dknite@223.191.52.173) (Read error: Connection reset by peer) |
| 09:36:19 | <Simon59> | Hmm |
| 09:36:27 | × | xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 252 seconds) |
| 09:36:39 | → | dknite joins (~dknite@223.191.52.173) |
| 09:37:19 | <Simon59> | The thing that confuses me is that at one point he says it is possible but at another point he says it is NOT possible using ONLY foldlBB. Maybe I get the question wrong. |
| 09:37:20 | <Simon59> | It implies that to do it there is something else requiered. But what? |
| 09:37:39 | <Simon59> | Perhaps also there is a mistake in the solution, I don't know |
| 09:38:13 | <[exa]> | there might be some additional intuition here: https://wiki.haskell.org/Typeclassopedia#Foldable |
| 09:39:32 | <Simon59> | Thanks |
| 09:40:14 | × | CiaoSen quits (~Jura@p200300c9570ffb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Quit: CiaoSen) |
| 09:40:48 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 09:41:04 | <[exa]> | the main intuition there is that with Foldable you should be able to implement `toList` and `toList` gives you a direct way to implement a Foldable. So you may reduce your problem to finding a tree where foldlBB can't be used to convert the tree to a list |
| 09:43:06 | × | naso quits (~naso@193-116-244-197.tpgi.com.au) () |
| 09:44:12 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds) |
| 09:44:28 | <Simon59> | Thanks [exa]! |
| 09:44:31 | × | Simon59 quits (~Simon@2a02:810d:1540:5e75:e45f:ea67:bf35:add9) (Quit: Client closed) |
| 09:44:37 | × | crazazy quits (~user@130.89.171.62) (Ping timeout: 245 seconds) |
| 09:48:19 | → | JannisO joins (~JannisO@dyndsl-089-166-213-108.ewe-ip-backbone.de) |
| 09:49:01 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 09:49:48 | × | noteness quits (~noteness@user/noteness) (Ping timeout: 268 seconds) |
| 09:50:16 | → | mncheck-m joins (~mncheck@193.224.205.254) |
| 09:50:33 | → | noteness joins (~noteness@user/noteness) |
| 09:52:59 | → | crazazy joins (~user@130.89.171.62) |
| 09:53:11 | × | gmg quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 09:53:57 | → | gmg joins (~user@user/gehmehgeh) |
| 09:58:17 | × | noteness quits (~noteness@user/noteness) (Remote host closed the connection) |
| 09:58:39 | → | noteness joins (~noteness@user/noteness) |
| 09:58:48 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 09:58:55 | × | JannisO quits (~JannisO@dyndsl-089-166-213-108.ewe-ip-backbone.de) (Ping timeout: 260 seconds) |
| 10:06:53 | × | MajorBiscuit quits (~MajorBisc@c-001-028-058.client.tudelft.eduvpn.nl) (Ping timeout: 252 seconds) |
| 10:10:16 | → | odnes joins (~odnes@93-41-2-148.ip79.fastwebnet.it) |
| 10:13:55 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 10:15:19 | × | odnes quits (~odnes@93-41-2-148.ip79.fastwebnet.it) (Ping timeout: 252 seconds) |
| 10:16:45 | × | gmg quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 10:17:38 | → | gmg joins (~user@user/gehmehgeh) |
| 10:19:28 | × | noteness quits (~noteness@user/noteness) (Remote host closed the connection) |
| 10:19:28 | × | gmg quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 10:19:55 | → | noteness joins (~noteness@user/noteness) |
| 10:20:22 | → | gmg joins (~user@user/gehmehgeh) |
| 10:22:59 | × | TonyStone quits (~TonyStone@2603-7080-8607-c36a-504e-f5c6-7318-fada.res6.spectrum.com) (Ping timeout: 255 seconds) |
| 10:24:44 | → | Pickchea joins (~private@user/pickchea) |
| 10:25:08 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4) |
| 10:27:20 | × | nschoe quits (~quassel@178.251.84.79) (Ping timeout: 268 seconds) |
| 10:28:13 | × | cirilla quits (sid194105@user/lys) () |
| 10:29:39 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4) (Ping timeout: 244 seconds) |
| 10:31:44 | → | dvdrw joins (~dvdrw@user/dvdrw) |
| 10:31:51 | × | chomwitt quits (~chomwitt@2a02:587:dc00:5a00:ef54:f708:6c70:62e3) (Ping timeout: 276 seconds) |
| 10:33:35 | → | gurkenglas joins (~gurkengla@p548ac71b.dip0.t-ipconnect.de) |
| 10:35:35 | → | TonyStone joins (~TonyStone@2603-7080-8607-c36a-d0dd-a126-3a7b-298c.res6.spectrum.com) |
| 10:37:48 | <Haskelytic> | `type role ReaderT representational representational nominal` |
| 10:38:12 | <Haskelytic> | I got this after running `:i ReaderT` (ghci) on my own ReaderT implementation |
| 10:38:27 | <Haskelytic> | `newtype ReaderT r m a = ReaderT { runReaderT :: r -> m a }` |
| 10:38:42 | <Haskelytic> | never seen that first line before, what does it mean? |
| 10:38:53 | → | nschoe joins (~quassel@178.251.84.79) |
| 10:42:42 | <_________> | I don't know, but here's the link: https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/roles.html |
| 10:43:27 | <[Leary]> | Haskelytic: In short, it means (Coercible r1 r2, Coercible m1 m2) => Coercible (ReaderT r1 m1 a) (ReaderT r2 m2 a) |
| 10:43:55 | <[Leary]> | See Data.Coerce in base. |
| 10:44:26 | <[Leary]> | Note that it can't coerce over `a` because it doesn't know the type roles for `m`. |
| 10:45:02 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds) |
| 10:48:19 | <albet70> | tomsmeding, :t (>>=) @((->)(_->_)) isn't right for Cont? |
| 10:48:44 | <albet70> | (>>=) @((->)(_->_)) :: ((_1 -> _2) -> a) -> (a -> (_1 -> _2) -> b) -> (_1 -> _2) -> b |
| 10:49:18 | <albet70> | yours ((a -> r) -> r) -> (a -> (b -> r) -> r) -> (b -> r) -> r |
| 10:49:26 | <albet70> | it's not the same |
| 10:52:29 | × | irfan quits (~irfan@user/irfan) (Quit: leaving) |
| 10:52:39 | × | alp_ quits (~alp@user/alp) (Ping timeout: 276 seconds) |
| 10:55:15 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 276 seconds) |
| 10:58:51 | → | Lycurgus joins (~juan@user/Lycurgus) |
| 11:00:01 | <Lycurgus> | the last sentence of https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/roles.html is telling |
| 11:00:29 | <Lycurgus> | particularly the lack of attention to detail reflected in the typo |
| 11:06:53 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 11:08:22 | → | MajorBiscuit joins (~MajorBisc@wlan-145-94-167-213.wlan.tudelft.nl) |
| 11:08:54 | → | yauhsien joins (~yauhsien@61-231-60-109.dynamic-ip.hinet.net) |
| 11:11:30 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 11:16:41 | → | zxx7529 joins (~Thunderbi@user/zxx7529) |
| 11:18:43 | × | Lycurgus quits (~juan@user/Lycurgus) (Quit: Exeunt juan@acm.org) |
| 11:21:19 | × | yauhsien quits (~yauhsien@61-231-60-109.dynamic-ip.hinet.net) (Ping timeout: 252 seconds) |
| 11:24:28 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 11:29:37 | × | chele quits (~chele@user/chele) (Ping timeout: 245 seconds) |
| 11:29:48 | × | zxx7529 quits (~Thunderbi@user/zxx7529) (Remote host closed the connection) |
| 11:30:01 | → | zxx7529 joins (~Thunderbi@user/zxx7529) |
| 11:30:31 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 11:33:47 | × | mncheck-m quits (~mncheck@193.224.205.254) (Ping timeout: 245 seconds) |
| 11:34:31 | → | mncheck-m joins (~mncheck@193.224.205.254) |
| 11:35:56 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 11:36:23 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 11:36:23 | × | stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
| 11:36:23 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Read error: Connection reset by peer) |
| 11:36:23 | × | gmg quits (~user@user/gehmehgeh) (Read error: Connection reset by peer) |
| 11:36:23 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Read error: Connection reset by peer) |
| 11:36:23 | × | califax quits (~califax@user/califx) (Write error: Connection reset by peer) |
| 11:36:49 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 11:37:06 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 11:37:12 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 11:37:17 | → | califax joins (~califax@user/califx) |
| 11:37:19 | → | gmg joins (~user@user/gehmehgeh) |
| 11:40:30 | → | stiell_ joins (~stiell@gateway/tor-sasl/stiell) |
| 11:42:17 | → | chele joins (~chele@user/chele) |
| 11:43:04 | <tomsmeding> | albet70: no, (_1 -> _2) -> a is not the same as (a -> r) -> r |
| 11:43:24 | <tomsmeding> | The 'a' is in a different position |
| 11:43:41 | × | crazazy quits (~user@130.89.171.62) (Ping timeout: 252 seconds) |
| 11:43:56 | → | alp_ joins (~alp@user/alp) |
| 11:44:18 | <tomsmeding> | (->) (_ -> _) is a special case of the reader monad, (->) r, where reader context value is a function |
| 11:46:39 | × | Haskelytic quits (~Haskelyti@118.179.211.17) (Quit: Client closed) |
| 11:47:00 | → | Haskelytic joins (~Haskelyti@118.179.211.17) |
| 11:47:16 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 11:52:02 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 11:52:06 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 11:52:20 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 11:54:56 | → | arjun joins (~arjun@user/arjun) |
| 11:54:58 | → | Guest3_ joins (~textual@pool-100-11-18-203.phlapa.fios.verizon.net) |
| 11:54:59 | → | cbdlt^ joins (~cbdlt@50-242-35-142-static.hfc.comcastbusiness.net) |
| 11:55:38 | → | crazazy joins (~user@130.89.171.62) |
| 11:56:44 | × | zxx7529 quits (~Thunderbi@user/zxx7529) (Remote host closed the connection) |
| 11:56:57 | → | zxx7529 joins (~Thunderbi@user/zxx7529) |
| 11:58:51 | × | Guest3_ quits (~textual@pool-100-11-18-203.phlapa.fios.verizon.net) (Client Quit) |
| 12:00:56 | × | zxx7529 quits (~Thunderbi@user/zxx7529) (Remote host closed the connection) |
| 12:01:09 | → | zxx7529 joins (~Thunderbi@user/zxx7529) |
| 12:03:52 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 12:05:39 | → | ridcully_ joins (~ridcully@p508ac7ad.dip0.t-ipconnect.de) |
| 12:06:37 | × | ridcully quits (~ridcully@pd951fca3.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
| 12:06:42 | → | Guest3_ joins (~textual@pool-100-11-18-203.phlapa.fios.verizon.net) |
| 12:06:52 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 12:08:16 | <albet70> | then what's the proper way to show >>= type for Cont with @ type application? |
| 12:09:01 | → | dextaa joins (~DV@user/dextaa) |
| 12:11:42 | × | mncheck quits (~mncheck@193.224.205.254) (Remote host closed the connection) |
| 12:11:42 | × | mncheck-m quits (~mncheck@193.224.205.254) (Remote host closed the connection) |
| 12:11:42 | × | mncheckm quits (~mncheck@193.224.205.254) (Remote host closed the connection) |
| 12:13:12 | → | xff0x joins (~xff0x@2405:6580:b080:900:dd91:5944:95b9:3d1c) |
| 12:15:52 | × | hosk1 quits (~goober@90-231-13-185-no3430.tbcn.telia.com) (Ping timeout: 268 seconds) |
| 12:18:21 | → | yauhsien joins (~yauhsien@61-231-60-109.dynamic-ip.hinet.net) |
| 12:18:22 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds) |
| 12:19:31 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 12:20:31 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 12:22:12 | × | arjun quits (~arjun@user/arjun) (Remote host closed the connection) |
| 12:22:37 | → | arjun joins (~arjun@user/arjun) |
| 12:27:23 | × | hueso quits (~root@user/hueso) (Ping timeout: 272 seconds) |
| 12:27:33 | → | lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) |
| 12:29:00 | × | jespada quits (~jespada@181.80.249.105) (Ping timeout: 244 seconds) |
| 12:30:52 | × | yauhsien quits (~yauhsien@61-231-60-109.dynamic-ip.hinet.net) (Ping timeout: 245 seconds) |
| 12:30:55 | × | dknite quits (~dknite@223.191.52.173) (Read error: Connection reset by peer) |
| 12:31:12 | → | dknite joins (~dknite@203.110.242.43) |
| 12:32:43 | → | jespada joins (~jespada@45.162.228.187) |
| 12:34:10 | → | hueso joins (~root@user/hueso) |
| 12:35:27 | × | dknite quits (~dknite@203.110.242.43) (Ping timeout: 245 seconds) |
| 12:36:03 | → | dknite joins (~dknite@223.191.52.173) |
| 12:36:11 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 12:40:52 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 12:41:51 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 12:42:59 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 12:44:07 | → | JannisO joins (~JannisO@dyndsl-089-166-213-108.ewe-ip-backbone.de) |
| 12:44:19 | × | jpds1 quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds) |
| 12:45:06 | → | jpds1 joins (~jpds@gateway/tor-sasl/jpds) |
| 12:46:50 | → | crazazy` joins (~user@2001:67c:2564:a307:6d3:b0ff:fef1:40aa) |
| 12:47:39 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 272 seconds) |
| 12:48:22 | × | crazazy quits (~user@130.89.171.62) (Ping timeout: 245 seconds) |
| 12:49:18 | × | crazazy` quits (~user@2001:67c:2564:a307:6d3:b0ff:fef1:40aa) (Remote host closed the connection) |
| 12:49:39 | → | crazazy` joins (~user@2001:67c:2564:a307:9deb:8eb4:a8aa:cab2) |
| 12:50:46 | → | cirilla joins (sid194105@id-194105.uxbridge.irccloud.com) |
| 12:51:09 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 252 seconds) |
| 12:51:14 | × | Guest3_ quits (~textual@pool-100-11-18-203.phlapa.fios.verizon.net) (Quit: Textual IRC Client: www.textualapp.com) |
| 12:51:15 | × | cirilla quits (sid194105@id-194105.uxbridge.irccloud.com) (Changing host) |
| 12:51:15 | → | cirilla joins (sid194105@user/lys) |
| 12:51:50 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 12:52:31 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 12:53:04 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 12:54:50 | × | acidjnk quits (~acidjnk@p200300d6e7058697f9c73f5459b42564.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 12:56:23 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 12:57:53 | × | jpds1 quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 12:58:18 | → | jpds1 joins (~jpds@gateway/tor-sasl/jpds) |
| 12:58:59 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 12:59:15 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 13:00:20 | → | crazazy`` joins (~user@130.89.171.62) |
| 13:01:38 | × | crazazy` quits (~user@2001:67c:2564:a307:9deb:8eb4:a8aa:cab2) (Ping timeout: 240 seconds) |
| 13:02:26 | → | notzmv joins (~zmv@user/notzmv) |
| 13:02:58 | <onosendi> | sm: thanks for the info, at a quick glance these look to be really good. |
| 13:06:13 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 13:07:02 | <sm> | no problem.. which info was that ? |
| 13:07:08 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 13:09:13 | <sm> | that aarch64-osx/1792f58b94d2366b0239966600cb4a8553d2937527e1b0c8b86822d2c4d84ec5/9.2.2/pkgdb is the same one shown by stack exec -- ghc-pkg list. The latter shows `hledger-1.26.99` installed, but the runghc error mentions `hledger-1.26.99-inplace`. I wonder if that's significant |
| 13:09:43 | <sm> | sorry, mispaste |
| 13:10:02 | → | acidjnk joins (~acidjnk@p200300d6e7058697f9c73f5459b42564.dip0.t-ipconnect.de) |
| 13:10:59 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 13:13:04 | <tomsmeding> | % import Control.Monad.Cont |
| 13:13:04 | <yahb2> | <no output> |
| 13:13:07 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 13:13:14 | <tomsmeding> | % :set -XTypeApplications |
| 13:13:14 | <yahb2> | <no output> |
| 13:13:29 | <tomsmeding> | % :t (>>=) @(Cont _) -- albet70 |
| 13:13:29 | <yahb2> | (>>=) @(Cont _) -- albet70 ; :: Cont _ a -> (a -> Cont _ b) -> Cont _ b |
| 13:13:49 | <tomsmeding> | Then you have to manually unfold Cont |
| 13:14:18 | <tomsmeding> | The reason why you can't do better than this, is that (a -> r) -> r cannot be written as 'f a' for some 'f' |
| 13:14:50 | <tomsmeding> | On the value level, you would write 'f = \a -> (a -> r) -> r', but Haskell has no lambdas on the type level |
| 13:14:59 | <tomsmeding> | Hence, you need to wrap it in a newtype |
| 13:15:05 | → | Psybur joins (~Psybur@c-76-123-45-25.hsd1.va.comcast.net) |
| 13:15:18 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 13:15:50 | <tomsmeding> | What you did is (r1 -> r2) -> a, which can indeed be written as 'f a' for some 'f', namely f = (->) (r1 -> r2) |
| 13:16:01 | × | Guest1698 quits (~Guest1698@20.83.116.49) (Ping timeout: 244 seconds) |
| 13:16:29 | → | Guest1698 joins (~Guest1698@20.83.116.49) |
| 13:16:40 | × | zxx7529 quits (~Thunderbi@user/zxx7529) (Quit: zxx7529) |
| 13:22:45 | → | hasbae joins (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
| 13:30:10 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 13:30:16 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 13:30:45 | × | hueso quits (~root@user/hueso) (Ping timeout: 252 seconds) |
| 13:32:48 | × | cirilla quits (sid194105@user/lys) (Quit: Dreams like these must die) |
| 13:36:15 | × | crazazy`` quits (~user@130.89.171.62) (Ping timeout: 252 seconds) |
| 13:36:41 | → | hueso joins (~root@user/hueso) |
| 13:38:01 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 13:39:37 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 245 seconds) |
| 13:41:45 | × | nschoe quits (~quassel@178.251.84.79) (Ping timeout: 252 seconds) |
| 13:42:02 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 13:46:14 | → | Pickchea joins (~private@user/pickchea) |
| 13:46:23 | WaxCPU | is now known as Andrew |
| 13:48:05 | → | ystael joins (~ystael@user/ystael) |
| 13:50:11 | × | machinedgod quits (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 252 seconds) |
| 13:50:39 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 13:50:39 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 13:50:39 | → | wroathe joins (~wroathe@user/wroathe) |
| 13:52:56 | → | cirilla joins (sid194105@id-194105.uxbridge.irccloud.com) |
| 13:54:00 | × | califax quits (~califax@user/califx) (Ping timeout: 268 seconds) |
| 13:54:55 | → | califax joins (~califax@user/califx) |
| 13:55:09 | × | cirilla quits (sid194105@id-194105.uxbridge.irccloud.com) (Changing host) |
| 13:55:09 | → | cirilla joins (sid194105@user/lys) |
| 13:55:19 | × | dknite quits (~dknite@223.191.52.173) (Ping timeout: 252 seconds) |
| 13:58:51 | → | dknite joins (~dknite@223.191.52.173) |
| 13:58:59 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 13:59:12 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 245 seconds) |
| 14:01:27 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 14:04:12 | × | hueso quits (~root@user/hueso) (Ping timeout: 245 seconds) |
| 14:10:34 | → | hueso joins (~root@user/hueso) |
| 14:11:02 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 14:11:41 | × | PiDelport quits (uid25146@id-25146.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 14:11:52 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 14:12:21 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 14:12:23 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 14:12:30 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 14:16:11 | → | Inst_ joins (~Inst@2601:6c4:4080:3f80:d8ab:2e91:63f7:db6e) |
| 14:16:13 | Inst_ | is now known as Inst |
| 14:16:17 | <Inst> | could I get some help with code golf? |
| 14:16:18 | <Inst> | getAny.(Any. isEven <> Any. isOdd) $ 2 |
| 14:16:33 | <Inst> | this works, I get True |
| 14:16:51 | ← | cirilla parts (sid194105@user/lys) () |
| 14:19:12 | → | crazazy`` joins (~user@130.89.171.62) |
| 14:26:08 | → | bontaq joins (~user@ool-45779fe5.dyn.optonline.net) |
| 14:28:27 | → | sandy_doo joins (~sandydoo@185.209.196.136) |
| 14:29:04 | × | zeenk quits (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) (Quit: Konversation terminated!) |
| 14:29:32 | → | yauhsien joins (~yauhsien@61-231-60-109.dynamic-ip.hinet.net) |
| 14:29:43 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 14:29:53 | × | sandydoo quits (~sandydoo@185.209.196.136) (Ping timeout: 244 seconds) |
| 14:30:24 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 244 seconds) |
| 14:31:02 | × | alternateved quits (~user@staticline-31-183-144-54.toya.net.pl) (Remote host closed the connection) |
| 14:32:16 | × | ccntrq quits (~Thunderbi@exit-3.office.han.de.mhd.medondo.com) (Quit: ccntrq) |
| 14:34:20 | <merijn> | hmm |
| 14:34:55 | × | yauhsien quits (~yauhsien@61-231-60-109.dynamic-ip.hinet.net) (Ping timeout: 252 seconds) |
| 14:34:56 | <merijn> | if I have a foldMap that I want to intersperse some elements into, I guess I'm mostly screwed and need to hand roll some custom tweaked fold |
| 14:35:45 | → | zebrag joins (~chris@user/zebrag) |
| 14:37:06 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 14:37:23 | <tomsmeding> | Inst: (\x->isEven x||isOdd x) $ 2 |
| 14:38:15 | <tomsmeding> | merijn: if it's really intersperse (i.e. predictably the same thing between every element) you might be able to write a custom monoid that does just that |
| 14:39:33 | <Inst> | tomsmeding: I mean, without a lambda |
| 14:39:57 | <tomsmeding> | liftA2(||)isEven isOdd |
| 14:39:58 | <sm> | today ghcid (run in a stack project) seems to be reacting to file changes, and shows ok/error status correctly in window titlebar, but is not showing any new error output in the console. Does this sound familiar to anyone ? I have not found an issue |
| 14:40:04 | <Inst> | ;_; |
| 14:40:11 | <Inst> | liftA2 I'd consider unreadable ;_; |
| 14:40:28 | <tomsmeding> | Inst: (||)<$>isEven<*>idOdd |
| 14:40:28 | <Inst> | ffff, why do you have to have the Any on Bool? |
| 14:40:44 | <geekosaur> | code golf is not about readability |
| 14:41:00 | <tomsmeding> | Inst: const True |
| 14:41:07 | <Inst> | (||) . isEven <*> isOdd |
| 14:41:59 | <tomsmeding> | sm: never seen that, does ctrl-L do anything (in the ghcid window)? Restarting ghcid? |
| 14:42:04 | × | xff0x quits (~xff0x@2405:6580:b080:900:dd91:5944:95b9:3d1c) (Read error: Connection reset by peer) |
| 14:43:06 | tomsmeding | . o O ( `\_->True` is shorter than `const True` ) |
| 14:43:16 | <tomsmeding> | With the \ |
| 14:43:20 | × | jinsun quits (~jinsun@user/jinsun) (Ping timeout: 244 seconds) |
| 14:43:22 | × | cbdlt^ quits (~cbdlt@50-242-35-142-static.hfc.comcastbusiness.net) (Remote host closed the connection) |
| 14:44:01 | <sm> | tomsmeding: C-l does nothing. Restarting ghcid helps to see a current error - the first output is always correct - but it shows no new output as the file changes |
| 14:44:12 | <sm> | it's weird, I've never seen this before either |
| 14:45:30 | <tomsmeding> | sm: ghcid is correctly updating the terminal title bar? Did you conclusively check this? |
| 14:45:45 | <sm> | yes, I can see the title bar updating |
| 14:45:45 | <tomsmeding> | If so, 🤷♂️ |
| 14:45:52 | <tomsmeding> | That's _really_ odd |
| 14:46:29 | <tomsmeding> | Does plain ghci work on :r |
| 14:46:39 | × | yin quits (~yin@user/zero) (Ping timeout: 252 seconds) |
| 14:46:40 | <tomsmeding> | (well, stack repl, I guess) |
| 14:46:51 | → | xff0x joins (~xff0x@2405:6580:b080:900:8027:7a12:387:4367) |
| 14:47:22 | <sm> | in a terminal, it shows no console output whatsoever. However in an emacs shell, it shows the first line (All good / error), but not the error details. I wonder if it's something to do with ansi |
| 14:47:59 | <tomsmeding> | sm: try piping ghcir through xxd |
| 14:48:08 | <tomsmeding> | *ghcid |
| 14:48:39 | <tomsmeding> | Not very readable, but no ansi sequence interpretation and at least you can see what's written to stdout literally |
| 14:48:46 | <sm> | I added --color=never with no effect, but xxd shows output! |
| 14:49:47 | sm | contemplates the mystery of the world |
| 14:49:47 | × | Vajb quits (~Vajb@n1zigc3rgo9mpde2w-1.v6.elisa-mobile.fi) (Read error: Connection reset by peer) |
| 14:50:05 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) |
| 14:52:32 | × | jespada quits (~jespada@45.162.228.187) (Ping timeout: 245 seconds) |
| 14:52:42 | → | jinsun joins (~jinsun@user/jinsun) |
| 14:53:17 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:a442:f89a:164c:a1c) (Quit: WeeChat 2.8) |
| 14:53:36 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 14:53:36 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 14:53:43 | <sm> | here's the start of the output when an error is introduced: https://paste.tomsmeding.com/BYmHcrrN |
| 14:54:09 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 14:54:39 | <tomsmeding> | sm: try `script ghcid`, then kill it after the output becomed wrong, then send me the `typescript` file that it produces |
| 14:55:05 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 252 seconds) |
| 14:55:15 | <sm> | the hex looks like ordinary ascii, I have no idea how that could not render |
| 14:55:24 | <tomsmeding> | Wait \e]0;2 wtf is that escape sequence |
| 14:55:36 | <geekosaur> | status bar update |
| 14:55:57 | <geekosaur> | er, title bar for most terminals |
| 14:55:58 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 14:56:15 | → | shriekingnoise joins (~shrieking@186.137.167.202) |
| 14:56:17 | <sm> | (script breaks ghcid) |
| 14:56:24 | <tomsmeding> | Rip ghcid |
| 14:56:42 | → | jespada joins (~jespada@181.80.249.105) |
| 14:57:03 | <tomsmeding> | geekosaur: thanks TIL (I found it on wikipedia too -- the sequence is \e]0;title text\x07 ) |
| 14:57:32 | <merijn> | tomsmeding: Oh, wait, it's actually a list, not a map I have. So I can just do regular list-y things |
| 14:57:40 | <sm> | ghcid has always worked one way or another.. this is rocking my world |
| 14:57:47 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 14:58:10 | <tomsmeding> | sm: ghcid probably notices (with isatty(3)) that stdout is not a tty when piped, so disables (apparently not all? Bug?) escape sequences then |
| 14:58:38 | <tomsmeding> | merijn: 🎉 |
| 14:59:00 | × | dcoutts quits (~duncan@host86-150-41-142.range86-150.btcentralplus.com) (Ping timeout: 276 seconds) |
| 14:59:01 | <geekosaur> | the whole point of script is it uses a pty so shouldn't cause that |
| 14:59:08 | <tomsmeding> | Yeah |
| 14:59:11 | <geekosaur> | I'm surprised ghcid would break when used with it |
| 14:59:28 | <tomsmeding> | sm: breaks in what way |
| 14:59:38 | <sm> | (script doesn't break ghcid, I was holding it wrong. Here's what it captured after introducing an error:... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/6663ae133cad3fb2b6c4b1e48d11b084c3f1b46c) |
| 15:00:11 | <merijn> | tomsmeding: Still tricky, since I need to do things like "find the first and last N entries on the list" |
| 15:00:59 | <tomsmeding> | sm: I don't even see status bar updates in that, just a switch to the alternate screen |
| 15:01:00 | <geekosaur> | that said, I wonder how much ghcid does by opening /dev/tty |
| 15:01:11 | <tomsmeding> | Ooh |
| 15:01:11 | <sm> | (and in emacs, line 11 looks like ^[[?25h) |
| 15:01:23 | <sm> | tomsmeding: I turned those off with --no-title |
| 15:01:41 | <tomsmeding> | Oh oops 25h is "show cursor" |
| 15:01:49 | <tomsmeding> | Ah |
| 15:01:54 | <sm> | and turned off color, so I'm not expecting any ANSI.. except it probably tries to clear screen |
| 15:02:01 | <tomsmeding> | No such thing |
| 15:02:17 | <tomsmeding> | That would be \e[2J |
| 15:02:29 | <tomsmeding> | (\e = ^[) |
| 15:03:14 | <tomsmeding> | sm: perhaps try without --no-title, to see it actually doing something? |
| 15:03:24 | <tomsmeding> | If geekosaur is right though, this won't be productive |
| 15:05:27 | → | tstat joins (~user@user/tstat) |
| 15:05:51 | → | zxx7529 joins (~Thunderbi@user/zxx7529) |
| 15:06:10 | × | jinsun quits (~jinsun@user/jinsun) (Ping timeout: 240 seconds) |
| 15:06:30 | × | zxx7529 quits (~Thunderbi@user/zxx7529) (Client Quit) |
| 15:09:20 | → | jinsun joins (~jinsun@user/jinsun) |
| 15:13:02 | <sm> | thanks all, I have opened https://github.com/ndmitchell/ghcid/issues/362 |
| 15:15:50 | <tomsmeding> | 👍 |
| 15:16:38 | → | PiDelport joins (uid25146@id-25146.lymington.irccloud.com) |
| 15:17:26 | × | xff0x quits (~xff0x@2405:6580:b080:900:8027:7a12:387:4367) (Ping timeout: 244 seconds) |
| 15:19:20 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 15:19:30 | → | xff0x joins (~xff0x@ae130050.dynamic.ppp.asahi-net.or.jp) |
| 15:20:20 | × | hgolden quits (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Quit: Konversation terminated!) |
| 15:21:48 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Quit: _) |
| 15:21:51 | × | vpan quits (~0@212.117.1.172) (Quit: Leaving.) |
| 15:22:13 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 15:24:59 | → | jinsun__ joins (~jinsun@user/jinsun) |
| 15:24:59 | × | jinsun quits (~jinsun@user/jinsun) (Killed (osmium.libera.chat (Nickname regained by services))) |
| 15:24:59 | jinsun__ | is now known as jinsun |
| 15:26:48 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Quit: Leaving) |
| 15:27:21 | → | hgolden joins (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) |
| 15:28:50 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 15:29:52 | <merijn> | I don't suppose there's a splitAt that splits from the back? |
| 15:30:30 | → | jinsun__ joins (~jinsun@user/jinsun) |
| 15:30:30 | jinsun | is now known as Guest7303 |
| 15:30:30 | × | Guest7303 quits (~jinsun@user/jinsun) (Killed (platinum.libera.chat (Nickname regained by services))) |
| 15:30:30 | jinsun__ | is now known as jinsun |
| 15:31:08 | <tomsmeding> | merijn: can't do much better than \n l -> splitAt (length l - n) l, implementation-wise |
| 15:31:28 | <merijn> | You can, actually |
| 15:31:32 | <merijn> | But I don't wanna |
| 15:31:44 | <merijn> | You can do it in a single traversal |
| 15:32:05 | <merijn> | Probably less time to copy my implementation of that from gist and inline it somewhere :p |
| 15:32:54 | <tomsmeding> | You can, buy will that be more efficient |
| 15:33:03 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 15:33:18 | <merijn> | "who knows" :p |
| 15:33:38 | <tomsmeding> | Ah right, |l| + n steps instead of |l| + |l|-n |
| 15:33:53 | <tomsmeding> | So better if n is small |
| 15:35:21 | <dolio> | Also, if you do it the right way, you can avoid pre-forcing the entire list into memory. |
| 15:35:39 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 15:35:48 | <dolio> | For some cases, at least. |
| 15:36:22 | × | jpds1 quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds) |
| 15:37:06 | <sm> | tomsmeding: fixed by reinstalling! https://github.com/ndmitchell/ghcid/issues/362#issuecomment-1199556972 |
| 15:37:30 | sm | adds that to "have you turned it off and on" |
| 15:38:39 | × | acidjnk quits (~acidjnk@p200300d6e7058697f9c73f5459b42564.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 15:40:21 | → | jpds1 joins (~jpds@gateway/tor-sasl/jpds) |
| 15:40:33 | × | crazazy`` quits (~user@130.89.171.62) (Ping timeout: 252 seconds) |
| 15:43:37 | <merijn> | tomsmeding: bleh, I'll just do it myself: https://paste.tomsmeding.com/gRDKljQj :> |
| 15:47:51 | <tomsmeding> | sm: haha! |
| 15:48:38 | <merijn> | dolio: How'd I do? ;) |
| 15:50:05 | <dolio> | Yeah, that's roughly what I was thinking. |
| 15:51:00 | <merijn> | I was too lazy to think how to properly handle the 0 case, so I just special cased it >.> |
| 15:52:07 | → | yin joins (~yin@user/zero) |
| 15:52:32 | <dolio> | I think you don't need it. |
| 15:53:05 | <dolio> | I think you don't need the first case of `go`, either. |
| 15:53:40 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 15:54:12 | × | eod|fserucas__ quits (~eod|fseru@83.223.227.100) (Quit: Leaving) |
| 15:54:16 | × | eod|fserucas quits (~eod|fseru@83.223.227.100) (Quit: Leaving) |
| 15:54:41 | <dolio> | The 0 case prevents rebuilding the list, though, which is nice. |
| 15:55:35 | × | hgolden quits (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection) |
| 15:57:37 | <merijn> | dolio: You don't, but GHC whines |
| 15:58:02 | <merijn> | oh, wait |
| 15:58:14 | <merijn> | I just need to swap the first two to fix needing the special case! |
| 15:58:17 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 15:58:39 | <dolio> | You should probably add ~ to the (x:xs) to fix it instead. |
| 15:59:16 | <dolio> | Maybe that doesn't actually do anything better, though. |
| 16:00:03 | × | dknite quits (~dknite@223.191.52.173) (Ping timeout: 245 seconds) |
| 16:00:22 | → | dknite joins (~dknite@223.176.55.39) |
| 16:00:29 | × | iclanzan[m] quits (~iclanzanm@2001:470:69fc:105::2:3a05) (Quit: You have been kicked for being idle) |
| 16:00:52 | → | hgolden joins (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) |
| 16:01:00 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 16:01:10 | × | MajorBiscuit quits (~MajorBisc@wlan-145-94-167-213.wlan.tudelft.nl) (Quit: WeeChat 3.5) |
| 16:02:56 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 16:02:58 | × | noteness quits (~noteness@user/noteness) (Remote host closed the connection) |
| 16:04:05 | → | califax joins (~califax@user/califx) |
| 16:05:41 | → | noteness joins (~noteness@user/noteness) |
| 16:05:53 | × | jpds1 quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 16:06:23 | → | jpds1 joins (~jpds@gateway/tor-sasl/jpds) |
| 16:09:53 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 252 seconds) |
| 16:11:57 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 16:13:34 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 16:16:13 | × | Inst quits (~Inst@2601:6c4:4080:3f80:d8ab:2e91:63f7:db6e) (Read error: Connection reset by peer) |
| 16:16:27 | <albet70> | so other languages can do lambda on type level? |
| 16:16:51 | × | sandy_doo quits (~sandydoo@185.209.196.136) (Ping timeout: 252 seconds) |
| 16:17:07 | × | raym quits (~raym@user/raym) (Ping timeout: 245 seconds) |
| 16:17:11 | → | Inst joins (~Inst@2601:6c4:4080:3f80:d8ab:2e91:63f7:db6e) |
| 16:17:14 | <merijn> | albet70: Sure |
| 16:17:39 | <albet70> | for example? |
| 16:17:44 | <merijn> | albet70: Agda, Idris, Coq, etc. let you do anything at the type level (i.e. the type level language and expression level language are identical) |
| 16:18:00 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 16:18:11 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 16:18:47 | × | xff0x quits (~xff0x@ae130050.dynamic.ppp.asahi-net.or.jp) (Ping timeout: 245 seconds) |
| 16:18:50 | <hasbae> | to use text package, https://hackage.haskell.org/package/text-2.0.1, why is it 'import Data.Text' - why is the name of the package preceded by Data? Is that supposed to mean something? |
| 16:19:01 | <albet70> | because they have a better type system than system F in lambda cube? |
| 16:19:04 | → | raym joins (~raym@user/raym) |
| 16:19:31 | × | jpds1 quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 16:19:36 | <geekosaur> | hasbae, because module names don't have to match package names, and the convention is that new data types are added under Data |
| 16:19:51 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 16:19:58 | → | jpds1 joins (~jpds@gateway/tor-sasl/jpds) |
| 16:20:39 | → | xff0x joins (~xff0x@ae132116.dynamic.ppp.asahi-net.or.jp) |
| 16:21:15 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 16:21:31 | <hasbae> | i see. is there a similar convention around the prefix Control? |
| 16:21:45 | <hasbae> | are these conventions explicit somewhere? |
| 16:21:47 | <merijn> | hasbae: Ok, so when hierarchical modules were first introduced, there was a frenzy of making nice hierarchies. Part of that was having a Data (for data) and Control (for "code") top level. Which led to tons of moudles being in Data.X and Control.X even when it doesn't necessarily make a whole lot of sense |
| 16:21:47 | <geekosaur> | yes, that's for control structures of some kind (e.g. Monad) |
| 16:21:52 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4) |
| 16:22:08 | <geekosaur> | someone pointed you at the paper about modular hierarchies yesterday, I thought? |
| 16:22:12 | <merijn> | But now there's a bunch of code that has been Data.X or Control.X for years, so there's little interest in breaking that |
| 16:22:32 | <geekosaur> | [29 01:38:34] <jackdk> hasbae: `Data/ByteString/Lazy.hs`. If you want the ancient source: http://web.archive.org/web/20100703071858/http://www.haskell.org/hierarchical-modules/hier.pdf |
| 16:22:33 | <merijn> | hasbae: So you end up with a lot of Data/Control stuff for "hysterical raisins" |
| 16:22:53 | <merijn> | hasbae: With no real reason beyond "historical accident" |
| 16:22:59 | × | cosimone quits (~user@93-44-186-171.ip98.fastwebnet.it) (Read error: Connection reset by peer) |
| 16:23:46 | × | ubert quits (~Thunderbi@178.115.57.195.wireless.dyn.drei.com) (Ping timeout: 268 seconds) |
| 16:23:52 | <geekosaur> | well, and some belief about not cluttering the top level. I have a snaking suspicion that'll come back as the hierarchies start to break down again |
| 16:24:21 | <geekosaur> | it makes it more difficult to find things, granting the current hierarchies are not especially useful |
| 16:24:39 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 16:24:49 | <merijn> | I think other top hierarchies are fine IFF you play nice and don't squat very generic module names |
| 16:25:05 | <hasbae> | ok, i was trying to find the hidden meaning in the hierarchies, and apparently there isn't much of one to be found |
| 16:25:07 | → | califax joins (~califax@user/califx) |
| 16:25:19 | <merijn> | I used Control.Concurrent here: https://hackage.haskell.org/package/broadcast-chan-0.1.0 |
| 16:25:37 | <merijn> | but latest version just uses BroadcastChan instead |
| 16:25:41 | <merijn> | saves typing :p |
| 16:25:50 | <merijn> | hasbae: Pretty much |
| 16:26:10 | <merijn> | Well, at least you can safel consider Text a datatype so Data at least makes some sense |
| 16:26:24 | <merijn> | But why is Monad in Control.Monad, but functor in Data.Functor? |
| 16:26:40 | <merijn> | ?? |
| 16:26:40 | → | Vajb joins (~Vajb@n1zigc3rgo9mpde2w-1.v6.elisa-mobile.fi) |
| 16:26:47 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4) (Ping timeout: 272 seconds) |
| 16:27:48 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 16:28:15 | → | califax joins (~califax@user/califx) |
| 16:30:05 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 16:31:09 | → | irfan joins (~irfan@user/irfan) |
| 16:34:12 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds) |
| 16:34:14 | × | dknite quits (~dknite@223.176.55.39) (Read error: Connection reset by peer) |
| 16:35:12 | <hasbae> | this seems like a good answer to my question: https://stackoverflow.com/questions/33949401/is-there-any-standard-module-namespace-naming-convention-in-haskell#33963034 I was also assuming some similarity to the python conventions of packages and modules |
| 16:35:33 | × | yin quits (~yin@user/zero) (Ping timeout: 252 seconds) |
| 16:36:49 | → | benin08 joins (~benin@2401:4900:2324:632a:8150:fd5f:e388:7778) |
| 16:36:50 | → | dknite joins (~dknite@223.176.55.39) |
| 16:37:12 | → | yin joins (~yin@user/zero) |
| 16:37:33 | → | pgib joins (~textual@173.38.117.88) |
| 16:39:11 | × | benin0 quits (~benin@183.82.26.87) (Ping timeout: 268 seconds) |
| 16:39:12 | benin08 | is now known as benin0 |
| 16:39:39 | <hololeap> | @src lines |
| 16:39:39 | <lambdabot> | Source not found. Listen, broccoli brains, I don't have time to listen to this trash. |
| 16:40:45 | → | cosimone joins (~user@93-44-186-171.ip98.fastwebnet.it) |
| 16:41:33 | <Haskelytic> | lol |
| 16:41:43 | → | econo joins (uid147250@user/econo) |
| 16:43:19 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 16:43:57 | <darkling> | Now, really! I've known some very intelligent brassicas... |
| 16:44:44 | × | cyphase quits (~cyphase@user/cyphase) (Ping timeout: 268 seconds) |
| 16:45:36 | → | benin03 joins (~benin@183.82.26.87) |
| 16:46:06 | <[Leary]> | merijn: I'm leery of "single traversal" solutions that duplicate the list in some way, seeming to just traverse it twice in parallel rather than in sequence. I'm not sure this is actually better, but you can write splitAtEnd with foldr: |
| 16:46:09 | <[Leary]> | > (\n xs -> snd $ foldr (\x (i, sp) -> (i+1, (if i < n then second else first) (x:) sp)) (0, ([], [])) xs) 3 [1..9] |
| 16:46:12 | <lambdabot> | ([1,2,3,4,5,6],[7,8,9]) |
| 16:47:50 | × | benin0 quits (~benin@2401:4900:2324:632a:8150:fd5f:e388:7778) (Ping timeout: 260 seconds) |
| 16:47:51 | benin03 | is now known as benin0 |
| 16:48:26 | × | mbuf quits (~Shakthi@122.165.55.71) (Quit: Leaving) |
| 16:49:10 | <Haskelytic> | is there any practical difference between `MonadPlus` and `Alternative` |
| 16:49:19 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 16:49:40 | <Haskelytic> | seems like different names for the same thing |
| 16:50:37 | <dolio> | MonadPlus existed for several years before Alternative. |
| 16:51:59 | → | cyphase joins (~cyphase@user/cyphase) |
| 16:53:11 | → | SamBellamy joins (~SamBellam@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) |
| 16:54:17 | <tomsmeding> | Haskelytic: once, Applicative didn't exist |
| 16:54:24 | <geekosaur> | yeh, it's another of those legacy pre-Applicative/Alternative things |
| 16:54:41 | <tomsmeding> | Hence MonadPlus has a Monad superclass, which cannot be downgraded to Applicative without breaking code |
| 16:54:57 | <tomsmeding> | Hence Alternative was created instead |
| 16:55:35 | <tomsmeding> | See also liftM2 / liftA2 |
| 16:55:47 | <tomsmeding> | Though this doesn't explain liftM / fmap |
| 16:57:55 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 16:59:43 | <Franciman> | is there a way to disable monads in haskell? |
| 17:00:05 | <Franciman> | is it possible to have effect systems not using monads at all? |
| 17:01:56 | <tomsmeding> | Fascinating, in Haskell 1.4, Functor and Monad already existed, but Functor had map instead of fmap, and Functor wasn't a superclass of Monad |
| 17:02:18 | <tomsmeding> | Franciman: I'm not sure "disabling monads" is a well-defined thing |
| 17:02:27 | <dolio> | Right, the superclass wasn't there until a few years ago. |
| 17:02:52 | <tomsmeding> | After all, I can always `class IStillWantMyMonad m where return' :: a -> m a ; join :: m (m a) -> m a` |
| 17:02:58 | <Franciman> | tomsmeding: apparently i can't have side effects if I don't use monads |
| 17:03:37 | <Logio> | you can't have side effects without using IO; IO happens to be a monad, but that is orthogonal |
| 17:03:45 | <tomsmeding> | Franciman: you'll have to resort to unsafePerformIO to call the primops, if I'm not mistaken |
| 17:06:38 | <tomsmeding> | dolio: haskell98 didn't even have the superclass!!! |
| 17:07:04 | <dolio> | Right. |
| 17:07:52 | <dolio> | Haskell 98 mostly made a bunch of things worse. :) |
| 17:08:15 | <tomsmeding> | Haskell2010 also didn't? |
| 17:08:21 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4) |
| 17:08:27 | <tomsmeding> | Did the superclass only get added in FAM? |
| 17:08:42 | <tomsmeding> | I see I started on the wrong end of reports :p |
| 17:08:51 | <dolio> | I think it was part of the 'applicative monad proposal' or whatever. |
| 17:08:55 | <dolio> | Which was after 2010. |
| 17:09:32 | → | azimut_ joins (~azimut@gateway/tor-sasl/azimut) |
| 17:09:57 | <tomsmeding> | Oh right, AMP is what it was called |
| 17:10:14 | <tomsmeding> | I was under the apparently false impression that that just entailed putting Applicative in the middle |
| 17:10:22 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Quit: ZNC - https://znc.in) |
| 17:10:54 | <dolio> | Functor was already a superclass of Applicative, I think, so I guess it was automatic in that way. |
| 17:12:42 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4) (Ping timeout: 264 seconds) |
| 17:13:08 | <tomsmeding> | dolio: this has `class Monad m where` https://www.haskell.org/onlinereport/haskell2010/haskellch13.html#x21-19300013 |
| 17:13:50 | <geekosaur> | right, Functor as prerequisite didn't happen until AMP |
| 17:15:35 | <geekosaur> | Franciman, if you can come up with your own way to enforce sequencing you can use IO without touching its Monad instance (this typically requires writing your own framework using -XMagicHash to pass the sequencing token) |
| 17:16:06 | <Franciman> | thanks |
| 17:16:30 | <geekosaur> | or if you don't care about sequencing you can just use it directly, but you'll probably find that doesn't do what you want |
| 17:18:40 | <hasbae> | why is there no "in" when using let inside a do block? |
| 17:18:45 | × | alp_ quits (~alp@user/alp) (Ping timeout: 260 seconds) |
| 17:19:42 | <geekosaur> | because do syntax adds it for you |
| 17:19:55 | <geekosaur> | `let ...` expands to `let ... in do` |
| 17:20:08 | <geekosaur> | it's a convenience |
| 17:20:20 | <hasbae> | ok, so it really is there. Thanks |
| 17:22:30 | <bollu> | @tapl |
| 17:22:30 | <lambdabot> | Maybe you meant: unpl type tell pl |
| 17:22:45 | <geekosaur> | @where tapl |
| 17:22:45 | <lambdabot> | "Types and Programming Languages" by Benjamin C. Pierce in 2002-02-01 at <https://www.cis.upenn.edu/~bcpierce/tapl/> |
| 17:27:10 | × | glguy quits (x@libera/staff/glguy) (Read error: Connection reset by peer) |
| 17:28:01 | → | glguy joins (x@libera/staff/glguy) |
| 17:32:05 | <Franciman> | geekosaur: are delimited continuations still working in the framework of IO? |
| 17:32:35 | × | irfan quits (~irfan@user/irfan) (Quit: leaving) |
| 17:32:46 | <geekosaur> | I'm the wrong one to ask about that; I barely know what they are |
| 17:36:29 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4) |
| 17:38:04 | → | sandy_doo joins (~sandydoo@185.209.196.136) |
| 17:41:30 | <tomsmeding> | Franciman: what do you mean with "still working"? GHC doesn't natively support delimited continuations |
| 17:41:56 | <tomsmeding> | (I believe that's a hot topic relating to effect libraries -- which sounds relevant to what you're asking about :p ) |
| 17:43:58 | → | wroathe joins (~wroathe@user/wroathe) |
| 17:44:26 | <glguy> | There was a proposal accepted to add delimited continuation primitives to GHC; I don't know if that ever went anywhere |
| 17:44:27 | × | arjun quits (~arjun@user/arjun) (Quit: tip toe-ing my way outta here) |
| 17:46:00 | × | SamBellamy quits (~SamBellam@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 252 seconds) |
| 17:46:03 | × | yvan-sraka quits (uid419690@id-419690.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 17:47:35 | × | Haskelytic quits (~Haskelyti@118.179.211.17) (Quit: Client closed) |
| 17:47:56 | <monochrom> | "in" inside do-notation ruins code layout :) |
| 17:48:31 | <monochrom> | (I just mean aesthetically. I'm sure parsers can be written either way.) |
| 17:48:57 | <[Leary]> | We already have ContT, that's as much delimited continuations as anyone needs. |
| 17:48:58 | × | azimut_ quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 17:49:07 | → | theseb joins (~cs@47.220.214.54) |
| 17:49:19 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 17:50:16 | <theseb> | i love haskell's syntatic purity. Are there any applications where haskell is crushing it and shows that it is so much better than other languages? |
| 17:50:21 | <c_wraith> | So... has 9.2.4 finally fixed all the known code generation bugs in the 9.x series? |
| 17:50:53 | <Franciman> | yes there is an accepted proposal for delconts IIRC |
| 17:51:24 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 17:51:38 | → | SamBellamy joins (~SamBellam@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) |
| 17:52:17 | × | benin0 quits (~benin@183.82.26.87) (Quit: The Lounge - https://thelounge.chat) |
| 17:54:00 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:54:12 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds) |
| 17:55:48 | × | Midjak quits (~Midjak@82.66.147.146) (Quit: Leaving) |
| 17:57:32 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 245 seconds) |
| 17:57:43 | <tomsmeding> | theseb: https://classes.cs.uoregon.edu/16F/cis425/Papers/hudak-jones.pdf second paragraph of section 7 |
| 18:00:31 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 18:01:17 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 245 seconds) |
| 18:01:48 | Lord_of_Life_ | is now known as Lord_of_Life |
| 18:06:32 | × | SamBellamy quits (~SamBellam@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 252 seconds) |
| 18:07:52 | → | SamBellamy joins (~SamBellam@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) |
| 18:12:02 | × | SamBellamy quits (~SamBellam@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 252 seconds) |
| 18:14:46 | → | Midjak joins (~Midjak@82.66.147.146) |
| 18:17:17 | <theseb> | tomsmeding: thanks! |
| 18:17:40 | <tomsmeding> | This is a classic :) |
| 18:17:44 | → | janvogt joins (~janvogt@ip-046-005-021-186.um12.pools.vodafone-ip.de) |
| 18:18:55 | → | SamBellamy joins (~SamBellam@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) |
| 18:19:20 | <theseb> | tomsmeding: I wonder how Haskell would compare today versus Python |
| 18:19:33 | <theseb> | and common lisp |
| 18:20:14 | <tomsmeding> | How do you mean compare? Performance, popularity, easiness of learning? |
| 18:20:32 | <tomsmeding> | *ease, not easiness, that's not English |
| 18:20:40 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 18:21:49 | × | janvogt quits (~janvogt@ip-046-005-021-186.um12.pools.vodafone-ip.de) (Remote host closed the connection) |
| 18:22:22 | × | infinity0 quits (~infinity0@185.112.146.113) (Remote host closed the connection) |
| 18:22:52 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 268 seconds) |
| 18:23:32 | × | superbil quits (~superbil@1-34-176-171.hinet-ip.hinet.net) (Quit: WeeChat 3.5) |
| 18:23:46 | × | SamBellamy quits (~SamBellam@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 252 seconds) |
| 18:24:06 | × | noteness quits (~noteness@user/noteness) (Ping timeout: 268 seconds) |
| 18:24:29 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 18:25:04 | → | superbil joins (~superbil@1-34-176-171.hinet-ip.hinet.net) |
| 18:25:52 | × | mrmonday quits (~robert@what.i.hope.is.not.a.tabernaevagant.es) (Quit: .) |
| 18:27:09 | → | mrmonday joins (~robert@what.i.hope.is.not.a.tabernaevagant.es) |
| 18:27:16 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4) (Remote host closed the connection) |
| 18:27:41 | → | SamBellamy joins (~SamBellam@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) |
| 18:27:53 | → | infinity0 joins (~infinity0@185.112.146.113) |
| 18:28:27 | <glguy> | > compare "Haskell" "Python" |
| 18:28:28 | → | Guest52 joins (~Guest52@46.245.97.156) |
| 18:28:29 | <lambdabot> | LT |
| 18:28:38 | <c_wraith> | sad, but inarguable |
| 18:28:50 | <Guest52> | Hi |
| 18:28:56 | glguy | wonders how vanilla is holding up against chocolate |
| 18:28:59 | → | maroloccio joins (~marolocci@151.75.246.79) |
| 18:30:24 | <c_wraith> | > compare "chocolate" "Vanilla" |
| 18:30:26 | <lambdabot> | GT |
| 18:30:28 | <Guest52> | May I ask about a good source to learn Haskell for an absolute beginner with no programming background here ? |
| 18:30:47 | → | noteness joins (~noteness@user/noteness) |
| 18:30:49 | → | vglfr joins (~vglfr@91.192.47.10) |
| 18:33:53 | → | yauhsien joins (~yauhsien@61-231-60-109.dynamic-ip.hinet.net) |
| 18:34:52 | <c_wraith> | Guest52: this is a fine place to ask that, but I don't have a recommendation on that topic. I'm sure someone else will, but it's apparently a slow time of day |
| 18:35:56 | <Guest52> | is there any prerequisite for learning Haskell? |
| 18:37:10 | <c_wraith> | Just the same as learning any other programming. It really helps to have at least a basic math education, and you can get started way faster if you have any sort of experience breaking things down into steps. |
| 18:37:11 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4) |
| 18:37:59 | <dsal> | I'd argue that "no programming background" is sometimes an advantage for Haskell. |
| 18:37:59 | <Guest52> | thank you |
| 18:38:22 | × | yauhsien quits (~yauhsien@61-231-60-109.dynamic-ip.hinet.net) (Ping timeout: 245 seconds) |
| 18:38:46 | <Guest52> | I've just try to get familiar with idea of lambda calculus |
| 18:39:55 | <c_wraith> | while lambda calculus is relevant to Haskell, it's not a prereq. I basically learned lambda calculus as a result of learning Haskell. |
| 18:40:18 | <tomsmeding> | The premise of this book is to teach haskell without any required prerequisite knowledge: |
| 18:40:18 | <tomsmeding> | @where hpffp |
| 18:40:18 | <lambdabot> | "Haskell Programming: from first principles - Pure functional programming without fear or frustration" by Chistopher Allen (bitemyapp),Julie Moronuki at <http://haskellbook.com/>,#haskell-beginners |
| 18:40:40 | <tomsmeding> | But I haven't used it myself; I've just seen others talk about it here |
| 18:40:53 | <glguy> | that book was kind of a mess and pretty long for what you got from it |
| 18:40:58 | <tomsmeding> | Ah |
| 18:41:17 | × | vglfr quits (~vglfr@91.192.47.10) (Ping timeout: 245 seconds) |
| 18:41:24 | <EvanR> | was it an attempt at a replacement for Real World Haskell |
| 18:42:18 | → | vglfr joins (~vglfr@91.192.47.10) |
| 18:42:19 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4) (Ping timeout: 272 seconds) |
| 18:43:28 | <tomsmeding> | I doubt it, was RWH not focusing mostly on tackling the gnarliness of real world problems? |
| 18:43:40 | <EvanR> | that's what youd think |
| 18:43:47 | <EvanR> | from the title alone xD |
| 18:44:29 | <EvanR> | now I can't remember if I looked at the haskell-beginners book (did that channel make it to libera?) |
| 18:44:58 | <glguy> | I don't know if there's an awesome book but the last one I liked was Hutton's Programming in Haskell 2nd ed. -- very possible something better has come out since, but I'm not aware of it |
| 18:45:48 | <tomsmeding> | EvanR: the channel seems to exist, according to alis |
| 18:46:13 | <tomsmeding> | Ah I was confused with Marlow's book, Parallel and Concurrent Programming in Haskell |
| 18:46:32 | <tomsmeding> | Quite the difference :) |
| 18:46:41 | <EvanR> | yes |
| 18:47:56 | <Guest52> | any idea about this book "Christopher Allen, Julie Moronuki - Haskell Programming from first principles (2016)"? |
| 18:48:34 | <EvanR> | that's the book we are now talking about xD |
| 18:50:07 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 252 seconds) |
| 18:52:16 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 18:57:27 | × | vglfr quits (~vglfr@91.192.47.10) (Read error: Connection reset by peer) |
| 18:57:58 | → | vglfr joins (~vglfr@91.192.47.10) |
| 18:58:56 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4) |
| 19:02:13 | × | vglfr quits (~vglfr@91.192.47.10) (Read error: Connection reset by peer) |
| 19:02:32 | × | Ram-Z quits (~Ram-Z@li1814-254.members.linode.com) (Ping timeout: 245 seconds) |
| 19:03:24 | → | vglfr joins (~vglfr@91.192.47.10) |
| 19:03:48 | × | Guest52 quits (~Guest52@46.245.97.156) (Quit: Client closed) |
| 19:03:49 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 19:04:42 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 19:09:41 | <exarkun> | I got a few chapters into the Allen/Moronuki book and then lost steam |
| 19:10:06 | <exarkun> | I had better luck staying motivated by real world software and cis194 |
| 19:11:25 | × | phma quits (~phma@host-67-44-209-50.hnremote.net) (Read error: Connection reset by peer) |
| 19:11:59 | <EvanR> | finding success and failure by moronuki is definitely geared toward specific problems not general theory |
| 19:12:48 | <EvanR> | for beginner from scratch stuff I liked A Gentle Introduction to Haskell (Version 98), still relevant I think |
| 19:13:15 | <merijn> | [Leary]: What makes you say it "duplicates" the list? |
| 19:14:15 | → | acidjnk joins (~acidjnk@p200300d6e7058697f9c73f5459b42564.dip0.t-ipconnect.de) |
| 19:17:49 | → | phma joins (~phma@host-67-44-208-231.hnremote.net) |
| 19:19:09 | <dolio> | merijn: In the case of yours, it is likely comparable to collecting a reversed list instead of `f`, and then reversing it again at the end. |
| 19:20:38 | <[Leary]> | merijn: the fact that `go` traverses both `l` and `drop n l`. I'm aware that the latter is a fragment of the former and there's no actual duplication of memory, but it's still chasing down the pointers twice, right? |
| 19:20:56 | <merijn> | [Leary]: The 2nd time it'll be in cache already, though |
| 19:21:05 | <merijn> | And the real price of pointer chasing is cache misses |
| 19:21:24 | <merijn> | So if you assume the dereference happen shortly after each other, that is cheaper |
| 19:21:47 | <merijn> | Of course if your list is short it'll be in cache entirely after you do "length", so then you gain nothing |
| 19:21:53 | <merijn> | But if your list is giant, it matters |
| 19:21:59 | → | chomwitt joins (~chomwitt@2a02:587:dc00:5a00:3f62:1f2e:7818:a61c) |
| 19:22:23 | × | sandy_doo quits (~sandydoo@185.209.196.136) (Ping timeout: 252 seconds) |
| 19:22:33 | <merijn> | [Leary]: The other difference/benefit is that with this strategy (assuming you don't persist the list like here) the old list can be incrementally GCed |
| 19:22:56 | → | machinedgod joins (~machinedg@d172-219-86-154.abhsia.telus.net) |
| 19:23:22 | <merijn> | Consider the case of "we're looking for 2 equal elements, N spaces apart" (or something like that), you will only have to keep 3 elements of the input list alive (vs the entire list, forced after length, then kept until the 2nd traversal) |
| 19:23:30 | <merijn> | s/3/N/ |
| 19:24:12 | <merijn> | Of course in the case of split specifically, that doesn't help (since you plan to keep the full prefix anyway), but there's other traversals where it does matter) |
| 19:24:54 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 19:25:21 | <merijn> | At the very least I expect it to be "equivalent in the worst case, asymptotically better in the average" |
| 19:26:01 | × | vglfr quits (~vglfr@91.192.47.10) (Ping timeout: 272 seconds) |
| 19:26:31 | <hasbae> | I'm not a big fan of the Allen/Moronuki book as beginner. I prefer the Graham Hutton book, and the Richard Bird book |
| 19:26:53 | → | vglfr joins (~vglfr@91.192.47.10) |
| 19:28:09 | <hasbae> | as i *attempt* to learn Haskell, the more resources I have the better, as I need to see the same concept explained like five different ways before it starts to click. YMMV |
| 19:29:08 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:33:22 | × | vglfr quits (~vglfr@91.192.47.10) (Ping timeout: 245 seconds) |
| 19:34:28 | <phma> | I've written a small module. Would someone like to look at it? The module comment isn't appearing in Haddock, and I'd like to know if the module is well-written. |
| 19:34:37 | × | maroloccio quits (~marolocci@151.75.246.79) (Ping timeout: 245 seconds) |
| 19:34:54 | <[Leary]> | merijn: I accept you point about cache, or at least I don't know enough to refute it. To be clear, I'm not advocating for the naive versions with `length`; I do expect those to be worse, but my intuition is that a fold (fix'ed if necessary) should be better than this semi-duplication. |
| 19:37:00 | × | malte quits (~malte@mal.tc) (Ping timeout: 260 seconds) |
| 19:37:24 | × | SamBellamy quits (~SamBellam@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Remote host closed the connection) |
| 19:37:42 | → | SamBellamy joins (~SamBellam@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) |
| 19:37:57 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 19:42:07 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds) |
| 19:42:24 | × | hgolden quits (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection) |
| 19:42:41 | → | vglfr joins (~vglfr@91.192.47.10) |
| 19:45:47 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4) (Remote host closed the connection) |
| 19:46:14 | → | hgolden joins (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) |
| 19:46:48 | <sm> | seen |
| 19:46:48 | <sm> | @where books hasbae ? |
| 19:46:48 | <lambdabot> | See `LYAH',`RWH',`YAHT',`SOE',`HR',`PIH',`TFwH',`wikibook',`PCPH',`HPFFP',`FSAF',`HftVB',`HTAC',`TwT',`FoP',`PFAD',`WYAH',`non-haskell-books'. Also <https://www.vex.net/~trebla/haskell/learn-sources. |
| 19:46:48 | <lambdabot> | html>,<https://www.extrema.is/articles/haskell-books> |
| 19:48:56 | × | hgolden quits (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection) |
| 19:51:13 | → | hgolden joins (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) |
| 19:53:58 | × | SamBellamy quits (~SamBellam@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 252 seconds) |
| 19:54:27 | → | SamBellamy joins (~SamBellam@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) |
| 19:55:35 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4) |
| 19:58:12 | <hasbae> | @TFwH |
| 19:58:12 | <lambdabot> | Unknown command, try @list |
| 19:58:19 | <hasbae> | @where TFwH |
| 19:58:19 | <lambdabot> | "Thinking Functionally with Haskell" by Richard Bird in 2014-10 at <https://www.cs.ox.ac.uk/publications/books/functional/> |
| 19:58:22 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 19:58:28 | <hasbae> | neat |
| 19:58:36 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4) (Remote host closed the connection) |
| 19:58:51 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 20:00:02 | × | vglfr quits (~vglfr@91.192.47.10) (Ping timeout: 245 seconds) |
| 20:00:18 | → | vglfr joins (~vglfr@91.192.47.10) |
| 20:00:39 | → | yauhsien joins (~yauhsien@61-231-30-230.dynamic-ip.hinet.net) |
| 20:00:50 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 268 seconds) |
| 20:02:24 | → | jargon joins (~jargon@184.101.188.251) |
| 20:02:37 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 20:05:09 | × | yauhsien quits (~yauhsien@61-231-30-230.dynamic-ip.hinet.net) (Ping timeout: 268 seconds) |
| 20:06:05 | × | coco quits (~coco@212-51-146-199.fiber7.init7.net) (Quit: WeeChat 3.5) |
| 20:08:23 | <koala_man> | hmm. I tried to do some refactoring, added in some new language features, and now my source file has been compiling for 2.5 hours |
| 20:09:11 | → | Ram-Z joins (~Ram-Z@li1814-254.members.linode.com) |
| 20:11:45 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 20:12:40 | × | SamBellamy quits (~SamBellam@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 252 seconds) |
| 20:12:57 | × | bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 245 seconds) |
| 20:15:34 | <Inst> | gah, this is killing me |
| 20:25:14 | × | tstat quits (~user@user/tstat) (Remote host closed the connection) |
| 20:25:23 | → | SamBellamy joins (~SamBellam@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) |
| 20:27:36 | × | SamBellamy quits (~SamBellam@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Remote host closed the connection) |
| 20:27:53 | → | SamBellamy joins (~SamBellam@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) |
| 20:30:28 | <dsal> | koala_man: Woah. That's pretty hard core. And/or probably broken. |
| 20:30:32 | <dsal> | Unless you don't have a lot of RAM. |
| 20:31:32 | geekosaur | would have stopped it and restarted with some -v and/or -d… options by that point |
| 20:35:32 | <geekosaur> | -ddump-timings -dshow-passes and maybe -dverbose-core2core |
| 20:35:39 | <koala_man> | dsal: I have 24GB. I realized something was wrong after 60 seconds but I left it for five minutes, then went to lunch |
| 20:36:23 | <sm> | which ghc version and platform ? |
| 20:36:27 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 20:36:27 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 20:36:27 | → | wroathe joins (~wroathe@user/wroathe) |
| 20:37:25 | <c_wraith> | GHC usually tries pretty hard to fail with some message about what's going on if compilation is taking too log. |
| 20:37:26 | <koala_man> | 8.8.4 on Ubuntu. it was just an experiment and it's not blocking me |
| 20:37:37 | <c_wraith> | It's probably worth a ticket if it's not fixed in newer versions |
| 20:37:45 | <c_wraith> | too *long* |
| 20:38:15 | <c_wraith> | 8.8 is an odd choice, though. 8.10.7 is usually considered pretty solid. |
| 20:39:22 | <geekosaur> | 8.8 is probably what ubuntu packages still |
| 20:39:36 | <geekosaur> | I think they only just upgraded debian unstable |
| 20:39:54 | <c_wraith> | I'm sort of optimistic that 9.2.4 might finally be a production-ready 9.x version. |
| 20:40:11 | <c_wraith> | But we'll have to wait a couple weeks to see if anything comes up, I guess |
| 20:41:13 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 20:43:13 | <sm> | there have been quite a lot of compilation perf bugs fixed since then |
| 20:43:23 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 268 seconds) |
| 20:45:11 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 20:47:28 | <koala_man> | I'm trying to test in Docker's haskell:latest but Comcast has decided that I only get 4 Mbps today so it might be a while |
| 20:48:55 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds) |
| 20:49:06 | → | Pickchea joins (~private@user/pickchea) |
| 20:51:10 | → | Guest3 joins (~textual@64.145.79.82) |
| 20:57:42 | × | chomwitt quits (~chomwitt@2a02:587:dc00:5a00:3f62:1f2e:7818:a61c) (Ping timeout: 264 seconds) |
| 20:59:20 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 21:01:46 | × | Me-me quits (~me-me@user/me-me) (Quit: Disconnecting on purpose.) |
| 21:02:48 | → | Me-me joins (~me-me@tunnel690570-pt.tunnel.tserv12.mia1.ipv6.he.net) |
| 21:07:16 | <mrianbloom> | What libraries would you use to implement the concepts from "Scrap your boilerplate"? |
| 21:07:45 | <mrianbloom> | Let me add to that: with GADTs |
| 21:12:35 | → | alp_ joins (~alp@user/alp) |
| 21:13:47 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 245 seconds) |
| 21:13:56 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 21:15:03 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 21:15:43 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 21:17:28 | <dsal> | recursion schemes? |
| 21:18:01 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 21:19:22 | → | cbdlt^ joins (~cbdlt@50-242-35-142-static.hfc.comcastbusiness.net) |
| 21:29:59 | × | zebrag quits (~chris@user/zebrag) (Ping timeout: 252 seconds) |
| 21:30:25 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:31:33 | × | michalz quits (~michalz@185.246.204.75) (Remote host closed the connection) |
| 21:34:18 | × | acidjnk quits (~acidjnk@p200300d6e7058697f9c73f5459b42564.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
| 21:34:22 | → | acidjnk_new joins (~acidjnk@p200300d6e7058697153735ad212ee21c.dip0.t-ipconnect.de) |
| 21:35:38 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 21:37:03 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 21:37:10 | × | JannisO quits (~JannisO@dyndsl-089-166-213-108.ewe-ip-backbone.de) (Ping timeout: 260 seconds) |
| 21:40:42 | × | Guest3 quits (~textual@64.145.79.82) (Quit: Textual IRC Client: www.textualapp.com) |
| 21:46:07 | × | yin quits (~yin@user/zero) (Ping timeout: 252 seconds) |
| 21:46:17 | <mrianbloom> | I'm assuming that the names from the paper have changed a bit and I'm curious what it sort of evolved into. |
| 21:46:38 | × | theseb quits (~cs@47.220.214.54) (Remote host closed the connection) |
| 21:47:07 | <mrianbloom> | Like for example the typeclass Term, is that usually implemented as Data? |
| 21:49:36 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Quit: Leaving) |
| 21:49:37 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 245 seconds) |
| 21:52:38 | → | maroloccio joins (~marolocci@151.75.246.79) |
| 21:56:04 | <koala_man> | in Docker haskell:latest, 9.2.3, ghc appears stuck on "*** Renamer/typechecker [ShellCheck.Parser]". Doesn't matter though, I don't think I was getting anywhere with it |
| 22:06:06 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds) |
| 22:06:42 | × | SamBellamy quits (~SamBellam@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 252 seconds) |
| 22:07:15 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:07:40 | → | malte joins (~malte@mal.tc) |
| 22:12:39 | → | yin joins (~yin@user/zero) |
| 22:12:50 | → | SamBellamy joins (~SamBellam@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) |
| 22:17:40 | × | leah_ quits (lp0@heathens.club) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 22:18:21 | → | leah_ joins (lp0@heathens.club) |
| 22:20:13 | × | gurkenglas quits (~gurkengla@p548ac71b.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 22:21:46 | × | SamBellamy quits (~SamBellam@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Remote host closed the connection) |
| 22:22:54 | × | yin quits (~yin@user/zero) (Read error: Connection reset by peer) |
| 22:27:21 | → | yin joins (~yin@user/zero) |
| 22:41:05 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 22:42:20 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 22:50:52 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 22:52:45 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Client Quit) |
| 22:55:31 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 22:56:28 | → | Guest3 joins (~textual@64.145.79.82) |
| 23:00:50 | × | acidjnk_new quits (~acidjnk@p200300d6e7058697153735ad212ee21c.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 23:03:15 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
| 23:04:20 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 23:04:57 | × | Tuplanolla quits (~Tuplanoll@91-159-68-204.elisa-laajakaista.fi) (Ping timeout: 252 seconds) |
| 23:08:19 | × | Inst quits (~Inst@2601:6c4:4080:3f80:d8ab:2e91:63f7:db6e) (Ping timeout: 272 seconds) |
| 23:20:43 | × | stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 268 seconds) |
| 23:21:52 | → | Jeanne-Kamikaze joins (~Jeanne-Ka@142.147.89.243) |
| 23:23:49 | × | noteness quits (~noteness@user/noteness) (Quit: bye) |
| 23:24:27 | → | noteness joins (~noteness@user/noteness) |
| 23:27:25 | → | stiell_ joins (~stiell@gateway/tor-sasl/stiell) |
| 23:27:38 | → | sarahtheaudi joins (~sarahthea@S01069050ca4e3573.cg.shawcable.net) |
| 23:27:41 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Ping timeout: 252 seconds) |
| 23:28:08 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 23:31:20 | × | hasbae quits (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Quit: WeeChat 3.5) |
| 23:38:22 | → | pavonia joins (~user@user/siracusa) |
| 23:44:33 | × | AlexZenon quits (~alzenon@178.34.150.131) (Ping timeout: 252 seconds) |
| 23:46:32 | × | Alex_test quits (~al_test@178.34.150.131) (Ping timeout: 268 seconds) |
| 23:47:34 | → | mvk joins (~mvk@2607:fea8:5ce3:8500::311d) |
| 23:47:51 | × | noteness quits (~noteness@user/noteness) (Ping timeout: 268 seconds) |
| 23:48:46 | → | AlexZenon joins (~alzenon@178.34.150.131) |
| 23:49:51 | → | noteness joins (~noteness@user/noteness) |
| 23:50:04 | → | Alex_test joins (~al_test@178.34.150.131) |
| 23:57:13 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 23:57:24 | × | maroloccio quits (~marolocci@151.75.246.79) (Quit: WeeChat 3.0) |
| 23:57:32 | × | yin quits (~yin@user/zero) (Ping timeout: 245 seconds) |
All times are in UTC on 2022-07-29.