Logs on 2022-01-01 (liberachat/#haskell)
| 00:00:18 | <EvanR> | as an example of how idris streamlines things, the type level pair, type level list is not a promoted datakind, it's literally the pair and list that you would use on values |
| 00:01:07 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 00:01:07 | × | lavaman quits (~lavaman@98.38.249.169) (Read error: Connection reset by peer) |
| 00:01:40 | → | lavaman joins (~lavaman@98.38.249.169) |
| 00:02:07 | × | ________________ quits (~textual@node-1w7jr9qkwjp05lc932j6d6xa7.ipv6.telus.net) (Quit: Textual IRC Client: www.textualapp.com) |
| 00:02:09 | <monochrom> | @quote monochrom poor.*dependent |
| 00:02:10 | <lambdabot> | monochrom says: dynamic type is poor man's dependent type, they are so poor they can't buy a theorem prover. |
| 00:02:12 | → | n3rdy1 joins (~n3rdy1@2600:1700:4570:3480:1b88:50f:dae0:9293) |
| 00:02:22 | <ProfSimm> | The way I imagine it is that you assign a type directly to a variable, and it has this abstract constraint now. From that point on you can only assign a more constrained type on it until it gets assigned a specific value |
| 00:02:54 | <hpc> | idris 2 also has linear types, which is pretty cool too |
| 00:03:20 | <EvanR> | you can 'assign' types to variables in idris, as if they were values |
| 00:03:54 | <EvanR> | they are allowed in the same places as values, as long as their types match up (types have types) |
| 00:03:58 | <geekosaur> | although the notion of assigning more and more constraining types until you reach values sounds more like "gradual typing" to me |
| 00:05:15 | × | zincy_ quits (~zincy@2a00:23c8:970c:4801:b868:7e50:825e:321f) (Remote host closed the connection) |
| 00:05:19 | <geekosaur> | one problem with doing that in Haskell is that a type is what you promise to others, whereas a value is what you actually do |
| 00:05:59 | <monochrom> | Hee hee why write programs if we expect proof erasure anyway >:) |
| 00:06:00 | <geekosaur> | this has crucial differences when what you promise to others is that you will accept "any X such that…" |
| 00:06:44 | <geekosaur> | you are not in this case refining a type, you are implementing a contract |
| 00:07:53 | → | DNH joins (~DNH@2a02:8108:1100:16d8:4942:7271:af20:a403) |
| 00:08:10 | hexeme | is now known as ldlework |
| 00:08:19 | <geekosaur> | how you implement it is your business as long as you obey the terms of the contract |
| 00:10:58 | <geekosaur> | it'd actually make more sense if the contract were passed in, as opposed to "refining assignment" as you're thinking of |
| 00:11:21 | <geekosaur> | that is, the contract comes from the caller, the implementation is the callee |
| 00:15:12 | → | esoca123 joins (uid534098@id-534098.tinside.irccloud.com) |
| 00:15:13 | → | zincy_ joins (~zincy@host86-151-99-97.range86-151.btcentralplus.com) |
| 00:17:29 | <geekosaur> | actually I guess that's backwards. the type (contract) goes out, the implementation goes in |
| 00:19:25 | × | CiaoSen quits (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 00:20:57 | × | wroathe_ quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Ping timeout: 240 seconds) |
| 00:20:57 | <ProfSimm> | I wonder can we do something to combine assignment and comparison for equality in one operator and action |
| 00:21:08 | → | the_proffesor joins (~theproffe@2601:282:847f:8010::85ac) |
| 00:21:08 | × | the_proffesor quits (~theproffe@2601:282:847f:8010::85ac) (Changing host) |
| 00:21:08 | → | the_proffesor joins (~theproffe@user/theproffesor) |
| 00:21:32 | <ProfSimm> | I mean if something is unassigned, then you assign it 5, it equals 5. So. |
| 00:21:43 | <ProfSimm> | The comparison is true automaticlaly |
| 00:21:43 | <EvanR> | if it were C it would be spelled === |
| 00:21:57 | × | theproffesor quits (~theproffe@user/theproffesor) (Ping timeout: 240 seconds) |
| 00:22:19 | <EvanR> | and pronounced, equaliquals |
| 00:22:21 | <geekosaur> | you seem to be looking for a lot of not-Haskell |
| 00:22:32 | <geekosaur> | I mean, the whole concept of that goes against immutable data |
| 00:23:46 | → | theproffesor_ joins (~theproffe@2601:282:847f:8010::85ac) |
| 00:23:48 | × | zincy_ quits (~zincy@host86-151-99-97.range86-151.btcentralplus.com) (Remote host closed the connection) |
| 00:23:55 | × | the_proffesor quits (~theproffe@user/theproffesor) (Remote host closed the connection) |
| 00:25:21 | <EvanR> | haskell doesn't feature "unassigned" variables |
| 00:26:00 | <EvanR> | they are always bound to something, even if sometimes it is an error value or something |
| 00:26:26 | × | theproffesor_ quits (~theproffe@2601:282:847f:8010::85ac) (Read error: Connection reset by peer) |
| 00:26:45 | → | theproffesor_ joins (~theproffe@2601:282:847f:8010::85ac) |
| 00:28:24 | → | Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
| 00:28:35 | <EvanR> | s/feature/bug/ |
| 00:32:27 | × | Jing quits (~hedgehog@2604:a840:3::1013) (Remote host closed the connection) |
| 00:32:29 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 00:32:29 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 00:32:29 | → | wroathe joins (~wroathe@user/wroathe) |
| 00:34:13 | × | Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 240 seconds) |
| 00:36:15 | × | max22- quits (~maxime@2a01cb0883359800912ec9454e10c944.ipv6.abo.wanadoo.fr) (Remote host closed the connection) |
| 00:36:17 | → | Jing joins (~hedgehog@2604:a840:3::1013) |
| 00:36:20 | <EvanR> | too bad lambdabot doesn't have Data.Time so we can play with the date |
| 00:36:48 | <monochrom> | Wait, what do you want to play with the date? |
| 00:37:16 | <geekosaur> | % import Data.Time |
| 00:37:16 | <yahb> | geekosaur: |
| 00:37:21 | <geekosaur> | go nuts |
| 00:37:28 | → | max22- joins (~maxime@2a01cb08833598005a78fa8a594f3623.ipv6.abo.wanadoo.fr) |
| 00:37:45 | <EvanR> | % fromGregorian 2021 12 31 |
| 00:37:45 | <yahb> | EvanR: 2021-12-31 |
| 00:37:50 | <EvanR> | cewl |
| 00:39:07 | <EvanR> | % addDays 1 it |
| 00:39:07 | <yahb> | EvanR: 2022-01-01 |
| 00:39:25 | × | sprout quits (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) (Ping timeout: 268 seconds) |
| 00:39:30 | <geekosaur> | anyway I could imagine languages which did either, but they won't in much of any sense be Haskell |
| 00:43:05 | → | retroid_ joins (~retro@05412d78.skybroadband.com) |
| 00:45:34 | × | retro_ quits (~retro@05412d78.skybroadband.com) (Ping timeout: 268 seconds) |
| 00:46:40 | → | SummerSonw joins (~The_viole@203.77.49.232) |
| 00:48:25 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 00:49:09 | × | mastarija quits (~mastarija@2a05:4f46:e0e:5000:bc70:8f18:1f10:57e1) (Quit: Leaving) |
| 00:50:24 | → | Everything joins (~Everythin@37.115.210.35) |
| 00:51:28 | → | sprout joins (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) |
| 00:56:13 | × | sprout quits (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) (Ping timeout: 240 seconds) |
| 00:57:39 | → | ksqsf joins (~user@134.209.106.31) |
| 00:59:37 | × | mvk quits (~mvk@2607:fea8:5cdd:f000::917a) (Ping timeout: 240 seconds) |
| 01:01:37 | × | doyougnu quits (~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) (Ping timeout: 268 seconds) |
| 01:07:46 | → | sprout joins (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) |
| 01:10:14 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 01:10:55 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
| 01:11:02 | → | zincy_ joins (~zincy@host86-151-99-97.range86-151.btcentralplus.com) |
| 01:11:05 | × | DNH quits (~DNH@2a02:8108:1100:16d8:4942:7271:af20:a403) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 01:12:44 | × | sprout quits (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) (Ping timeout: 252 seconds) |
| 01:12:56 | → | sabhrd33 joins (~shawna@76.14.56.206) |
| 01:14:10 | × | ProfSimm quits (~ProfSimm@87.227.196.109) (Remote host closed the connection) |
| 01:14:19 | × | sabhrd33 quits (~shawna@76.14.56.206) (Remote host closed the connection) |
| 01:15:27 | × | zincy_ quits (~zincy@host86-151-99-97.range86-151.btcentralplus.com) (Ping timeout: 256 seconds) |
| 01:17:04 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 01:18:44 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 01:18:44 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 01:18:44 | → | wroathe joins (~wroathe@user/wroathe) |
| 01:21:41 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 01:23:42 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 260 seconds) |
| 01:25:05 | × | python476 quits (~user@88.160.31.174) (Ping timeout: 256 seconds) |
| 01:25:47 | → | sprout joins (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) |
| 01:26:18 | × | neurocyte0132889 quits (~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat) |
| 01:34:57 | → | DNH joins (~DNH@2a02:8108:1100:16d8:4942:7271:af20:a403) |
| 01:36:11 | × | sprout quits (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) (Ping timeout: 245 seconds) |
| 01:42:19 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 268 seconds) |
| 01:43:29 | × | DNH quits (~DNH@2a02:8108:1100:16d8:4942:7271:af20:a403) (Quit: Textual IRC Client: www.textualapp.com) |
| 01:45:00 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 01:46:08 | × | max22- quits (~maxime@2a01cb08833598005a78fa8a594f3623.ipv6.abo.wanadoo.fr) (Remote host closed the connection) |
| 01:47:51 | → | lavaman joins (~lavaman@98.38.249.169) |
| 01:48:17 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 01:49:13 | <EvanR> | hpc, I took the bait and went for the dang Applicative instance and ... the bind operation was only 3 lines xD https://paste.tomsmeding.com/41JicFe6 |
| 01:50:19 | <EvanR> | i guess i could use a library instead |
| 01:51:00 | → | sprout joins (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) |
| 01:51:32 | × | Tuplanolla quits (~Tuplanoll@91-159-69-90.elisa-laajakaista.fi) (Quit: Leaving.) |
| 01:52:17 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
| 01:55:53 | × | sprout quits (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) (Ping timeout: 268 seconds) |
| 01:59:49 | × | foul_owl quits (~kerry@94.140.8.106) (Quit: WeeChat 2.3) |
| 02:00:37 | × | InternetCitizen quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 240 seconds) |
| 02:00:59 | → | kaction joins (~kaction@pool-71-191-91-40.washdc.fios.verizon.net) |
| 02:01:16 | <kaction> | Does anybody know how to suppress error messages "unable to decommit memory" due madvice returning ENOSYS? Would it be considered GHC bug that it keeps saying it again and again? |
| 02:01:25 | × | xff0x_ quits (~xff0x@2001:1a81:52ba:da00:768d:77e:35d:d86a) (Ping timeout: 268 seconds) |
| 02:01:38 | → | lavaman joins (~lavaman@98.38.249.169) |
| 02:02:05 | → | xff0x_ joins (~xff0x@2001:1a81:52ba:da00:be6d:6461:7f7a:de65) |
| 02:02:33 | <lechner_> | Hi, could someone please explain how, in rel8, I can tie the Data.SemVer type to the postgresql-semver extension, please? Thanks! It's something like this https://hackage.haskell.org/package/rel8-1.2.1.0/docs/src/Rel8.Type.html#typeInformation |
| 02:02:37 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 240 seconds) |
| 02:02:51 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds) |
| 02:03:33 | → | otherwise joins (~otherwise@2601:602:880:90f0:b87e:64be:1874:bae6) |
| 02:05:08 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 02:05:44 | <lechner_> | kaction: thanks for blazing the trail on this https://salsa.debian.org/lechner/dh-haskell |
| 02:08:13 | × | n3rdy1 quits (~n3rdy1@2600:1700:4570:3480:1b88:50f:dae0:9293) (Ping timeout: 240 seconds) |
| 02:09:33 | <kaction> | lechner_: you are welcome :) |
| 02:09:33 | → | sprout joins (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) |
| 02:12:04 | <lechner_> | kaction: did you get the same reaction years ago? https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1002296#19 |
| 02:12:44 | × | mcglk_ quits (~mcglk@131.191.49.120) (Read error: Connection reset by peer) |
| 02:14:20 | × | sprout quits (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) (Ping timeout: 252 seconds) |
| 02:14:26 | → | mcglk joins (~mcglk@131.191.49.120) |
| 02:15:41 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 02:17:29 | → | _73 joins (~user@pool-108-49-252-36.bstnma.fios.verizon.net) |
| 02:19:17 | <kaction> | lechner_: I don't recall how it ended. I think dh-haskell got some adoption, but it had rough corners with more complicated packages, and I never took time to make it perfectly bit-to-bit compatible with whatever build system was status-quo. |
| 02:22:33 | → | foul_owl joins (~kerry@97-126-11-68.tukw.qwest.net) |
| 02:24:27 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 02:25:40 | → | lavaman joins (~lavaman@98.38.249.169) |
| 02:27:48 | → | yauhsien joins (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) |
| 02:28:29 | → | sprout joins (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) |
| 02:31:51 | → | harveypwca joins (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) |
| 02:32:51 | × | sprout quits (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) (Ping timeout: 245 seconds) |
| 02:32:52 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 02:32:52 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 02:32:52 | → | wroathe joins (~wroathe@user/wroathe) |
| 02:33:06 | × | wroathe quits (~wroathe@user/wroathe) (Client Quit) |
| 02:33:21 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 02:33:21 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 02:33:21 | → | wroathe joins (~wroathe@user/wroathe) |
| 02:42:11 | × | xff0x_ quits (~xff0x@2001:1a81:52ba:da00:be6d:6461:7f7a:de65) (Ping timeout: 250 seconds) |
| 02:43:37 | × | cyphase_eviltwin quits (~cyphase@user/cyphase) (Ping timeout: 240 seconds) |
| 02:44:17 | → | xff0x_ joins (~xff0x@2001:1a81:52f9:6300:887a:5ed1:98de:74ec) |
| 02:45:01 | × | waleee quits (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Ping timeout: 240 seconds) |
| 02:47:23 | <lechner_> | kaction: thanks! now it is. i copied everything from hlibrary.mk |
| 02:49:59 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: closed) |
| 02:50:56 | → | cyphase joins (~cyphase@user/cyphase) |
| 02:52:05 | × | ksqsf quits (~user@134.209.106.31) (Remote host closed the connection) |
| 02:52:33 | → | ksqsf joins (~user@2001:da8:d800:600:1db7:f109:60a:6851) |
| 02:54:42 | × | bollu_ quits (uid233390@id-233390.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
| 02:54:59 | → | johnw joins (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) |
| 02:55:39 | × | ksqsf quits (~user@2001:da8:d800:600:1db7:f109:60a:6851) (Read error: Connection reset by peer) |
| 02:56:08 | → | ksqsf joins (~user@134.209.106.31) |
| 03:02:00 | → | sprout joins (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) |
| 03:06:54 | → | neverfindme joins (~hayden@72.92.246.5) |
| 03:07:08 | × | sprout quits (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) (Ping timeout: 252 seconds) |
| 03:08:54 | → | doyougnu joins (~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) |
| 03:11:38 | × | neverfindme quits (~hayden@72.92.246.5) (Client Quit) |
| 03:18:47 | → | sprout joins (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) |
| 03:18:50 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 03:19:40 | × | burnsidesLlama quits (~burnsides@dhcp168-010.wadham.ox.ac.uk) (Remote host closed the connection) |
| 03:20:19 | → | burnsidesLlama joins (~burnsides@dhcp168-010.wadham.ox.ac.uk) |
| 03:23:16 | × | sprout quits (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) (Ping timeout: 245 seconds) |
| 03:24:37 | × | burnsidesLlama quits (~burnsides@dhcp168-010.wadham.ox.ac.uk) (Ping timeout: 240 seconds) |
| 03:25:13 | × | vglfr quits (~vglfr@88.155.60.141) (Ping timeout: 256 seconds) |
| 03:26:57 | → | vglfr joins (~vglfr@88.155.60.141) |
| 03:29:31 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.4) |
| 03:30:46 | × | yauhsien quits (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) (Ping timeout: 245 seconds) |
| 03:35:17 | → | sprout joins (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) |
| 03:38:57 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 240 seconds) |
| 03:39:57 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
| 03:40:08 | × | sprout quits (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) (Ping timeout: 252 seconds) |
| 03:41:34 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 03:43:03 | → | mbuf joins (~Shakthi@223.184.115.117) |
| 03:46:36 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 03:46:36 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 03:46:36 | finn_elija | is now known as FinnElija |
| 03:50:02 | × | ksqsf quits (~user@134.209.106.31) (Ping timeout: 252 seconds) |
| 03:51:31 | × | theproffesor_ quits (~theproffe@2601:282:847f:8010::85ac) (Changing host) |
| 03:51:31 | → | theproffesor_ joins (~theproffe@user/theproffesor) |
| 03:51:51 | theproffesor_ | is now known as theproffesor |
| 03:52:51 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
| 03:53:02 | × | td_ quits (~td@muedsl-82-207-238-106.citykom.de) (Ping timeout: 260 seconds) |
| 03:54:54 | → | td_ joins (~td@muedsl-82-207-238-133.citykom.de) |
| 04:03:41 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 04:04:12 | → | img joins (~img@user/img) |
| 04:05:59 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds) |
| 04:06:47 | × | EvanR quits (~EvanR@user/evanr) (Quit: Leaving) |
| 04:07:35 | → | sprout joins (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) |
| 04:08:08 | → | EvanR joins (~EvanR@user/evanr) |
| 04:12:47 | × | sprout quits (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) (Ping timeout: 268 seconds) |
| 04:14:25 | × | otherwise quits (~otherwise@2601:602:880:90f0:b87e:64be:1874:bae6) (Remote host closed the connection) |
| 04:16:10 | → | gaff joins (~gaff@49.207.212.151) |
| 04:25:44 | → | sprout joins (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) |
| 04:29:02 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Ping timeout: 240 seconds) |
| 04:30:13 | × | sprout quits (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) (Ping timeout: 240 seconds) |
| 04:32:12 | × | mcglk quits (~mcglk@131.191.49.120) (Read error: Connection reset by peer) |
| 04:33:11 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 04:33:28 | → | mcglk joins (~mcglk@131.191.49.120) |
| 04:34:45 | → | mvk joins (~mvk@2607:fea8:5cdd:f000::917a) |
| 04:37:20 | × | Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 252 seconds) |
| 04:37:44 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 04:40:12 | → | fef joins (~thedawn@user/thedawn) |
| 04:42:37 | → | sprout joins (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) |
| 04:46:12 | → | otherwise joins (~otherwise@2601:602:880:90f0:fce5:a06d:c23f:e50d) |
| 04:47:13 | × | kupi quits (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 04:47:56 | × | sprout quits (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) (Ping timeout: 268 seconds) |
| 04:50:54 | × | otherwise quits (~otherwise@2601:602:880:90f0:fce5:a06d:c23f:e50d) (Ping timeout: 260 seconds) |
| 04:56:41 | × | kaph quits (~kaph@net-2-38-107-19.cust.vodafonedsl.it) (Read error: Connection reset by peer) |
| 04:59:54 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 05:00:05 | → | off^ joins (~off@207.5.21.20) |
| 05:00:18 | → | sprout joins (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) |
| 05:02:02 | × | Everything quits (~Everythin@37.115.210.35) (Quit: leaving) |
| 05:04:45 | × | sprout quits (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) (Ping timeout: 250 seconds) |
| 05:09:09 | → | kaph_ joins (~kaph@net-2-38-107-19.cust.vodafonedsl.it) |
| 05:15:49 | → | juri_ joins (~juri@178.63.35.222) |
| 05:23:57 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 240 seconds) |
| 05:29:04 | → | uam joins (uid360535@id-360535.hampstead.irccloud.com) |
| 05:38:10 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 05:39:29 | × | mvk quits (~mvk@2607:fea8:5cdd:f000::917a) (Ping timeout: 252 seconds) |
| 05:41:17 | × | Hawker_ quits (~pi@user/hawker) (Ping timeout: 240 seconds) |
| 05:42:35 | × | slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving) |
| 05:44:39 | → | deadmarshal joins (~deadmarsh@95.38.119.182) |
| 05:49:09 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 05:50:29 | × | fef quits (~thedawn@user/thedawn) (Remote host closed the connection) |
| 05:51:06 | → | fef joins (~thedawn@user/thedawn) |
| 05:53:26 | × | cyphase quits (~cyphase@user/cyphase) (Ping timeout: 260 seconds) |
| 05:53:41 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 245 seconds) |
| 05:53:44 | → | cyphase joins (~cyphase@user/cyphase) |
| 05:54:53 | × | kaph_ quits (~kaph@net-2-38-107-19.cust.vodafonedsl.it) (Quit: Leaving) |
| 05:55:09 | → | kaph joins (~kaph@net-2-38-107-19.cust.vodafonedsl.it) |
| 05:55:14 | × | gaff quits (~gaff@49.207.212.151) (Remote host closed the connection) |
| 05:55:14 | → | kaph_ joins (~kaph@net-2-38-107-19.cust.vodafonedsl.it) |
| 05:55:23 | × | kaph_ quits (~kaph@net-2-38-107-19.cust.vodafonedsl.it) (Client Quit) |
| 05:55:23 | × | kaph quits (~kaph@net-2-38-107-19.cust.vodafonedsl.it) (Client Quit) |
| 05:55:38 | → | kaph joins (~kaph@net-2-38-107-19.cust.vodafonedsl.it) |
| 05:56:23 | → | gaff joins (~gaff@49.207.212.151) |
| 06:00:07 | → | otherwise joins (~otherwise@2601:602:880:90f0:1c02:7c0e:4814:d07c) |
| 06:00:28 | → | lavaman joins (~lavaman@98.38.249.169) |
| 06:01:03 | × | gaff quits (~gaff@49.207.212.151) (Ping timeout: 256 seconds) |
| 06:01:55 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 06:01:55 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 06:01:55 | → | wroathe joins (~wroathe@user/wroathe) |
| 06:02:27 | → | yauhsien joins (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) |
| 06:04:17 | × | otherwise quits (~otherwise@2601:602:880:90f0:1c02:7c0e:4814:d07c) (Ping timeout: 240 seconds) |
| 06:06:09 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
| 06:06:17 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
| 06:07:17 | × | yauhsien quits (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
| 06:11:23 | → | mvk joins (~mvk@2607:fea8:5cdd:f000::917a) |
| 06:14:18 | → | gaff joins (~gaff@49.207.198.216) |
| 06:23:43 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 06:37:52 | → | [_] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 06:40:17 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 240 seconds) |
| 06:46:25 | → | Rum joins (~bourbon@user/rum) |
| 07:00:56 | → | sprout joins (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) |
| 07:07:34 | → | yauhsien joins (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) |
| 07:08:13 | → | nhatanh02 joins (~satori@123.24.172.30) |
| 07:09:09 | × | sprout quits (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) (Ping timeout: 268 seconds) |
| 07:17:08 | → | sprout joins (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) |
| 07:23:54 | × | yauhsien quits (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 07:24:40 | → | yauhsien joins (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) |
| 07:29:06 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 07:33:08 | → | lavaman joins (~lavaman@98.38.249.169) |
| 07:34:32 | × | gaff quits (~gaff@49.207.198.216) (Remote host closed the connection) |
| 07:37:17 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
| 07:37:52 | → | otherwise joins (~otherwise@2601:602:880:90f0:15d8:a1fc:ce25:ad10) |
| 07:39:58 | × | yauhsien quits (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 07:42:29 | → | coolnickname joins (uid531864@user/coolnickname) |
| 07:47:37 | → | yauhsien joins (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) |
| 07:51:58 | × | Jonno_FTW quits (~come@api.carswap.me) (Ping timeout: 260 seconds) |
| 07:52:17 | × | yauhsien quits (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
| 07:59:14 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 08:04:44 | × | Rum quits (~bourbon@user/rum) (Quit: WeeChat 3.4) |
| 08:05:42 | → | img joins (~img@user/img) |
| 08:12:18 | → | gaff joins (~gaff@49.207.222.122) |
| 08:15:09 | × | [_] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 08:15:36 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 08:16:35 | → | coot joins (~coot@89-64-85-93.dynamic.chello.pl) |
| 08:22:12 | × | otherwise quits (~otherwise@2601:602:880:90f0:15d8:a1fc:ce25:ad10) (Remote host closed the connection) |
| 08:23:56 | × | SummerSonw quits (~The_viole@203.77.49.232) (Ping timeout: 252 seconds) |
| 08:25:03 | × | deadmarshal quits (~deadmarsh@95.38.119.182) (Quit: ZNC 1.8.2 - https://znc.in) |
| 08:25:57 | → | deadmarshal joins (~deadmarsh@95.38.119.182) |
| 08:26:53 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 08:36:35 | × | xff0x_ quits (~xff0x@2001:1a81:52f9:6300:887a:5ed1:98de:74ec) (Ping timeout: 252 seconds) |
| 08:37:28 | → | xff0x_ joins (~xff0x@2001:1a81:52f9:6300:7499:a110:eaa4:a379) |
| 08:40:57 | × | Vajb quits (~Vajb@85-76-162-179-nat.elisa-mobile.fi) (Ping timeout: 240 seconds) |
| 08:42:50 | × | gaff quits (~gaff@49.207.222.122) (Ping timeout: 260 seconds) |
| 08:42:55 | → | SummerSonw joins (~The_viole@203.77.49.232) |
| 08:44:11 | → | Vajb joins (~Vajb@2001:999:50:e6be:1e98:9376:d93e:4506) |
| 08:47:45 | → | otherwise joins (~otherwise@2601:602:880:90f0:cdff:5f10:47b:dd48) |
| 09:03:27 | → | zer0bitz joins (~zer0bitz@196.244.192.57) |
| 09:04:23 | × | Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 250 seconds) |
| 09:07:03 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 09:07:03 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 09:07:03 | → | wroathe joins (~wroathe@user/wroathe) |
| 09:08:09 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 09:12:01 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
| 09:12:01 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 09:12:41 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 09:16:25 | → | Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
| 09:16:56 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Read error: Connection reset by peer) |
| 09:17:51 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 09:19:23 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 09:19:37 | × | otherwise quits (~otherwise@2601:602:880:90f0:cdff:5f10:47b:dd48) (Remote host closed the connection) |
| 09:24:36 | → | _ht joins (~quassel@82-169-194-8.biz.kpn.net) |
| 09:32:46 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
| 09:33:51 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 09:37:23 | × | fef quits (~thedawn@user/thedawn) (Quit: Leaving) |
| 09:53:05 | × | coot quits (~coot@89-64-85-93.dynamic.chello.pl) (Remote host closed the connection) |
| 09:53:30 | → | coot joins (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) |
| 09:55:46 | × | coot quits (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) (Client Quit) |
| 09:56:10 | → | coot joins (~coot@89-64-85-93.dynamic.chello.pl) |
| 10:01:56 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 10:15:36 | → | neurocyte0132889 joins (~neurocyte@IP-045128181214.dynamic.medianet-world.de) |
| 10:15:36 | × | neurocyte0132889 quits (~neurocyte@IP-045128181214.dynamic.medianet-world.de) (Changing host) |
| 10:15:36 | → | neurocyte0132889 joins (~neurocyte@user/neurocyte) |
| 10:15:42 | → | lavaman joins (~lavaman@98.38.249.169) |
| 10:20:01 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
| 10:20:03 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 10:21:30 | → | Tuplanolla joins (~Tuplanoll@91-159-69-90.elisa-laajakaista.fi) |
| 10:27:22 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds) |
| 10:28:27 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 10:28:42 | → | fcc977 joins (~kaph@net-2-38-107-19.cust.vodafonedsl.it) |
| 10:28:50 | → | acidjnk joins (~acidjnk@p200300d0c7271e28a1c27b1d533e8cdb.dip0.t-ipconnect.de) |
| 10:28:51 | → | acidjnk_new joins (~acidjnk@p200300d0c7271e28a1c27b1d533e8cdb.dip0.t-ipconnect.de) |
| 10:29:14 | × | vglfr quits (~vglfr@88.155.60.141) (Ping timeout: 260 seconds) |
| 10:30:02 | × | kaph quits (~kaph@net-2-38-107-19.cust.vodafonedsl.it) (Ping timeout: 240 seconds) |
| 10:34:26 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 10:37:54 | × | fcc977 quits (~kaph@net-2-38-107-19.cust.vodafonedsl.it) (Quit: Leaving) |
| 10:38:32 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
| 10:38:32 | → | kaph joins (~kaph@net-2-38-107-19.cust.vodafonedsl.it) |
| 10:40:55 | × | mbuf quits (~Shakthi@223.184.115.117) (Read error: Connection reset by peer) |
| 10:41:12 | → | mbuf joins (~Shakthi@223.184.115.117) |
| 10:45:48 | × | coot quits (~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot) |
| 10:58:29 | × | neurocyte0132889 quits (~neurocyte@user/neurocyte) (Ping timeout: 252 seconds) |
| 11:02:10 | → | jtomas joins (~jtomas@153.red-83-53-252.dynamicip.rima-tde.net) |
| 11:07:42 | → | coot joins (~coot@89-64-85-93.dynamic.chello.pl) |
| 11:07:50 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 11:07:50 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 11:07:50 | → | wroathe joins (~wroathe@user/wroathe) |
| 11:12:26 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 245 seconds) |
| 11:13:37 | → | vglfr joins (~vglfr@88.155.60.141) |
| 11:14:02 | × | sprout quits (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) (Ping timeout: 240 seconds) |
| 11:15:43 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 11:18:43 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 11:20:26 | → | cosimone joins (~user@93-34-132-88.ip49.fastwebnet.it) |
| 11:24:08 | → | img joins (~img@user/img) |
| 11:24:18 | → | yauhsien joins (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) |
| 11:26:26 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 11:28:47 | × | coot quits (~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot) |
| 11:28:53 | × | yauhsien quits (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
| 11:38:29 | → | zincy_ joins (~zincy@host86-151-99-97.range86-151.btcentralplus.com) |
| 11:38:36 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 11:38:36 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 11:38:36 | → | wroathe joins (~wroathe@user/wroathe) |
| 11:39:27 | → | joo-_ joins (~joo-_@80-62-117-1-mobile.dk.customer.tdc.net) |
| 11:39:27 | × | joo-_ quits (~joo-_@80-62-117-1-mobile.dk.customer.tdc.net) (Changing host) |
| 11:39:27 | → | joo-_ joins (~joo-_@fsf/member/joo--) |
| 11:39:32 | → | max22- joins (~maxime@lfbn-ren-1-1026-62.w92-139.abo.wanadoo.fr) |
| 11:43:53 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
| 11:44:26 | → | dyeplexer joins (~dyeplexer@user/dyeplexer) |
| 11:49:41 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
| 11:50:26 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 12:09:23 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 12:09:23 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 12:09:23 | → | wroathe joins (~wroathe@user/wroathe) |
| 12:13:14 | → | retro_ joins (~retro@05412d78.skybroadband.com) |
| 12:14:11 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 250 seconds) |
| 12:14:23 | × | retroid_ quits (~retro@05412d78.skybroadband.com) (Ping timeout: 268 seconds) |
| 12:15:04 | → | sprout joins (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) |
| 12:17:34 | × | gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 12:18:16 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 12:19:03 | × | off^ quits (~off@207.5.21.20) (Remote host closed the connection) |
| 12:20:21 | × | kaph quits (~kaph@net-2-38-107-19.cust.vodafonedsl.it) (Read error: Connection reset by peer) |
| 12:20:43 | → | kaph joins (~kaph@net-2-38-107-19.cust.vodafonedsl.it) |
| 12:21:37 | → | InternetCitizen joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
| 12:28:39 | → | Rum joins (~bourbon@user/rum) |
| 12:28:41 | × | xff0x_ quits (~xff0x@2001:1a81:52f9:6300:7499:a110:eaa4:a379) (Ping timeout: 252 seconds) |
| 12:29:39 | → | xff0x_ joins (~xff0x@port-92-193-207-83.dynamic.as20676.net) |
| 12:32:35 | × | cosimone quits (~user@93-34-132-88.ip49.fastwebnet.it) (Ping timeout: 250 seconds) |
| 12:34:05 | → | __monty__ joins (~toonn@user/toonn) |
| 12:35:09 | → | fef joins (~thedawn@user/thedawn) |
| 12:36:36 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 12:36:45 | → | CiaoSen joins (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 12:39:57 | × | acidjnk_new quits (~acidjnk@p200300d0c7271e28a1c27b1d533e8cdb.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
| 12:39:57 | × | acidjnk quits (~acidjnk@p200300d0c7271e28a1c27b1d533e8cdb.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
| 12:40:13 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 12:40:13 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 12:40:13 | → | wroathe joins (~wroathe@user/wroathe) |
| 12:41:01 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
| 12:44:06 | × | nhatanh02 quits (~satori@123.24.172.30) (Ping timeout: 260 seconds) |
| 12:45:01 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
| 12:46:13 | × | vglfr quits (~vglfr@88.155.60.141) (Ping timeout: 256 seconds) |
| 12:46:13 | × | Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 256 seconds) |
| 12:47:52 | → | gaff joins (~gaff@49.207.192.225) |
| 12:48:05 | → | vglfr joins (~vglfr@88.155.60.141) |
| 12:48:23 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 12:48:57 | × | sprout quits (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) (Ping timeout: 240 seconds) |
| 12:50:10 | × | max22- quits (~maxime@lfbn-ren-1-1026-62.w92-139.abo.wanadoo.fr) (Ping timeout: 260 seconds) |
| 12:53:00 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 12:56:02 | → | coot joins (~coot@89-64-85-93.dynamic.chello.pl) |
| 12:57:34 | × | CiaoSen quits (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Quit: CiaoSen) |
| 12:58:29 | × | uam quits (uid360535@id-360535.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 12:59:07 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 13:02:48 | → | sprout joins (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) |
| 13:03:42 | × | _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Ping timeout: 260 seconds) |
| 13:03:51 | → | _ht joins (~quassel@5.253.205.174) |
| 13:07:29 | × | sprout quits (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) (Ping timeout: 250 seconds) |
| 13:10:13 | × | gaff quits (~gaff@49.207.192.225) (Read error: Connection reset by peer) |
| 13:10:18 | → | gaff_ joins (~gaff@49.207.192.225) |
| 13:10:57 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 13:10:57 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 13:10:57 | → | wroathe joins (~wroathe@user/wroathe) |
| 13:11:42 | → | cosimone joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) |
| 13:15:50 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 260 seconds) |
| 13:16:04 | → | nrl^ joins (~nrl@207.5.21.20) |
| 13:22:45 | × | turlando_ quits (~turlando@93-42-250-112.ip89.fastwebnet.it) (Read error: Connection reset by peer) |
| 13:22:59 | → | turlando joins (~turlando@93-42-250-112.ip89.fastwebnet.it) |
| 13:22:59 | × | turlando quits (~turlando@93-42-250-112.ip89.fastwebnet.it) (Changing host) |
| 13:22:59 | → | turlando joins (~turlando@user/turlando) |
| 13:32:01 | → | simendsjo joins (~user@host.62.119.172.37.bitcom.se) |
| 13:33:18 | fjmorazan_ | is now known as fjmorazan |
| 13:35:17 | → | nhatanh02 joins (~satori@123.24.172.30) |
| 13:35:27 | → | sprout joins (~quassel@2a02:a467:ccd6:1:5c9e:b916:30fd:4234) |
| 13:36:05 | × | turlando quits (~turlando@user/turlando) (Ping timeout: 256 seconds) |
| 13:38:20 | → | yauhsien joins (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) |
| 13:42:47 | × | yauhsien quits (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
| 13:43:53 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 13:46:12 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 13:47:59 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 13:47:59 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 13:47:59 | → | wroathe joins (~wroathe@user/wroathe) |
| 13:50:17 | × | simendsjo quits (~user@host.62.119.172.37.bitcom.se) (Ping timeout: 240 seconds) |
| 13:52:12 | → | spaceseller joins (~spacesell@31.147.205.13) |
| 13:52:37 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
| 13:57:18 | × | coot quits (~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot) |
| 13:57:30 | → | coot joins (~coot@89-64-85-93.dynamic.chello.pl) |
| 13:59:11 | <InternetCitizen> | > (\x -> (x 3, x "three")) (\x -> x) |
| 13:59:13 | <lambdabot> | error: |
| 13:59:13 | <lambdabot> | • No instance for (Num [Char]) arising from the literal ‘3’ |
| 13:59:13 | <lambdabot> | • In the first argument of ‘x’, namely ‘3’ |
| 13:59:50 | × | Rum quits (~bourbon@user/rum) (Quit: WeeChat 3.4) |
| 14:00:01 | <InternetCitizen> | why does this not work? It's like Haskell specializes the type of id to `Num a => a -> a` |
| 14:00:22 | <InternetCitizen> | > (\x -> (x "four", x "three")) (\x -> x) |
| 14:00:24 | <lambdabot> | ("four","three") |
| 14:00:31 | <InternetCitizen> | > (\x -> (x 3, x 4)) (\x -> x) |
| 14:00:33 | <lambdabot> | (3,4) |
| 14:01:31 | <InternetCitizen> | on the Hindley-Milner wikipedia article I found: |
| 14:01:40 | <InternetCitizen> | "Only values bound in a let construct are subject to instantiation, i.e. are polymorphic, while the parameters in lambda-abstractions are treated as being monomorphic." |
| 14:02:11 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Ping timeout: 252 seconds) |
| 14:05:15 | <InternetCitizen> | > let id x = x in (id 3, id "three") |
| 14:05:17 | <lambdabot> | (3,"three") |
| 14:05:24 | <hpc> | InternetCitizen: it needs to be rank 2, which needs a type signature |
| 14:05:38 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 14:06:01 | <InternetCitizen> | what needs to be rank 2? |
| 14:06:08 | <hpc> | that makes sure x stays as type (forall a. a -> a) and not some specific (a -> a) in the context of the lambda |
| 14:06:40 | <hpc> | > let foo :: (forall a. a -> a) -> (Int, String); foo x = (x 3, x "three") in foo (\x -> x) |
| 14:06:41 | <lambdabot> | (3,"three") |
| 14:11:17 | <InternetCitizen> | hpc: if I understand correctly, the inference algorithm starts with `(\x -> (x "four", x "three"))`, gives x a type variable `a` and since we call it with "four" substitues `a` for type `String -> b` and fails when we call `x` with `Int` again? |
| 14:12:25 | <hpc> | essentially |
| 14:12:33 | <Hecate> | morning |
| 14:13:02 | <hpc> | you get a weirder error than that because 3 :: Num a => a, so it thinks "hmm, what if there was instance Num String where ...?" |
| 14:13:24 | <hpc> | > (\x -> (x False, x "False")) (\x -> x) -- this might make it more clear |
| 14:13:25 | <lambdabot> | error: |
| 14:13:25 | <lambdabot> | • Couldn't match expected type ‘Bool’ with actual type ‘[Char]’ |
| 14:13:25 | <lambdabot> | • In the first argument of ‘x’, namely ‘"False"’ |
| 14:14:07 | <InternetCitizen> | then why does the Wikipedia article that writing lambd expressions this way is undecidable? |
| 14:14:09 | <InternetCitizen> | https://en.wikipedia.org/wiki/Hindley%E2%80%93Milner_type_system#Let-polymorphism |
| 14:14:27 | <InternetCitizen> | they give the example of `(λ id . ... (id 3) ... (id "text") ... ) (λ x . x)` |
| 14:15:30 | <InternetCitizen> | "restricting the binding mechanism in an extension of the expression syntax. Only values bound in a let construct are subject to instantiation, i.e. are polymorphic, while the parameters in lambda-abstractions are treated as being monomorphic." |
| 14:15:47 | × | spaceseller quits (~spacesell@31.147.205.13) (Remote host closed the connection) |
| 14:15:54 | <InternetCitizen> | so Haskell type-inference isn't decidable ??? |
| 14:16:13 | → | spaceseller joins (~spacesell@31.147.205.13) |
| 14:16:42 | <hpc> | it's decidable if you don't allow that sort of example |
| 14:17:25 | <hpc> | rank 2 is also decidable, but higher ranked stuff is not |
| 14:17:27 | → | lavaman joins (~lavaman@98.38.249.169) |
| 14:17:47 | <hpc> | rank 2 is where you see things like that nested forall in foo |
| 14:18:01 | <hpc> | rank 3 is forall nested one level further, etc etc |
| 14:18:19 | <geekosaur> | (note that ghc does not implement rank-2 type inference, even though it is decidable) |
| 14:18:23 | <InternetCitizen> | I thought that the example is what I typed into Haskel |
| 14:18:46 | <InternetCitizen> | > (\x -> (x 3, x "three")) (\x -> x) |
| 14:18:48 | <lambdabot> | error: |
| 14:18:48 | <lambdabot> | • No instance for (Num [Char]) arising from the literal ‘3’ |
| 14:18:48 | <lambdabot> | • In the first argument of ‘x’, namely ‘3’ |
| 14:18:49 | <InternetCitizen> | ^ |
| 14:18:55 | <hpc> | yeah, ghc chooses not to infer rank-2 types |
| 14:19:40 | <hpc> | Rank2Types and RankNTypes used to be separate, so maybe if you went back to ghc 6 it could be inferred? |
| 14:19:50 | <geekosaur> | no |
| 14:20:17 | <geekosaur> | rank-2 type inference is fairly complicated, so they decided to punt on it because there didn't seem to be any demand for it |
| 14:20:29 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
| 14:20:37 | <hpc> | ah, forgot about that |
| 14:20:45 | <geekosaur> | I mean, the typechecker is already complex enough without it :) |
| 14:20:50 | <hpc> | in any event, you don't really want higher-ranked inference anyway |
| 14:21:45 | <hpc> | imagine you're writing your code, and decide to implement some nice higher-order function like map |
| 14:21:51 | <hpc> | you make a mistake somewhere and your code compiles |
| 14:21:56 | <InternetCitizen> | how does it "choose" not to infer rank-2 types exactly? Does this simply amount to giving `x` a monomorphic type rather than a polymorphic one? |
| 14:21:59 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
| 14:22:01 | <hpc> | but surprise, it's now a rank-5 type or something and completely unusable |
| 14:22:08 | <hpc> | and you have no error to figure out what you did wrong |
| 14:22:18 | × | coolnickname quits (uid531864@user/coolnickname) (Quit: Connection closed for inactivity) |
| 14:22:53 | <InternetCitizen> | that sounds scary, I don't even know what higher ranked types are |
| 14:24:03 | <hpc> | a rank 3 type would be maybe something like (forall b. (forall a. a -> a) -> (b -> b)) -> (c -> c) -> c -> c |
| 14:24:17 | <hpc> | just more and more foralls to the left of (->) |
| 14:24:25 | <hpc> | at deeper and deeper nestings |
| 14:24:34 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 14:24:49 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 14:25:11 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 14:25:14 | → | coolnickname joins (uid531864@user/coolnickname) |
| 14:25:23 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 14:25:28 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 14:25:39 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 14:25:47 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 14:25:58 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 14:26:02 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 14:26:13 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 14:26:16 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 14:26:27 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 14:26:27 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 14:26:37 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 14:26:37 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Read error: Connection reset by peer) |
| 14:26:48 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 14:26:48 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 14:26:58 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 14:26:58 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 14:27:09 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 14:27:09 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Read error: Connection reset by peer) |
| 14:27:20 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 14:27:20 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Read error: Connection reset by peer) |
| 14:27:22 | <InternetCitizen> | so the real type of the lambda on the left is forall b, c. (forall a. a -> a) -> (b, c) ? |
| 14:27:33 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 14:27:33 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 14:27:47 | <InternetCitizen> | no sorry (forall a. a -> a) -> (String, Integer) |
| 14:27:49 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 14:27:49 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 14:28:11 | <InternetCitizen> | I mean for `(\x -> (x 3, x "three"))` |
| 14:28:12 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 14:28:12 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Read error: Connection reset by peer) |
| 14:28:26 | <hpc> | yes |
| 14:28:47 | <hpc> | and thata (forall a. a -> a) type only accepts things that can be that polymorphic |
| 14:28:48 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 14:28:53 | <hpc> | it will accept id, but not ($) for instance |
| 14:28:53 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 14:29:04 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 14:29:07 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 14:29:17 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 14:29:19 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 14:29:30 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 14:29:30 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 14:29:40 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 14:29:40 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 14:29:50 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 14:29:50 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Read error: Connection reset by peer) |
| 14:30:01 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 14:30:01 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Read error: Connection reset by peer) |
| 14:30:12 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 14:30:12 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 14:30:13 | → | n3rdy1 joins (~n3rdy1@2601:646:c300:f20:d852:3bde:2197:ddf9) |
| 14:30:24 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 14:30:24 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 14:30:29 | <InternetCitizen> | sorry but isn't ($) :: forall a. forall b. (a -> b) -> a -> b ? |
| 14:30:38 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 14:30:38 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 14:30:48 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 14:30:48 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 14:30:58 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 14:30:58 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Read error: Connection reset by peer) |
| 14:31:09 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 14:31:09 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 14:31:20 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 14:31:21 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 14:31:32 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 14:31:36 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 14:31:43 | ChanServ | sets mode +o geekosaur |
| 14:31:47 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 14:31:52 | geekosaur | sets mode +b *!*@static.211.245.203.116.clients.your-server.de |
| 14:31:53 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 14:32:06 | × | Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection) |
| 14:32:14 | geekosaur | sets mode -o geekosaur |
| 14:32:27 | <hpc> | InternetCitizen: yea, but you can define it as ($) = id |
| 14:32:28 | → | Feuermagier joins (~Feuermagi@user/feuermagier) |
| 14:32:41 | <hpc> | perhaps that's a bad example |
| 14:32:54 | <hpc> | it will accept id, but not... not for instance |
| 14:32:57 | <hpc> | :t not |
| 14:32:58 | <lambdabot> | Bool -> Bool |
| 14:33:08 | → | waleee joins (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) |
| 14:33:11 | <hpc> | grammatically that's an even worse example lol |
| 14:34:53 | <hpc> | > let foo :: (forall a. a -> a) -> (Int, String); foo x = (x 3, x "three") in foo not |
| 14:34:55 | <lambdabot> | error: |
| 14:34:55 | <lambdabot> | • Couldn't match type ‘a’ with ‘Bool’ |
| 14:34:55 | <lambdabot> | ‘a’ is a rigid type variable bound by |
| 14:35:16 | <InternetCitizen> | hpc: so if I understand correctly, this implies that when it tries to infer the type of (\x -> (x 3, x "three")), it gives x a type variable `a` and not a type schema `forall a . b` (or something like that) |
| 14:35:17 | <hpc> | and that's the sort of error you get when you pass something that's "too monomorphic" |
| 14:35:42 | <hpc> | yeah |
| 14:36:00 | <hpc> | it tries to have the "forall a" all the way to the left |
| 14:36:15 | <hpc> | foo :: forall a. (a -> a) -> (Int, String) |
| 14:36:23 | <hpc> | which means you have to pick a single a when calling foo |
| 14:38:28 | <InternetCitizen> | hpc: thank you very much <3 |
| 14:44:03 | → | max22- joins (~maxime@2a01cb0883359800a99596770101e95e.ipv6.abo.wanadoo.fr) |
| 14:49:11 | × | Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection) |
| 14:49:29 | → | Feuermagier joins (~Feuermagi@user/feuermagier) |
| 14:50:10 | × | gaff_ quits (~gaff@49.207.192.225) (Remote host closed the connection) |
| 14:51:27 | → | gaff joins (~gaff@49.207.192.225) |
| 14:53:25 | × | Feuermagier quits (~Feuermagi@user/feuermagier) (Ping timeout: 240 seconds) |
| 14:54:58 | → | Feuermagier joins (~Feuermagi@user/feuermagier) |
| 14:55:37 | × | gaff quits (~gaff@49.207.192.225) (Ping timeout: 240 seconds) |
| 14:58:43 | × | Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection) |
| 14:59:07 | → | Feuermagier joins (~Feuermagi@user/feuermagier) |
| 15:00:32 | × | Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection) |
| 15:00:54 | × | SummerSonw quits (~The_viole@203.77.49.232) (Ping timeout: 268 seconds) |
| 15:02:04 | ChanServ | sets mode +o litharge |
| 15:02:05 | litharge | sets mode -bo *!*@static.211.245.203.116.clients.your-server.de litharge |
| 15:02:08 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:02:09 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:02:19 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:02:21 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:02:31 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:02:31 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:02:41 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:02:41 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:02:51 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:02:51 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Read error: Connection reset by peer) |
| 15:02:59 | → | gaff joins (~gaff@49.207.192.225) |
| 15:03:01 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:03:01 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:03:13 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:03:13 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:03:26 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:03:26 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:03:42 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:03:42 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:04:05 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:04:07 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:04:18 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:04:19 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:04:29 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:04:29 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:04:40 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:04:42 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:04:52 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:04:52 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:05:02 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:05:02 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Read error: Connection reset by peer) |
| 15:05:12 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:05:12 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:05:22 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:05:22 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:05:25 | <int-e> | geekosaur: ^half an hour wasn't enough |
| 15:05:33 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:05:33 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:05:47 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:05:47 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:06:05 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:06:05 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:06:16 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:06:16 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:06:27 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:06:31 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:06:42 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:06:44 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:06:55 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:06:55 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:07:05 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:07:05 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:07:15 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:07:15 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:07:25 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:07:25 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:07:35 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:07:35 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Read error: Connection reset by peer) |
| 15:07:46 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:07:46 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Read error: Connection reset by peer) |
| 15:07:59 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:08:02 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:08:12 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:08:12 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Read error: Connection reset by peer) |
| 15:08:22 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:08:22 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Read error: Connection reset by peer) |
| 15:08:32 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:08:33 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:08:44 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:08:45 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:08:54 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:08:54 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:09:04 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:09:04 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Read error: Connection reset by peer) |
| 15:09:15 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:09:17 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:09:28 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:09:40 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:09:52 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:10:02 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:10:14 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:10:22 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:10:33 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:10:38 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:10:50 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:10:51 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:11:01 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:11:01 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:11:03 | → | SummerSonw joins (~The_viole@203.77.49.232) |
| 15:11:11 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:11:11 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Read error: Connection reset by peer) |
| 15:11:22 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:11:22 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:11:32 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:11:32 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Read error: Connection reset by peer) |
| 15:11:43 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:11:43 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:11:50 | <geekosaur> | blegh |
| 15:11:53 | ChanServ | sets mode +o geekosaur |
| 15:11:56 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:11:56 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:12:12 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 15:12:12 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Remote host closed the connection) |
| 15:12:13 | geekosaur | sets mode +b ralu!*@* |
| 15:12:24 | <Hecate> | §2 |
| 15:12:41 | geekosaur | sets mode -o geekosaur |
| 15:13:09 | × | gaff quits (~gaff@49.207.192.225) (Ping timeout: 250 seconds) |
| 15:13:17 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 15:13:17 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 15:13:17 | → | wroathe joins (~wroathe@user/wroathe) |
| 15:13:54 | × | _ht quits (~quassel@5.253.205.174) (Ping timeout: 260 seconds) |
| 15:14:02 | × | sprout quits (~quassel@2a02:a467:ccd6:1:5c9e:b916:30fd:4234) (Ping timeout: 240 seconds) |
| 15:14:07 | → | _ht joins (~quassel@82-169-194-8.biz.kpn.net) |
| 15:14:56 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 15:14:57 | → | [_] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 15:15:19 | × | [_] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 15:15:46 | → | ph14nix joins (~io@94.234.51.48) |
| 15:17:36 | → | Feuermagier joins (~Feuermagi@user/feuermagier) |
| 15:19:44 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 15:19:46 | × | ph14nix quits (~io@94.234.51.48) (Quit: WeeChat 3.4) |
| 15:22:29 | × | Feuermagier quits (~Feuermagi@user/feuermagier) (Ping timeout: 252 seconds) |
| 15:23:25 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 15:25:49 | → | sprout joins (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) |
| 15:26:51 | → | Feuermagier joins (~Feuermagi@user/feuermagier) |
| 15:27:15 | × | spaceseller quits (~spacesell@31.147.205.13) (Quit: Leaving) |
| 15:27:17 | × | son0p quits (~ff@181.136.122.143) (Remote host closed the connection) |
| 15:30:42 | × | sprout quits (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) (Ping timeout: 260 seconds) |
| 15:30:57 | × | Feuermagier quits (~Feuermagi@user/feuermagier) (Ping timeout: 240 seconds) |
| 15:31:37 | → | acode joins (~acode@dslb-092-077-045-168.092.077.pools.vodafone-ip.de) |
| 15:33:11 | <acode> | I'm a mathematician learning haskell and I'm confused by the name of the typeclass Functor. In my understanding Functor is for types that "can be mapped over" which makes a lot of sense, but I'm confused by its name. Is it related to functors in mathematics or is it one of the many instances of unrelated concepts sharing a name? |
| 15:33:43 | <geekosaur> | it's a restricted form of a category theory functor, as I understand it |
| 15:34:12 | <geekosaur> | there's a more genjeral one in Control.Category; the normla one is restricted to the (notional) category Hask of Haskell types |
| 15:35:00 | <acode> | Uh I never realized that types form a category. What's an arrow in Hask? |
| 15:38:41 | × | dyeplexer quits (~dyeplexer@user/dyeplexer) (Ping timeout: 245 seconds) |
| 15:38:51 | <Clint> | https://wiki.haskell.org/Hask |
| 15:39:00 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 15:40:32 | <geekosaur> | and they don't quite, because of bottom. But I'm also led to believe that there are other category-like things that would admit Hask |
| 15:40:42 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 15:41:11 | <geekosaur> | also there's the paper "Fast and loose reasoning is morally correct" which shows that many CT things are applicable to Hask if you take some care |
| 15:42:14 | → | yauhsien joins (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) |
| 15:42:52 | <acode> | very interesting, thanks for the references |
| 15:42:57 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
| 15:43:35 | × | yauhsien quits (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 15:45:41 | × | SummerSonw quits (~The_viole@203.77.49.232) (Quit: Leaving) |
| 15:47:01 | × | zincy_ quits (~zincy@host86-151-99-97.range86-151.btcentralplus.com) (Remote host closed the connection) |
| 15:47:28 | → | Feuermagier joins (~Feuermagi@user/feuermagier) |
| 15:49:28 | → | yauhsien joins (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) |
| 15:50:09 | → | Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
| 15:52:10 | × | Feuermagier quits (~Feuermagi@user/feuermagier) (Ping timeout: 260 seconds) |
| 15:53:17 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 240 seconds) |
| 15:54:30 | × | yauhsien quits (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) (Ping timeout: 260 seconds) |
| 15:54:44 | → | son0p joins (~ff@181.136.122.143) |
| 15:56:39 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 15:57:22 | → | Feuermagier joins (~Feuermagi@user/feuermagier) |
| 15:57:28 | → | gaff joins (~gaff@49.207.207.53) |
| 15:57:36 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 15:58:18 | <lechner_> | Hi, my cabal.project.local specifies "ignore-project: False; compiler: ghc" Do I need it? Thanks! |
| 15:58:39 | × | Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection) |
| 15:59:14 | → | sprout joins (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) |
| 16:00:08 | × | ServerStatsDisco quits (~serversta@2001:470:69fc:105::1a) (Quit: You have been kicked for being idle) |
| 16:00:41 | → | Feuermagier joins (~Feuermagi@user/feuermagier) |
| 16:02:30 | × | Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection) |
| 16:04:25 | × | sprout quits (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) (Ping timeout: 268 seconds) |
| 16:06:11 | → | dyeplexer joins (~dyeplexer@user/dyeplexer) |
| 16:09:02 | × | _73 quits (~user@pool-108-49-252-36.bstnma.fios.verizon.net) (Remote host closed the connection) |
| 16:12:29 | ChanServ | sets mode +o litharge |
| 16:12:29 | litharge | sets mode -bo ralu!*@* litharge |
| 16:15:07 | × | fef quits (~thedawn@user/thedawn) (Quit: Leaving) |
| 16:15:54 | <lyxia> | How do I use an installed package with standalone invocations of ghc? I tried cabal install --lib first-class-families && ghc -package first-class-families and cabal seems to install things somewhere but ghc tells me it "cannot satisfy -package first-class-families" |
| 16:16:09 | <albet70> | is there binary package manager for ghc? |
| 16:16:22 | → | Pickchea joins (~private@user/pickchea) |
| 16:16:39 | <hpc> | albet70: does apt count? :P |
| 16:16:49 | → | sprout joins (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) |
| 16:16:50 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 16:17:28 | <albet70> | apt provide scotty? |
| 16:18:38 | <geekosaur> | lyxia, you may need to use --package-env (cabal) / -package-env (ghc) |
| 16:18:47 | <hpc> | maybe? |
| 16:18:52 | → | Feuermagier joins (~Feuermagi@user/feuermagier) |
| 16:19:02 | <hpc> | https://hackage.haskell.org/package/scotty doesn't list debian, but a few other distros have it packaged |
| 16:19:49 | <hpc> | is there a reason you can't cabal install it? |
| 16:20:16 | <geekosaur> | there's no binary package manager because too many things alter abis and ghc is critically dependent on the exact package abi for cross-module inlining |
| 16:20:27 | → | MoC joins (~moc@user/moc) |
| 16:21:11 | × | sprout quits (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) (Ping timeout: 245 seconds) |
| 16:21:15 | <albet70> | my VPS only has 1GB RAM |
| 16:22:39 | <hpc> | yeah that'll do it |
| 16:23:00 | <lyxia> | geekosaur: thanks, that works |
| 16:23:02 | <hpc> | although, maybe upgrade it? |
| 16:23:10 | <lyxia> | sounds like something I'm going to forget in a few months |
| 16:23:10 | <hpc> | 1 gig isn't even enough to install centos anymore |
| 16:23:22 | <albet70> | 1GB isn't enough to compile scotty |
| 16:23:32 | × | Feuermagier quits (~Feuermagi@user/feuermagier) (Ping timeout: 252 seconds) |
| 16:23:58 | → | euouae joins (~euouae@user/euouae) |
| 16:24:30 | → | Feuermagier joins (~Feuermagi@user/feuermagier) |
| 16:25:01 | <euouae> | Hello, I have a question about the reader monad and monads in general. From what I know, a monad is an endofunctor so M : C -> C, and then we have a return with type :: a -> M a. But how does this include the reader monad? https://en.wikipedia.org/wiki/Monad_(functional_programming)#Environment_monad |
| 16:25:21 | <euouae> | In the reader monad, there are two parameters for return; the value and the environment |
| 16:25:28 | <hpc> | albet70: build your webapp somewhere else and copy it over maybe? |
| 16:25:48 | <hpc> | with static linking you won't need scotty's libs on the vps at all |
| 16:26:11 | <euouae> | I'm noticing that there is the following remark under Notes, https://en.wikipedia.org/wiki/Monad_(functional_programming)#cite_note-4 which says in CT they're called "strong monads" instead? |
| 16:26:22 | <euouae> | is that the missing link? |
| 16:27:17 | <euouae> | Because again strong monads seem to involve a single category C and I don't understand how multiple parameters of different types are incorporated into the theory |
| 16:27:24 | <lyxia> | energizer: return :: a -> M a, if M a = (e -> a) then return :: a -> e -> a |
| 16:27:35 | <lyxia> | I'm not sure what's the confusion here |
| 16:27:44 | <lyxia> | euouae: ^ |
| 16:28:32 | × | Feuermagier quits (~Feuermagi@user/feuermagier) (Ping timeout: 240 seconds) |
| 16:28:53 | <euouae> | Oh, I didn't realize the hom functor is a monad! |
| 16:29:14 | <euouae> | but later on, with the state monad we have `type State s t = s -> (t, s)`. Isn't `State` the monad? |
| 16:29:32 | <lyxia> | `State s` |
| 16:29:44 | <euouae> | So `State s` is the monad? |
| 16:29:54 | <lyxia> | `State s` is a monad, yes. |
| 16:30:01 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 16:31:05 | <euouae> | That's because of how constructors curry? |
| 16:31:42 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 16:31:44 | <lyxia> | Can you define return :: a -> State s a ? bind :: State s a -> (a -> State s b) -> State s b ? Do they satisfy the monad laws? |
| 16:32:44 | <euouae> | I'm just not understanding how to see it as M : C -> C. What's the category here? |
| 16:33:12 | <lyxia> | Still the same category of types and functions |
| 16:33:14 | <euouae> | If you parametrize State by `s` then I understand that C is Hask, and that's the objects `t` runs over |
| 16:33:41 | <euouae> | But for `State` it looks more like C x C -> C |
| 16:34:01 | <lyxia> | That's why I was careful to say `State s` |
| 16:34:33 | <euouae> | The article states "From the category theory point of view, a state monad is derived from the adjunction between the product functor and the exponential functor, which exists in any cartesian closed category by definition. " |
| 16:34:44 | <euouae> | Are they talking about `State` or `State s` here? |
| 16:34:48 | <lyxia> | State s |
| 16:35:21 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 245 seconds) |
| 16:35:26 | <euouae> | " Due to the fact that functions on multiple free variables are common in programming, monads as described in this article are technically what category theorists would call strong monads." |
| 16:35:46 | <euouae> | Don't they mean `State` is a strong monad (with two parameters s and t)? |
| 16:35:54 | <lyxia> | It's the adjunction between `(s, ) : Type -> Type` and `(s -> ) : Type -> Type`, using Haskell's partially applied infix notation. |
| 16:36:11 | × | dyeplexer quits (~dyeplexer@user/dyeplexer) (Ping timeout: 245 seconds) |
| 16:36:40 | <euouae> | ah right. That's what product and exponential means since A -> B = B^A |
| 16:36:55 | <lyxia> | I think you should skip over any mention of strong monads because that's irrelevant for this question. |
| 16:37:33 | <euouae> | so when we talk about a monad M t1 t2 ... tn, we really mean that (M t1 t2 ... tn-1) is a monad? |
| 16:38:00 | <lyxia> | Like, table it for after you can reliably say what "M" is when you look at a new monad. |
| 16:38:32 | <lyxia> | Yeah that's usually the case |
| 16:38:57 | <lyxia> | When we say monads in Haskell we usually refer to monads on Hask |
| 16:39:34 | <lyxia> | That's exacly what the Monad class represents |
| 16:40:03 | <albet70> | what is Kleisli arrow? |
| 16:40:09 | <euouae> | got it, thank you lyxia |
| 16:40:11 | <lyxia> | sometimes monads in other categories are relevant, and hopefully it will be mentioned explicitly, but it's useful being careful regardless |
| 16:40:18 | → | Feuermagier joins (~Feuermagi@user/feuermagier) |
| 16:42:41 | × | Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection) |
| 16:42:59 | → | Feuermagier joins (~Feuermagi@user/feuermagier) |
| 16:45:13 | × | jtomas quits (~jtomas@153.red-83-53-252.dynamicip.rima-tde.net) (Remote host closed the connection) |
| 16:45:36 | → | jtomas joins (~jtomas@153.red-83-53-252.dynamicip.rima-tde.net) |
| 16:46:21 | × | Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection) |
| 16:47:18 | × | acode quits (~acode@dslb-092-077-045-168.092.077.pools.vodafone-ip.de) (Quit: Client closed) |
| 16:48:10 | → | Feuermagier joins (~Feuermagi@user/feuermagier) |
| 16:48:39 | → | pavonia joins (~user@user/siracusa) |
| 16:50:30 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 16:50:30 | × | Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection) |
| 16:50:45 | → | sprout joins (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) |
| 16:50:45 | → | slowButPresent joins (~slowButPr@user/slowbutpresent) |
| 16:50:46 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
| 16:50:47 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 16:51:54 | → | dyeplexer joins (~dyeplexer@user/dyeplexer) |
| 16:52:02 | <monochrom> | No, I don't talk about a monad "Maybe X". I talk about a monad "Maybe". |
| 16:52:40 | <monochrom> | Likewise, I don't talk about a function "f(x)". "f" is the function. |
| 16:54:19 | → | burnsidesLlama joins (~burnsides@dhcp168-013.wadham.ox.ac.uk) |
| 16:54:22 | <lyxia> | I believe in getting people to do more math and they will learn to police their language themselves. |
| 16:55:11 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 250 seconds) |
| 16:55:51 | × | sprout quits (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) (Ping timeout: 250 seconds) |
| 16:56:02 | → | Feuermagier joins (~Feuermagi@user/feuermagier) |
| 16:59:02 | <monochrom> | No, this is not about policing. And I have had students who have appreciated that my clarifications helped them unstick and move forward. |
| 16:59:46 | → | sprout joins (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) |
| 17:00:17 | <euouae> | monochrom, so you're saying that you'd say that `State s` is a monad, which clarifies what is a monad and what is the parameter. |
| 17:00:28 | <monochrom> | Yes. |
| 17:02:00 | <euouae> | unfortunately the paper I'm reading doesn't seem to follow that rule |
| 17:02:48 | <euouae> | Or, I have not read it as carefully as I should? But I do understand what the convention is now that you mention it |
| 17:03:33 | <euouae> | for example they call `M` a monad but then explain it is parametrized by some `t`, which I think is similar to `State` being parametrized by `s` |
| 17:06:54 | <monochrom> | Oh, I say "the State monad" all the time, too. But only when I'm casually and to people who have already known. To beginners, I place consistency at a high priority. |
| 17:08:44 | × | Jing quits (~hedgehog@2604:a840:3::1013) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 17:09:22 | <euouae> | yeah there's some in-the-know thing going on but I'm trying to break through :P thank you for the help |
| 17:10:24 | <lyxia> | monochrom: that's a fair point! |
| 17:12:18 | → | econo joins (uid147250@user/econo) |
| 17:13:37 | × | n3rdy1 quits (~n3rdy1@2601:646:c300:f20:d852:3bde:2197:ddf9) (Ping timeout: 240 seconds) |
| 17:16:31 | × | nrl^ quits (~nrl@207.5.21.20) (Ping timeout: 256 seconds) |
| 17:20:46 | → | Jing joins (~hedgehog@2604:a840:3::1013) |
| 17:23:11 | <euouae> | lyxia that statement that (-> e) is a monad was quite tricky actually |
| 17:23:19 | <euouae> | or sorry, (a ->) |
| 17:29:26 | → | Midjak joins (~Midjak@may53-1-78-226-116-92.fbx.proxad.net) |
| 17:32:04 | → | nrl^ joins (~nrl@207.5.21.20) |
| 17:33:59 | → | _73 joins (~user@pool-108-49-252-36.bstnma.fios.verizon.net) |
| 17:34:50 | × | sprout quits (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) (Ping timeout: 260 seconds) |
| 17:38:49 | → | eflister joins (~eflister@2601:1c0:5501:c150:19dd:dfde:ec02:aa1) |
| 17:39:51 | → | hexology joins (~hexology@user/hexology) |
| 17:42:28 | × | gaff quits (~gaff@49.207.207.53) (Remote host closed the connection) |
| 17:45:20 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:46:13 | → | sprout joins (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) |
| 17:48:25 | × | perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4) |
| 17:49:10 | × | nrl^ quits (~nrl@207.5.21.20) (Remote host closed the connection) |
| 17:50:39 | × | sprout quits (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) (Ping timeout: 250 seconds) |
| 17:53:09 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 17:53:34 | <sirlensalot> | Anybody have an idea how to use lens to traverse/fold a rank-2 list to "take" or "drop" from it? E.g., given [[1::Int,2,3],[4,5]], I'd like a `take 4` operation that results in `[[1,2,3],[4]]` |
| 17:54:00 | <sirlensalot> | I have an operational solution but I was hoping there'd be some IndexedTraversal magic |
| 17:58:26 | × | mbuf quits (~Shakthi@223.184.115.117) (Quit: Leaving) |
| 17:58:54 | <Taneb> | I'm not aware of any lensy magic that lets you do that |
| 18:01:27 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 18:01:53 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 18:03:03 | → | sprout joins (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) |
| 18:05:38 | × | Jing quits (~hedgehog@2604:a840:3::1013) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 18:07:25 | × | sprout quits (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) (Ping timeout: 240 seconds) |
| 18:09:04 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 18:09:43 | <xerox> | as for not lensy if you write a take variant that also tells you how much it took it's pretty straightforward |
| 18:10:52 | → | Keriel joins (~Keriel@bras-base-toroon474qw-grc-71-184-145-2-133.dsl.bell.ca) |
| 18:13:06 | → | yauhsien joins (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) |
| 18:14:05 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 18:14:38 | × | johnw quits (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Quit: ZNC - http://znc.in) |
| 18:17:17 | × | yauhsien quits (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
| 18:18:53 | → | lavaman joins (~lavaman@98.38.249.169) |
| 18:19:01 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 18:19:01 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 18:19:01 | → | wroathe joins (~wroathe@user/wroathe) |
| 18:19:45 | → | sprout joins (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) |
| 18:22:17 | → | Pickchea joins (~private@user/pickchea) |
| 18:22:54 | <Keriel> | hi, I'm going through HPPFP at the moment and having trouble with the exercises at the end of ch 10 that want you to write a bunch of point-free folds. a lot of them have been ugly enough I think I'm doing something wrong, e.g. myElemF = flip foldr False . ((||) .) . (==) - but also I don't see how to do filter at all. |
| 18:23:22 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 260 seconds) |
| 18:23:25 | <Keriel> | I wanted to start with something like - flip foldr [] . bool (:) (flip const) . magic - but I need to somehow apply the test function to the list element and still have a copy of the list element to cons if needed, which I don't see how to do. |
| 18:23:57 | × | sprout quits (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) (Ping timeout: 240 seconds) |
| 18:26:47 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
| 18:27:24 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 18:27:24 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 18:27:24 | → | wroathe joins (~wroathe@user/wroathe) |
| 18:30:14 | <euouae> | Keriel what do you mean by point-free style? So you want filter = expr, with no arguments involved, right? |
| 18:30:45 | × | dyeplexer quits (~dyeplexer@user/dyeplexer) (Ping timeout: 256 seconds) |
| 18:30:50 | × | cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Ping timeout: 260 seconds) |
| 18:31:25 | <euouae> | wouldn't it be enough to write it pointful and then work from there to make it pointfree? |
| 18:32:16 | → | perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
| 18:33:01 | <monochrom> | filter will be a direct foldr, rather than a flip foldr. |
| 18:34:15 | <monochrom> | In this case, the hard part is the pointfree form of what you give to foldr. |
| 18:35:11 | <monochrom> | In this case, I wouldn't bother. |
| 18:36:39 | <monochrom> | Some pointfree forms elucidate new perspectives, new structures, new beauty. |
| 18:36:44 | <monochrom> | This is not one of them. |
| 18:36:59 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
| 18:39:12 | × | euouae quits (~euouae@user/euouae) (Quit: ) |
| 18:41:16 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 18:43:29 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 18:43:29 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 18:43:29 | → | wroathe joins (~wroathe@user/wroathe) |
| 18:45:48 | <justsomeguy> | Heh, I guess I did all of those exercises wrong. |
| 18:45:59 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds) |
| 18:46:41 | × | jtomas quits (~jtomas@153.red-83-53-252.dynamicip.rima-tde.net) (Remote host closed the connection) |
| 18:47:26 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 18:50:05 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.3) |
| 18:50:24 | × | eflister quits (~eflister@2601:1c0:5501:c150:19dd:dfde:ec02:aa1) (Quit: Client closed) |
| 18:50:59 | <Keriel> | euouae: yeah. filter = expr, where expr also does not contain any lambdas (the latter being the hard part) |
| 18:51:32 | <Keriel> | monochrom: hm, not flip? don't you need to flip since you don't know what the function is yet but you know what the base case is? or am I misunderstanding when you use flip? (but if you think it's not worth doing that's reasonable too) |
| 18:52:11 | <monochrom> | How does flip have to do with base cases? |
| 18:52:36 | <tomsmeding> | > (\p -> foldr (\x r -> if p x then x : r else r) []) (>3) [1..6] |
| 18:52:38 | <lambdabot> | [4,5,6] |
| 18:52:39 | <monochrom> | Every recursion has base cases. Are you saying therefore all recursive functions must use flip? |
| 18:52:52 | <tomsmeding> | @pl \p -> foldr (\x r -> if p x then x : r else r) [] |
| 18:52:52 | <lambdabot> | flip foldr [] . flip flip id . (ap .) . (`ap` (:)) . (((.) . if') .) |
| 18:53:16 | × | perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4) |
| 18:53:17 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 18:53:28 | <Keriel> | I'm not sure what ap is? |
| 18:53:37 | <tomsmeding> | Good :p |
| 18:54:02 | <tomsmeding> | It's <*>, but that knowledge is probably not helpful to you |
| 18:54:18 | <tomsmeding> | Are you very sure they're asking to make filter without any lambdas anywhere? |
| 18:54:33 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 256 seconds) |
| 18:54:37 | <tomsmeding> | Because that's, well, that, and that is as monochrom not giving any insight |
| 18:54:41 | <Keriel> | only in that someone elsewhere told me to use <*> earlier, so now I know I've gotten the same suggestion twice :P |
| 18:55:09 | → | sprout joins (~quassel@2a02:a467:ccd6:1:9ce9:17f7:15aa:852c) |
| 18:55:24 | <Keriel> | the example at the start of the exercise set starts with the comment "-- fold, both myAnd and the folding function are point-free now" |
| 18:55:27 | <EvanR> | if you're trying to "golf" your arguments down to zero <*> is one of those things that can contribute |
| 18:55:40 | <Keriel> | which I think makes it clear they don't want me to use lambdas in the folding function |
| 18:55:47 | <tomsmeding> | Ah right |
| 18:55:54 | <EvanR> | (f <*> g) x = f x (g x) |
| 18:55:57 | <Keriel> | but it might be one of those exercise where they want you to realize you can't do it with the tools you have and move on |
| 18:56:05 | <EvanR> | (for instance) |
| 18:56:08 | <tomsmeding> | So you want 'filter p = foldr _ []' for some _ |
| 18:56:27 | <tomsmeding> | The above was 'filter = _' |
| 18:56:28 | <Keriel> | well, that's not pointfree , right? |
| 18:56:29 | <EvanR> | wait that's monads |
| 18:57:21 | <tomsmeding> | Keriel: ... I guess, indeed |
| 18:57:58 | <tomsmeding> | I mean, you're going to need a conditional somehow: you need to call the predicate on list elements to decide whether to include the element or not |
| 18:58:13 | <tomsmeding> | And Prelude doesn't have a pointfree conditional |
| 18:58:18 | <monochrom> | Some of us accept "map f = foldr ..." as pointfree. It is good enough to get rid of "xs". |
| 18:58:34 | <Keriel> | they've shown us bool in an earlier chapter so I was using that |
| 18:58:40 | <tomsmeding> | Lambdabot sneakily used if', assuming that's defined as if' a b c = if a then b else c |
| 18:58:46 | <tomsmeding> | Ah yeah that's bool |
| 18:58:49 | → | eflister joins (~eflister@2601:1c0:5501:c150:e86d:7316:8592:8dd3) |
| 18:59:08 | <tomsmeding> | I have a suspicion that the book had monochrom's version in mind |
| 18:59:10 | <Keriel> | also, monochrom: the reason I thought you had to use flip foldr was just that you know what the second argument to foldr will be - [] - before taking any of the arguments to filter, but not the first one? |
| 18:59:28 | <Keriel> | but yeah. it seems like there isn't a real solution with what they've shown me so I should try to write it as filter f = ... |
| 18:59:34 | <lechner_> | Hi, why does this module explicty import Prelude, please? https://github.com/nikita-volkov/hasql#short-example |
| 18:59:36 | <tomsmeding> | Keriel: the @pl output started with 'flip foldr []' for precisely that reason |
| 18:59:51 | → | ProfSimm joins (~ProfSimm@87.227.196.109) |
| 19:00:09 | <tomsmeding> | @pl \x r -> if p x then x : r else r |
| 19:00:09 | <lambdabot> | join . ap ((.) . if' . p) (:) |
| 19:00:13 | <tomsmeding> | Meh |
| 19:00:27 | <Keriel> | right, I've been doing flip foldr for a lot of these, I was replying to monochrom asking what flip has to do with base cases |
| 19:00:37 | <tomsmeding> | :t flip |
| 19:00:38 | <lambdabot> | (a -> b -> c) -> b -> a -> c |
| 19:00:50 | <tomsmeding> | Flip just flips the arguments of a function |
| 19:00:51 | <monochrom> | Generally when an argument is mentioned twice, it's already a nightmare. Here we have two arguments, both mentioned twice. |
| 19:01:02 | <Keriel> | yeah I'm... not even immediately sure if I can do filter f = ... |
| 19:01:36 | <Keriel> | they also want maximumBy and minimumBy which seem impossible for the same reason |
| 19:02:01 | <monochrom> | I think those are easier and nicer. |
| 19:02:04 | <tomsmeding> | :t let bool a b c = if a then b else c in \p -> foldr (join . ap ((.) . bool . p) (:)) -- this is the @pl output, but it's completely unreadable |
| 19:02:05 | <lambdabot> | Foldable t => (a -> Bool) -> [a] -> t a -> [a] |
| 19:02:35 | <Keriel> | I'll take a look at those then. are you thinking of maximumBy = _ or maximumBy f = _? |
| 19:02:45 | <monochrom> | Yes. |
| 19:03:11 | <monochrom> | Err, "maximumBy f = _". |
| 19:03:32 | <Keriel> | hmm I guess I have to use head here? |
| 19:04:10 | <Keriel> | or at least, I don't think the book has introduced foldr1 so I'm probably not meant to use it |
| 19:04:12 | <monochrom> | Consider foldl1 or foldr1. |
| 19:04:27 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:05:09 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 19:05:36 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 19:08:44 | <Keriel> | well. the normal version would be myMaximumBy f = foldr1 (\x y -> bool y x (f x y == GT)) - also using foldr1 because yeah I can't see how to do it without that or ugly head stuff |
| 19:09:34 | <Keriel> | but this seems to need something like the ap stuff being discussed above? I can do 'flip bool' to get the correct 'conditional', but then I no longer have x and y left to use for the comparison test. if that makes sense. |
| 19:09:45 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 19:10:40 | <monochrom> | Ah, that's difficult, yeah. |
| 19:11:04 | × | coot quits (~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot) |
| 19:11:49 | → | coot joins (~coot@89-64-85-93.dynamic.chello.pl) |
| 19:12:11 | <Keriel> | I think I'm just going to assume I'm supposed to treat these as impossible to write pointfree and come back to it when I learn more tools |
| 19:12:26 | <Keriel> | thanks for the help though ^^ |
| 19:15:49 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 19:18:53 | <lechner_> | Hi, in a pinch is there a way, please, to makel libraries accessible to runhaskell without a local cabal file? |
| 19:19:37 | <lechner_> | cabal install hasql says " Cannot build the executables" |
| 19:19:51 | <monochrom> | No, but we know ways of "cabal run" and "cabal repl" |
| 19:21:28 | × | drewolson quits (~drewolson@user/drewolson) (Quit: The Lounge - https://thelounge.chat) |
| 19:21:39 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
| 19:22:00 | <lechner_> | should i use cabal repl instead? |
| 19:22:04 | → | drewolson joins (~drewolson@user/drewolson) |
| 19:22:14 | <EvanR> | if you really can't figure out how to write something point free, consider how anyone's supposed to read it later xD |
| 19:22:20 | → | perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
| 19:22:36 | <monochrom> | I read it by putting the points back. |
| 19:23:08 | <monochrom> | I mean in the ugly cases, of course. |
| 19:23:11 | × | deadmarshal quits (~deadmarsh@95.38.119.182) (Ping timeout: 250 seconds) |
| 19:23:21 | → | zincy_ joins (~zincy@host86-151-99-97.range86-151.btcentralplus.com) |
| 19:23:46 | <EvanR> | a combination of bool and (==GT) is screaming case analysis to me |
| 19:24:13 | <monochrom> | "interact (unlines . map (show . solve . read) . lines)" is best read without putting the points back. It's a nice one. |
| 19:24:56 | × | drewolson quits (~drewolson@user/drewolson) (Client Quit) |
| 19:25:05 | → | drewolson joins (~drewolson@user/drewolson) |
| 19:25:27 | × | max22- quits (~maxime@2a01cb0883359800a99596770101e95e.ipv6.abo.wanadoo.fr) (Ping timeout: 268 seconds) |
| 19:26:37 | × | Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 240 seconds) |
| 19:26:43 | <EvanR> | \x y -> case f x y of GT -> y; _ -> x |
| 19:27:14 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 19:27:25 | × | coot quits (~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot) |
| 19:29:59 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 19:30:07 | <lechner_> | Hi, rel8 requires base ^>=4.14 but Debian's ghc 8.8.4 only comes with base 4.13 (constraint from non-upgradeable package requires installed instance). can i upgrade ghc via cabal, too? |
| 19:32:09 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:32:18 | × | coolnickname quits (uid531864@user/coolnickname) (Quit: Connection closed for inactivity) |
| 19:32:43 | <c_wraith> | lechner_: you're best off completely uninstalling debian's ghc distribution and using ghcup to manage your installed ghc versions |
| 19:34:00 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 19:34:52 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.4) |
| 19:35:13 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 19:36:15 | <lechner_> | c_wraith: thanks! |
| 19:37:18 | → | otherwise joins (~otherwise@2601:602:880:90f0:4406:752c:ba78:a481) |
| 19:48:23 | → | califax joins (~califax@user/califx) |
| 19:51:07 | → | kjak joins (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) |
| 19:53:23 | → | JimL joins (~quassel@89-162-2-132.fiber.signal.no) |
| 19:54:59 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 19:54:59 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.4) |
| 19:55:15 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 19:58:41 | × | shapr quits (~user@pool-108-28-144-11.washdc.fios.verizon.net) (Ping timeout: 245 seconds) |
| 19:59:47 | → | max22- joins (~maxime@2a01cb0883359800767a96b77d5018f7.ipv6.abo.wanadoo.fr) |
| 20:00:20 | → | xb0o2 joins (~xb0o2@user/xb0o2) |
| 20:06:45 | → | juhp joins (~juhp@128.106.188.82) |
| 20:06:57 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
| 20:08:04 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 20:08:32 | → | coot joins (~coot@89-64-85-93.dynamic.chello.pl) |
| 20:09:55 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
| 20:10:33 | × | zincy_ quits (~zincy@host86-151-99-97.range86-151.btcentralplus.com) (Remote host closed the connection) |
| 20:10:35 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 20:10:35 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 20:10:35 | → | wroathe joins (~wroathe@user/wroathe) |
| 20:18:08 | → | simendsjo joins (~user@host.62.119.30.141.bitcom.se) |
| 20:20:07 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
| 20:20:55 | × | otherwise quits (~otherwise@2601:602:880:90f0:4406:752c:ba78:a481) (Remote host closed the connection) |
| 20:23:28 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 20:23:28 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 20:23:28 | → | wroathe joins (~wroathe@user/wroathe) |
| 20:24:44 | <lechner_> | Hi, is it possible, in hasql, to use a more general connection string (for pg_service) or do i have to specify all the parameters with this separately? I can't figure out how to turn a strict bytestring into the "type Settings = ByteString" declared here https://hackage.haskell.org/package/hasql-1.4.5.3/docs/Hasql-Connection.html |
| 20:26:57 | × | simendsjo quits (~user@host.62.119.30.141.bitcom.se) (Remote host closed the connection) |
| 20:27:57 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
| 20:28:18 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 20:29:09 | → | Pickchea joins (~private@user/pickchea) |
| 20:30:17 | → | simendsjo joins (~user@host.62.119.30.141.bitcom.se) |
| 20:30:37 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 20:30:37 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 20:30:37 | → | wroathe joins (~wroathe@user/wroathe) |
| 20:32:01 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 20:32:06 | <lechner_> | never mind, it worked! |
| 20:33:34 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 20:33:55 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Remote host closed the connection) |
| 20:35:29 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 20:35:44 | → | nschoe joins (~quassel@2a01:e0a:8e:a190:9f8d:fdc0:8a25:3c46) |
| 20:35:44 | × | nschoe quits (~quassel@2a01:e0a:8e:a190:9f8d:fdc0:8a25:3c46) (Client Quit) |
| 20:35:52 | → | cosimone joins (~user@93-34-132-88.ip49.fastwebnet.it) |
| 20:35:54 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 20:37:30 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 20:37:56 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 20:39:32 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 20:39:58 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 20:41:33 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 20:41:59 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 20:42:04 | → | euouae joins (~euouae@user/euouae) |
| 20:42:09 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.3) |
| 20:42:19 | <euouae> | Hello, what part of the monad definition makes monads appropriate for effectful computations? |
| 20:43:09 | <int-e> | :t (>>=) |
| 20:43:09 | <lambdabot> | Monad m => m a -> (a -> m b) -> m b |
| 20:43:32 | <euouae> | is it the associativity of the join operator? |
| 20:43:34 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 20:43:45 | <euouae> | is join "running" the effects? |
| 20:44:00 | <int-e> | this gives a nice way of sequencing effects one after another (where "sequencing" is really more syntactical than about the actual effects) |
| 20:44:01 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 20:44:07 | <int-e> | @src (>>=) |
| 20:44:07 | <lambdabot> | Source not found. I am sorry. |
| 20:44:14 | <int-e> | (just checking) |
| 20:44:16 | <Rembane> | The runtime system takes care of executing the effects in IO. |
| 20:44:22 | <Rembane> | IIRC |
| 20:44:24 | <euouae> | How do you read that type and understand sequencing? |
| 20:44:38 | <euouae> | what is an effect? |
| 20:44:51 | <int-e> | :t join -- yes, join also sequences two effects; f >>= g = join (g <$> f) after all |
| 20:44:52 | <lambdabot> | Monad m => m (m a) -> m a |
| 20:45:01 | <euouae> | I guess `a -> m b` is a computation with an effect, right? |
| 20:45:18 | <int-e> | what kind of "effect" you have depends on the monad |
| 20:45:21 | <Rembane> | It doesn't have to. Take a look at Data.Maybe. |
| 20:45:22 | <euouae> | and we already have an effect `m a`, so we can continue the chain of computation. |
| 20:45:35 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 20:45:47 | <euouae> | Rembane Oh yes, I do understand that. I'm just trying to understand that 1) a functor 2) the coherence laws -- why is /that/ the right tool for effects |
| 20:46:00 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 20:46:11 | <int-e> | IO is basically the only one with a *real* effect (launching missiles etc) |
| 20:47:15 | <dsal> | You can think of ST as closer to State than IO and have a similar mental model. Might be a good bridge. |
| 20:47:35 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 20:47:50 | <dsal> | IO has no constrained effects, where State allows you to make arbitrary changes to a specific value. The ordering of those effects is important. |
| 20:47:52 | <monochrom> | Mathematicians study monads in terms of join. But join is not very relatable to programmers. >>= is most relatable, Kleisli arrow is not bad either. |
| 20:48:01 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 20:48:03 | × | simendsjo quits (~user@host.62.119.30.141.bitcom.se) (Remote host closed the connection) |
| 20:48:27 | <int-e> | euouae: monads weren't made for effects... I think people studying effects noticed that they have a monadic structure. |
| 20:49:13 | <int-e> | euouae: Which makes that kind of question fruitless (at least to my mind) because it's putting the cart before the horse. |
| 20:49:34 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 20:49:48 | <euouae> | perhaps my confusion is as to what is a formal definition for an effect |
| 20:49:59 | <monochrom> | Heh we have none. |
| 20:50:00 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 20:50:32 | × | nhatanh02 quits (~satori@123.24.172.30) (Ping timeout: 240 seconds) |
| 20:50:49 | <euouae> | see, if I were any less wiser, I'd still be confused. But nay, I am now not confused anymore! |
| 20:51:11 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:51:35 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 20:51:50 | <monochrom> | BTW I know of a philosopher who opposes having a rigorous definition of "life" for its potential in stagnating biology. Part of the fun of biology is to leave it open so you can always challenge or expand the scope. |
| 20:52:00 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 20:52:17 | × | kjak quits (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
| 20:52:19 | <Rembane> | euouae: here, have loads of examples: https://homepages.inf.ed.ac.uk/wadler/papers/marktoberdorf/baastad.pdf |
| 20:52:21 | <monochrom> | And so I think it is a good thing we don't draw a hard line around "effect" either. |
| 20:53:16 | <euouae> | Rembane nice, thank you! |
| 20:53:21 | <Rembane> | euouae: No worries. :) |
| 20:53:36 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 20:53:55 | <int-e> | > [1,2,3] >>= \x -> [x..x*2] -- exercise, or possibly a topic for debate: what's the effect here? |
| 20:53:57 | <lambdabot> | [1,2,2,3,4,3,4,5,6] |
| 20:54:03 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 20:54:10 | <Rembane> | monochrom: OTOH, we can draw a fuzzy line around the effect idea and put the data type IO on it. |
| 20:54:25 | <int-e> | (the stock answer is "nondeterminism") |
| 20:54:35 | <EvanR> | euouae, you go through many examples of effects and then maybe or maybe not you know what an effect is |
| 20:55:07 | <monochrom> | Well yeah same for "data structure". We do have a consensus on a larger class of examples and a large class of counterexamples for both. |
| 20:55:25 | <monochrom> | Same for "car", really. |
| 20:55:36 | <EvanR> | examples often given first, modifying a state in a stateful computation, using an RNG (same thing really), throwing an exception to stop a computation early, outputting to a log during the computation |
| 20:55:38 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 20:55:43 | <int-e> | monochrom: contents of address register? |
| 20:55:52 | <monochrom> | haha |
| 20:55:59 | <monochrom> | That's a data structure! |
| 20:56:08 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 20:56:30 | <dsal> | Is "Reader monad" considered related to effects? That makes things blurry for me. |
| 20:56:41 | <EvanR> | later on people start messing with you calling "non-termination" an effect, also CPS |
| 20:57:42 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 20:57:58 | <int-e> | dsal: it's the effect of living in an unchanging environment (or maybe a museum: you can look, but not touch) |
| 20:58:07 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 20:58:14 | <int-e> | (I'm not very serious about this) |
| 20:58:18 | <EvanR> | that doesn't seem like a proper effect xD |
| 20:58:25 | <EvanR> | it's a lack of effect |
| 20:58:39 | <Rembane> | You can change it, but only one monter at the time, and when you leave scope it is restored. |
| 20:58:57 | <monochrom> | If the answer depends on a hidden datum, that is a little bit effectful. |
| 20:58:57 | <EvanR> | that's a weird feature of Reader specifically |
| 20:59:33 | <int-e> | reader is fairly useless... except that it allows you to use generic monadic functions; it's a bit more useful as a transformer |
| 20:59:41 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 21:00:05 | <monochrom> | :( |
| 21:00:12 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 21:00:23 | <monochrom> | The hom functor is used all over the place! |
| 21:00:24 | <int-e> | (but again for interacting well with monadic library interfaces, not for having an actual effect) |
| 21:00:33 | <monochrom> | OK, but only as a functor, seldom as a monad. |
| 21:01:05 | <int-e> | monochrom: that sounds suspiciously like category theory :P |
| 21:01:40 | <Rembane> | When is Reader useful and why? I haven't run into a use for it yet so the question is honest. |
| 21:01:47 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 21:02:13 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 21:02:25 | <euouae> | code security? |
| 21:02:29 | → | simendsjo joins (~user@host.62.119.30.141.bitcom.se) |
| 21:02:45 | → | nhatanh02 joins (~satori@123.24.172.30) |
| 21:02:53 | <euouae> | if the type is Reader as opposed to Writer you know what the priviledges are just by looking at the type, useful for code review |
| 21:03:08 | <euouae> | in some scenario, I could imagine that being helpful I suppose |
| 21:03:46 | <monochrom> | The Yoneda lemma states that (∀x. Reader E -> F x) is in bijection with F E, and the bijection is natural in both E and F. |
| 21:03:47 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 21:04:06 | <monochrom> | err, (∀x. Reader E x -> F x) |
| 21:04:15 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 21:04:39 | <monochrom> | Aka the collection of natural transformations from Reader E to F. |
| 21:04:48 | → | kjak joins (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) |
| 21:05:30 | <EvanR> | euouae, that would be true if local wasn't in the Reader API |
| 21:05:47 | <EvanR> | so it's basically the same as using a function argument |
| 21:05:47 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 21:06:11 | × | _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
| 21:06:14 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 21:06:33 | <EvanR> | so is ReaderT |
| 21:07:02 | <int-e> | The practical utility I've gotten out of ReaderT (the transformer) is that when I write code in mtl style... so newtype App a = App { runApp: WriterT w IO a } deriving (Monad) and then realize that I need to carry a configuration as well (from command line options), then I can add a ReaderT Config into the stack and most of the existing code that doesn't care about the configuration will... |
| 21:07:08 | <int-e> | ...continue to work. |
| 21:07:49 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 21:07:54 | × | simendsjo quits (~user@host.62.119.30.141.bitcom.se) (Remote host closed the connection) |
| 21:08:15 | <EvanR> | if the code is already monadic style yeah |
| 21:08:17 | → | kjak_ joins (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) |
| 21:08:19 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 21:08:26 | <EvanR> | er, do notation |
| 21:08:40 | <Rembane> | int-e: That's very useful. I'm usually using StateT for that, but I'm not coding Haskell in a hm... production setting so I can change things very carelessly. |
| 21:08:43 | <int-e> | EvanR: yeah. also having that newtype is quite important |
| 21:08:55 | <int-e> | because that's how you abstract from the inner stack |
| 21:09:33 | <int-e> | Which is why I wrote "mtl style"; it's really a particular coding style and you only benefit from ReaderT in this way when you're using it. |
| 21:09:54 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 21:10:00 | ← | op_4 parts (~op_4@user/op-4/x-9116473) (leaving) |
| 21:10:12 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 21:10:17 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 21:10:28 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 21:11:44 | <int-e> | @pl \f g x -> f x (g x) |
| 21:11:44 | <lambdabot> | ap |
| 21:11:53 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 21:12:02 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 21:12:10 | <int-e> | there's also this pointless use of the (->) r reader monad |
| 21:12:21 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 21:12:35 | <int-e> | Which I guess monochrom meant earlier. It's occasionally useful. |
| 21:12:50 | <int-e> | > sequence [succ, pred] 1 |
| 21:12:52 | <lambdabot> | [2,0] |
| 21:12:57 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 21:13:04 | <int-e> | > map ($ 1) [succ, pred] |
| 21:13:05 | <lambdabot> | [2,0] |
| 21:13:56 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 21:14:22 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 21:15:05 | → | yauhsien joins (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) |
| 21:15:48 | <Rembane> | int-e: That's neat! |
| 21:15:58 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 21:16:23 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 21:18:00 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 21:18:04 | <monochrom> | Functor-Man: Hom Functing. Functor-Man: Far from Hom. Functor-Man: No Way Hom. |
| 21:18:11 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 21:18:25 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 21:20:00 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 21:20:11 | × | yauhsien quits (~yauhsien@61-231-19-17.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
| 21:20:17 | × | ymherklotz quits (~ymherklot@139.59.166.119) (Ping timeout: 240 seconds) |
| 21:20:27 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 21:22:02 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 21:22:24 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 21:23:59 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 21:24:12 | → | falafel joins (~falafel@2603-8000-d800-688c-6db4-c125-f693-41cb.res6.spectrum.com) |
| 21:24:26 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 21:24:42 | → | falafel_ joins (~falafel@2603-8000-d800-688c-587d-3efc-bc6e-2970.res6.spectrum.com) |
| 21:25:36 | <EvanR> | is venom somehow contravariant functor man |
| 21:26:02 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 21:26:26 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 21:26:43 | <monochrom> | :) |
| 21:27:21 | → | acidjnk joins (~acidjnk@pd9e0bdc0.dip0.t-ipconnect.de) |
| 21:27:21 | → | acidjnk_new joins (~acidjnk@pd9e0bdc0.dip0.t-ipconnect.de) |
| 21:28:01 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 21:28:17 | × | falafel quits (~falafel@2603-8000-d800-688c-6db4-c125-f693-41cb.res6.spectrum.com) (Ping timeout: 240 seconds) |
| 21:28:28 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 21:29:01 | × | Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 240 seconds) |
| 21:30:04 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 21:30:30 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 21:31:17 | × | MoC quits (~moc@user/moc) (Quit: Konversation terminated!) |
| 21:32:07 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 21:32:32 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 21:34:06 | <lechner_> | c_wraith: i built ghc for 8.10.7 for Debian bullseye and could make it available, if anyone needs it |
| 21:34:07 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 21:34:33 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 21:36:09 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 21:36:34 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 21:37:17 | × | falafel_ quits (~falafel@2603-8000-d800-688c-587d-3efc-bc6e-2970.res6.spectrum.com) (Ping timeout: 240 seconds) |
| 21:38:08 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 21:38:13 | <lechner_> | Hi, why does cabal force me to bump a prerequisite declaration on base to the installed version 4.14, please? What does the 'greater than' mean? http://paste.debian.net/1225513/ |
| 21:38:33 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 21:39:41 | × | euouae quits (~euouae@user/euouae) (Quit: ) |
| 21:40:08 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 21:40:17 | <sclv> | lechner_: the package you're trying to build has declared that it requires base ^>= 4.13.0.0 |
| 21:40:34 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 21:40:42 | <sclv> | the carrot greater eaql means it requires base be somewhere between 4.13 and 4.14 but no higher |
| 21:40:53 | <lechner_> | i see! |
| 21:41:06 | <lechner_> | it always helps to know the docs |
| 21:41:20 | <lechner_> | sorry i am a newbie, and hyperctive too |
| 21:42:10 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 21:42:36 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 21:44:10 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 21:44:17 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
| 21:44:30 | <lechner_> | sclv: sometimes i also forget to say, thank you! |
| 21:44:34 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 21:44:54 | × | xkuru quits (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
| 21:45:05 | <sclv> | no prob |
| 21:46:06 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 21:46:39 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 21:47:19 | → | falafel_ joins (~falafel@2603-8000-d800-688c-587d-3efc-bc6e-2970.res6.spectrum.com) |
| 21:48:05 | → | falafel__ joins (~falafel@2603-8000-d800-688c-c064-54e6-9a05-e359.res6.spectrum.com) |
| 21:48:14 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 21:48:44 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 21:50:19 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 21:50:51 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 21:51:49 | × | falafel_ quits (~falafel@2603-8000-d800-688c-587d-3efc-bc6e-2970.res6.spectrum.com) (Ping timeout: 240 seconds) |
| 21:52:24 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 21:52:26 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 21:52:43 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 21:52:43 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 21:52:43 | → | wroathe joins (~wroathe@user/wroathe) |
| 21:52:52 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 21:54:27 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 21:54:54 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 21:55:57 | × | x88x88x quits (~x88x88x@149.28.53.172) (Remote host closed the connection) |
| 21:56:28 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 21:56:43 | → | x88x88x joins (~x88x88x@2001:19f0:5:39a8:5400:3ff:feb6:73cb) |
| 21:56:52 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 21:57:01 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 245 seconds) |
| 21:58:25 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 21:58:51 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 22:00:26 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 22:00:53 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 22:02:28 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 22:02:55 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 22:04:30 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 22:04:56 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 22:05:18 | → | deadmarshal joins (~deadmarsh@95.38.115.228) |
| 22:05:46 | → | lavaman joins (~lavaman@98.38.249.169) |
| 22:06:31 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 22:06:56 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 22:08:32 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 22:09:02 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 22:09:37 | × | deadmarshal quits (~deadmarsh@95.38.115.228) (Ping timeout: 240 seconds) |
| 22:10:37 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 22:11:08 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 22:11:57 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 22:12:30 | → | jgeerds joins (~jgeerds@55d4ac73.access.ecotel.net) |
| 22:12:41 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 22:12:53 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 22:13:07 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 22:14:41 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 22:15:10 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 22:16:43 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 22:17:10 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 22:18:43 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 22:19:11 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 22:20:17 | × | falafel__ quits (~falafel@2603-8000-d800-688c-c064-54e6-9a05-e359.res6.spectrum.com) (Remote host closed the connection) |
| 22:20:32 | → | falafel__ joins (~falafel@2603-8000-d800-688c-c064-54e6-9a05-e359.res6.spectrum.com) |
| 22:20:46 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 22:21:11 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 22:22:46 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 22:23:12 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 22:24:47 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 22:25:12 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 22:25:30 | × | werneta_ quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 268 seconds) |
| 22:26:48 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 22:26:53 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 22:27:15 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 22:27:17 | × | pieguy128 quits (~pieguy128@bras-base-mtrlpq5031w-grc-48-67-70-102-17.dsl.bell.ca) (Quit: ZNC 1.8.2 - https://znc.in) |
| 22:28:50 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 22:29:21 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 22:30:57 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 22:31:01 | × | zer0bitz quits (~zer0bitz@196.244.192.57) (Ping timeout: 256 seconds) |
| 22:31:23 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 22:32:57 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 22:33:24 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 22:33:25 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 22:34:10 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:34:58 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 22:35:29 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 22:35:32 | × | falafel__ quits (~falafel@2603-8000-d800-688c-c064-54e6-9a05-e359.res6.spectrum.com) (Ping timeout: 240 seconds) |
| 22:37:04 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 22:37:34 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 22:38:01 | → | pieguy128 joins (~pieguy128@bras-base-mtrlpq5031w-grc-48-67-70-102-17.dsl.bell.ca) |
| 22:38:11 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 22:39:09 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 22:39:36 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 22:41:12 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 22:41:41 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 22:42:01 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 22:43:15 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 22:43:42 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 22:43:46 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 22:45:23 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 22:45:49 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 22:47:26 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 22:47:53 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 22:48:20 | × | nhatanh02 quits (~satori@123.24.172.30) (Ping timeout: 268 seconds) |
| 22:49:27 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 22:49:56 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 22:51:30 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 22:51:53 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 22:52:18 | → | benin joins (~benin@183.82.178.161) |
| 22:53:29 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 22:53:55 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 22:55:29 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 22:55:55 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 22:57:29 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 22:57:56 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 22:59:31 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 22:59:57 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 23:01:33 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 23:01:58 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 23:03:32 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 23:03:55 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Remote host closed the connection) |
| 23:04:12 | → | lavaman joins (~lavaman@98.38.249.169) |
| 23:04:16 | → | ss4 joins (~wootehfoo@user/wootehfoot) |
| 23:05:31 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 23:05:59 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 23:05:59 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 23:05:59 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 23:05:59 | finn_elija | is now known as FinnElija |
| 23:06:02 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 240 seconds) |
| 23:06:43 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 23:07:34 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 23:07:59 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 23:08:17 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
| 23:09:11 | × | coot quits (~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot) |
| 23:09:35 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 23:10:01 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 23:10:40 | × | ss4 quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 23:11:38 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 23:11:47 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 23:12:03 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 23:12:08 | × | ankhers quits (e99e97ef8e@2604:bf00:561:2000::2a2) (Remote host closed the connection) |
| 23:12:18 | → | ankhers joins (e99e97ef8e@2604:bf00:561:2000::2a2) |
| 23:13:29 | ankhers | is now known as Ankhers |
| 23:13:36 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 23:13:43 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 23:13:43 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 23:13:43 | → | wroathe joins (~wroathe@user/wroathe) |
| 23:14:00 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 23:14:53 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 23:15:22 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 23:15:35 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 23:16:01 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 23:17:36 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 23:18:02 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 23:18:17 | → | kitzman joins (~kitzman@user/dekenevs) |
| 23:19:40 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 23:20:05 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 23:20:13 | × | doyougnu quits (~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) (Ping timeout: 250 seconds) |
| 23:20:29 | <kitzman> | new haskeller here, mainly for giggles; what i'm currently trying to achieve: create a sum type, and a "class C a", and then create instances for each member of the sum type. however - I don't think A "S = A | B" is considered a type.. or is it? |
| 23:21:35 | <geekosaur> | if you mean `data S = A | B`, S is a type and A and B are (data) constructors |
| 23:21:42 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 23:21:49 | <geekosaur> | not so different form `data Bool = False | True` |
| 23:21:53 | × | gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 23:22:08 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 23:22:34 | <kitzman> | I see, so I have to create separate types. |
| 23:22:34 | <geekosaur> | I would alos question why you want a typeclass, but we'll address that when we get to it |
| 23:22:50 | × | cheater quits (~Username@user/cheater) (Remote host closed the connection) |
| 23:23:41 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 23:23:53 | <kitzman> | hmm, I'm thinking of creating, for example a "HealthService", which would have instances for each libvirt provider (qemu, xen, etc). |
| 23:24:08 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 23:24:09 | <kitzman> | i think it might be the wrong way to approach the problem, though |
| 23:25:07 | <kitzman> | (i.e: "instance HealthService QemuProvider etc") |
| 23:25:14 | <geekosaur> | that's not generally how we do things in Haskell |
| 23:25:24 | → | retroid_ joins (~retro@05412d78.skybroadband.com) |
| 23:25:44 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 23:25:49 | <geekosaur> | more likely it'd be data HealthService = Qemu whatever | Xen whatever | ... |
| 23:26:15 | <geekosaur> | typeclasses are used when you have conceptually similar operations that do different things on different types |
| 23:26:15 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 23:26:55 | × | _73 quits (~user@pool-108-49-252-36.bstnma.fios.verizon.net) (Quit: ERC (IRC client for Emacs 27.2)) |
| 23:27:09 | <geekosaur> | so for example we have `Functor`, which provides an operation `fmap`. What this actually does depends on the instance, but it is always conceptually mapping some operation over that type |
| 23:27:50 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 23:28:10 | <geekosaur> | for lists, fmap is map. for Maybe, if the value is Just something then fmap applies the operation to something and wraps it in another Just; it does nothing for Nothing |
| 23:28:13 | <geekosaur> | and so on |
| 23:28:17 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 23:29:01 | × | retro_ quits (~retro@05412d78.skybroadband.com) (Ping timeout: 268 seconds) |
| 23:29:37 | <geekosaur> | there are times when this is appropriate for what you're describing, but usually they're not similar enough and when they are a simple record of functions is often preferable |
| 23:29:52 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 23:29:55 | <geekosaur> | (typeclasses are not OOP classes, in short) |
| 23:29:57 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
| 23:30:19 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 23:30:55 | → | AlexNoo_ joins (~AlexNoo@94.233.241.107) |
| 23:31:55 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 23:31:58 | <kitzman> | alright, i understand. i'll play a bit more with it. currently thinking of cases in which typeclasses would be more appropriate (so then I know when and when not to use them) |
| 23:32:24 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 23:32:26 | <geekosaur> | take a look at https://wiki.haskell.org/Typeclassopedia |
| 23:32:43 | × | Alex_test quits (~al_test@94.233.241.181) (Ping timeout: 268 seconds) |
| 23:33:09 | <geekosaur> | it shows what the basic Haskell libraries do with typeclasses, which is a pretty good indication of what they're good for |
| 23:33:10 | <kitzman> | i could have for example "class Persistable a" and then depending on a, choose how I can persist things |
| 23:33:16 | → | cheater joins (~Username@user/cheater) |
| 23:33:16 | <kitzman> | nice, thank you |
| 23:33:25 | <kitzman> | (couldn't come up with a better example yet) |
| 23:33:42 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 23:33:55 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 23:34:17 | × | AlexNoo quits (~AlexNoo@94.233.241.181) (Ping timeout: 240 seconds) |
| 23:34:27 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 23:34:29 | × | AlexZenon quits (~alzenon@94.233.241.181) (Ping timeout: 256 seconds) |
| 23:36:02 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 23:36:28 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 23:37:40 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 23:37:40 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 23:37:40 | → | wroathe joins (~wroathe@user/wroathe) |
| 23:38:04 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 23:38:24 | → | Alex_test joins (~al_test@94.233.241.107) |
| 23:38:26 | → | AlexZenon joins (~alzenon@94.233.241.107) |
| 23:38:29 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 23:39:53 | → | lavaman joins (~lavaman@98.38.249.169) |
| 23:40:02 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 23:40:38 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 23:41:46 | × | max22- quits (~maxime@2a01cb0883359800767a96b77d5018f7.ipv6.abo.wanadoo.fr) (Remote host closed the connection) |
| 23:42:13 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 23:42:38 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 23:43:57 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
| 23:44:13 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 23:44:39 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 23:46:16 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 23:46:42 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 23:48:17 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 23:48:44 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 23:48:47 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 23:49:49 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 23:50:19 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 23:50:44 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 23:52:17 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 23:52:43 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 23:54:18 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 23:54:48 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 23:56:24 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 23:56:52 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 23:58:27 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 23:58:42 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 23:58:51 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 23:59:05 | <EvanR> | kitzman, what's the API for Persistable, curious |
All times are in UTC on 2022-01-01.