2021-04-21 00:00:11 +0200 | <nut> | thanks |
2021-04-21 00:00:23 +0200 | <monochrom> | without actually knowing your context or application or problem domain |
2021-04-21 00:02:30 +0200 | zva | (~zava@141.26.31.52) (Ping timeout: 268 seconds) |
2021-04-21 00:02:54 +0200 | <nut> | monochrom: I'm doing a tree traversal algorithm. I get a list from both left and right subtree which I need to combime |
2021-04-21 00:03:38 +0200 | <nut> | monochrom: So I suppose instead of list, I can try a Seq a |
2021-04-21 00:04:26 +0200 | <monochrom> | "difference list" i.e. [a]->[a] |
2021-04-21 00:05:42 +0200 | <nut> | monochrom: wow, thanks! |
2021-04-21 00:05:55 +0200 | nicholasbulka | (~nicholasb@2601:900:4301:da0:c46c:29eb:6d58:88ee) (Remote host closed the connection) |
2021-04-21 00:05:56 +0200 | hc_ | (~hc@fsfe/hc) |
2021-04-21 00:06:01 +0200 | <monochrom> | Instead of Tree->[X], have f::Tree->[X]->[X]. f (Branch left right) = f left . f right; f (Leaf x) = \s -> x : s |
2021-04-21 00:06:38 +0200 | <monochrom> | For the whole tree, use "f my_whole_tree []". |
2021-04-21 00:06:45 +0200 | nicholasbulka | (~nicholasb@2601:900:4301:da0:c46c:29eb:6d58:88ee) |
2021-04-21 00:06:54 +0200 | Guest78317 | (~laudiacay@67.176.215.84) |
2021-04-21 00:07:10 +0200 | hc | (~hc@fsfe/hc) (Read error: Connection reset by peer) |
2021-04-21 00:07:10 +0200 | piele | (~piele@tbonesteak.creativeserver.net) (Quit: No Ping reply in 180 seconds.) |
2021-04-21 00:07:23 +0200 | tsaka_ | (~torstein@athedsl-4519432.home.otenet.gr) |
2021-04-21 00:07:32 +0200 | <nut> | Is this Haskell specific data structure? monochrom |
2021-04-21 00:07:51 +0200 | <monochrom> | No, you can do this for every FP language. |
2021-04-21 00:07:53 +0200 | <nut> | monochrom: I can't seem to find references in other languages |
2021-04-21 00:07:55 +0200 | jesystani | (~thorn@2404:4404:17f1:4900:819e:dd03:7c1b:1df4) (Ping timeout: 260 seconds) |
2021-04-21 00:08:09 +0200 | <nut> | non FP languages |
2021-04-21 00:08:13 +0200 | piele | (~piele@tbonesteak.creativeserver.net) |
2021-04-21 00:08:15 +0200 | <monochrom> | But then I guess it is best used with laziness. |
2021-04-21 00:08:24 +0200 | <monochrom> | s/non/anti/ |
2021-04-21 00:08:37 +0200 | <monochrom> | Clearly, anti FP got to be anti F. |
2021-04-21 00:08:39 +0200 | jesystani | (~thorn@2404:4404:17f1:4900:1be9:7d25:ab7d:6509) |
2021-04-21 00:08:51 +0200 | <nut> | haha |
2021-04-21 00:09:14 +0200 | <monochrom> | "Tree->[X]->[X]" fundamentally requires one to be serious about functions. |
2021-04-21 00:09:31 +0200 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 245 seconds) |
2021-04-21 00:09:40 +0200 | <monochrom> | Or at least the function composition in "f left . f right" |
2021-04-21 00:09:43 +0200 | usr25 | (~usr25@unaffiliated/usr25) (Quit: Leaving) |
2021-04-21 00:10:28 +0200 | <nut> | What do you mean? |
2021-04-21 00:10:45 +0200 | rj | (~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds) |
2021-04-21 00:10:55 +0200 | <monochrom> | An anti-FP language will not make it easy to use function composition. |
2021-04-21 00:12:46 +0200 | <nut> | monochrom: In your previous code, you've added a [X]. Is it supposed to be an accumulator? |
2021-04-21 00:13:12 +0200 | <monochrom> | whereas the difference list trick is built around function composition. |
2021-04-21 00:13:12 +0200 | Guest78317 | (~laudiacay@67.176.215.84) (Ping timeout: 265 seconds) |
2021-04-21 00:13:13 +0200 | nicholasbulka | (~nicholasb@2601:900:4301:da0:c46c:29eb:6d58:88ee) (Ping timeout: 245 seconds) |
2021-04-21 00:13:13 +0200 | ddellaco_ | (~ddellacos@ool-44c73afa.dyn.optonline.net) |
2021-04-21 00:13:13 +0200 | __monty__ | (~toonn@unaffiliated/toonn) (Quit: leaving) |
2021-04-21 00:13:13 +0200 | tsaka__ | (~torstein@athedsl-4519432.home.otenet.gr) (Ping timeout: 260 seconds) |
2021-04-21 00:13:26 +0200 | <nut> | i see |
2021-04-21 00:13:49 +0200 | fendor | (~fendor@178.165.131.162.wireless.dyn.drei.com) (Remote host closed the connection) |
2021-04-21 00:13:52 +0200 | <nut> | So your code snippets demonstrates the use of function composition |
2021-04-21 00:14:12 +0200 | <nut> | But I don't see how that composition made things fast |
2021-04-21 00:14:49 +0200 | <nut> | monochrom: do you mean it turned concat into function application? |
2021-04-21 00:14:53 +0200 | <monochrom> | I don't know what counts as accumulator. The [X] parameter is a suffix. f does prepending. |
2021-04-21 00:14:54 +0200 | <monochrom> | f (Branch (Leaf x) (Leaf y)) suffix = x : y : suffix |
2021-04-21 00:15:03 +0200 | <monochrom> | Yes |
2021-04-21 00:15:27 +0200 | Ariakenom | (~Ariakenom@2001:9b1:efb:fc00:795e:3018:ba62:6713) (Quit: Leaving) |
2021-04-21 00:15:29 +0200 | <geekosaur> | I think they meant the type signature and [X] was "list of X" |
2021-04-21 00:15:47 +0200 | <nut> | monochrom: it's a small aha moment for me |
2021-04-21 00:16:05 +0200 | rj | (~x@gateway/tor-sasl/rj) |
2021-04-21 00:16:09 +0200 | ph88 | (~ph88@2a02:8109:9e00:7e5c:d5ef:86b3:afc4:9258) |
2021-04-21 00:18:24 +0200 | ddellaco_ | (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 252 seconds) |
2021-04-21 00:18:56 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-04-21 00:19:25 +0200 | heatsink | (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-04-21 00:22:08 +0200 | dpl_ | (~dpl@77-121-78-163.chn.volia.net) |
2021-04-21 00:22:12 +0200 | nut | (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds) |
2021-04-21 00:22:51 +0200 | dpl | (~dpl@77-121-78-163.chn.volia.net) (Ping timeout: 268 seconds) |
2021-04-21 00:23:43 +0200 | <infinisil> | Could also use https://hackage.haskell.org/package/dlist-1.0/docs/Data-DList.html |
2021-04-21 00:24:19 +0200 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection) |
2021-04-21 00:24:56 +0200 | barakkl1993 | (~barakkley@2.55.154.74) (Ping timeout: 260 seconds) |
2021-04-21 00:25:41 +0200 | <infinisil> | Oh they're gone |
2021-04-21 00:27:44 +0200 | Sornaensis | (~Sornaensi@077213200034.dynamic.telenor.dk) (Ping timeout: 246 seconds) |
2021-04-21 00:32:01 +0200 | lassulus | (~lassulus@NixOS/user/lassulus) (Ping timeout: 245 seconds) |
2021-04-21 00:33:39 +0200 | nut | (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
2021-04-21 00:35:08 +0200 | son0p | (~ff@181.136.122.143) (Read error: Connection reset by peer) |
2021-04-21 00:37:02 +0200 | lassulus | (~lassulus@NixOS/user/lassulus) |
2021-04-21 00:38:06 +0200 | nineonin_ | (~nineonine@50.216.62.2) (Ping timeout: 240 seconds) |
2021-04-21 00:41:41 +0200 | hypercube | (hypercube@gateway/vpn/protonvpn/hypercube) |
2021-04-21 00:41:44 +0200 | Sheilong | (uid293653@gateway/web/irccloud.com/x-iszyocxwqmtvebxh) (Quit: Connection closed for inactivity) |
2021-04-21 00:42:30 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-04-21 00:42:41 +0200 | Gurkenglas | (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 240 seconds) |
2021-04-21 00:47:20 +0200 | Guest46085 | (~textual@zrcout.mskcc.org) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-04-21 00:47:26 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
2021-04-21 00:55:09 +0200 | rj | (~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds) |
2021-04-21 00:56:21 +0200 | Guest78317 | (~laudiacay@67.176.215.84) |
2021-04-21 00:58:41 +0200 | rj | (~x@gateway/tor-sasl/rj) |
2021-04-21 00:59:37 +0200 | nicholasbulka | (~nicholasb@2601:900:4301:da0:c46c:29eb:6d58:88ee) |
2021-04-21 01:01:06 +0200 | Guest78317 | (~laudiacay@67.176.215.84) (Ping timeout: 260 seconds) |
2021-04-21 01:02:15 +0200 | thc202 | (~thc202@unaffiliated/thc202) (Ping timeout: 258 seconds) |
2021-04-21 01:02:20 +0200 | sm2n_ | (~sm2n@bras-base-hmtnon143hw-grc-13-70-54-76-62.dsl.bell.ca) |
2021-04-21 01:03:10 +0200 | heatsink | (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-04-21 01:05:10 +0200 | sm2n | (~sm2n@70.54.76.62) (Ping timeout: 252 seconds) |
2021-04-21 01:09:40 +0200 | nibot | (45d11556@69-209-21-86.lightspeed.sntcca.sbcglobal.net) |
2021-04-21 01:12:15 +0200 | sm2n | (~sm2n@bras-base-hmtnon143hw-grc-13-70-54-76-62.dsl.bell.ca) |
2021-04-21 01:12:50 +0200 | <newhoggy> | @bgamari: Any chance you could bump the upper bounds for monoidal-containers? https://github.com/bgamari/monoidal-containers/issues/78 |
2021-04-21 01:12:51 +0200 | <lambdabot> | Unknown command, try @list |
2021-04-21 01:12:54 +0200 | DavidEichmann | (~david@147.136.46.217.dyn.plus.net) |
2021-04-21 01:13:08 +0200 | <newhoggy> | bgamari: Any chance you could bump the upper bounds for monoidal-containers? https://github.com/bgamari/monoidal-containers/issues/78 |
2021-04-21 01:13:42 +0200 | cantstanya | (~chatting@gateway/tor-sasl/cantstanya) |
2021-04-21 01:13:56 +0200 | sm2n_ | (~sm2n@bras-base-hmtnon143hw-grc-13-70-54-76-62.dsl.bell.ca) (Ping timeout: 246 seconds) |
2021-04-21 01:14:24 +0200 | sleblanc | (~sleblanc@unaffiliated/sebleblanc) |
2021-04-21 01:15:03 +0200 | juri_ | (~juri@178.63.35.222) (Ping timeout: 252 seconds) |
2021-04-21 01:16:45 +0200 | Alleria | (~textual@2603-7000-3040-0000-e52b-abc5-9db9-302a.res6.spectrum.com) |
2021-04-21 01:17:08 +0200 | Alleria | Guest66770 |
2021-04-21 01:18:12 +0200 | nut | (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds) |
2021-04-21 01:18:57 +0200 | nineonine | (~nineonine@50.216.62.2) |
2021-04-21 01:20:01 +0200 | Narinas | (~Narinas@187-178-93-112.dynamic.axtel.net) (Ping timeout: 252 seconds) |
2021-04-21 01:21:07 +0200 | Guest66770 | (~textual@2603-7000-3040-0000-e52b-abc5-9db9-302a.res6.spectrum.com) (Ping timeout: 250 seconds) |
2021-04-21 01:21:33 +0200 | electricityZZZZ | (~electrici@135-180-3-82.static.sonic.net) (Remote host closed the connection) |
2021-04-21 01:22:58 +0200 | ddellaco_ | (~ddellacos@ool-44c73afa.dyn.optonline.net) |
2021-04-21 01:23:35 +0200 | ortz | (~egigs@108-89-5-25.lightspeed.dybhfl.sbcglobal.net) |
2021-04-21 01:23:44 +0200 | <ortz> | is there an irc channel for Rust? |
2021-04-21 01:24:00 +0200 | <ortz> | I tried #rust, but it's invite-only |
2021-04-21 01:24:29 +0200 | <hpc> | i don't think anyone here can help with that |
2021-04-21 01:24:48 +0200 | <ortz> | i figured there'd be a bit of overlap |
2021-04-21 01:25:26 +0200 | <yushyin> | also rust community mostly uses discord and zulip |
2021-04-21 01:25:52 +0200 | <ortz> | discord is annoying, it wants an email just for me to pop in and ask a question |
2021-04-21 01:25:57 +0200 | <hpc> | or mozilla's irc network, it seems |
2021-04-21 01:25:59 +0200 | <hpc> | https://prev.rust-lang.org/en-US/community.html |
2021-04-21 01:26:15 +0200 | <yushyin> | mozilla stopped using irc |
2021-04-21 01:26:20 +0200 | <hpc> | oh |
2021-04-21 01:26:27 +0200 | <hpc> | freenode's #rust might just be squatting the name |
2021-04-21 01:26:46 +0200 | <yushyin> | they are now using matrix.org, afaik |
2021-04-21 01:27:15 +0200 | <yushyin> | there is an unoffical rust channel on freenode ##rust |
2021-04-21 01:28:41 +0200 | ddellaco_ | (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 240 seconds) |
2021-04-21 01:29:18 +0200 | <yushyin> | hpc: prev.rust-lang.org seems to be an old unmaintained website :/ |
2021-04-21 01:34:45 +0200 | rj | (~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds) |
2021-04-21 01:36:07 +0200 | ph88 | (~ph88@2a02:8109:9e00:7e5c:d5ef:86b3:afc4:9258) (Ping timeout: 260 seconds) |
2021-04-21 01:36:36 +0200 | epicte7us | (~epictetus@ip72-194-54-201.sb.sd.cox.net) |
2021-04-21 01:37:08 +0200 | epicte7us | (~epictetus@ip72-194-54-201.sb.sd.cox.net) (Client Quit) |
2021-04-21 01:37:36 +0200 | ddellacosta | (~ddellacos@ool-44c73afa.dyn.optonline.net) |
2021-04-21 01:39:23 +0200 | hiroaki_ | (~hiroaki@2a02:8108:8c40:2bb8:9a44:5c99:5f02:ae1) (Ping timeout: 260 seconds) |
2021-04-21 01:39:41 +0200 | ep1ctetus | (~epictetus@ip72-194-54-201.sb.sd.cox.net) (Ping timeout: 240 seconds) |
2021-04-21 01:42:02 +0200 | juri_ | (~juri@178.63.35.222) |
2021-04-21 01:42:31 +0200 | ddellacosta | (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 260 seconds) |
2021-04-21 01:44:40 +0200 | ph88 | (~ph88@2a02:8109:9e00:7e5c:d5ef:86b3:afc4:9258) |
2021-04-21 01:47:26 +0200 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 240 seconds) |
2021-04-21 01:51:23 +0200 | Narinas | (~Narinas@187-178-93-112.dynamic.axtel.net) |
2021-04-21 01:52:28 +0200 | Jd007 | (~Jd007@162.156.11.151) (Quit: Jd007) |
2021-04-21 01:52:34 +0200 | Synthetica | (uid199651@gateway/web/irccloud.com/x-uzlgvfmvgotbpzjj) (Quit: Connection closed for inactivity) |
2021-04-21 01:53:35 +0200 | ddellacosta | (~ddellacos@ool-44c73afa.dyn.optonline.net) |
2021-04-21 01:53:57 +0200 | hendursa1 | (~weechat@gateway/tor-sasl/hendursaga) (Remote host closed the connection) |
2021-04-21 01:54:51 +0200 | hendursa1 | (~weechat@gateway/tor-sasl/hendursaga) |
2021-04-21 01:54:54 +0200 | quinn | (~quinn@c-73-223-224-163.hsd1.ca.comcast.net) |
2021-04-21 01:55:16 +0200 | nibot | (45d11556@69-209-21-86.lightspeed.sntcca.sbcglobal.net) (Quit: Connection closed) |
2021-04-21 01:55:45 +0200 | hendursa1 | (~weechat@gateway/tor-sasl/hendursaga) (Remote host closed the connection) |
2021-04-21 01:56:02 +0200 | xsperry | (~as@unaffiliated/xsperry) (Remote host closed the connection) |
2021-04-21 01:56:20 +0200 | hendursa1 | (~weechat@gateway/tor-sasl/hendursaga) |
2021-04-21 01:58:54 +0200 | Codaraxis__ | (~Codaraxis@141.98.255.149) |
2021-04-21 01:59:06 +0200 | ddellacosta | (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 245 seconds) |
2021-04-21 01:59:14 +0200 | nineonin_ | (~nineonine@50.216.62.2) |
2021-04-21 01:59:40 +0200 | heatsink | (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-04-21 01:59:50 +0200 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) |
2021-04-21 02:00:53 +0200 | m0rphism | (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 260 seconds) |
2021-04-21 02:01:16 +0200 | nineonine | (~nineonine@50.216.62.2) (Ping timeout: 252 seconds) |
2021-04-21 02:02:12 +0200 | Codaraxis_ | (~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Ping timeout: 240 seconds) |
2021-04-21 02:02:15 +0200 | ph88 | (~ph88@2a02:8109:9e00:7e5c:d5ef:86b3:afc4:9258) (Ping timeout: 260 seconds) |
2021-04-21 02:05:04 +0200 | Deide | (~Deide@217.155.19.23) (Quit: Seeee yaaaa) |
2021-04-21 02:05:12 +0200 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds) |
2021-04-21 02:07:08 +0200 | gitgood | (~gitgood@80-44-9-246.dynamic.dsl.as9105.com) (Ping timeout: 246 seconds) |
2021-04-21 02:07:47 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
2021-04-21 02:07:55 +0200 | jesystani | (~thorn@2404:4404:17f1:4900:1be9:7d25:ab7d:6509) (Ping timeout: 250 seconds) |
2021-04-21 02:08:54 +0200 | gzj | (~gzj@unaffiliated/gzj) |
2021-04-21 02:08:55 +0200 | GZJ0X_ | (~gzj@unaffiliated/gzj) |
2021-04-21 02:08:55 +0200 | GZJ0X_ | (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
2021-04-21 02:09:00 +0200 | jesystani | (~thorn@2404:4404:17f1:4900:8932:e59c:bc73:f200) |
2021-04-21 02:09:15 +0200 | hendursa1 | (~weechat@gateway/tor-sasl/hendursaga) (Quit: hendursa1) |
2021-04-21 02:10:24 +0200 | Codaraxis_ | (Codaraxis@gateway/vpn/mullvad/codaraxis) |
2021-04-21 02:10:37 +0200 | hendursaga | (~weechat@gateway/tor-sasl/hendursaga) |
2021-04-21 02:12:23 +0200 | Tario | (~Tario@201.192.165.173) (Ping timeout: 246 seconds) |
2021-04-21 02:13:38 +0200 | Tario | (~Tario@200.119.185.128) |
2021-04-21 02:13:46 +0200 | Codaraxis__ | (~Codaraxis@141.98.255.149) (Ping timeout: 240 seconds) |
2021-04-21 02:13:55 +0200 | <Axman6> | newhoggy: I was talking to jackdk yesterday about just that - he had proposed making a hackage update to relax them |
2021-04-21 02:14:11 +0200 | <newhoggy> | Thanks! |
2021-04-21 02:19:52 +0200 | DavidEichmann | (~david@147.136.46.217.dyn.plus.net) (Ping timeout: 240 seconds) |
2021-04-21 02:20:46 +0200 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 245 seconds) |
2021-04-21 02:21:46 +0200 | ludi49 | (~hryhorij@156.17.231.95) (Ping timeout: 252 seconds) |
2021-04-21 02:24:01 +0200 | xsperry | (~as@unaffiliated/xsperry) |
2021-04-21 02:25:34 +0200 | aVikingTrex | (2be74510@43.231.69.16) |
2021-04-21 02:26:00 +0200 | Guest78317 | (~laudiacay@67.176.215.84) |
2021-04-21 02:26:06 +0200 | gzj | (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
2021-04-21 02:26:25 +0200 | gzj | (~gzj@unaffiliated/gzj) |
2021-04-21 02:30:11 +0200 | myShoggoth | (~myShoggot@75.164.11.109) (Ping timeout: 240 seconds) |
2021-04-21 02:30:13 +0200 | Tario | (~Tario@200.119.185.128) (Read error: Connection reset by peer) |
2021-04-21 02:30:21 +0200 | Guest78317 | (~laudiacay@67.176.215.84) (Ping timeout: 245 seconds) |
2021-04-21 02:30:23 +0200 | Tario | (~Tario@201.192.165.173) |
2021-04-21 02:30:28 +0200 | Tario | (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
2021-04-21 02:30:41 +0200 | Tario | (~Tario@201.192.165.173) |
2021-04-21 02:31:58 +0200 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
2021-04-21 02:31:58 +0200 | Jd007 | (~Jd007@162.156.11.151) |
2021-04-21 02:32:37 +0200 | nineonin_ | (~nineonine@50.216.62.2) (Ping timeout: 252 seconds) |
2021-04-21 02:41:35 +0200 | <aVikingTrex> | Hi everyone, I am a couple months into learning haskell. I have read "Get Programming With Haskell", currently reading "Real world haskell" (updated version on github) and have started reading Bartosz's "Category Theory for Programmers". I am looking to progress in haskell with the goal of developing in haskell professionally. What other books |
2021-04-21 02:41:35 +0200 | <aVikingTrex> | should I read or tips you all have for reaching a higher level of ability with the language? |
2021-04-21 02:43:19 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-04-21 02:43:19 +0200 | <aVikingTrex> | My current professional languages are on dotnet - C# and F# |
2021-04-21 02:44:18 +0200 | <c_wraith> | I think the best thing you can do at the intermediate level is write Haskell programs and use libraries. That latter part is important for learning the sorts of things people actually use |
2021-04-21 02:46:03 +0200 | <wroathe> | I just keep an audio recording of SPJ playing 24/7 in my apartment as white noise in the background. |
2021-04-21 02:47:04 +0200 | <DigitalKiwi> | c_wraith: i'm not sure how using things people actually use helps with learning haskell ;p |
2021-04-21 02:47:44 +0200 | loller_ | (uid358106@gateway/web/irccloud.com/x-knsjtabxhwvomwzb) |
2021-04-21 02:48:52 +0200 | sm2n | (~sm2n@bras-base-hmtnon143hw-grc-13-70-54-76-62.dsl.bell.ca) (Quit: Leaving) |
2021-04-21 02:50:21 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds) |
2021-04-21 02:50:35 +0200 | sm2n | (~sm2n@bras-base-hmtnon143hw-grc-13-70-54-76-62.dsl.bell.ca) |
2021-04-21 02:51:33 +0200 | s00pcan | (~chris@075-133-056-178.res.spectrum.com) (Ping timeout: 265 seconds) |
2021-04-21 02:52:17 +0200 | ddellaco_ | (~ddellacos@ool-44c73afa.dyn.optonline.net) |
2021-04-21 02:52:24 +0200 | Guest78317 | (~laudiacay@67.176.215.84) |
2021-04-21 02:53:06 +0200 | s00pcan | (~chris@107.181.165.217) |
2021-04-21 02:53:39 +0200 | <Axman6> | wroathe: that sounds very soothing |
2021-04-21 02:58:07 +0200 | <jackdk> | newhoggy: file a bug in the trustees repo requesting a bound raise? If you can do a PR with the bound relaxations that would be helpful too. https://github.com/bgamari/monoidal-containers/issues/77 also |
2021-04-21 02:58:17 +0200 | ddellaco_ | (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 260 seconds) |
2021-04-21 02:58:23 +0200 | philderbeast | (~textual@bras-base-vldvpq5901w-grc-06-184-144-244-252.dsl.bell.ca) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-04-21 02:58:56 +0200 | <bgamari> | newhoggy, done |
2021-04-21 02:59:11 +0200 | s00pcan | (~chris@107.181.165.217) (Ping timeout: 252 seconds) |
2021-04-21 02:59:22 +0200 | <newhoggy> | Thanks! <3 |
2021-04-21 02:59:34 +0200 | <Axman6> | bgamari: <3 (ping jackdk) |
2021-04-21 02:59:42 +0200 | geekosaur | (930099da@rrcs-147-0-153-218.central.biz.rr.com) (Ping timeout: 240 seconds) |
2021-04-21 03:00:03 +0200 | <bgamari> | yushyin, I don't think there is a Rust IRC channel at this point |
2021-04-21 03:00:15 +0200 | s00pcan | (~chris@075-133-056-178.res.spectrum.com) |
2021-04-21 03:00:23 +0200 | <bgamari> | yushyin, but why learn Rust when you can rather master the beauty of Haskell? |
2021-04-21 03:00:48 +0200 | <Axman6> | Good luck to them when the apocolypse hits! |
2021-04-21 03:01:03 +0200 | <bgamari> | whoops |
2021-04-21 03:01:10 +0200 | <bgamari> | rather, ortz |
2021-04-21 03:01:13 +0200 | <bgamari> | who is now gone |
2021-04-21 03:01:14 +0200 | <bgamari> | oh well |
2021-04-21 03:01:48 +0200 | <wroathe> | Axman6: Yeah, but I still haven't learned anything. I'm starting to question my methods. |
2021-04-21 03:02:33 +0200 | Jd007 | (~Jd007@162.156.11.151) (Quit: Jd007) |
2021-04-21 03:02:40 +0200 | geiger_ | (~geiger@90.212.77.86) (Ping timeout: 265 seconds) |
2021-04-21 03:03:00 +0200 | <Axman6> | wroathe: have you tried changing your editor font to Comic Sans? |
2021-04-21 03:03:03 +0200 | <jackdk> | bgamari: thanks, can you look at issue 77 also? (aeson upper bound) |
2021-04-21 03:03:48 +0200 | <bgamari> | jackdk, I'm afraid I'm not a maintainer of aeson |
2021-04-21 03:03:55 +0200 | <bgamari> | ahh |
2021-04-21 03:03:58 +0200 | <bgamari> | never mind, misread |
2021-04-21 03:03:59 +0200 | <bgamari> | sure |
2021-04-21 03:04:04 +0200 | <wroathe> | Axman6: No, but that's a really solid idea. I'll give it a shot. |
2021-04-21 03:04:46 +0200 | <Axman6> | And you're, of course, wearing a knitted woolen jumper which would normally only be appropriate around chrristmas, right? |
2021-04-21 03:05:02 +0200 | <Axman6> | This is the only path to true HAskell mastery |
2021-04-21 03:06:08 +0200 | <bgamari> | jackdk, done |
2021-04-21 03:06:20 +0200 | <jackdk> | bgamari: <3 (ping Axman6) |
2021-04-21 03:06:30 +0200 | <Axman6> | :tada: |
2021-04-21 03:07:39 +0200 | <DigitalKiwi> | nobody going to suggest ATS? :( |
2021-04-21 03:08:21 +0200 | <wroathe> | Axman6: So far so good: https://www.dropbox.com/s/glmuva79hdcf8zq/Screen%20Shot%202021-04-20%20at%208.07.53%20PM.png?dl=0 |
2021-04-21 03:08:30 +0200 | <wroathe> | Axman6: I can feel the mastery of all things starting to build |
2021-04-21 03:08:44 +0200 | <Axman6> | This is the way |
2021-04-21 03:09:08 +0200 | <Axman6> | apart from... that is SQL and not Haskell, that might also be your problem |
2021-04-21 03:09:31 +0200 | <wroathe> | Oh, I was under the impression that Comic Sans would lead to mastery in all things |
2021-04-21 03:13:44 +0200 | Nahra | (~user@unaffiliated/nahra) (Remote host closed the connection) |
2021-04-21 03:13:58 +0200 | <DigitalKiwi> | i'm sick of comic sans i want tragic sans |
2021-04-21 03:14:09 +0200 | <jackdk> | DigitalKiwi: look up tom7's comic sands |
2021-04-21 03:14:34 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2021-04-21 03:15:05 +0200 | <DigitalKiwi> | is it satire |
2021-04-21 03:16:46 +0200 | Guest78317 | (~laudiacay@67.176.215.84) (Ping timeout: 252 seconds) |
2021-04-21 03:17:23 +0200 | aVikingTrex | (2be74510@43.231.69.16) (Quit: Connection closed) |
2021-04-21 03:18:11 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2021-04-21 03:19:28 +0200 | <jackdk> | DigitalKiwi: it's a tom7 project. |
2021-04-21 03:20:37 +0200 | nicholasbulka | (~nicholasb@2601:900:4301:da0:c46c:29eb:6d58:88ee) (Remote host closed the connection) |
2021-04-21 03:20:59 +0200 | tomboy64 | (~tomboy64@unaffiliated/tomboy64) (Ping timeout: 246 seconds) |
2021-04-21 03:21:05 +0200 | <DigitalKiwi> | http://mp3.tom7.org/t7es/ |
2021-04-21 03:21:20 +0200 | <DigitalKiwi> | i'm not sure this is what you want me to find but this is what i find |
2021-04-21 03:21:28 +0200 | aVikingTrex | (~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea) |
2021-04-21 03:21:38 +0200 | nicholasbulka | (~nicholasb@c-73-21-82-200.hsd1.ga.comcast.net) |
2021-04-21 03:23:58 +0200 | ddellacosta | (~ddellacos@ool-44c73afa.dyn.optonline.net) |
2021-04-21 03:24:23 +0200 | drbean_ | (~drbean@TC210-63-209-51.static.apol.com.tw) |
2021-04-21 03:26:28 +0200 | gnumonic | (~gnumonic@c-73-170-91-210.hsd1.ca.comcast.net) |
2021-04-21 03:26:37 +0200 | nicholasbulka | (~nicholasb@c-73-21-82-200.hsd1.ga.comcast.net) (Ping timeout: 268 seconds) |
2021-04-21 03:27:01 +0200 | jesystani | (~thorn@2404:4404:17f1:4900:8932:e59c:bc73:f200) (Ping timeout: 245 seconds) |
2021-04-21 03:27:20 +0200 | trucker | (~trucklife@5.122.26.32) |
2021-04-21 03:27:56 +0200 | <jackdk> | DigitalKiwi: http://tom7.org/lowercase/ |
2021-04-21 03:28:07 +0200 | xff0x | (~xff0x@2001:1a81:5214:2600:51f9:992c:5a15:4907) (Ping timeout: 260 seconds) |
2021-04-21 03:28:20 +0200 | jesystani | (~thorn@2404:4404:17f1:4900:6cdb:4797:2af1:7f65) |
2021-04-21 03:28:30 +0200 | <DigitalKiwi> | oh i saw that url in the searchs but didn't visit it yet |
2021-04-21 03:28:55 +0200 | trucker | (~trucklife@5.122.26.32) ("Leaving") |
2021-04-21 03:29:25 +0200 | <DigitalKiwi> | thankz |
2021-04-21 03:29:41 +0200 | xff0x | (~xff0x@2001:1a81:5253:e800:1dc:184f:3c23:9adc) |
2021-04-21 03:29:49 +0200 | ddellacosta | (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 252 seconds) |
2021-04-21 03:34:33 +0200 | <DigitalKiwi> | omg why is this calling me out like this "why do easy things by hand ...when you can spend weeks (automatic solution that doesn't work that well)" |
2021-04-21 03:38:36 +0200 | dpl_ | (~dpl@77-121-78-163.chn.volia.net) (Ping timeout: 260 seconds) |
2021-04-21 03:38:50 +0200 | nineonine | (~nineonine@2604:3d08:7785:9600:2926:4844:fa1f:b849) |
2021-04-21 03:42:45 +0200 | nineonin_ | (~nineonine@50.216.62.2) |
2021-04-21 03:43:07 +0200 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
2021-04-21 03:43:15 +0200 | nineonine | (~nineonine@2604:3d08:7785:9600:2926:4844:fa1f:b849) (Ping timeout: 250 seconds) |
2021-04-21 03:49:06 +0200 | gzj | (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
2021-04-21 03:49:25 +0200 | gzj | (~gzj@unaffiliated/gzj) |
2021-04-21 03:57:23 +0200 | falafel_ | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-04-21 03:57:39 +0200 | pfurla_ | (~pfurla@ool-182ed2e2.dyn.optonline.net) (Quit: Textual IRC Client: www.textualapp.com) |
2021-04-21 04:00:00 +0200 | Alleria | (~textual@2603-7000-3040-0000-e52b-abc5-9db9-302a.res6.spectrum.com) |
2021-04-21 04:00:23 +0200 | Alleria | Guest15679 |
2021-04-21 04:01:35 +0200 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 246 seconds) |
2021-04-21 04:02:07 +0200 | urodna_ | (~urodna@unaffiliated/urodna) (Quit: urodna_) |
2021-04-21 04:02:16 +0200 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Ping timeout: 252 seconds) |
2021-04-21 04:03:43 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-04-21 04:04:29 +0200 | Guest15679 | (~textual@2603-7000-3040-0000-e52b-abc5-9db9-302a.res6.spectrum.com) (Ping timeout: 250 seconds) |
2021-04-21 04:05:27 +0200 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
2021-04-21 04:10:11 +0200 | Rudd0 | (~Rudd0@185.189.115.108) (Ping timeout: 240 seconds) |
2021-04-21 04:10:24 +0200 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) |
2021-04-21 04:11:25 +0200 | jesystani | (~thorn@2404:4404:17f1:4900:6cdb:4797:2af1:7f65) (Ping timeout: 250 seconds) |
2021-04-21 04:12:37 +0200 | jesystani | (~thorn@2404:4404:17f1:4900:8e1:ccf6:9706:cd19) |
2021-04-21 04:18:17 +0200 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Quit: Leaving) |
2021-04-21 04:20:50 +0200 | _4n0nymou2_ | (4642bb68@unaffiliated/d4v1d) |
2021-04-21 04:21:07 +0200 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving) |
2021-04-21 04:21:14 +0200 | <glguy> | hi _4n0nymou2_ |
2021-04-21 04:21:22 +0200 | <_4n0nymou2_> | Hello |
2021-04-21 04:21:30 +0200 | <_4n0nymou2_> | Just came from GitHub |
2021-04-21 04:21:49 +0200 | <glguy> | Yup. Linker errors are a normal part of the Arch Linux experience. I know people have guided others through it here |
2021-04-21 04:22:42 +0200 | <_4n0nymou2_> | I am absolutely sure I installed `cabal` from `ghcup` instead of arch linux repository |
2021-04-21 04:22:58 +0200 | <glguy> | yeah, I believe you |
2021-04-21 04:22:59 +0200 | berberman_ | (~berberman@unaffiliated/berberman) |
2021-04-21 04:23:48 +0200 | <glguy> | Do you have a ~/.cabal/config ? |
2021-04-21 04:24:07 +0200 | berberman | (~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds) |
2021-04-21 04:24:20 +0200 | <glguy> | You can see how that diverges from the default with: cabal user-config diff |
2021-04-21 04:24:49 +0200 | gzj | (~gzj@unaffiliated/gzj) (Ping timeout: 252 seconds) |
2021-04-21 04:25:30 +0200 | <_4n0nymou2_> | Oh! I think I found the culprit: |
2021-04-21 04:25:31 +0200 | <_4n0nymou2_> | + executable-dynamic: True |
2021-04-21 04:25:31 +0200 | <_4n0nymou2_> | + library-vanilla: True |
2021-04-21 04:25:32 +0200 | <_4n0nymou2_> | - remote-build-reporting: none |
2021-04-21 04:25:32 +0200 | <_4n0nymou2_> | + remote-build-reporting: anonymous |
2021-04-21 04:25:33 +0200 | <_4n0nymou2_> | + shared: True |
2021-04-21 04:25:33 +0200 | <_4n0nymou2_> | + verbose: 1 |
2021-04-21 04:25:34 +0200 | <_4n0nymou2_> | Arch wiki fooled me |
2021-04-21 04:27:30 +0200 | nicholasbulka | (~nicholasb@2601:900:4301:da0:c46c:29eb:6d58:88ee) |
2021-04-21 04:27:34 +0200 | falafel_ | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 252 seconds) |
2021-04-21 04:28:14 +0200 | <_4n0nymou2_> | They tell me to enable 'dynamic linking' , which, unfortunately does more harm than good |
2021-04-21 04:28:57 +0200 | <glguy> | I think part of making Haskell work on Arch is not only ignoring their packages but also their wiki |
2021-04-21 04:29:02 +0200 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
2021-04-21 04:29:08 +0200 | <glguy> | dunno, it's the main OS people have trouble with |
2021-04-21 04:31:02 +0200 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer) |
2021-04-21 04:31:11 +0200 | <_4n0nymou2_> | Now I reset the config to default by deleting it and rerun `cabal update` hope this time it will work :-) |
2021-04-21 04:31:36 +0200 | nicholasbulka | (~nicholasb@2601:900:4301:da0:c46c:29eb:6d58:88ee) (Ping timeout: 245 seconds) |
2021-04-21 04:32:36 +0200 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
2021-04-21 04:34:36 +0200 | frozenErebus | (~frozenEre@37.231.244.249) |
2021-04-21 04:37:51 +0200 | wavemode | (~wavemode@097-070-075-143.res.spectrum.com) |
2021-04-21 04:39:41 +0200 | theDon | (~td@muedsl-82-207-238-085.citykom.de) (Ping timeout: 240 seconds) |
2021-04-21 04:40:46 +0200 | <_4n0nymou2_> | glguy: Yeah! It works now. |
2021-04-21 04:41:12 +0200 | <glguy> | Oh, cool |
2021-04-21 04:41:19 +0200 | drbean_ | (~drbean@TC210-63-209-51.static.apol.com.tw) (Ping timeout: 252 seconds) |
2021-04-21 04:41:30 +0200 | theDon | (~td@94.134.91.185) |
2021-04-21 04:41:57 +0200 | <_4n0nymou2_> | Even Arch Wiki is wrong sometimes :( |
2021-04-21 04:42:53 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds) |
2021-04-21 04:44:17 +0200 | <_4n0nymou2_> | glguy: Maybe it's time to add in the GitHub readme: **DO NOT USE ARCH PACKAGES** and **DO NOT USE DYNAMIC LINKING** |
2021-04-21 04:44:38 +0200 | FinnElija | (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) |
2021-04-21 04:44:38 +0200 | finn_elija | Guest74489 |
2021-04-21 04:44:38 +0200 | FinnElija | finn_elija |
2021-04-21 04:44:40 +0200 | <glguy> | That would go in the Arch Linux wiki |
2021-04-21 04:44:47 +0200 | <justsomeguy> | In general OS communities have a hard time following the best practices of programming languages build systems and packaging schemes. They move at different cadences. |
2021-04-21 04:45:34 +0200 | <glguy> | glirc is find with dynamic linking if you set up your build environment correctly |
2021-04-21 04:45:46 +0200 | <glguy> | trying to build a dynamic executable without building dynamic libraries first just isn't that |
2021-04-21 04:47:05 +0200 | nineonin_ | (~nineonine@50.216.62.2) (Remote host closed the connection) |
2021-04-21 04:47:35 +0200 | nineonine | (~nineonine@50.216.62.2) |
2021-04-21 04:47:36 +0200 | <_4n0nymou2_> | Thanks, bye |
2021-04-21 04:47:52 +0200 | _4n0nymou2_ | (4642bb68@unaffiliated/d4v1d) (Quit: _4n0nymou2_) |
2021-04-21 04:47:57 +0200 | Guest74489 | (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 240 seconds) |
2021-04-21 04:48:52 +0200 | tekacs | (~tekacs@178.79.131.8) (Quit: Disappearing... *poof*) |
2021-04-21 04:49:59 +0200 | siraben | (sirabenmat@gateway/shell/matrix.org/x-lajcuenivninlvjc) (Ping timeout: 245 seconds) |
2021-04-21 04:50:44 +0200 | siraben | (sirabenmat@gateway/shell/matrix.org/x-cfikpjmyftuncdpf) |
2021-04-21 04:51:06 +0200 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 240 seconds) |
2021-04-21 04:52:51 +0200 | tekacs | (tekacs@2a01:7e00::f03c:91ff:fe93:43aa) |
2021-04-21 04:55:37 +0200 | aVikingTrex | (~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Ping timeout: 250 seconds) |
2021-04-21 04:58:16 +0200 | davros_ | (~davros@host86-185-126-190.range86-185.btcentralplus.com) (Remote host closed the connection) |
2021-04-21 04:59:23 +0200 | <gnumonic> | There's no way to put a class constraint on the return type of a closed (non associated) type family, right? |
2021-04-21 05:00:30 +0200 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
2021-04-21 05:03:28 +0200 | <glguy> | gnumonic, not that I'm aware of |
2021-04-21 05:10:19 +0200 | Jd007 | (~Jd007@162.156.11.151) |
2021-04-21 05:10:45 +0200 | falafel_ | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-04-21 05:11:15 +0200 | jesystani | (~thorn@2404:4404:17f1:4900:8e1:ccf6:9706:cd19) (Ping timeout: 260 seconds) |
2021-04-21 05:12:06 +0200 | jesystani | (~thorn@2404:4404:17f1:4900:8c4:9d6:6bf0:ca3a) |
2021-04-21 05:12:50 +0200 | Guest78317 | (~laudiacay@67.176.215.84) |
2021-04-21 05:12:59 +0200 | fresheyeball | (~isaac@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9) |
2021-04-21 05:13:20 +0200 | fresheyeball | (~isaac@c-71-237-105-37.hsd1.co.comcast.net) |
2021-04-21 05:13:58 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-04-21 05:14:24 +0200 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) (Quit: Textual IRC Client: www.textualapp.com) |
2021-04-21 05:16:23 +0200 | ericsagnes | (~ericsagne@2405:6580:0:5100:7cd:23d4:b32c:5140) (Ping timeout: 260 seconds) |
2021-04-21 05:17:01 +0200 | Guest78317 | (~laudiacay@67.176.215.84) (Ping timeout: 245 seconds) |
2021-04-21 05:20:32 +0200 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) |
2021-04-21 05:20:40 +0200 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) (Client Quit) |
2021-04-21 05:20:53 +0200 | jakalx | (~jakalx@base.jakalx.net) () |
2021-04-21 05:23:15 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-04-21 05:23:56 +0200 | davros | (~davros@host86-185-126-190.range86-185.btcentralplus.com) |
2021-04-21 05:26:01 +0200 | ddellaco_ | (~ddellacos@ool-44c73afa.dyn.optonline.net) |
2021-04-21 05:26:12 +0200 | waleee-cl | (uid373333@gateway/web/irccloud.com/x-duhphiqafdupvlzv) (Quit: Connection closed for inactivity) |
2021-04-21 05:27:06 +0200 | minoru_shiraeesh | (~shiraeesh@109.166.59.151) (Ping timeout: 260 seconds) |
2021-04-21 05:27:36 +0200 | ericsagnes | (~ericsagne@2405:6580:0:5100:ee94:8f2c:d91b:ec) |
2021-04-21 05:28:06 +0200 | falafel_ | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 268 seconds) |
2021-04-21 05:31:55 +0200 | ddellaco_ | (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 252 seconds) |
2021-04-21 05:38:45 +0200 | Gurkenglas | (~Gurkengla@unaffiliated/gurkenglas) |
2021-04-21 05:40:36 +0200 | myShoggoth | (~myShoggot@75.164.11.109) |
2021-04-21 05:40:43 +0200 | mrchampion | (~mrchampio@38.18.109.23) (Ping timeout: 265 seconds) |
2021-04-21 05:42:49 +0200 | mrchampion | (~mrchampio@38.18.109.23) |
2021-04-21 05:47:51 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
2021-04-21 05:51:52 +0200 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 252 seconds) |
2021-04-21 05:56:13 +0200 | Jd007 | (~Jd007@162.156.11.151) (Quit: Jd007) |
2021-04-21 05:57:08 +0200 | benkolera | (uid285671@gateway/web/irccloud.com/x-wgysqrkvbdmzjzqk) |
2021-04-21 06:00:25 +0200 | Alleria | (~textual@2603-7000-3040-0000-e52b-abc5-9db9-302a.res6.spectrum.com) |
2021-04-21 06:00:48 +0200 | Alleria | Guest59865 |
2021-04-21 06:02:37 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving) |
2021-04-21 06:02:54 +0200 | triposorbust | (~ahc2149@097-094-102-232.biz.spectrum.com) |
2021-04-21 06:04:57 +0200 | Guest59865 | (~textual@2603-7000-3040-0000-e52b-abc5-9db9-302a.res6.spectrum.com) (Ping timeout: 250 seconds) |
2021-04-21 06:05:35 +0200 | triposorbust | (~ahc2149@097-094-102-232.biz.spectrum.com) () |
2021-04-21 06:05:49 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-04-21 06:07:43 +0200 | jesystani | (~thorn@2404:4404:17f1:4900:8c4:9d6:6bf0:ca3a) (Ping timeout: 260 seconds) |
2021-04-21 06:08:27 +0200 | jesystani | (~thorn@2404:4404:17f1:4900:321c:1a26:59b4:eb2d) |
2021-04-21 06:11:55 +0200 | lazy_j | (~lazy_J@193.27.12.44) |
2021-04-21 06:13:53 +0200 | lazy_j | (~lazy_J@193.27.12.44) (Client Quit) |
2021-04-21 06:13:59 +0200 | guest421 | (~user@49.5.6.87) |
2021-04-21 06:14:31 +0200 | <guest421> | what is `traverse`? what does this mean "It's kind of like fmap, except that you can run effects inside the mapper function, which also changes the result type."? |
2021-04-21 06:14:46 +0200 | lazy_j | (~lazy_J@193.27.12.44) |
2021-04-21 06:14:53 +0200 | vdukhovni | (64022765@100.2.39.101) |
2021-04-21 06:14:56 +0200 | nineonine | (~nineonine@50.216.62.2) (Ping timeout: 245 seconds) |
2021-04-21 06:16:43 +0200 | <Axman6> | :t traverse |
2021-04-21 06:16:45 +0200 | <lambdabot> | (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b) |
2021-04-21 06:16:57 +0200 | <Axman6> | % :traverse @Tree @IO |
2021-04-21 06:16:58 +0200 | <yahb> | Axman6: unknown command ':traverse'; use :? for help. |
2021-04-21 06:17:03 +0200 | <Axman6> | % :t traverse @Tree @IO |
2021-04-21 06:17:03 +0200 | <yahb> | Axman6: (a -> IO b) -> Tree a -> IO (Tree b) |
2021-04-21 06:18:28 +0200 | <guest421> | > traverse print [1,2,3] |
2021-04-21 06:18:30 +0200 | <lambdabot> | <IO [()]> |
2021-04-21 06:20:17 +0200 | Rudd0 | (~Rudd0@185.189.115.108) |
2021-04-21 06:23:41 +0200 | ania123 | (5e89ad7c@94.137.173.124) |
2021-04-21 06:24:24 +0200 | j_lazy | (~lazy_J@64.44.80.252) |
2021-04-21 06:25:58 +0200 | <guest421> | like sequenceA_ (fmap print [1,2,3])? |
2021-04-21 06:26:04 +0200 | nineonine | (~nineonine@50.216.62.2) |
2021-04-21 06:26:14 +0200 | <guest421> | :t sequenceA_ |
2021-04-21 06:26:16 +0200 | <lambdabot> | (Foldable t, Applicative f) => t (f a) -> f () |
2021-04-21 06:26:26 +0200 | fresheyeball | (~isaac@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9) |
2021-04-21 06:26:36 +0200 | lazy_j | (~lazy_J@193.27.12.44) (Ping timeout: 245 seconds) |
2021-04-21 06:26:39 +0200 | <guest421> | but this t is Foldable not Traversable |
2021-04-21 06:28:02 +0200 | falafel_ | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-04-21 06:28:08 +0200 | ortz | (~egigs@108-89-5-25.lightspeed.dybhfl.sbcglobal.net) (Quit: leaving) |
2021-04-21 06:28:32 +0200 | horatiohb | (~horatiohb@104.131.33.15) (Ping timeout: 240 seconds) |
2021-04-21 06:28:46 +0200 | j_lazy | (~lazy_J@64.44.80.252) (Ping timeout: 240 seconds) |
2021-04-21 06:31:35 +0200 | aVikingTrex | (~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea) |
2021-04-21 06:32:49 +0200 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) |
2021-04-21 06:33:03 +0200 | <guest421> | I forget how to put IO actions inside a list? |
2021-04-21 06:33:07 +0200 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) (Client Quit) |
2021-04-21 06:34:00 +0200 | jesystani | (~thorn@2404:4404:17f1:4900:321c:1a26:59b4:eb2d) (Quit: WeeChat 3.1) |
2021-04-21 06:34:49 +0200 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) |
2021-04-21 06:36:04 +0200 | <glguy> | :t [ print "IO", print "actions" ] |
2021-04-21 06:36:05 +0200 | <lambdabot> | [IO ()] |
2021-04-21 06:36:16 +0200 | hypercube | (hypercube@gateway/vpn/protonvpn/hypercube) (Ping timeout: 252 seconds) |
2021-04-21 06:39:12 +0200 | RusAlex | (~Chel@unaffiliated/rusalex) (Ping timeout: 265 seconds) |
2021-04-21 06:40:41 +0200 | <Axman6> | g`so the mental model you should use for traverse is, if I have a function which can accept a's and produce f b's (let's say, fetchUrl :: Url -> IO ByteString), and we have some traversable structure of containing a's (let's say urlTree :: Tree Url), then you can use traverse fetchUrl urlTree to get back an IO (Tree ByteString) |
2021-04-21 06:40:55 +0200 | u0_a203 | (~u0_a203@93.119.221.33) |
2021-04-21 06:41:50 +0200 | u0_a203 | (~u0_a203@93.119.221.33) (Client Quit) |
2021-04-21 06:42:37 +0200 | <Axman6> | guest421: ^ that was for you, but apparently I'm terrible at typing |
2021-04-21 06:42:46 +0200 | MVQq | (~anja@198.254.208.159) (Quit: q) |
2021-04-21 06:43:24 +0200 | MarcelineVQ | (~anja@198.254.208.159) |
2021-04-21 06:43:35 +0200 | waleee-cl | (uid373333@gateway/web/irccloud.com/x-bpfgsdmlrafbmgyu) |
2021-04-21 06:43:55 +0200 | <guest421> | sequence $ fmap print [1,2,3] |
2021-04-21 06:44:01 +0200 | <guest421> | mapM print [1,2,3] |
2021-04-21 06:44:07 +0200 | <Axman6> | traverse f = sequence . fmap f |
2021-04-21 06:44:18 +0200 | <Axman6> | mapM is also the same as traverse |
2021-04-21 06:44:27 +0200 | <c_wraith> | Though really, you're probably better off with mapM_ or traverse_ |
2021-04-21 06:44:34 +0200 | <guest421> | traverse print [1,2,3] |
2021-04-21 06:45:07 +0200 | <guest421> | sequenceA_ (fmap print [1,2,3]) |
2021-04-21 06:45:30 +0200 | <Axman6> | :t traverse_ |
2021-04-21 06:45:32 +0200 | <lambdabot> | (Foldable t, Applicative f) => (a -> f b) -> t a -> f () |
2021-04-21 06:46:46 +0200 | <gnumonic> | :t mapM |
2021-04-21 06:46:47 +0200 | <lambdabot> | (Traversable t, Monad m) => (a -> m b) -> t a -> m (t b) |
2021-04-21 06:46:53 +0200 | <Axman6> | % sequenceA_ (fmap print [1,2,3]) |
2021-04-21 06:46:53 +0200 | <yahb> | Axman6: 1; 2; 3 |
2021-04-21 06:47:06 +0200 | <gnumonic> | huh i always thought mapM was specialized to lists |
2021-04-21 06:47:07 +0200 | <Axman6> | % traverse_ print [1,2,3] |
2021-04-21 06:47:07 +0200 | <yahb> | Axman6: 1; 2; 3 |
2021-04-21 06:47:08 +0200 | <gnumonic> | oops |
2021-04-21 06:47:46 +0200 | <Axman6> | it used to be, but these days mapM etc are basically just old names for other function |
2021-04-21 06:47:49 +0200 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
2021-04-21 06:48:28 +0200 | <lechner> | Hi, is there a consistent link to Haddock documentation on Hackage pages, please? https://hackage.haskell.org/package/zeromq4-haskell |
2021-04-21 06:48:41 +0200 | <guest421> | those functions related to IO? |
2021-04-21 06:48:42 +0200 | <Axman6> | consistent how? |
2021-04-21 06:49:09 +0200 | <Axman6> | IO is an Applicative, so you can choose for the f to be IO |
2021-04-21 06:49:20 +0200 | <Axman6> | (or m in the case of mapM etc) |
2021-04-21 06:49:45 +0200 | <guest421> | fmap print [1,2,3] is not wrong, right? |
2021-04-21 06:50:20 +0200 | <c_wraith> | it's not a type error. whether it's "wrong" or not depends on what you want to do. It won't create an IO action that prints each value. |
2021-04-21 06:50:29 +0200 | <guest421> | but sequence or mapM or traverse will get the IO effects |
2021-04-21 06:50:35 +0200 | <guest421> | which fmap print [1,2,3] won't |
2021-04-21 06:50:46 +0200 | <c_wraith> | It will create a list of IO actions, rather than one IO action that prints everything in the list |
2021-04-21 06:50:55 +0200 | <c_wraith> | sometimes you want a list of IO actions! |
2021-04-21 06:51:33 +0200 | <Axman6> | :t fmap print |
2021-04-21 06:51:35 +0200 | <lambdabot> | (Functor f, Show a) => f a -> f (IO ()) |
2021-04-21 06:51:36 +0200 | <guest421> | fmap print [1,2,3] would create a list of IO actions |
2021-04-21 06:51:44 +0200 | <Axman6> | % :t fmap @[] print |
2021-04-21 06:51:44 +0200 | <yahb> | Axman6: Show a => [a] -> [IO ()] |
2021-04-21 06:51:50 +0200 | <Axman6> | yes |
2021-04-21 06:52:11 +0200 | <guest421> | and what traverse or sequence or mapM do? |
2021-04-21 06:52:22 +0200 | <lechner> | Axman6: i only see links sometimes. is there any documentation for the module above? |
2021-04-21 06:52:22 +0200 | <guest421> | why there're so many names... |
2021-04-21 06:52:40 +0200 | <c_wraith> | there are so many names because of historical mistakes |
2021-04-21 06:52:51 +0200 | carlomagno | (~cararell@148.87.23.7) (Remote host closed the connection) |
2021-04-21 06:53:08 +0200 | <Axman6> | lechner: probably because it failed to build when uploaded to hackage so the documentation was never generated |
2021-04-21 06:53:20 +0200 | <lechner> | Axman6: thanks! |
2021-04-21 06:53:34 +0200 | <c_wraith> | Haskell is a pretty old language, and people have been trying to improve it for a long time. But sometimes that means when a clear improvement is made, old names stick around to not break old code |
2021-04-21 06:53:41 +0200 | <Axman6> | lechner: look at the "build log" link at the bottom right of the page |
2021-04-21 06:54:07 +0200 | <lechner> | Axman6: now i see it. thanks! |
2021-04-21 06:55:24 +0200 | <lechner> | Axman6: maybe hackage could build the docs first... https://hackage.haskell.org/package/zeromq4-haskell-0.8.0/reports/2 |
2021-04-21 06:55:58 +0200 | <Axman6> | guest421: it's definitely more common to want to apply a function to every element of a list and then execute the resultin IO actions than it is to keep around a list of IO actions |
2021-04-21 06:56:14 +0200 | <Axman6> | lechner: the docs building depend on the code being able to compile IIRC |
2021-04-21 06:56:25 +0200 | malumore_ | (~malumore@151.62.122.70) |
2021-04-21 06:57:15 +0200 | <lechner> | Axman6: yeah it looks like a broader cabal v1 problem, too https://hackage.haskell.org/package/zeromq4-simple-0.0.0.2/reports/3 |
2021-04-21 06:58:11 +0200 | jao | (~jao@pdpc/supporter/professional/jao) (Ping timeout: 240 seconds) |
2021-04-21 06:58:22 +0200 | <Axman6> | lechner: looks to me like the server hackage is running on doesn't have libzmq installed: (conflict: |
2021-04-21 06:58:25 +0200 | <Axman6> | pkg-config package libzmq>=4.0 && <5.0, not found in the pkg-config database) |
2021-04-21 06:58:49 +0200 | <Axman6> | which makes sense. Libraries which depend on external C libraries often fail to build on hackage |
2021-04-21 06:59:26 +0200 | <lechner> | i see. that would explain why i could not find any ZeroMQ packages with documentation at all there |
2021-04-21 06:59:38 +0200 | ania123 | (5e89ad7c@94.137.173.124) (Quit: Connection closed) |
2021-04-21 06:59:50 +0200 | Jd007 | (~Jd007@162.156.11.151) |
2021-04-21 07:05:44 +0200 | RusAlex | (~Chel@unaffiliated/rusalex) |
2021-04-21 07:09:02 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-04-21 07:16:19 +0200 | Guest78317 | (~laudiacay@67.176.215.84) |
2021-04-21 07:19:56 +0200 | Tario | (~Tario@201.192.165.173) (Ping timeout: 245 seconds) |
2021-04-21 07:22:40 +0200 | maroloccio | (~marolocci@pousada3ja.mma.com.br) (Quit: WeeChat 2.3) |
2021-04-21 07:25:03 +0200 | HannaM | (~quassel@p54849510.dip0.t-ipconnect.de) |
2021-04-21 07:25:09 +0200 | rdivyanshu | (uid322626@gateway/web/irccloud.com/x-fcexcnqymecxutqt) |
2021-04-21 07:25:13 +0200 | malumore_ | (~malumore@151.62.122.70) (Remote host closed the connection) |
2021-04-21 07:25:31 +0200 | malumore_ | (~malumore@151.62.122.70) |
2021-04-21 07:26:27 +0200 | hypercube | (~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) |
2021-04-21 07:28:06 +0200 | ddellacosta | (~ddellacos@ool-44c73afa.dyn.optonline.net) |
2021-04-21 07:32:51 +0200 | ddellacosta | (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 245 seconds) |
2021-04-21 07:36:29 +0200 | falafel_ | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 246 seconds) |
2021-04-21 07:37:36 +0200 | myShoggoth | (~myShoggot@75.164.11.109) (Ping timeout: 268 seconds) |
2021-04-21 07:40:37 +0200 | Guest78317 | (~laudiacay@67.176.215.84) (Ping timeout: 252 seconds) |
2021-04-21 07:41:26 +0200 | bitmagie | (~Thunderbi@200116b8063572001499edd4f9d505b9.dip.versatel-1u1.de) |
2021-04-21 07:44:08 +0200 | Jd007 | (~Jd007@162.156.11.151) (Quit: Jd007) |
2021-04-21 07:44:35 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-04-21 07:47:00 +0200 | <wroathe> | Is there a way to specify a monoid constraint for a * -> * type variable in a function type? |
2021-04-21 07:47:27 +0200 | <c_wraith> | are you looking for QuantifiedConstraints? |
2021-04-21 07:47:37 +0200 | <wroathe> | c_wraith: Probably. |
2021-04-21 07:47:38 +0200 | <c_wraith> | For what it's worth, I hear it's a bit buggy |
2021-04-21 07:48:54 +0200 | <wroathe> | Specifically I've got (IsString a, Monoid t) => t (Attribute a) -> Html t a, and it's telling me Expected kind ‘* -> *’, but ‘t’ has kind ‘*’ |
2021-04-21 07:49:19 +0200 | <wroathe> | So the Monoid constraint seemingly can only be applied to type variables of kind * by default |
2021-04-21 07:50:39 +0200 | gaiger | (~geiger@0543f40b.skybroadband.com) |
2021-04-21 07:53:29 +0200 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2021-04-21 07:54:17 +0200 | edwardk_ | (sid47016@haskell/developer/edwardk) |
2021-04-21 07:54:54 +0200 | <gnumonic> | f :: forall a b (m :: Type -> Type) y. (b ~ Maybe a, Monoid (m b), Monoid (m a)) => m (Maybe a) -> Identity (m a) seems to typecheck but i dunno if that's what you want? |
2021-04-21 07:54:56 +0200 | Codaraxis__ | (Codaraxis@gateway/vpn/mullvad/codaraxis) |
2021-04-21 07:55:13 +0200 | <gnumonic> | i have basically every type voodoo compiler extension on in that file tho |
2021-04-21 07:55:29 +0200 | <wroathe> | Ha, there HAS to be a simpler way than that :P |
2021-04-21 07:55:44 +0200 | edwardk | (sid47016@haskell/developer/edwardk) (Ping timeout: 245 seconds) |
2021-04-21 07:55:44 +0200 | stylewarning | (stylewarni@gateway/web/irccloud.com/x-llgsamgivilxjltg) (Ping timeout: 245 seconds) |
2021-04-21 07:55:44 +0200 | Codaraxis_ | (Codaraxis@gateway/vpn/mullvad/codaraxis) (Remote host closed the connection) |
2021-04-21 07:55:44 +0200 | edwardk_ | edwardk |
2021-04-21 07:55:44 +0200 | tapas | (sid467876@gateway/web/irccloud.com/x-dpxzueexrqylgrju) (Ping timeout: 245 seconds) |
2021-04-21 07:55:45 +0200 | parisienne | (sid383587@gateway/web/irccloud.com/x-aiygzsqhowxpopox) (Ping timeout: 245 seconds) |
2021-04-21 07:55:45 +0200 | stylewarning | (stylewarni@gateway/web/irccloud.com/session) |
2021-04-21 07:55:45 +0200 | stylewarning | (stylewarni@gateway/web/irccloud.com/session) (Changing host) |
2021-04-21 07:55:45 +0200 | stylewarning | (stylewarni@gateway/web/irccloud.com/x-gsvymsjokvoizmft) |
2021-04-21 07:55:52 +0200 | ephemera_ | (~E@122.34.1.187) (Ping timeout: 245 seconds) |
2021-04-21 07:55:59 +0200 | parisienne | (sid383587@gateway/web/irccloud.com/x-vydbxjnkijiazrlk) |
2021-04-21 07:55:59 +0200 | chele | (~chele@5.53.222.202) |
2021-04-21 07:56:05 +0200 | ephemera_ | (~E@122.34.1.187) |
2021-04-21 07:56:21 +0200 | ashesham` | (~user@d8D87D1B0.access.telenet.be) |
2021-04-21 07:56:25 +0200 | tapas | (sid467876@gateway/web/irccloud.com/x-bsjadohtpruxmywx) |
2021-04-21 07:56:36 +0200 | sclv | (sid39734@haskell/developer/sclv) (Ping timeout: 245 seconds) |
2021-04-21 07:56:37 +0200 | cyberlard | (~cyberlard@unaffiliated/jludwig) (Ping timeout: 245 seconds) |
2021-04-21 07:56:51 +0200 | <gnumonic> | i've been doing dependently typed experiments for a few days so that actually does strike me as simple-ish :p |
2021-04-21 07:56:57 +0200 | cyberlard | (~cyberlard@unaffiliated/jludwig) |
2021-04-21 07:57:23 +0200 | exarkun_ | (~exarkun@14.79.69.34.bc.googleusercontent.com) |
2021-04-21 07:57:49 +0200 | exarkun | (~exarkun@14.79.69.34.bc.googleusercontent.com) (Ping timeout: 245 seconds) |
2021-04-21 07:57:49 +0200 | nh2 | (sid309956@gateway/web/irccloud.com/x-vqylohvjgsiigvkd) (Ping timeout: 245 seconds) |
2021-04-21 07:57:49 +0200 | alanz | (sid110616@gateway/web/irccloud.com/x-ephuaztzuzimomxa) (Ping timeout: 245 seconds) |
2021-04-21 07:57:51 +0200 | jackhill | (~jackhill@marsh.hcoop.net) (Ping timeout: 245 seconds) |
2021-04-21 07:58:01 +0200 | sclv | (sid39734@haskell/developer/sclv) |
2021-04-21 07:58:07 +0200 | jackhill | (~jackhill@marsh.hcoop.net) |
2021-04-21 07:58:29 +0200 | loller_ | (uid358106@gateway/web/irccloud.com/x-knsjtabxhwvomwzb) (Ping timeout: 245 seconds) |
2021-04-21 07:58:29 +0200 | pepeiborra | (sid443799@gateway/web/irccloud.com/x-nirrncfqraegkpgk) (Ping timeout: 245 seconds) |
2021-04-21 07:58:42 +0200 | aizen_s | (sid462968@gateway/web/irccloud.com/x-gzlgfjzfpthijryy) (Ping timeout: 245 seconds) |
2021-04-21 07:58:42 +0200 | nshepperd | (nshepperd@2600:3c03::f03c:92ff:fe28:92c9) (Ping timeout: 245 seconds) |
2021-04-21 07:58:42 +0200 | davean | (~davean@davean.sciesnet.net) (Ping timeout: 245 seconds) |
2021-04-21 07:58:58 +0200 | davean | (~davean@davean.sciesnet.net) |
2021-04-21 07:58:59 +0200 | nshepperd | (nshepperd@2600:3c03::f03c:92ff:fe28:92c9) |
2021-04-21 07:59:14 +0200 | nh2 | (sid309956@gateway/web/irccloud.com/x-sfwmjcpeywrfgggs) |
2021-04-21 07:59:31 +0200 | ptrcmd | (~ptrcmd@unaffiliated/petercommand) (Ping timeout: 245 seconds) |
2021-04-21 07:59:32 +0200 | alanz | (sid110616@gateway/web/irccloud.com/x-qjhghsxjfupjbdeb) |
2021-04-21 07:59:32 +0200 | loller_ | (uid358106@gateway/web/irccloud.com/x-jiaqaybiuqrwtvzc) |
2021-04-21 07:59:38 +0200 | ptrcmd | (~ptrcmd@unaffiliated/petercommand) |
2021-04-21 07:59:49 +0200 | pepeiborra | (sid443799@gateway/web/irccloud.com/x-sswqhnrrevrotjio) |
2021-04-21 07:59:50 +0200 | <wavemode> | afaik a type which is a Monoid would necessarily have kind *. That is why instances are declared like (for example) Monoid [a], not Monoid [] |
2021-04-21 07:59:56 +0200 | stylewarning | (stylewarni@gateway/web/irccloud.com/x-gsvymsjokvoizmft) (Ping timeout: 245 seconds) |
2021-04-21 08:00:06 +0200 | Alleria | (~textual@2603-7000-3040-0000-e52b-abc5-9db9-302a.res6.spectrum.com) |
2021-04-21 08:00:29 +0200 | Alleria | Guest57813 |
2021-04-21 08:00:43 +0200 | aizen_s | (sid462968@gateway/web/irccloud.com/x-pjdnfdcsawunazxf) |
2021-04-21 08:01:02 +0200 | stylewarning | (stylewarni@gateway/web/irccloud.com/x-zhwbhuctetrnaybq) |
2021-04-21 08:02:40 +0200 | <joel135> | A monoid of kind * -> * would be a monad :) |
2021-04-21 08:02:56 +0200 | thc202 | (~thc202@unaffiliated/thc202) |
2021-04-21 08:03:50 +0200 | <wroathe> | joel135: So where's my Monad equivalent of mempty ;P |
2021-04-21 08:04:22 +0200 | <joel135> | return |
2021-04-21 08:04:31 +0200 | Guest57813 | (~textual@2603-7000-3040-0000-e52b-abc5-9db9-302a.res6.spectrum.com) (Ping timeout: 245 seconds) |
2021-04-21 08:04:38 +0200 | <wroathe> | joel135: That would require putting at least one thing in the container, would it not? |
2021-04-21 08:05:11 +0200 | frozenErebus | (~frozenEre@37.231.244.249) (Ping timeout: 240 seconds) |
2021-04-21 08:05:14 +0200 | hexfive | (~hexfive@50.35.83.177) (Quit: i must go. my people need me.) |
2021-04-21 08:05:23 +0200 | danvet | (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
2021-04-21 08:05:34 +0200 | coot | (~coot@37.30.50.130.nat.umts.dynamic.t-mobile.pl) |
2021-04-21 08:05:40 +0200 | <gnumonic> | wonder if you could do something like this: class (KindOf b ~ Type, Monoid b) => ToMonoid (f :: Type -> b) where (...) |
2021-04-21 08:05:42 +0200 | <wroathe> | % pure 3 :: [Int] |
2021-04-21 08:05:42 +0200 | <yahb> | wroathe: [3] |
2021-04-21 08:06:36 +0200 | <wroathe> | % mempty :: [Int] |
2021-04-21 08:06:36 +0200 | <yahb> | wroathe: [] |
2021-04-21 08:07:33 +0200 | <joel135> | :t mempty |
2021-04-21 08:07:34 +0200 | <lambdabot> | Monoid a => a |
2021-04-21 08:07:39 +0200 | <joel135> | :t return |
2021-04-21 08:07:40 +0200 | <lambdabot> | Monad m => a -> m a |
2021-04-21 08:07:57 +0200 | dave_uy | (~david@108.61.193.26) (Quit: The Lounge - https://thelounge.chat) |
2021-04-21 08:08:03 +0200 | <joel135> | Monad m => 1 -> m |
2021-04-21 08:08:11 +0200 | <joel135> | Monad m => m |
2021-04-21 08:09:03 +0200 | <wroathe> | joel135: I'm not following... Is there a function for this Monad m => m? |
2021-04-21 08:09:35 +0200 | <joel135> | I'd perhaps say that return gives you an empty container of structure, which may in turn house more than zero data. |
2021-04-21 08:09:55 +0200 | <joel135> | No, I'm just doing pseudo-haskell math. |
2021-04-21 08:10:27 +0200 | <wroathe> | The use case is that I've got a datatype that's a tree-like structure where I want the user to be able to choose the type of the container that contains each nodes child nodes, and I'm defining a function where I want to initialize that field to an "empty" container |
2021-04-21 08:11:05 +0200 | dave_uy | (~david@108.61.193.26) |
2021-04-21 08:11:21 +0200 | <joel135> | So you want forall a. Monoid (t a) ? |
2021-04-21 08:11:35 +0200 | <wroathe> | Yeah, maybe that's it... |
2021-04-21 08:12:44 +0200 | <wroathe> | joel135: I'm still not very familiar with explicit quantification, but I think I understand what you're suggesting there |
2021-04-21 08:12:52 +0200 | <joel135> | Or maybe forall a. Monoid (t (Attribute a)). Or just Monoid (t (Attribute a)) without quantification. |
2021-04-21 08:13:06 +0200 | wonko7 | (~wonko7@62.115.229.50) |
2021-04-21 08:13:06 +0200 | <joel135> | I don't know what haskell will accept. |
2021-04-21 08:13:27 +0200 | <wroathe> | joel135: The a in this case doesn't really matter. It's just an empty container. |
2021-04-21 08:13:42 +0200 | <wroathe> | But yeah, I'll see what GHC accepts |
2021-04-21 08:13:45 +0200 | <wroathe> | joel135: Thank you for the ideas! |
2021-04-21 08:13:52 +0200 | ReinH_ | (sid179972@gateway/web/irccloud.com/x-yfquzpeultndckwv) |
2021-04-21 08:14:04 +0200 | ReinH | (sid179972@gateway/web/irccloud.com/x-nocjtzmybziqzfuj) (Ping timeout: 245 seconds) |
2021-04-21 08:14:04 +0200 | ReinH_ | ReinH |
2021-04-21 08:14:06 +0200 | pent | (sid313808@gateway/web/irccloud.com/x-mamwukyavontcbfs) (Ping timeout: 245 seconds) |
2021-04-21 08:14:06 +0200 | b20n | (sid115913@gateway/web/irccloud.com/x-lrxmhixuzcmcfdhe) (Ping timeout: 245 seconds) |
2021-04-21 08:14:56 +0200 | b20n | (sid115913@gateway/web/irccloud.com/x-qwfuumnekwjdmynk) |
2021-04-21 08:15:16 +0200 | pent | (sid313808@gateway/web/irccloud.com/x-oyldewujgosrhjtp) |
2021-04-21 08:15:34 +0200 | michalz | (~user@185.246.204.47) |
2021-04-21 08:15:49 +0200 | leothrix | (~leothrix@elastic/staff/leothrix) (Ping timeout: 252 seconds) |
2021-04-21 08:16:14 +0200 | <wroathe> | ...and that requires QuantifiedConstraints |
2021-04-21 08:16:20 +0200 | <wroathe> | So c_wraith was right all along. |
2021-04-21 08:16:24 +0200 | <wroathe> | :) |
2021-04-21 08:16:50 +0200 | wpcarro | (sid397589@gateway/web/irccloud.com/x-xnngigwekxregdfs) (Ping timeout: 245 seconds) |
2021-04-21 08:16:50 +0200 | PotatoGim | (sid99505@gateway/web/irccloud.com/x-tcgdsfioetpoitie) (Ping timeout: 245 seconds) |
2021-04-21 08:16:51 +0200 | wpcarro_ | (sid397589@gateway/web/irccloud.com/x-sldapopyxsudveqd) |
2021-04-21 08:17:35 +0200 | stylewarning | (stylewarni@gateway/web/irccloud.com/x-zhwbhuctetrnaybq) (Ping timeout: 245 seconds) |
2021-04-21 08:18:08 +0200 | <wroathe> | joel135: c_wraith: That worked like a charm. Thanks! |
2021-04-21 08:18:39 +0200 | stylewarning | (stylewarni@gateway/web/irccloud.com/x-hfenrszoagpafasl) |
2021-04-21 08:18:51 +0200 | PotatoGim | (sid99505@gateway/web/irccloud.com/x-qrihjhvmnnmtnggm) |
2021-04-21 08:18:55 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
2021-04-21 08:19:07 +0200 | caasih | (sid13241@gateway/web/irccloud.com/x-uqzvpjpcsslwgwfl) (Ping timeout: 245 seconds) |
2021-04-21 08:19:07 +0200 | alunduil | (alunduil@gateway/web/irccloud.com/x-dylmpfrvghvfrpjf) (Ping timeout: 245 seconds) |
2021-04-21 08:19:07 +0200 | glamas | (~glamas@107.182.17.237) (Ping timeout: 245 seconds) |
2021-04-21 08:20:15 +0200 | Logio | (em@kapsi.fi) (Ping timeout: 245 seconds) |
2021-04-21 08:20:15 +0200 | b20n | (sid115913@gateway/web/irccloud.com/x-qwfuumnekwjdmynk) (Ping timeout: 245 seconds) |
2021-04-21 08:20:16 +0200 | glamas | (~glamas@107.182.17.237) |
2021-04-21 08:20:28 +0200 | Logio | (em@kapsi.fi) |
2021-04-21 08:20:30 +0200 | aizen_s | (sid462968@gateway/web/irccloud.com/x-pjdnfdcsawunazxf) (Ping timeout: 245 seconds) |
2021-04-21 08:20:30 +0200 | miklcct | (quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7) (Ping timeout: 245 seconds) |
2021-04-21 08:20:37 +0200 | miklcct_ | (quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7) |
2021-04-21 08:21:15 +0200 | pepeiborra | (sid443799@gateway/web/irccloud.com/x-sswqhnrrevrotjio) (Ping timeout: 245 seconds) |
2021-04-21 08:21:19 +0200 | b20n | (sid115913@gateway/web/irccloud.com/x-fxwwqjclpbrawyzj) |
2021-04-21 08:21:39 +0200 | thi | (sid97277@gateway/web/irccloud.com/x-mwvssirlkplfqvqk) (Ping timeout: 245 seconds) |
2021-04-21 08:21:39 +0200 | aizen_s | (sid462968@gateway/web/irccloud.com/x-cimltabwsuoipsqn) |
2021-04-21 08:21:48 +0200 | alunduil | (alunduil@gateway/web/irccloud.com/x-lfjncrqckqiqjrhx) |
2021-04-21 08:21:57 +0200 | caasih | (sid13241@gateway/web/irccloud.com/x-ywhvuyflycmojjfa) |
2021-04-21 08:22:26 +0200 | dgpratt | (sid193493@gateway/web/irccloud.com/x-vbszyjrhlyidsuhn) (Ping timeout: 245 seconds) |
2021-04-21 08:22:29 +0200 | thi | (sid97277@gateway/web/irccloud.com/x-qecopghcofyuqahp) |
2021-04-21 08:23:03 +0200 | pepeiborra | (sid443799@gateway/web/irccloud.com/x-wwhumdjiavtzqvnj) |
2021-04-21 08:23:22 +0200 | dgpratt | (sid193493@gateway/web/irccloud.com/x-yujexlmxhvpapqdm) |
2021-04-21 08:23:52 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
2021-04-21 08:25:53 +0200 | <gnumonic> | So I made this class: "class BuildSing (f :: k -> Type) where buildSing :: forall (a :: k). f a -> Sing a" and I'm wondering if it is something that already exists? I don't think it's identical to SingI but I'm tired and not sure |
2021-04-21 08:29:47 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-04-21 08:30:13 +0200 | <juri_> | good: i woke up in the middle of the night, thinking about a way to simplify my program using types. bad: i WOKE UP IN THE MIDDLE OF THE NIGHT, thinking about a way to simplify my program using types. |
2021-04-21 08:32:59 +0200 | nicholasbulka | (~nicholasb@2601:900:4301:da0:bdc9:711a:32b8:207e) |
2021-04-21 08:33:44 +0200 | tomboy64 | (~tomboy64@unaffiliated/tomboy64) |
2021-04-21 08:34:41 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds) |
2021-04-21 08:35:40 +0200 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
2021-04-21 08:37:29 +0200 | nicholasbulka | (~nicholasb@2601:900:4301:da0:bdc9:711a:32b8:207e) (Ping timeout: 245 seconds) |
2021-04-21 08:38:55 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
2021-04-21 08:39:49 +0200 | dpl_ | (~dpl@77-121-78-163.chn.volia.net) |
2021-04-21 08:44:51 +0200 | frozenErebus | (~frozenEre@37.231.244.249) |
2021-04-21 08:46:52 +0200 | nut | (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
2021-04-21 08:47:46 +0200 | michalz | (~user@185.246.204.47) (Ping timeout: 265 seconds) |
2021-04-21 08:48:36 +0200 | bitmagie | (~Thunderbi@200116b8063572001499edd4f9d505b9.dip.versatel-1u1.de) (Quit: bitmagie) |
2021-04-21 08:52:53 +0200 | <Axman6> | juri_: you sday this like it's a bad thing. this sounds like ecstacy |
2021-04-21 08:53:06 +0200 | Varis | (~Tadas@unaffiliated/varis) |
2021-04-21 08:57:11 +0200 | <juri_> | Axman6: I'd like to sleep. :P |
2021-04-21 08:58:14 +0200 | <Axman6> | how will you code when you sleep? |
2021-04-21 08:58:30 +0200 | bitmagie | (~Thunderbi@200116b8063572001499edd4f9d505b9.dip.versatel-1u1.de) |
2021-04-21 08:58:50 +0200 | <pjb> | Axman6: good question. And here's a possible answer: neuralink, or other mind reading device, so you may record your nocturnal programming activity. |
2021-04-21 08:59:08 +0200 | <Axman6> | soon... |
2021-04-21 09:00:17 +0200 | kiweun | (~kiweun@2607:fea8:2a62:9600:908a:4a01:c91b:ed2f) (Remote host closed the connection) |
2021-04-21 09:02:04 +0200 | leothrix | (~leothrix@elastic/staff/leothrix) |
2021-04-21 09:05:45 +0200 | <guest421> | half x = if even x then Just (x `div` 2) else Nothing |
2021-04-21 09:05:55 +0200 | <guest421> | traverse half [1..10] == Nothing |
2021-04-21 09:06:05 +0200 | <guest421> | this time traverse /= sequence . fmap? |
2021-04-21 09:06:31 +0200 | <guest421> | I saw "The reason is that the <*> function is used to build the result, and when one of the arguments is Nothing, we get Nothing back." |
2021-04-21 09:06:40 +0200 | <Axman6> | what does sequence . fmap half do? |
2021-04-21 09:06:45 +0200 | benkolera | (uid285671@gateway/web/irccloud.com/x-wgysqrkvbdmzjzqk) (Quit: Connection closed for inactivity) |
2021-04-21 09:07:07 +0200 | <Axman6> | because if they weren't _identical_ then the implementation of traverse breaks its own laws |
2021-04-21 09:07:35 +0200 | hypercube | (~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) (Quit: WeeChat 3.1) |
2021-04-21 09:07:39 +0200 | <guest421> | fmap half [1..10] will create a list [Nothing 1, Just 1...] |
2021-04-21 09:07:44 +0200 | <Axman6> | yes |
2021-04-21 09:07:49 +0200 | <guest421> | sequence [Nothing, Just 1...] |
2021-04-21 09:07:51 +0200 | <Axman6> | but then sequence will return Nothing |
2021-04-21 09:08:45 +0200 | <Axman6> | > sequence [Nothing, Just a, Nothing, Just 2] |
2021-04-21 09:08:48 +0200 | <lambdabot> | Nothing |
2021-04-21 09:09:03 +0200 | <guest421> | :t sequence |
2021-04-21 09:09:05 +0200 | <lambdabot> | (Traversable t, Monad m) => t (m a) -> m (t a) |
2021-04-21 09:09:15 +0200 | <guest421> | Evaluate each monadic action in the structure from left to right, and collect the results. |
2021-04-21 09:09:29 +0200 | <Axman6> | % :t sequence @[] @Maybe |
2021-04-21 09:09:29 +0200 | <yahb> | Axman6: [Maybe a] -> Maybe [a] |
2021-04-21 09:10:07 +0200 | <Axman6> | what do you think sequence should do when given [Nothing, Just a, Nothing, Just 2]? |
2021-04-21 09:10:11 +0200 | <wavemode> | better question - what is your expected behavior? |
2021-04-21 09:10:50 +0200 | leothrix | (~leothrix@elastic/staff/leothrix) (Remote host closed the connection) |
2021-04-21 09:11:32 +0200 | <guest421> | > (Just 3) <*> (Just 2) |
2021-04-21 09:11:34 +0200 | <lambdabot> | error: |
2021-04-21 09:11:34 +0200 | <lambdabot> | • Could not deduce (Num a0) |
2021-04-21 09:11:34 +0200 | <lambdabot> | from the context: (Num a, Num (a -> b)) |
2021-04-21 09:12:00 +0200 | <Axman6> | > (,) <$> Just 1 <*> Just 2 |
2021-04-21 09:12:02 +0200 | <lambdabot> | Just (1,2) |
2021-04-21 09:12:07 +0200 | <Axman6> | > (,) <$> Just 1 <*> Nothing |
2021-04-21 09:12:09 +0200 | <lambdabot> | Nothing |
2021-04-21 09:12:24 +0200 | <Axman6> | > (:) <$> Just 1 <*> Just [] |
2021-04-21 09:12:26 +0200 | <lambdabot> | Just [1] |
2021-04-21 09:12:35 +0200 | <Axman6> | > (:) <$> Nothing <*> Just [] |
2021-04-21 09:12:37 +0200 | <lambdabot> | Nothing |
2021-04-21 09:12:39 +0200 | leothrix | (~leothrix@elastic/staff/leothrix) |
2021-04-21 09:12:46 +0200 | <Axman6> | > (:) <$> Just 1 <*> Nithing |
2021-04-21 09:12:48 +0200 | <lambdabot> | error: |
2021-04-21 09:12:48 +0200 | <lambdabot> | • Data constructor not in scope: Nithing :: Maybe [a] |
2021-04-21 09:12:48 +0200 | <lambdabot> | • Perhaps you meant one of these: |
2021-04-21 09:12:54 +0200 | <Axman6> | > (:) <$> Just 1 <*> Nothing |
2021-04-21 09:12:56 +0200 | <lambdabot> | Nothing |
2021-04-21 09:13:45 +0200 | <guest421> | Axman6: how "collect the results" ? |
2021-04-21 09:14:16 +0200 | <Axman6> | it collects all the successful results |
2021-04-21 09:14:19 +0200 | <guest421> | [] is an instance of Traversable? |
2021-04-21 09:14:21 +0200 | <Axman6> | I think you want catMaybes |
2021-04-21 09:14:25 +0200 | dpl_ | (~dpl@77-121-78-163.chn.volia.net) (Ping timeout: 268 seconds) |
2021-04-21 09:14:27 +0200 | <Axman6> | :t catMaybes |
2021-04-21 09:14:29 +0200 | <lambdabot> | [Maybe a] -> [a] |
2021-04-21 09:14:33 +0200 | howdoi | (uid224@gateway/web/irccloud.com/x-bcrpbrlexhkfsmvn) (Quit: Connection closed for inactivity) |
2021-04-21 09:14:48 +0200 | <Axman6> | > catMaybes [Nothing, Just a, Nothing, Just 2] |
2021-04-21 09:14:50 +0200 | <lambdabot> | [a,2] |
2021-04-21 09:14:57 +0200 | <Axman6> | > catMaybes [Nothing, Just 1, Nothing, Just 2] |
2021-04-21 09:15:00 +0200 | <lambdabot> | [1,2] |
2021-04-21 09:15:01 +0200 | dyeplexer | (~lol@unaffiliated/terpin) |
2021-04-21 09:15:40 +0200 | dpl_ | (~dpl@77-121-78-163.chn.volia.net) |
2021-04-21 09:16:30 +0200 | vdukhovni | (64022765@100.2.39.101) (Quit: Connection closed) |
2021-04-21 09:17:41 +0200 | <guest421> | Axman6: fetchUrl :: Url -> MaybeT IO a, traverse (runMaybeT . fetchUrl) [Url1, Url2] -- this will return a list contain [Just a, Nothing...] or Just [a]? |
2021-04-21 09:18:12 +0200 | <Axman6> | what does ghci tell you? what's the type of runMaybeT . fetchUrl? |
2021-04-21 09:18:20 +0200 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer) |
2021-04-21 09:18:29 +0200 | <Axman6> | should be Url -> IO (Maybe a) right? |
2021-04-21 09:18:44 +0200 | <guest421> | Axman6: yeah, that's simple |
2021-04-21 09:18:45 +0200 | idhugo__ | (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) |
2021-04-21 09:18:49 +0200 | <Axman6> | so the result will be IO [Maybe a] |
2021-04-21 09:19:01 +0200 | <Axman6> | do you want to fail if any fetch fails? |
2021-04-21 09:19:08 +0200 | <guest421> | yes |
2021-04-21 09:20:41 +0200 | <Axman6> | then you probably want runMaybeT $ traverse fetchUrl [Url1, Url2], which will give you back an IO (Maybe [a]) |
2021-04-21 09:21:14 +0200 | idhugo_ | (~idhugo@87-49-45-4-mobile.dk.customer.tdc.net) |
2021-04-21 09:21:49 +0200 | bitmagie | (~Thunderbi@200116b8063572001499edd4f9d505b9.dip.versatel-1u1.de) (Quit: bitmagie) |
2021-04-21 09:22:12 +0200 | sleblanc | (~sleblanc@unaffiliated/sebleblanc) (Ping timeout: 240 seconds) |
2021-04-21 09:23:32 +0200 | idhugo__ | (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 240 seconds) |
2021-04-21 09:24:29 +0200 | <guest421> | fetchUrl :: Url -> IO (Maybe a) |
2021-04-21 09:24:32 +0200 | nineonine | (~nineonine@50.216.62.2) (Ping timeout: 240 seconds) |
2021-04-21 09:25:03 +0200 | <Axman6> | well that's different to MaybeT IO a |
2021-04-21 09:25:11 +0200 | <guest421> | fmap fetchUrl [Url] :: [IO (Maybe a)] |
2021-04-21 09:25:16 +0200 | loller_ | (uid358106@gateway/web/irccloud.com/x-jiaqaybiuqrwtvzc) (Quit: Connection closed for inactivity) |
2021-04-21 09:25:34 +0200 | <guest421> | sequence . fmap $ fetchUrl [Url] :: ? |
2021-04-21 09:25:42 +0200 | knupfer | (~Thunderbi@i59F67B5A.versanet.de) |
2021-04-21 09:26:04 +0200 | <Axman6> | that doesn't make sense |
2021-04-21 09:26:25 +0200 | <guest421> | Axman6: which part? |
2021-04-21 09:27:22 +0200 | <guest421> | sequence (a :: [IO (Maybe a)]) :: ? |
2021-04-21 09:27:57 +0200 | <guest421> | :t sequence |
2021-04-21 09:27:58 +0200 | <lambdabot> | (Traversable t, Monad m) => t (m a) -> m (t a) |
2021-04-21 09:28:00 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-04-21 09:28:39 +0200 | <Axman6> | :t sequence `asAppledTo` (undefined :: [IO (Maybe a]) |
2021-04-21 09:28:41 +0200 | <lambdabot> | error: parse error on input ‘]’ |
2021-04-21 09:28:47 +0200 | <Axman6> | :t sequence `asAppledTo` (undefined :: [IO (Maybe a)]) |
2021-04-21 09:28:49 +0200 | <lambdabot> | error: |
2021-04-21 09:28:49 +0200 | <lambdabot> | • Variable not in scope: |
2021-04-21 09:28:49 +0200 | <lambdabot> | asAppledTo :: (t0 (m0 a0) -> m0 (t0 a0)) -> [IO (Maybe a1)] -> t |
2021-04-21 09:28:50 +0200 | Codaraxis__ | (Codaraxis@gateway/vpn/mullvad/codaraxis) (Ping timeout: 246 seconds) |
2021-04-21 09:29:01 +0200 | <c_wraith> | try asAppliedTo :P |
2021-04-21 09:29:06 +0200 | <Axman6> | :t sequence `asAppliedTo` (undefined :: [IO (Maybe a)]) |
2021-04-21 09:29:08 +0200 | <lambdabot> | [IO (Maybe a)] -> IO [Maybe a] |
2021-04-21 09:29:44 +0200 | <guest421> | sequence . fmap $ fetchUrl [Url] :: IO [Maybe a] ? |
2021-04-21 09:29:45 +0200 | <Axman6> | guest421: so you could so fmap sequence . sequence if you want an IO (Maybe [a]) |
2021-04-21 09:30:03 +0200 | <Axman6> | :t fmap sequence . sequence `asAppliedTo` (undefined :: [IO (Maybe a)]) |
2021-04-21 09:30:05 +0200 | <lambdabot> | [IO (Maybe a)] -> IO (Maybe [a]) |
2021-04-21 09:30:07 +0200 | ddellaco_ | (~ddellacos@ool-44c73afa.dyn.optonline.net) |
2021-04-21 09:31:28 +0200 | <guest421> | why sequence . sequence... |
2021-04-21 09:32:38 +0200 | <Axman6> | it's (fmap sequence) . sequence, it's applying sequence to the [Maybe a] returned by the IO, it's doing: fmap sequence :: IO [Maybe a] -> IO (Maybe [a]) |
2021-04-21 09:36:07 +0200 | ddellaco_ | (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 252 seconds) |
2021-04-21 09:38:27 +0200 | nut_ | (~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
2021-04-21 09:40:45 +0200 | <Axman6> | so fmap sequence . sequence first turns a [IO (Maybe a)] into an IO [Maybe a], and then into an IO (Maybe [a]) |
2021-04-21 09:40:55 +0200 | hypercube | (~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) |
2021-04-21 09:41:03 +0200 | hypercube | (~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) (Client Quit) |
2021-04-21 09:43:28 +0200 | hypercube | (hypercube@gateway/vpn/protonvpn/hypercube) |
2021-04-21 09:43:35 +0200 | hypercube | (hypercube@gateway/vpn/protonvpn/hypercube) (Client Quit) |
2021-04-21 09:44:18 +0200 | Sornaensis | (~Sornaensi@077213200034.dynamic.telenor.dk) |
2021-04-21 09:46:52 +0200 | Sorna | (~Sornaensi@79.142.232.102) |
2021-04-21 09:48:23 +0200 | benkolera | (uid285671@gateway/web/irccloud.com/x-uqnaygwihchxqkys) |
2021-04-21 09:48:55 +0200 | <maerwald> | now I want an `IO (Maybe a)` ;) |
2021-04-21 09:49:04 +0200 | <maerwald> | and then an IO a |
2021-04-21 09:49:32 +0200 | Sornaensis | (~Sornaensi@077213200034.dynamic.telenor.dk) (Ping timeout: 240 seconds) |
2021-04-21 09:50:11 +0200 | nut_ | (~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Read error: Connection reset by peer) |
2021-04-21 09:50:35 +0200 | <Axman6> | best I can do fer ya as a Monoid a constraint |
2021-04-21 09:50:37 +0200 | nut_ | (~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
2021-04-21 09:53:37 +0200 | <maralorn> | (>>= \case {Just (x:_) -> pure x; _ -> throwIO "Nothing to return") :: IO (Maybe [a]) -> IO a |
2021-04-21 09:53:46 +0200 | <maralorn> | * (>>= \case {Just (x:_) -> pure x; _ -> throwIO "Nothing to return"}) :: IO (Maybe [a]) -> IO a |
2021-04-21 09:54:15 +0200 | <Axman6> | um could you not? :P |
2021-04-21 09:54:32 +0200 | nut | (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Remote host closed the connection) |
2021-04-21 09:54:56 +0200 | guest421` | (~user@47.245.54.240) |
2021-04-21 09:55:26 +0200 | m0rphism | (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) |
2021-04-21 09:56:11 +0200 | paddymahoney | (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) |
2021-04-21 09:56:20 +0200 | Lowl3v3l | (~Lowl3v3l@dslb-002-207-103-026.002.207.pools.vodafone-ip.de) |
2021-04-21 09:59:13 +0200 | guest421 | (~user@49.5.6.87) (Ping timeout: 252 seconds) |
2021-04-21 10:01:31 +0200 | evanjs | (~evanjs@075-129-098-007.res.spectrum.com) (Read error: Connection reset by peer) |
2021-04-21 10:03:10 +0200 | cfricke | (~cfricke@unaffiliated/cfricke) |
2021-04-21 10:03:18 +0200 | evanjs | (~evanjs@075-129-098-007.res.spectrum.com) |
2021-04-21 10:03:51 +0200 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
2021-04-21 10:04:23 +0200 | MVQq | (~anja@198.254.208.159) |
2021-04-21 10:07:23 +0200 | hendursa1 | (~weechat@gateway/tor-sasl/hendursaga) |
2021-04-21 10:07:37 +0200 | MarcelineVQ | (~anja@198.254.208.159) (Ping timeout: 260 seconds) |
2021-04-21 10:09:57 +0200 | hendursaga | (~weechat@gateway/tor-sasl/hendursaga) (Ping timeout: 240 seconds) |
2021-04-21 10:11:48 +0200 | Nahra | (~user@unaffiliated/nahra) |
2021-04-21 10:12:27 +0200 | hypercube | (hypercube@gateway/vpn/protonvpn/hypercube) |
2021-04-21 10:14:53 +0200 | Lycurgus | (~niemand@98.4.118.65) |
2021-04-21 10:15:09 +0200 | fendor | (~fendor@91.141.3.112.wireless.dyn.drei.com) |
2021-04-21 10:18:01 +0200 | aVikingTrex | (~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Ping timeout: 250 seconds) |
2021-04-21 10:19:31 +0200 | kristijonas_ | (~kristijon@78-56-32-39.static.zebra.lt) |
2021-04-21 10:19:42 +0200 | kristijonas_ | (~kristijon@78-56-32-39.static.zebra.lt) (Max SendQ exceeded) |
2021-04-21 10:19:49 +0200 | kristijonas | (~kristijon@78-56-32-39.static.zebra.lt) (Read error: Connection reset by peer) |
2021-04-21 10:31:25 +0200 | erred | (~kvirc@84.120.196.129.dyn.user.ono.com) |
2021-04-21 10:31:29 +0200 | <erred> | fwiptables: firewall in script bash very large |
2021-04-21 10:32:16 +0200 | kuribas | (~user@ptr-25vy0i8p1spa6dozdqg.18120a2.ip6.access.telenet.be) |
2021-04-21 10:35:35 +0200 | aveltras | (uid364989@gateway/web/irccloud.com/x-nbetplnhypazvidp) |
2021-04-21 10:36:17 +0200 | idhugo__ | (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) |
2021-04-21 10:36:50 +0200 | <aveltras> | i have a multi package stack project, what would be the best way to watch the whole project for type checking errors using the less cpu & ram possible ? |
2021-04-21 10:37:39 +0200 | erred | (~kvirc@84.120.196.129.dyn.user.ono.com) (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/) |
2021-04-21 10:38:17 +0200 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 268 seconds) |
2021-04-21 10:38:41 +0200 | idhugo_ | (~idhugo@87-49-45-4-mobile.dk.customer.tdc.net) (Ping timeout: 245 seconds) |
2021-04-21 10:41:39 +0200 | vicfred | (~vicfred@unaffiliated/vicfred) (Quit: Leaving) |
2021-04-21 10:42:31 +0200 | Synthetica | (uid199651@gateway/web/irccloud.com/x-mucvjdtabxcscdzz) |
2021-04-21 10:48:13 +0200 | Lycurgus | (~niemand@98.4.118.65) (Quit: Exeunt) |
2021-04-21 10:52:22 +0200 | heatsink | (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-04-21 10:55:14 +0200 | mikoto-chan | (~anass@gateway/tor-sasl/mikoto-chan) |
2021-04-21 10:56:25 +0200 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 252 seconds) |
2021-04-21 11:01:23 +0200 | gentauro | (~gentauro@unaffiliated/gentauro) (Read error: Connection reset by peer) |
2021-04-21 11:02:22 +0200 | gentauro | (~gentauro@unaffiliated/gentauro) |
2021-04-21 11:02:37 +0200 | knupfer | (~Thunderbi@i59F67B5A.versanet.de) (Read error: Connection reset by peer) |
2021-04-21 11:03:00 +0200 | knupfer | (~Thunderbi@200116b82b5e7400e96d6e54df5761a8.dip.versatel-1u1.de) |
2021-04-21 11:06:31 +0200 | ClaudiusMaximus | (~claude@cpc98210-croy26-2-0-cust137.19-2.cable.virginm.net) |
2021-04-21 11:06:31 +0200 | ClaudiusMaximus | (~claude@cpc98210-croy26-2-0-cust137.19-2.cable.virginm.net) (Changing host) |
2021-04-21 11:06:31 +0200 | ClaudiusMaximus | (~claude@unaffiliated/claudiusmaximus) |
2021-04-21 11:07:52 +0200 | nicholasbulka | (~nicholasb@2601:900:4301:da0:bdc9:711a:32b8:207e) |
2021-04-21 11:13:19 +0200 | DavidEichmann | (~david@147.136.46.217.dyn.plus.net) |
2021-04-21 11:13:31 +0200 | sagax | (~sagax_nb@213.138.71.146) |
2021-04-21 11:17:41 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-04-21 11:18:08 +0200 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2021-04-21 11:18:25 +0200 | LKoen | (~LKoen@92.163.9.109.rev.sfr.net) |
2021-04-21 11:23:16 +0200 | nicholasbulka | (~nicholasb@2601:900:4301:da0:bdc9:711a:32b8:207e) (Ping timeout: 245 seconds) |
2021-04-21 11:23:19 +0200 | hc_ | hc |
2021-04-21 11:31:32 +0200 | heatsink | (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-04-21 11:32:16 +0200 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 260 seconds) |
2021-04-21 11:32:17 +0200 | ddellaco_ | (~ddellacos@ool-44c73afa.dyn.optonline.net) |
2021-04-21 11:35:11 +0200 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
2021-04-21 11:35:26 +0200 | PtxDK | (~quassel@2a01:7c8:aac3:591:5054:ff:fe3d:cac6) (Read error: Connection reset by peer) |
2021-04-21 11:35:48 +0200 | heatsink | (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
2021-04-21 11:36:32 +0200 | PtxDK | (~quassel@2a01:7c8:aac3:591:5054:ff:fe3d:cac6) |
2021-04-21 11:37:01 +0200 | ddellaco_ | (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 245 seconds) |
2021-04-21 11:37:23 +0200 | geiger_ | (~geiger@0543f40b.skybroadband.com) |
2021-04-21 11:40:34 +0200 | gaiger | (~geiger@0543f40b.skybroadband.com) (Ping timeout: 268 seconds) |
2021-04-21 11:42:01 +0200 | nut_ | (~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 245 seconds) |
2021-04-21 11:42:14 +0200 | <gnumonic> | Is there any way around the "No type families in class instance declarations" thing? |
2021-04-21 11:43:16 +0200 | marinelli | (~marinelli@gateway/tor-sasl/marinelli) |
2021-04-21 11:44:14 +0200 | sagax | (~sagax_nb@213.138.71.146) (Ping timeout: 252 seconds) |
2021-04-21 11:44:39 +0200 | <c_wraith> | no, that's basically necessary to deal with potential non-injectivity |
2021-04-21 11:46:25 +0200 | NinjaTrappeur | (~ninja@unaffiliated/ninjatrappeur) (Ping timeout: 250 seconds) |
2021-04-21 11:51:55 +0200 | heatsink | (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-04-21 11:51:57 +0200 | <gnumonic> | Hm. That's annoying. Was hoping there was some trick. I don't think it would cause problems in the particular case I was trying to work around. Oh well. |
2021-04-21 11:53:44 +0200 | ephemera_ | (~E@122.34.1.187) (Ping timeout: 246 seconds) |
2021-04-21 11:54:41 +0200 | ephemera_ | (~E@122.34.1.187) |
2021-04-21 11:55:49 +0200 | kmein | (~weechat@static.173.83.99.88.clients.your-server.de) (Quit: ciao kakao) |
2021-04-21 11:56:07 +0200 | kmein | (~weechat@static.173.83.99.88.clients.your-server.de) |
2021-04-21 11:56:45 +0200 | heatsink | (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds) |
2021-04-21 11:56:53 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2021-04-21 11:56:59 +0200 | Forlorn_ | (~Forlorn@unaffiliated/forlorn) |
2021-04-21 11:57:47 +0200 | kritzefitz | (~kritzefit@212.86.56.80) |
2021-04-21 11:58:18 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-04-21 12:00:37 +0200 | NinjaTrappeur | (~ninja@unaffiliated/ninjatrappeur) |
2021-04-21 12:02:19 +0200 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2021-04-21 12:03:08 +0200 | CiaoSen | (~Jura@p200300c9572bc100dd00e68a577d428e.dip0.t-ipconnect.de) |
2021-04-21 12:03:32 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2021-04-21 12:03:54 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-04-21 12:07:23 +0200 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 246 seconds) |
2021-04-21 12:08:02 +0200 | benkolera | (uid285671@gateway/web/irccloud.com/x-uqnaygwihchxqkys) (Quit: Connection closed for inactivity) |
2021-04-21 12:10:47 +0200 | cfricke | (~cfricke@unaffiliated/cfricke) (Ping timeout: 268 seconds) |
2021-04-21 12:12:36 +0200 | <hc> | btw, I mentioned haskell arcade games here the other day; I just remembered the name of the game: it's venzone |
2021-04-21 12:13:20 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2021-04-21 12:14:38 +0200 | s00pcan | (~chris@075-133-056-178.res.spectrum.com) (Ping timeout: 265 seconds) |
2021-04-21 12:15:06 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-04-21 12:16:31 +0200 | mikoto-chan | (~anass@gateway/tor-sasl/mikoto-chan) (Remote host closed the connection) |
2021-04-21 12:17:12 +0200 | bitmagie | (~Thunderbi@200116b8063572001499edd4f9d505b9.dip.versatel-1u1.de) |
2021-04-21 12:19:13 +0200 | mikoto-chan | (~anass@gateway/tor-sasl/mikoto-chan) |
2021-04-21 12:20:26 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-04-21 12:20:42 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-04-21 12:21:49 +0200 | justan0theruser | (~justanoth@unaffiliated/justanotheruser) |
2021-04-21 12:24:14 +0200 | idhugo_ | (~idhugo@87-49-45-4-mobile.dk.customer.tdc.net) |
2021-04-21 12:24:23 +0200 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 258 seconds) |
2021-04-21 12:26:32 +0200 | idhugo__ | (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 240 seconds) |
2021-04-21 12:27:52 +0200 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 252 seconds) |
2021-04-21 12:28:05 +0200 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) |
2021-04-21 12:29:14 +0200 | heatsink | (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-04-21 12:29:40 +0200 | Guest78317 | (~laudiacay@67.176.215.84) |
2021-04-21 12:29:55 +0200 | ericsagnes | (~ericsagne@2405:6580:0:5100:ee94:8f2c:d91b:ec) (Ping timeout: 260 seconds) |
2021-04-21 12:33:41 +0200 | heatsink | (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 245 seconds) |
2021-04-21 12:34:20 +0200 | Guest78317 | (~laudiacay@67.176.215.84) (Ping timeout: 246 seconds) |
2021-04-21 12:37:25 +0200 | kritzefitz | (~kritzefit@212.86.56.80) (Ping timeout: 260 seconds) |
2021-04-21 12:37:40 +0200 | Kaiepi | (~Kaiepi@47.54.252.148) (Remote host closed the connection) |
2021-04-21 12:37:52 +0200 | kritzefitz | (~kritzefit@2003:5b:203b:200::10:49) |
2021-04-21 12:37:58 +0200 | Kaiepi | (~Kaiepi@47.54.252.148) |
2021-04-21 12:38:00 +0200 | Alleria | (~textual@mskresolve-a.mskcc.org) |
2021-04-21 12:38:01 +0200 | minoru_shiraeesh | (~shiraeesh@109.166.59.151) |
2021-04-21 12:38:23 +0200 | Alleria | Guest92203 |
2021-04-21 12:39:33 +0200 | heatsink | (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-04-21 12:42:31 +0200 | CiaoSen | (~Jura@p200300c9572bc100dd00e68a577d428e.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2021-04-21 12:42:38 +0200 | ericsagnes | (~ericsagne@2405:6580:0:5100:dde9:bfa7:6f37:dd87) |
2021-04-21 12:42:47 +0200 | bitmagie | (~Thunderbi@200116b8063572001499edd4f9d505b9.dip.versatel-1u1.de) (Quit: bitmagie) |
2021-04-21 12:43:04 +0200 | Kaeipi | (~Kaiepi@47.54.252.148) |
2021-04-21 12:43:41 +0200 | heatsink | (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2021-04-21 12:44:19 +0200 | Kaiepi | (~Kaiepi@47.54.252.148) (Remote host closed the connection) |
2021-04-21 12:46:44 +0200 | quinn | (~quinn@c-73-223-224-163.hsd1.ca.comcast.net) (Quit: ZNC 1.8.1 - https://znc.in) |
2021-04-21 12:48:40 +0200 | tatsumaru | (~tatsumaru@85.196.189.103) |
2021-04-21 12:49:21 +0200 | <tatsumaru> | hey guys, the book I am reading claims the keyword 'let' is necessary for defining variables, but in ghci it seems that variables work without 'let' either. is let optional at this point or maybe I am not understanding the point? |
2021-04-21 12:49:35 +0200 | <merijn> | tatsumaru: ghci is a hack |
2021-04-21 12:49:38 +0200 | aVikingTrex | (~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea) |
2021-04-21 12:50:05 +0200 | <merijn> | tatsumaru: Also, the book might be wrong/misleading, depending on context |
2021-04-21 12:50:21 +0200 | <tatsumaru> | merjin, what did you mean by ghci being a hack |
2021-04-21 12:50:26 +0200 | <merijn> | tatsumaru: You only need let-in to define variables *in an expression* context |
2021-04-21 12:50:53 +0200 | <merijn> | tatsumaru: ghci's commandline is halfway in between "acts like top level of a file" and "acts like an expression context" |
2021-04-21 12:51:28 +0200 | <tatsumaru> | so it doesn't evaluate code the same way the compiler would? |
2021-04-21 12:52:07 +0200 | <merijn> | tatsumaru: Lets rewind a whole bit |
2021-04-21 12:52:30 +0200 | <merijn> | tatsumaru: In a module context, you can define bindings (variables, if you will) by simply defining "x = ..." |
2021-04-21 12:53:14 +0200 | <merijn> | tatsumaru: But that only (I'm handwaving here) works at the module or some specific contexts where you are allowed to define bindings |
2021-04-21 12:53:45 +0200 | <merijn> | tatsumaru: "let-in" is a way to create a context to define bindings within an expression |
2021-04-21 12:53:58 +0200 | <merijn> | > (let x = 5 in 2 * x) + 10 |
2021-04-21 12:54:00 +0200 | <lambdabot> | 20 |
2021-04-21 12:54:57 +0200 | <merijn> | tatsumaru: So let isn't necessary for defining variables at all. Let is just a way to define variables in places where you normally can't |
2021-04-21 12:55:16 +0200 | sagax | (~sagax_nb@213.138.71.146) |
2021-04-21 12:55:16 +0200 | <merijn> | i.e. you can't normally write "(x = 5) + 10" because what does that even mean? |
2021-04-21 12:55:34 +0200 | <tatsumaru> | so basically it's for reassuring the compiler that you want to define a binding? |
2021-04-21 12:55:52 +0200 | philderbeast | (~textual@bras-base-vldvpq5901w-grc-06-184-144-244-252.dsl.bell.ca) |
2021-04-21 12:59:26 +0200 | heatsink | (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-04-21 13:00:05 +0200 | <merijn> | Not really? |
2021-04-21 13:00:22 +0200 | <merijn> | tatsumaru: Any programming languages you're already familiar with? |
2021-04-21 13:00:26 +0200 | cfricke | (~cfricke@unaffiliated/cfricke) |
2021-04-21 13:00:51 +0200 | <tatsumaru> | not really, I am just starting out in programming with haskell |
2021-04-21 13:01:12 +0200 | guest421` | (~user@47.245.54.240) (Ping timeout: 240 seconds) |
2021-04-21 13:01:25 +0200 | <Logio> | I think there used to be a time when ghci did not accept variable definitions without a preceding let (i.e. it just operated with things valid in a IO do-block) |
2021-04-21 13:02:19 +0200 | <merijn> | Correct |
2021-04-21 13:02:25 +0200 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) (Remote host closed the connection) |
2021-04-21 13:02:36 +0200 | <merijn> | But it is unclear whether the book in question was referring to "defining variables in ghci" or "in general" |
2021-04-21 13:02:54 +0200 | <merijn> | In other words: Insufficient context to understand where the confusion is coming from |
2021-04-21 13:03:44 +0200 | shailangsa | (~shailangs@host86-185-102-48.range86-185.btcentralplus.com) (Ping timeout: 246 seconds) |
2021-04-21 13:03:48 +0200 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) |
2021-04-21 13:04:02 +0200 | <tatsumaru> | merjin this is what it says: "Note: We can use the let keyword to define a name right in GHCI. Doing let a = 1 inside GHCI is the equivalent of writing a = 1 in a script and then loading it." |
2021-04-21 13:04:11 +0200 | heatsink | (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
2021-04-21 13:04:34 +0200 | <tatsumaru> | but then I noticed that I could do a = 1 in GHCI as well so I wondered if let was obsolete |
2021-04-21 13:05:05 +0200 | <merijn> | Ah |
2021-04-21 13:05:52 +0200 | <merijn> | Yeah, you used to need to use let for variables (and commands for loading modules) in gchi, because ghci behaved like a "weird interactive IO monad do-block" |
2021-04-21 13:06:15 +0200 | <merijn> | tatsumaru: But at some point around GHC 8 it got changed to support import statements and direct bindings too |
2021-04-21 13:06:24 +0200 | <tatsumaru> | is it fair to say that ghci is like repl? |
2021-04-21 13:06:45 +0200 | <merijn> | tatsumaru: Which is what I meant with ghci being a hack, it behaves sorta like a weird mix between "proper module syntax" and "dynamic do block" |
2021-04-21 13:06:59 +0200 | <merijn> | tatsumaru: ghci *is* a repl :p |
2021-04-21 13:07:08 +0200 | <merijn> | it reads, it evaluates, it prints and loops back ;) |
2021-04-21 13:07:17 +0200 | <tatsumaru> | got it, thanks a lot :) |
2021-04-21 13:08:02 +0200 | <merijn> | tatsumaru: It's just weird in that it *also* accepts expressions (like "2 + 5") which is a syntax error in source files |
2021-04-21 13:09:36 +0200 | boogsbunny | (17520e19@23.82.14.25) |
2021-04-21 13:13:16 +0200 | xff0x | (~xff0x@2001:1a81:5253:e800:1dc:184f:3c23:9adc) (Ping timeout: 245 seconds) |
2021-04-21 13:14:05 +0200 | xff0x | (~xff0x@2001:1a81:5253:e800:55a6:95d0:743f:3c74) |
2021-04-21 13:15:12 +0200 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 240 seconds) |
2021-04-21 13:15:34 +0200 | jumper149 | (~jumper149@80.240.31.34) |
2021-04-21 13:16:18 +0200 | <kuribas> | it distinguishes between IO expressions, other expressions, and declarations. |
2021-04-21 13:16:37 +0200 | <kuribas> | declarations used to be not even supported. |
2021-04-21 13:16:51 +0200 | <merijn> | That's what we just said? |
2021-04-21 13:17:09 +0200 | <merijn> | tbh, I still think adding support for top level bindings/imports just makes ghci *more* confusing |
2021-04-21 13:17:15 +0200 | <kuribas> | right, it was supported using let |
2021-04-21 13:17:47 +0200 | <kuribas> | merijn: maybe, but it's very convenient |
2021-04-21 13:17:59 +0200 | <kuribas> | you can quickly define and test data types |
2021-04-21 13:18:01 +0200 | <tomsmeding> | ^ |
2021-04-21 13:18:15 +0200 | <merijn> | Death by minor conveniences is a common problem in tech |
2021-04-21 13:18:28 +0200 | <tomsmeding> | ghci exists for convenience |
2021-04-21 13:18:32 +0200 | <tomsmeding> | hot take |
2021-04-21 13:18:41 +0200 | <kuribas> | I remember when there was a lot of demand for it :) |
2021-04-21 13:18:43 +0200 | <merijn> | If you just keep post hoc piling on more "minor convenience features" eventually things become unusable piles of mess |
2021-04-21 13:18:48 +0200 | __monty__ | (~toonn@unaffiliated/toonn) |
2021-04-21 13:19:10 +0200 | <kuribas> | merijn: really, the REPL IS for quick and dirty testing. |
2021-04-21 13:19:27 +0200 | <merijn> | So? |
2021-04-21 13:19:33 +0200 | <tomsmeding> | and for IDE-like functionality, which falls under the same category |
2021-04-21 13:19:34 +0200 | <merijn> | Doesn't mean it can't have a consistent design |
2021-04-21 13:19:37 +0200 | <kuribas> | so it can be quick and dirty :) |
2021-04-21 13:19:41 +0200 | <merijn> | Disagree |
2021-04-21 13:20:03 +0200 | <merijn> | Dirty hacks attract dirty hacks |
2021-04-21 13:20:42 +0200 | <tomsmeding> | I guess it would be nice if ghci had a consistent interface on top of which the convenience syntax is implemented |
2021-04-21 13:21:26 +0200 | <tomsmeding> | would that be better? |
2021-04-21 13:22:46 +0200 | rekahsoft | (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) |
2021-04-21 13:22:53 +0200 | <tatsumaru> | maybe there should be different repls for different people who have different goals/intentions |
2021-04-21 13:24:42 +0200 | stef204 | (~stef204@unaffiliated/stef-204/x-384198) |
2021-04-21 13:25:08 +0200 | <tomsmeding> | indeed if ghci had a consistent interface on top of which the "convenience" syntaxes were defined, then making such different repls wouldn't be too hard :) |
2021-04-21 13:25:22 +0200 | <tomsmeding> | and it's also nice from a software engineering standpoint |
2021-04-21 13:26:01 +0200 | <[exa]> | still, somehow, after many years we've only got the one ghci frontend :] |
2021-04-21 13:27:23 +0200 | exarkun_ | exarkun |
2021-04-21 13:28:23 +0200 | shailangsa | (~shailangs@host217-42-54-186.range217-42.btcentralplus.com) |
2021-04-21 13:28:34 +0200 | <tomsmeding> | it seems to work for most people |
2021-04-21 13:29:07 +0200 | <tatsumaru> | is there a new haskell 2020 spec coming soon or is this a myth? |
2021-04-21 13:29:15 +0200 | <tomsmeding> | myth |
2021-04-21 13:29:21 +0200 | <merijn> | lol |
2021-04-21 13:29:25 +0200 | <merijn> | Myth :p |
2021-04-21 13:29:37 +0200 | <tatsumaru> | why is the official wiki claiming there's a 2020 preview release |
2021-04-21 13:29:38 +0200 | <tomsmeding> | ghc has a "GHC2021" language that is equivalent to a number of commonly-used GHC language extensions |
2021-04-21 13:29:43 +0200 | <tomsmeding> | is it? |
2021-04-21 13:30:07 +0200 | <merijn> | tatsumaru: There have been repeated attempts to create a new report |
2021-04-21 13:30:07 +0200 | <tatsumaru> | https://mail.haskell.org/pipermail/haskell-prime/2016-April/004050.html |
2021-04-21 13:30:19 +0200 | <merijn> | That's a mailing list message from 2016 :p |
2021-04-21 13:30:40 +0200 | <tatsumaru> | so the effort flopped? |
2021-04-21 13:30:42 +0200 | <merijn> | That attempt, like 4 or so others, has fizzled out |
2021-04-21 13:30:56 +0200 | <tatsumaru> | is it due to lack of interest in the language? |
2021-04-21 13:30:59 +0200 | <merijn> | No |
2021-04-21 13:31:28 +0200 | <merijn> | The problem is that there is a mismatch between "stuff people want in the new report" and "stuff that needs to be done" |
2021-04-21 13:31:51 +0200 | <merijn> | tatsumaru: Like, people want to include a bunch of GHC extensions into the report and make them "not extensions" |
2021-04-21 13:31:58 +0200 | kiweun | (~kiweun@2607:fea8:2a62:9600:8080:6b3d:32d3:b207) |
2021-04-21 13:32:03 +0200 | <tatsumaru> | i hope they don't turn it into the next pyhton-like monstrocity that's okay for everything and the best for nothing |
2021-04-21 13:32:10 +0200 | <merijn> | The problem is that, *properly* standardising stuff is hard and boring work |
2021-04-21 13:32:16 +0200 | <tatsumaru> | python* |
2021-04-21 13:32:25 +0200 | <merijn> | tatsumaru: Like, just saying "whatever GHC is doing right now" isn't really a standard |
2021-04-21 13:32:29 +0200 | urodna | (~urodna@unaffiliated/urodna) |
2021-04-21 13:32:57 +0200 | <merijn> | tatsumaru: So someone has to sit down, figure out how GHC implements the extension, write out a specification of what it means, and figure out how it interacts with everything else |
2021-04-21 13:33:14 +0200 | <tatsumaru> | accountant's work |
2021-04-21 13:33:18 +0200 | <merijn> | tatsumaru: But most people just want stuff to "not be an extension" without doing the hard/boring work |
2021-04-21 13:33:18 +0200 | <__monty__> | Part of the problem is also GHC's dominance. The reason to have a report is so multiple implementations can coexist. If there's not really any serious alternative implementations there's a lot less motivation for a report. |
2021-04-21 13:33:42 +0200 | <merijn> | tatsumaru: Combined with the fact that GHC is basically the only *real* implementation, interest in standardising is low |
2021-04-21 13:34:01 +0200 | <merijn> | If everyone keeps working on GHC, what's the point of an independent standard that no one else implements? |
2021-04-21 13:34:12 +0200 | ddellacosta | (~ddellacos@ool-44c73afa.dyn.optonline.net) |
2021-04-21 13:34:19 +0200 | <tatsumaru> | isnt GHC an implementation of haskell? |
2021-04-21 13:34:23 +0200 | <merijn> | Yes |
2021-04-21 13:34:48 +0200 | <merijn> | But GHC has much *much* more stuff than just Haskell2010 :p |
2021-04-21 13:35:10 +0200 | <kuribas> | merijn: funny thing, Python doesn't have a report, but it has multiple implementations. |
2021-04-21 13:35:19 +0200 | <merijn> | kuribas: Well, kinda, sorta |
2021-04-21 13:35:20 +0200 | <kuribas> | which are also incompatible |
2021-04-21 13:35:24 +0200 | rekahsoft | (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Remote host closed the connection) |
2021-04-21 13:35:40 +0200 | <merijn> | Python's spec is just "Whatever CPython does" |
2021-04-21 13:35:43 +0200 | <__monty__> | That's what you get when you say "Implementation X *is* the reference." |
2021-04-21 13:35:46 +0200 | rekahsoft | (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) |
2021-04-21 13:35:50 +0200 | <tatsumaru> | scheme has a ton of implementations with new ones coming even recently, even though the userbase of the language is miniscule compared to haskell |
2021-04-21 13:36:05 +0200 | <tomsmeding> | the language is far smaller |
2021-04-21 13:36:15 +0200 | <merijn> | tatsumaru: That's because making a Scheme compiler is *much* simpler :p |
2021-04-21 13:36:18 +0200 | <__monty__> | I think scheme's userbase is a lot bigger than you assume. |
2021-04-21 13:36:29 +0200 | kiweun | (~kiweun@2607:fea8:2a62:9600:8080:6b3d:32d3:b207) (Ping timeout: 250 seconds) |
2021-04-21 13:37:18 +0200 | <merijn> | tatsumaru: GHC, for example, has a *ton* of optimisation stuff for Haskell code. If you have a cool new idea you *could* spend 5 years reimplementing that for your cool idea...or you could build it into a fork of GHC and save 5 years |
2021-04-21 13:37:21 +0200 | <yushyin> | writing yet another scheme compiler is my weekend exercise |
2021-04-21 13:37:37 +0200 | <yushyin> | :P |
2021-04-21 13:38:41 +0200 | <kuribas> | yushyin: in haskell or GTFO :) |
2021-04-21 13:38:49 +0200 | <merijn> | tatsumaru: So the compiler and language are alive and well. Efforts to standardise Haskell...not so much :p |
2021-04-21 13:39:05 +0200 | <tatsumaru> | what's the benefit of standardizing haskell |
2021-04-21 13:39:27 +0200 | <kuribas> | standardizing haskell == which extension to keep, and which to deprecate :) |
2021-04-21 13:39:42 +0200 | <merijn> | tatsumaru: THat's unclear, which is why it isn't happening :p |
2021-04-21 13:39:43 +0200 | <yushyin> | kuribas: various languages, it depends on my mood on that weekend ;D |
2021-04-21 13:39:49 +0200 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) |
2021-04-21 13:39:56 +0200 | ddellacosta | (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 245 seconds) |
2021-04-21 13:39:59 +0200 | <kuribas> | yushyin: so "write a scheme compiler" is your hello world? |
2021-04-21 13:40:06 +0200 | <merijn> | tatsumaru: Standardisation is good for keeping multiple implementations compatible, but there's only one implementation in mainstream use (GHC) |
2021-04-21 13:40:25 +0200 | <tatsumaru> | should multiple implementations be compatible |
2021-04-21 13:40:41 +0200 | <merijn> | Well, if they're not, they're not really the same language, no? |
2021-04-21 13:40:51 +0200 | <yushyin> | kuribas: possible! |
2021-04-21 13:40:52 +0200 | <juri_> | yeah, this is a painful situation. i'm feeling the pain, at least. |
2021-04-21 13:41:02 +0200 | <tomsmeding> | it's at least nice to have a reference point, to be able to consistently say "here is where we comply, here is where we differ" |
2021-04-21 13:41:03 +0200 | <merijn> | tatsumaru: Consider the C11 spec. It exists so that I know my C11 code is gonna do the same thing on each C11 compatible compiler |
2021-04-21 13:41:16 +0200 | <tatsumaru> | well as far as I know python 3 and 2 aren't compatible, are they considered different languages |
2021-04-21 13:41:24 +0200 | <merijn> | tatsumaru: I'd say do |
2021-04-21 13:41:26 +0200 | <merijn> | *so* |
2021-04-21 13:42:19 +0200 | <tatsumaru> | is this like the equivalent of FDA in programming? |
2021-04-21 13:42:25 +0200 | <tomsmeding> | I guess you could say that C and Python are language families, whereas C89, C11, Python 2 and Python 3 are languages, if you want to get pedantic |
2021-04-21 13:42:41 +0200 | <tomsmeding> | food and drug administration? |
2021-04-21 13:42:44 +0200 | <tatsumaru> | yes |
2021-04-21 13:43:05 +0200 | <tatsumaru> | by "this" I meant standardization |
2021-04-21 13:43:26 +0200 | <__monty__> | Even the PSF considers them different languages. There's a reason there's a PEP that says python3 should never masquerade as a "python" binary. |
2021-04-21 13:43:40 +0200 | <tomsmeding> | without a standard of what "Python 2" means, it's hard to talk about what exactly that language supports or not |
2021-04-21 13:43:54 +0200 | <tomsmeding> | you can talk about what CPython 2 supports -- but that's something else than Python 2 |
2021-04-21 13:43:55 +0200 | knupfer | (~Thunderbi@200116b82b5e7400e96d6e54df5761a8.dip.versatel-1u1.de) (Remote host closed the connection) |
2021-04-21 13:44:02 +0200 | knupfer | (~Thunderbi@200116b82b5e7400a819040ab136d554.dip.versatel-1u1.de) |
2021-04-21 13:44:41 +0200 | <tatsumaru> | so complicated... |
2021-04-21 13:44:59 +0200 | <tatsumaru> | it seems futile to try to restrain all these decision trees to a singular specification |
2021-04-21 13:45:39 +0200 | <tomsmeding> | a specification doesn't constrain, it standardises :p |
2021-04-21 13:45:45 +0200 | <tomsmeding> | so that you can unambiguously talk about stuff |
2021-04-21 13:46:12 +0200 | <tomsmeding> | a standard for C11 doesn't mean that your own home-brew compiler for a C-like language cannot exist |
2021-04-21 13:46:23 +0200 | <tomsmeding> | it just means that you can say "here is how it differs from C11" |
2021-04-21 13:46:49 +0200 | <tomsmeding> | without a standard of C11, you can only say "here is how it differs from what gcc 9.2.1 accepts" |
2021-04-21 13:46:56 +0200 | <tatsumaru> | ah i see |
2021-04-21 13:47:00 +0200 | <tomsmeding> | which is fine for some purposes |
2021-04-21 13:47:35 +0200 | Aquazi | (uid312403@gateway/web/irccloud.com/x-fvdnxupudqhwtjny) |
2021-04-21 13:47:40 +0200 | <tomsmeding> | but sometimes it's nice to have a central standard :) |
2021-04-21 13:48:09 +0200 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
2021-04-21 13:48:23 +0200 | <tatsumaru> | is specification and standardization the same thing? |
2021-04-21 13:49:58 +0200 | <tomsmeding> | when referring to programming language specifications, I guess yes |
2021-04-21 13:50:14 +0200 | tomsmeding | wouldn't know the difference |
2021-04-21 13:50:15 +0200 | rodriga | (~quassel@134.204.25.66) |
2021-04-21 13:51:06 +0200 | <tomsmeding> | standard, oxford def. 2.2: "A form of language that is widely accepted as the usual form." |
2021-04-21 13:51:21 +0200 | <tomsmeding> | specification, oxford def. 2: "A detailed description of the design and materials used to make something." |
2021-04-21 13:51:24 +0200 | <tomsmeding> | ¯\_(ツ)_/¯ |
2021-04-21 13:51:43 +0200 | <tomsmeding> | I guess it includes less CS-specific jargon in the second case |
2021-04-21 13:51:48 +0200 | codedmart_ | codedmart |
2021-04-21 13:52:03 +0200 | <tomsmeding> | ah specification 2.1 is nicer: "A standard of workmanship or materials required to be met in a piece of work" |
2021-04-21 13:52:12 +0200 | <tomsmeding> | what's a specification? a standard, among other things |
2021-04-21 13:52:19 +0200 | <merijn> | See: "an ISO standard cup of tea" :p |
2021-04-21 13:52:47 +0200 | <tatsumaru> | so one implies some level of quality control while the other one is just instruction? |
2021-04-21 13:54:22 +0200 | nopf | (~frosch@static.179.17.76.144.clients.your-server.de) (Quit: Lost terminal) |
2021-04-21 13:54:24 +0200 | <tomsmeding> | dictionary definition != usage as technical jargon |
2021-04-21 13:54:30 +0200 | <tomsmeding> | but maybe |
2021-04-21 13:54:41 +0200 | <tomsmeding> | there's also "report" :p |
2021-04-21 13:54:52 +0200 | <tatsumaru> | what tends to happen in the long term with languages when there's no standardization is it detrimental? |
2021-04-21 13:55:37 +0200 | <tomsmeding> | depends on the people |
2021-04-21 13:55:56 +0200 | <tomsmeding> | I'm not pretending to know anything about history or sociology :p |
2021-04-21 13:56:40 +0200 | <tomsmeding> | python has no real standardisation; is it detrimental? doesn't seem so |
2021-04-21 13:56:58 +0200 | <tomsmeding> | BASIC also has no real standardisation; is it detrimental? not sure, but it doesn't really flourish anyway :p |
2021-04-21 13:58:49 +0200 | nut_ | (~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
2021-04-21 13:58:54 +0200 | frozenErebus | (~frozenEre@37.231.244.249) (Remote host closed the connection) |
2021-04-21 13:58:57 +0200 | sh9 | (~sh9@softbank060116136158.bbtec.net) (Quit: WeeChat 2.8) |
2021-04-21 14:05:18 +0200 | tatsumaru | (~tatsumaru@85.196.189.103) () |
2021-04-21 14:07:44 +0200 | geekosaur | (930099da@rrcs-147-0-153-218.central.biz.rr.com) |
2021-04-21 14:08:23 +0200 | NinjaTrappeur | (~ninja@unaffiliated/ninjatrappeur) (Quit: WeeChat 3.1) |
2021-04-21 14:09:04 +0200 | NinjaTrappeur | (~ninja@unaffiliated/ninjatrappeur) |
2021-04-21 14:13:16 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds) |
2021-04-21 14:15:05 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-04-21 14:15:31 +0200 | curiousgay | (~gay@178.217.208.8) (Read error: Connection reset by peer) |
2021-04-21 14:15:58 +0200 | codedmart | (~codedmart@149.28.9.205) (Ping timeout: 268 seconds) |
2021-04-21 14:16:27 +0200 | mmfood_1 | (~mmfood@45.91.21.58) |
2021-04-21 14:17:55 +0200 | sayola1 | (~vekto@dslb-002-201-085-157.002.201.pools.vodafone-ip.de) |
2021-04-21 14:18:58 +0200 | sayola | (~vekto@dslb-002-201-085-157.002.201.pools.vodafone-ip.de) (Ping timeout: 252 seconds) |
2021-04-21 14:19:03 +0200 | mmfood | (~mmfood@185.176.246.69) (Ping timeout: 268 seconds) |
2021-04-21 14:22:52 +0200 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 240 seconds) |
2021-04-21 14:23:11 +0200 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 240 seconds) |
2021-04-21 14:27:58 +0200 | loller_ | (uid358106@gateway/web/irccloud.com/x-gvifcnmgsfzryozd) |
2021-04-21 14:30:51 +0200 | jonathanx_ | (~jonathan@h-176-109.A357.priv.bahnhof.se) |
2021-04-21 14:31:29 +0200 | seven_th` | (~user@pool-96-233-64-53.bstnma.fios.verizon.net) |
2021-04-21 14:32:37 +0200 | jonathanx | (~jonathan@h-176-109.A357.priv.bahnhof.se) (Ping timeout: 268 seconds) |
2021-04-21 14:32:38 +0200 | jonathanx_ | (~jonathan@h-176-109.A357.priv.bahnhof.se) (Remote host closed the connection) |
2021-04-21 14:33:41 +0200 | knupfer | (~Thunderbi@200116b82b5e7400a819040ab136d554.dip.versatel-1u1.de) (Ping timeout: 245 seconds) |
2021-04-21 14:34:03 +0200 | jonathanx | (~jonathan@h-176-109.A357.priv.bahnhof.se) |
2021-04-21 14:35:23 +0200 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
2021-04-21 14:35:26 +0200 | seven_three | (~user@pool-96-233-64-53.bstnma.fios.verizon.net) (Ping timeout: 240 seconds) |
2021-04-21 14:39:44 +0200 | CiaoSen | (~Jura@p200300c9572bc100dd00e68a577d428e.dip0.t-ipconnect.de) |
2021-04-21 14:40:08 +0200 | v01d4lph4 | (~v01d4lph4@27.57.103.213) |
2021-04-21 14:41:12 +0200 | nicholasbulka | (~nicholasb@2601:900:4301:da0:bdc9:711a:32b8:207e) |
2021-04-21 14:48:54 +0200 | sleblanc | (~sleblanc@unaffiliated/sebleblanc) |
2021-04-21 14:51:18 +0200 | heatsink | (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-04-21 14:51:37 +0200 | <nut_> | test |
2021-04-21 14:51:47 +0200 | nut_ | (~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Quit: WeeChat 2.8) |
2021-04-21 14:52:02 +0200 | nut | (~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
2021-04-21 14:55:26 +0200 | heatsink | (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2021-04-21 14:55:41 +0200 | mrchampion | (~mrchampio@38.18.109.23) (Ping timeout: 240 seconds) |
2021-04-21 14:56:11 +0200 | nut | (~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds) |
2021-04-21 14:58:33 +0200 | mrchampion | (~mrchampio@38.18.109.23) |
2021-04-21 15:01:04 +0200 | Tario | (~Tario@201.192.165.173) |
2021-04-21 15:01:06 +0200 | nut | (~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
2021-04-21 15:01:37 +0200 | dmytrish | (~mitra@2a02:8084:a82:d900:fdd2:ac3d:3471:66d9) |
2021-04-21 15:01:39 +0200 | heatsink | (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-04-21 15:01:53 +0200 | dpl_ | (~dpl@77-121-78-163.chn.volia.net) (Quit: dpl_) |
2021-04-21 15:04:17 +0200 | <pjb> | tomsmeding: is it still true? It's documented, https://docs.python.org/3/reference/ and they have the PEPs process to standardize things. https://www.python.org/dev/peps/ But granted, they don't seem to have an "official" standard such as ANSI or ISO. |
2021-04-21 15:04:54 +0200 | <tomsmeding> | I honestly don't really know, perhaps I spoke too soon :p |
2021-04-21 15:05:20 +0200 | <tomsmeding> | that's true, the reference tries to be implementation-agnostic |
2021-04-21 15:05:46 +0200 | heatsink | (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 245 seconds) |
2021-04-21 15:07:41 +0200 | <whataday> | what's the difference of MaybeT IO a and IO (Maybe a) to use? MaybeT IO is monad so we can use fmap apply f on a directly, but IO (Maybe a) we need to use fmap . fmap $ f? |
2021-04-21 15:08:03 +0200 | <Taneb> | whataday: that's pretty much it |
2021-04-21 15:08:07 +0200 | dmytrish | (~mitra@2a02:8084:a82:d900:fdd2:ac3d:3471:66d9) (Ping timeout: 260 seconds) |
2021-04-21 15:10:07 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2021-04-21 15:10:07 +0200 | dmytrish | (~mitra@2a02:8084:a82:d900:fdd2:ac3d:3471:66d9) |
2021-04-21 15:11:35 +0200 | heatsink | (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-04-21 15:12:39 +0200 | <whataday> | fetchUrl :: Url -> MaybeT IO a; traverse fetchUrl [Url1, Url2] :: ? |
2021-04-21 15:13:32 +0200 | <tomsmeding> | :t traverse |
2021-04-21 15:13:34 +0200 | <lambdabot> | (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b) |
2021-04-21 15:14:04 +0200 | <tomsmeding> | f = MaybeT IO; t = []; so MaybeT IO [a] |
2021-04-21 15:14:46 +0200 | <tomsmeding> | and a = Url and b = your a |
2021-04-21 15:14:50 +0200 | <whataday> | does it need runMaybeT to extract IO actions from list? |
2021-04-21 15:15:00 +0200 | <tomsmeding> | which "it"? |
2021-04-21 15:15:03 +0200 | dsrt^ | (dsrt@ip98-184-89-2.mc.at.cox.net) () |
2021-04-21 15:15:42 +0200 | ddellaco_ | (~ddellacos@ool-44c73afa.dyn.optonline.net) |
2021-04-21 15:15:48 +0200 | <whataday> | traverse (runMaybeT . fetchUrl) [Url] |
2021-04-21 15:15:55 +0200 | knupfer | (~Thunderbi@200116b82b5e7400d544a78922962f4e.dip.versatel-1u1.de) |
2021-04-21 15:15:55 +0200 | <tomsmeding> | if you're talking about "traverse": no traverse is implemented using just the methods from Traversable and Applicative |
2021-04-21 15:16:22 +0200 | heatsink | (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds) |
2021-04-21 15:16:26 +0200 | <tomsmeding> | runMaybeT :: MaybeT IO a -> IO (Maybe a); runMaybeT . fetchUrl :: Url -> IO (Maybe a) |
2021-04-21 15:16:40 +0200 | <whataday> | yes, I mean Data.Traversable |
2021-04-21 15:16:41 +0200 | <tomsmeding> | IO (Maybe a) is not of the form 'f b' for some f |
2021-04-21 15:16:46 +0200 | <tomsmeding> | so you can't use traverse like that |
2021-04-21 15:17:03 +0200 | <tomsmeding> | @src traverse |
2021-04-21 15:17:03 +0200 | <lambdabot> | Source not found. |
2021-04-21 15:17:05 +0200 | <tomsmeding> | aw |
2021-04-21 15:17:20 +0200 | <whataday> | and MaybeT IO is an instance of Traverable? |
2021-04-21 15:17:41 +0200 | <tomsmeding> | https://hackage.haskell.org/package/transformers-0.5.6.2/docs/src/Control.Monad.Trans.Maybe.html#l… |
2021-04-21 15:18:03 +0200 | <tomsmeding> | I guess pattern-matching on the MaybeT like that is equivalent to using runMaybeT |
2021-04-21 15:18:31 +0200 | <tomsmeding> | given the definition of MaybeT, which is: https://hackage.haskell.org/package/transformers-0.5.6.2/docs/src/Control.Monad.Trans.Maybe.html#M… |
2021-04-21 15:18:37 +0200 | cfricke | (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.1) |
2021-04-21 15:19:57 +0200 | ddellacosta | (~ddellacos@ool-44c73afa.dyn.optonline.net) |
2021-04-21 15:19:58 +0200 | ddellaco_ | (~ddellacos@ool-44c73afa.dyn.optonline.net) (Read error: Connection reset by peer) |
2021-04-21 15:21:18 +0200 | hyperisco | (~hyperisco@d192-186-117-226.static.comm.cgocable.net) |
2021-04-21 15:26:07 +0200 | v01d4lph_ | (~v01d4lph4@27.57.103.213) |
2021-04-21 15:26:07 +0200 | v01d4lph4 | (~v01d4lph4@27.57.103.213) (Read error: Connection reset by peer) |
2021-04-21 15:27:08 +0200 | seven_th` | (~user@pool-96-233-64-53.bstnma.fios.verizon.net) ("ERC (IRC client for Emacs 27.2)") |
2021-04-21 15:27:10 +0200 | ep1ctetus | (~epictetus@ip72-194-54-201.sb.sd.cox.net) |
2021-04-21 15:28:21 +0200 | safinaskar | (6dfc5a88@109.252.90.136) |
2021-04-21 15:29:47 +0200 | carlomagno | (~cararell@148.87.23.7) |
2021-04-21 15:31:23 +0200 | ep1ctetus | (~epictetus@ip72-194-54-201.sb.sd.cox.net) (Read error: Connection reset by peer) |
2021-04-21 15:32:44 +0200 | kiweun | (~kiweun@2607:fea8:2a62:9600:30fd:c878:bb31:174a) |
2021-04-21 15:35:31 +0200 | <safinaskar> | hi. i continue to write my lexer. i got this problem: to write function "f" with type [(a, Maybe b)] -> [(a, b)]. This function should return pairs which have "Just" at their second element. how to do this? i can write such solution: "f list = map (\(x, Just y) -> (x, y)) $ filter (isJust . snd) list". Unfortunately, this solution contains lambda |
2021-04-21 15:35:32 +0200 | <safinaskar> | "\(x, Just y) -> (x, y)" with potentially failing pattern. Of course, in this particular case this pattern will never fail, but in general such patterns can fail, so i think this code is ugly. Is there better way? |
2021-04-21 15:37:01 +0200 | kiweun | (~kiweun@2607:fea8:2a62:9600:30fd:c878:bb31:174a) (Ping timeout: 245 seconds) |
2021-04-21 15:37:11 +0200 | <merijn> | You can (ab)use list comprehension syntax |
2021-04-21 15:37:55 +0200 | <merijn> | > [(x, y) | (x, Just y) <- [(True, Nothing), (False, Just 1), (True, Just 2), (True, Nothing), (False, Nothing)] |
2021-04-21 15:37:56 +0200 | <lambdabot> | <hint>:1:111: error: |
2021-04-21 15:37:57 +0200 | <lambdabot> | <hint>:1:111: error: |
2021-04-21 15:37:57 +0200 | <lambdabot> | parse error (possibly incorrect indentation or mismatched brackets) |
2021-04-21 15:38:02 +0200 | <merijn> | eh, whoops |
2021-04-21 15:38:05 +0200 | <merijn> | > [(x, y) | (x, Just y) <- [(True, Nothing), (False, Just 1), (True, Just 2), (True, Nothing), (False, Nothing)]] |
2021-04-21 15:38:07 +0200 | <lambdabot> | [(False,1),(True,2)] |
2021-04-21 15:38:09 +0200 | timCF | (~i.tkachuk@200-149-20-81.sta.estpak.ee) |
2021-04-21 15:38:13 +0200 | bitmagie | (~Thunderbi@200116b8063572001499edd4f9d505b9.dip.versatel-1u1.de) |
2021-04-21 15:38:42 +0200 | <safinaskar> | merijn: thanks a lot |
2021-04-21 15:40:23 +0200 | <kuribas> | safinaskar: "Unfortunately, this solution contains lambda", what's unfortunate about that? |
2021-04-21 15:40:44 +0200 | <merijn> | kuribas: "a lambda with a potential failing pattern" |
2021-04-21 15:40:54 +0200 | <safinaskar> | kuribas: function (\(x, Just y) -> (x, y)) is partial |
2021-04-21 15:41:00 +0200 | <kuribas> | ah right |
2021-04-21 15:41:14 +0200 | <merijn> | tbh, I think this is one of the few cases where I actually prefer list comprehensions over anything else |
2021-04-21 15:41:33 +0200 | <merijn> | The "pattern match failure is filtered out" semantics is very nice |
2021-04-21 15:41:35 +0200 | <timCF> | Hello! Is there any good way to represent side-effect rich computation in a compact way with some sort of Alternative applications? If I simplify, my case might look like multiple `IO Bool` expressions, whcih I want to sequentially evaluate until one of them will return `IO True`. Basically I'm looking for something like `a <|> b <|> c` where parameters are these expressions (pseudo-code) |
2021-04-21 15:42:05 +0200 | <kuribas> | safinaskar: you could use mapMaybe in that case. |
2021-04-21 15:42:22 +0200 | <kuribas> | safinaskar: a comprehension is nicer, but more magical. |
2021-04-21 15:42:23 +0200 | <merijn> | kuribas: Sure...or you can use the trivial list comprehension :p |
2021-04-21 15:42:38 +0200 | jao | (~jao@pdpc/supporter/professional/jao) |
2021-04-21 15:42:58 +0200 | <hyperisco> | timCF, at the least you can just define your own operator, if that is a syntax you like |
2021-04-21 15:43:29 +0200 | <kuribas> | timCF: what is IO True? |
2021-04-21 15:43:57 +0200 | <hyperisco> | timCF, you may also want to look at definitions like allM |
2021-04-21 15:44:00 +0200 | <timCF> | hyperisco: maybe there is some standard thing for that? I just don't want nested bind + if then else |
2021-04-21 15:44:06 +0200 | <kuribas> | timCF: I think what you ask is, an expression that performance side-effects until one returns True? |
2021-04-21 15:44:18 +0200 | <timCF> | kuribas: yes |
2021-04-21 15:45:53 +0200 | <timCF> | kuribas: in my example `a <|> b <|> c` I want all expression to return True and don't evaluate `c` in case where `b` is True |
2021-04-21 15:46:32 +0200 | <kuribas> | timCF: there isn't something standard like that AFAIK. |
2021-04-21 15:46:37 +0200 | <timCF> | kuribas: But expressions are not just Bool, they are `m Bool` |
2021-04-21 15:48:15 +0200 | aVikingTrex | (~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Ping timeout: 260 seconds) |
2021-04-21 15:48:25 +0200 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) (Quit: Textual IRC Client: www.textualapp.com) |
2021-04-21 15:48:53 +0200 | <wz1000> | timCF: extra has orM and variations |
2021-04-21 15:49:31 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.1) |
2021-04-21 15:49:39 +0200 | dmytrish | (~mitra@2a02:8084:a82:d900:fdd2:ac3d:3471:66d9) (Ping timeout: 260 seconds) |
2021-04-21 15:49:40 +0200 | <kuribas> | :t liftA2 (&&) . unsafeInterleaveIO |
2021-04-21 15:49:42 +0200 | <lambdabot> | error: |
2021-04-21 15:49:42 +0200 | <lambdabot> | Variable not in scope: unsafeInterleaveIO :: a -> f Bool |
2021-04-21 15:50:12 +0200 | sleblanc | (~sleblanc@unaffiliated/sebleblanc) (Ping timeout: 240 seconds) |
2021-04-21 15:50:45 +0200 | dmytrish | (~mitra@2a02:8084:a82:d900:fdd2:ac3d:3471:66d9) |
2021-04-21 15:51:17 +0200 | <timCF> | kuribas: thanks, I think I did found what I want |
2021-04-21 15:51:36 +0200 | <timCF> | :t (||^) |
2021-04-21 15:51:38 +0200 | <lambdabot> | error: |
2021-04-21 15:51:38 +0200 | <lambdabot> | • Variable not in scope: ||^ |
2021-04-21 15:51:38 +0200 | <lambdabot> | • Perhaps you meant one of these: |
2021-04-21 15:53:01 +0200 | Tario | (~Tario@201.192.165.173) (Ping timeout: 260 seconds) |
2021-04-21 15:53:27 +0200 | Tario | (~Tario@200.119.185.49) |
2021-04-21 15:53:40 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-04-21 15:55:46 +0200 | mrchampion | (~mrchampio@38.18.109.23) (Ping timeout: 245 seconds) |
2021-04-21 15:57:27 +0200 | <wz1000> | asymmetric operators for "commutative" operations are so frustruating |
2021-04-21 15:57:28 +0200 | Tario | (~Tario@200.119.185.49) (Read error: Connection reset by peer) |
2021-04-21 15:57:59 +0200 | <wz1000> | (yes, I know this is not exactly commutative, but it is morally) |
2021-04-21 15:58:28 +0200 | <wz1000> | even then that is so ugly. ||> might have been better (|| + >>) |
2021-04-21 15:58:33 +0200 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) |
2021-04-21 15:59:00 +0200 | Tario | (~Tario@201.192.165.173) |
2021-04-21 16:00:27 +0200 | aVikingTrex | (~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea) |
2021-04-21 16:01:19 +0200 | dmytrish | (~mitra@2a02:8084:a82:d900:fdd2:ac3d:3471:66d9) (Ping timeout: 260 seconds) |
2021-04-21 16:01:40 +0200 | tatsumaru | (~tatsumaru@85.196.189.103) |
2021-04-21 16:02:59 +0200 | vs^ | (vs@ip98-184-89-2.mc.at.cox.net) |
2021-04-21 16:04:13 +0200 | hypercube | (hypercube@gateway/vpn/protonvpn/hypercube) (Quit: WeeChat 3.1) |
2021-04-21 16:04:42 +0200 | CiaoSen | (~Jura@p200300c9572bc100dd00e68a577d428e.dip0.t-ipconnect.de) (Quit: CiaoSen) |
2021-04-21 16:04:58 +0200 | <tatsumaru> | what does x xs xxs etc. mean in haskell notation? |
2021-04-21 16:05:13 +0200 | <tatsumaru> | actually I know what x is, I just don't understand xs xxs |
2021-04-21 16:05:39 +0200 | <hpc> | xs is the plural of x |
2021-04-21 16:05:41 +0200 | zaquest | (~notzaques@5.128.210.178) (Quit: Leaving) |
2021-04-21 16:05:44 +0200 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) (Quit: Textual IRC Client: www.textualapp.com) |
2021-04-21 16:06:01 +0200 | <hpc> | like how you might write "for item in items" in other languages |
2021-04-21 16:06:04 +0200 | <kuribas> | doesn't that come from prolog? |
2021-04-21 16:06:14 +0200 | <merijn> | tatsumaru: one pig, multiple pigS, one bike, multiple bikeS, one x, multiple xS :) |
2021-04-21 16:06:22 +0200 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) |
2021-04-21 16:06:25 +0200 | berberman_ | (~berberman@unaffiliated/berberman) (Ping timeout: 250 seconds) |
2021-04-21 16:06:38 +0200 | <tatsumaru> | so s is just plural? |
2021-04-21 16:06:41 +0200 | <merijn> | yeah |
2021-04-21 16:06:52 +0200 | <tatsumaru> | ah that was simpler that I thought, thanks |
2021-04-21 16:06:56 +0200 | <tatsumaru> | than* |
2021-04-21 16:07:16 +0200 | berberman | (~berberman@unaffiliated/berberman) |
2021-04-21 16:07:52 +0200 | <merijn> | tatsumaru: You could write "(item:items)" instead of "(x:xs)", but that's more typing and not really any clearer/more meaningful :) |
2021-04-21 16:08:03 +0200 | <timCF> | tatsumaru: but what do you mean by `xxs` then? |
2021-04-21 16:08:24 +0200 | <merijn> | timCF: That's sometimes a name for lists of lists |
2021-04-21 16:08:50 +0200 | <timCF> | merijn: hmm, I'll write `xss` in this case :) |
2021-04-21 16:10:43 +0200 | mrchampion | (~mrchampio@38.18.109.23) |
2021-04-21 16:10:46 +0200 | <tatsumaru> | this is where I saw xxs: ghci> [ [ x | x <- xs, even x ] | xs <- xxs] |
2021-04-21 16:11:16 +0200 | <tatsumaru> | where in that particular case xxs was [[1,3,5,2,3,1,2,4,5], [1,2,3,4,5,6,7,8,9], |
2021-04-21 16:11:16 +0200 | <tatsumaru> | [1,2,4,2,1,6,3,1,3,2,3,6]] |
2021-04-21 16:11:27 +0200 | <tatsumaru> | sorry for the new line it was unintentional |
2021-04-21 16:11:57 +0200 | <tatsumaru> | but indeed xss seems more logical |
2021-04-21 16:13:05 +0200 | <tatsumaru> | although one could argue that xxs means x of xs and makes sense that way |
2021-04-21 16:13:19 +0200 | blankhart | (~blankhart@pool-72-88-174-206.nwrknj.fios.verizon.net) |
2021-04-21 16:13:51 +0200 | <blankhart> | when template haskell is run at compile-time, is the metaprogram compiled and run the same as any other program, maybe skipping certain optimizations for speed? |
2021-04-21 16:14:38 +0200 | <merijn> | blankhart: After TH is run, the resulting AST is spliced into the code and then the whole thing is compiled as normal, yes |
2021-04-21 16:15:00 +0200 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
2021-04-21 16:19:01 +0200 | LKoen | (~LKoen@92.163.9.109.rev.sfr.net) (Remote host closed the connection) |
2021-04-21 16:19:03 +0200 | <blankhart> | sorry to clarify i am asking about how TH is run |
2021-04-21 16:21:30 +0200 | bitmagie | (~Thunderbi@200116b8063572001499edd4f9d505b9.dip.versatel-1u1.de) (Quit: bitmagie) |
2021-04-21 16:21:30 +0200 | <blankhart> | for example, if i tell the compiler to use -O3 optimizations, i wouldn't think that means it compiles template haskell with -O3 and executes the optimized version at compile-time |
2021-04-21 16:21:44 +0200 | <geekosaur> | TH code lives in the Q monad and is compiled and run in a ghci-like environment / interpreted |
2021-04-21 16:22:58 +0200 | <geekosaur> | it can call imported compiled code but won't compile any code itself aside from to ghci bytecode (unless the splice itself does so) |
2021-04-21 16:23:07 +0200 | rj | (~x@gateway/tor-sasl/rj) |
2021-04-21 16:24:45 +0200 | rdivyanshu | (uid322626@gateway/web/irccloud.com/x-fcexcnqymecxutqt) (Quit: Connection closed for inactivity) |
2021-04-21 16:27:17 +0200 | vdukhovni | (64022765@100.2.39.101) |
2021-04-21 16:27:22 +0200 | barakkl1993 | (~barakkley@2.55.180.173) |
2021-04-21 16:29:02 +0200 | zaquest | (~notzaques@5.128.210.178) |
2021-04-21 16:30:32 +0200 | Jd007 | (~Jd007@162.156.11.151) |
2021-04-21 16:30:53 +0200 | Guest78317 | (~laudiacay@67.176.215.84) |
2021-04-21 16:31:50 +0200 | Sheilong | (uid293653@gateway/web/irccloud.com/x-dwdeqarjvkrgtrrf) |
2021-04-21 16:31:54 +0200 | miklcct_ | (quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) |
2021-04-21 16:32:08 +0200 | miklcct | (quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7) |
2021-04-21 16:32:29 +0200 | tatsumaru | (~tatsumaru@85.196.189.103) () |
2021-04-21 16:32:58 +0200 | LKoen | (~LKoen@92.163.9.109.rev.sfr.net) |
2021-04-21 16:35:08 +0200 | Guest78317 | (~laudiacay@67.176.215.84) (Ping timeout: 246 seconds) |
2021-04-21 16:35:46 +0200 | <merijn> | How can I increase the granularity of stack traces in profiling code? |
2021-04-21 16:35:46 +0200 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
2021-04-21 16:35:54 +0200 | frozenErebus | (~frozenEre@37.231.244.249) |
2021-04-21 16:36:05 +0200 | <merijn> | I'm getting an arithmetic overflow exception, but no clue from where |
2021-04-21 16:36:09 +0200 | <blankhart> | got it, thanks geekosaur |
2021-04-21 16:36:18 +0200 | <merijn> | And the -xc stack trace turns up nothing useful |
2021-04-21 16:36:52 +0200 | barakkl1993 | (~barakkley@2.55.180.173) (Ping timeout: 252 seconds) |
2021-04-21 16:38:37 +0200 | nineonine | (~nineonine@2604:3d08:7785:9600:5c9e:8d21:d745:3944) |
2021-04-21 16:39:25 +0200 | nineonine | (~nineonine@2604:3d08:7785:9600:5c9e:8d21:d745:3944) (Remote host closed the connection) |
2021-04-21 16:40:27 +0200 | nineonine | (~nineonine@2604:3d08:7785:9600:2926:4844:fa1f:b849) |
2021-04-21 16:42:08 +0200 | nut | (~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 246 seconds) |
2021-04-21 16:42:11 +0200 | <merijn> | Anyone? |
2021-04-21 16:42:41 +0200 | Spanktar | (~Spanktar@195.140.213.38) |
2021-04-21 16:43:24 +0200 | <glguy> | % minBound `quot` (-1) :: Int |
2021-04-21 16:43:24 +0200 | <yahb> | glguy: *** Exception: arithmetic overflow |
2021-04-21 16:43:40 +0200 | <glguy> | Is that the main way to get that exception? |
2021-04-21 16:44:21 +0200 | wavemode | (~wavemode@097-070-075-143.res.spectrum.com) (Read error: Connection reset by peer) |
2021-04-21 16:44:52 +0200 | <hc> | merijn: unusual that you're asking questions in here ;-) |
2021-04-21 16:44:59 +0200 | nineonine | (~nineonine@2604:3d08:7785:9600:2926:4844:fa1f:b849) (Ping timeout: 250 seconds) |
2021-04-21 16:45:45 +0200 | plakband | (~plakband@softbank126227040096.bbtec.net) |
2021-04-21 16:45:45 +0200 | wavemode | (~wavemode@097-070-075-143.res.spectrum.com) |
2021-04-21 16:46:37 +0200 | <merijn> | glguy: No clue? |
2021-04-21 16:47:21 +0200 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) |
2021-04-21 16:47:39 +0200 | <glguy> | merijn: is something catching the exception and printing it without much info? Or is it making it up to the top level? |
2021-04-21 16:48:30 +0200 | Deide | (~Deide@217.155.19.23) |
2021-04-21 16:49:24 +0200 | ep1ctetus | (~epictetus@ip72-194-54-201.sb.sd.cox.net) |
2021-04-21 16:49:55 +0200 | <merijn> | glguy: I'm running with -xc on profiled code, which gives a stack trace, but the stack trace is rather useless |
2021-04-21 16:50:02 +0200 | <merijn> | It seems to only have two levels |
2021-04-21 16:50:11 +0200 | <merijn> | So I still dunno where the exception is originating |
2021-04-21 16:50:21 +0200 | rj | (~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds) |
2021-04-21 16:52:37 +0200 | rj | (~x@gateway/tor-sasl/rj) |
2021-04-21 16:54:52 +0200 | rekahsoft | (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Ping timeout: 240 seconds) |
2021-04-21 16:55:05 +0200 | <cjay> | What is currently the best way to make internals of a lib I'm writing accessible by tests and by `cabal repl`? I found a old reddit post that suggests moving everything to .Internal modules that expose everything, is this still the way to go? |
2021-04-21 16:55:41 +0200 | rodriga | (~quassel@134.204.25.66) (Ping timeout: 240 seconds) |
2021-04-21 16:55:52 +0200 | rj | (~x@gateway/tor-sasl/rj) (Remote host closed the connection) |
2021-04-21 16:56:05 +0200 | <merijn> | cjay: Cabal now supports multiple (internal) libraries |
2021-04-21 16:56:13 +0200 | rj | (~x@gateway/tor-sasl/rj) |
2021-04-21 16:56:31 +0200 | <merijn> | cjay: One thing you can do is have an internal implementation library that exports everything, then have your tests and the public library depend on that |
2021-04-21 16:56:39 +0200 | <carbolymer> | merijn: stack support when |
2021-04-21 16:56:48 +0200 | <cjay> | ah, that sounds a bit more elegant. thx. |
2021-04-21 16:56:52 +0200 | <merijn> | cjay: And then the public library re-exports a subset of the internal lib |
2021-04-21 16:57:00 +0200 | <merijn> | carbolymer: Ask the stack people? |
2021-04-21 16:57:08 +0200 | <carbolymer> | merijn: yeah I should ;-] |
2021-04-21 16:57:19 +0200 | <merijn> | Probably somewhere around "heat death of the universe"? |
2021-04-21 16:57:26 +0200 | <cjay> | omg |
2021-04-21 16:57:51 +0200 | <cjay> | I recently checked if stack supports backpack now. Of course it does not.. |
2021-04-21 16:58:09 +0200 | <carbolymer> | merijn: that was funny one year ago ;-] I have rewritten internal libraries into separate packages since then |
2021-04-21 16:58:09 +0200 | idhugo_ | (~idhugo@87-49-45-4-mobile.dk.customer.tdc.net) (Ping timeout: 268 seconds) |
2021-04-21 16:58:41 +0200 | <wz1000> | merijn: -fprof-auto? |
2021-04-21 16:58:49 +0200 | <merijn> | cjay: Almost no one is using/pushing backpack atm, so I don't think the stack people are enthusiastic about implementing |
2021-04-21 16:58:59 +0200 | <merijn> | wz1000: Cabal is supposed to add that, though |
2021-04-21 16:59:19 +0200 | vdukhovni | (64022765@100.2.39.101) (Quit: Connection closed) |
2021-04-21 16:59:21 +0200 | <cjay> | and nobody wants to use backpack, because they don't want to be incompatible with stack, right? |
2021-04-21 16:59:24 +0200 | <merijn> | wz1000: When you write -fprof-auto in your cabal file it complains that --enable-profiling adds that |
2021-04-21 16:59:34 +0200 | rodriga | (~quassel@134.204.25.66) |
2021-04-21 16:59:38 +0200 | <merijn> | cjay: I dunno, personally I don't spend anytime worrying about supporting stack |
2021-04-21 16:59:43 +0200 | aVikingTrex | (~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Ping timeout: 250 seconds) |
2021-04-21 17:01:23 +0200 | <merijn> | cjay: I can highly recommend not giving a shit about people who don't pay you :) |
2021-04-21 17:01:37 +0200 | <cjay> | :) |
2021-04-21 17:01:47 +0200 | <merijn> | That applies to any open source project, language, and ecosystem, tbh |
2021-04-21 17:02:59 +0200 | plakband | (~plakband@softbank126227040096.bbtec.net) (Quit: WeeChat 2.9) |
2021-04-21 17:03:28 +0200 | bitmagie | (~Thunderbi@200116b8063572001499edd4f9d505b9.dip.versatel-1u1.de) |
2021-04-21 17:07:04 +0200 | kiweun | (~kiweun@2607:fea8:2a62:9600:68a0:cf01:7577:43eb) |
2021-04-21 17:08:15 +0200 | <carbolymer> | merijn: what you're using instead of stack? |
2021-04-21 17:11:22 +0200 | nineonine | (~nineonine@2604:3d08:7785:9600:5c9e:8d21:d745:3944) |
2021-04-21 17:12:24 +0200 | nineonine | (~nineonine@2604:3d08:7785:9600:5c9e:8d21:d745:3944) (Remote host closed the connection) |
2021-04-21 17:12:58 +0200 | <tomsmeding> | cabal |
2021-04-21 17:13:14 +0200 | Wuzzy | (~Wuzzy@p5790e74f.dip0.t-ipconnect.de) |
2021-04-21 17:13:27 +0200 | nineonine | (~nineonine@2604:3d08:7785:9600:5c9e:8d21:d745:3944) |
2021-04-21 17:13:48 +0200 | idhugo_ | (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) |
2021-04-21 17:14:10 +0200 | <merijn> | ^^ |
2021-04-21 17:15:32 +0200 | nineonine | (~nineonine@2604:3d08:7785:9600:5c9e:8d21:d745:3944) (Remote host closed the connection) |
2021-04-21 17:15:47 +0200 | nineonine | (~nineonine@2604:3d08:7785:9600:5c9e:8d21:d745:3944) |
2021-04-21 17:17:20 +0200 | nineonine | (~nineonine@2604:3d08:7785:9600:5c9e:8d21:d745:3944) (Remote host closed the connection) |
2021-04-21 17:17:33 +0200 | idhugo_ | (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Remote host closed the connection) |
2021-04-21 17:17:58 +0200 | idhugo_ | (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) |
2021-04-21 17:18:23 +0200 | nineonine | (~nineonine@2604:3d08:7785:9600:5c9e:8d21:d745:3944) |
2021-04-21 17:21:32 +0200 | <carbolymer> | ok, when I've started using haskell I've read about 'cabal hell' and jumped right ahead to using stack |
2021-04-21 17:21:42 +0200 | <carbolymer> | is that still an issue? |
2021-04-21 17:22:11 +0200 | <geekosaur> | not since cabal v1, which didn't do a goo9d enough job of forcing ghc to see only what it should see for a given project] |
2021-04-21 17:22:17 +0200 | myShoggoth | (~myShoggot@75.164.11.109) |
2021-04-21 17:22:20 +0200 | Sorna | (~Sornaensi@79.142.232.102) (Read error: Connection reset by peer) |
2021-04-21 17:22:41 +0200 | nineonine | (~nineonine@2604:3d08:7785:9600:5c9e:8d21:d745:3944) (Ping timeout: 250 seconds) |
2021-04-21 17:22:48 +0200 | Sorny | (~Sornaensi@077213200034.dynamic.telenor.dk) |
2021-04-21 17:23:08 +0200 | <carbolymer> | so basically, is there any advantage of stack over pure cabal, except that stack installs GHC for me |
2021-04-21 17:23:17 +0200 | <carbolymer> | ? |
2021-04-21 17:23:46 +0200 | <hpc> | stack has a currated package set |
2021-04-21 17:23:51 +0200 | <hpc> | although the value of that is dubious |
2021-04-21 17:24:20 +0200 | <sclv> | right -- if you stick to it that set, its nice, but if you end up using stuff outside that set its possible, but much more of a pain than letting cabal solve things for you |
2021-04-21 17:24:36 +0200 | v01d4lph_ | (~v01d4lph4@27.57.103.213) (Remote host closed the connection) |
2021-04-21 17:24:40 +0200 | ep1ctetus | (~epictetus@ip72-194-54-201.sb.sd.cox.net) (Remote host closed the connection) |
2021-04-21 17:25:01 +0200 | ep1ctetus | (~epictetus@ip72-194-54-201.sb.sd.cox.net) |
2021-04-21 17:25:10 +0200 | v01d4lph4 | (~v01d4lph4@27.57.103.213) |
2021-04-21 17:25:35 +0200 | <hpc> | it's like a less extreme version of using distro packages |
2021-04-21 17:26:15 +0200 | bitmagie | (~Thunderbi@200116b8063572001499edd4f9d505b9.dip.versatel-1u1.de) (Quit: bitmagie) |
2021-04-21 17:27:04 +0200 | <cjay> | I recently learned that you can just download a cabal.project from stackage that freezes all package versions to the stackage snapshot |
2021-04-21 17:27:13 +0200 | <cjay> | so you can use stackage without using stack |
2021-04-21 17:27:25 +0200 | <carbolymer> | ^ yeah I was just wondering about that |
2021-04-21 17:27:31 +0200 | <timCF> | cjay: wow, that's cool! |
2021-04-21 17:27:37 +0200 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) (Quit: WeeChat 3.0.1) |
2021-04-21 17:27:39 +0200 | <carbolymer> | if it would be possible to pin the versions without causing breakage |
2021-04-21 17:27:43 +0200 | <carbolymer> | in cabal |
2021-04-21 17:27:57 +0200 | <timCF> | cjay: do you have any example/links how to do so? |
2021-04-21 17:28:30 +0200 | <cjay> | you go to the stackage snapshot, and add cabal.config to the url, like with https://www.stackage.org/lts-17.9/cabal.config |
2021-04-21 17:28:40 +0200 | <geekosaur> | cabal has freeze files that can pin versions, stackage would just be providing one that covered a particular stackage release |
2021-04-21 17:29:19 +0200 | Sornaensis | (~Sornaensi@79.142.232.102.static.router4.bolignet.dk) |
2021-04-21 17:29:26 +0200 | <timCF> | cjay: that's simple! Thanks! |
2021-04-21 17:29:48 +0200 | falafel_ | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-04-21 17:29:51 +0200 | v01d4lph4 | (~v01d4lph4@27.57.103.213) (Ping timeout: 260 seconds) |
2021-04-21 17:30:09 +0200 | <cjay> | :) |
2021-04-21 17:31:09 +0200 | <timCF> | also I was thinking that nix-shell with some pinned version of nixpkgs might be nice replacement for stackage. I'm using nix for builds, and stackage for local development. But maybe stack just become irrelevant if I'll switch completely to nixpkgs |
2021-04-21 17:32:11 +0200 | Sorny | (~Sornaensi@077213200034.dynamic.telenor.dk) (Ping timeout: 265 seconds) |
2021-04-21 17:32:23 +0200 | horatiohb | (~horatiohb@138.197.103.32) |
2021-04-21 17:32:24 +0200 | timCF_ | (~i.tkachuk@254-149-20-81.sta.estpak.ee) |
2021-04-21 17:34:19 +0200 | ubert | (~Thunderbi@62-47-7-125.adsl.highway.telekom.at) |
2021-04-21 17:34:21 +0200 | rj | (~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds) |
2021-04-21 17:36:03 +0200 | ericsagnes | (~ericsagne@2405:6580:0:5100:dde9:bfa7:6f37:dd87) (Ping timeout: 260 seconds) |
2021-04-21 17:36:11 +0200 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 240 seconds) |
2021-04-21 17:37:38 +0200 | <whataday> | since IO isn't a data constructor, how to express IO in value level? |
2021-04-21 17:37:46 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-04-21 17:38:06 +0200 | Lycurgus | (~niemand@98.4.118.65) |
2021-04-21 17:38:28 +0200 | <whataday> | except 'return 3' , which value would have type MaybeT IO Int? |
2021-04-21 17:38:32 +0200 | Deide1 | (~Deide@217.155.19.23) |
2021-04-21 17:39:29 +0200 | rj | (~x@gateway/tor-sasl/rj) |
2021-04-21 17:39:38 +0200 | malumore | (~malumore@151.62.122.70) |
2021-04-21 17:39:56 +0200 | <Taneb> | :t liftIO readLn :: MaybeT IO Int |
2021-04-21 17:39:58 +0200 | <lambdabot> | MaybeT IO Int |
2021-04-21 17:40:36 +0200 | <timCF_> | whataday: what's wrong with `return`? It's valid constructor for IO |
2021-04-21 17:41:01 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-04-21 17:41:32 +0200 | Deide | (~Deide@217.155.19.23) (Ping timeout: 240 seconds) |
2021-04-21 17:41:53 +0200 | <whataday> | how I can return Nothing? |
2021-04-21 17:42:15 +0200 | <Taneb> | :t mzero :: MaybeT IO Int |
2021-04-21 17:42:17 +0200 | <lambdabot> | MaybeT IO Int |
2021-04-21 17:42:21 +0200 | <Taneb> | :t MaybeT Nothing :: MaybeT IO Int |
2021-04-21 17:42:23 +0200 | <lambdabot> | error: |
2021-04-21 17:42:23 +0200 | <lambdabot> | • Couldn't match type ‘Maybe’ with ‘IO’ |
2021-04-21 17:42:23 +0200 | <lambdabot> | Expected type: MaybeT IO Int |
2021-04-21 17:42:29 +0200 | <Taneb> | :t MaybeT (return Nothing) :: MaybeT IO Int |
2021-04-21 17:42:31 +0200 | <lambdabot> | MaybeT IO Int |
2021-04-21 17:42:32 +0200 | malumore_ | (~malumore@151.62.122.70) (Ping timeout: 240 seconds) |
2021-04-21 17:42:39 +0200 | <Taneb> | :t empty :: MaybeT IO Int |
2021-04-21 17:42:41 +0200 | <lambdabot> | MaybeT IO Int |
2021-04-21 17:42:41 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
2021-04-21 17:42:45 +0200 | <Taneb> | whataday: pick your favourite |
2021-04-21 17:44:20 +0200 | <whataday> | I see |
2021-04-21 17:47:34 +0200 | Sorna | (~Sornaensi@077213200034.dynamic.telenor.dk) |
2021-04-21 17:48:34 +0200 | ericsagnes | (~ericsagne@2405:6580:0:5100:d0df:45b4:dde8:f059) |
2021-04-21 17:48:46 +0200 | tmciver | (~tmciver@cpe-172-101-40-226.maine.res.rr.com) (Ping timeout: 240 seconds) |
2021-04-21 17:50:54 +0200 | tmciver | (~tmciver@cpe-172-101-40-226.maine.res.rr.com) |
2021-04-21 17:52:01 +0200 | Sornaensis | (~Sornaensi@79.142.232.102.static.router4.bolignet.dk) (Ping timeout: 260 seconds) |
2021-04-21 17:53:43 +0200 | timCF_ | (~i.tkachuk@254-149-20-81.sta.estpak.ee) (Quit: leaving) |
2021-04-21 17:54:59 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-04-21 17:57:21 +0200 | chele | (~chele@5.53.222.202) (Remote host closed the connection) |
2021-04-21 17:58:42 +0200 | nineonine | (~nineonine@2604:3d08:7785:9600:5c9e:8d21:d745:3944) |
2021-04-21 18:04:56 +0200 | nineonine | (~nineonine@2604:3d08:7785:9600:5c9e:8d21:d745:3944) (Ping timeout: 245 seconds) |
2021-04-21 18:06:19 +0200 | falafel_ | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 252 seconds) |
2021-04-21 18:07:20 +0200 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
2021-04-21 18:07:33 +0200 | falafel_ | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-04-21 18:09:05 +0200 | heatsink | (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-04-21 18:12:15 +0200 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) |
2021-04-21 18:13:53 +0200 | myShoggoth | (~myShoggot@75.164.11.109) (Remote host closed the connection) |
2021-04-21 18:14:12 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-04-21 18:14:17 +0200 | myShoggoth | (~myShoggot@75.164.11.109) |
2021-04-21 18:15:35 +0200 | xsperry | (~as@unaffiliated/xsperry) () |
2021-04-21 18:18:11 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2021-04-21 18:19:11 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-04-21 18:19:40 +0200 | Ccasesvilla | (4a4fd19e@cpe-74-79-209-158.twcny.res.rr.com) |
2021-04-21 18:21:18 +0200 | <safinaskar> | merijn: cjay: carbolymer: tomsmeding: geekosaur: shortly after haskell foundation (hf) announcement someone wrote to hf mailing list asking to "Do something about Cabal". i. e. the poster asked hf to spend money for fixing long standing cabal problems. https://mail.haskell.org/pipermail/hf-discuss/2020-December/thread.html |
2021-04-21 18:21:28 +0200 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) (Quit: WeeChat 3.0.1) |
2021-04-21 18:22:26 +0200 | <carbolymer> | I think I saw that, I don't remember the outcome from this discussion though |
2021-04-21 18:22:29 +0200 | <sclv> | well development stalled a bit as some active maintainers became inactive, but lately there's been a lot more activity again |
2021-04-21 18:22:41 +0200 | <sclv> | with a whole new wave of people becoming involved |
2021-04-21 18:22:53 +0200 | <sclv> | that's just the lifecycle of long running software projects |
2021-04-21 18:22:54 +0200 | ram19890 | (~ram@183.83.155.58) (Read error: No route to host) |
2021-04-21 18:23:11 +0200 | ram19890 | (~ram@183.83.155.58) |
2021-04-21 18:23:27 +0200 | <geekosaur> | I'm finding modern cabal fairly congenial, aside from lots of extra files (cabal.project cabal.project.local cabal.freeze etc.) |
2021-04-21 18:23:43 +0200 | pavonia | (~user@unaffiliated/siracusa) (Quit: Bye!) |
2021-04-21 18:24:06 +0200 | <sclv> | yeah i mean the work that's stalled is like experience improvements 90% (better docs, easier command discoverability, convenience flags) |
2021-04-21 18:24:23 +0200 | <sclv> | the other 10% is "power features" where there are rough edges, like hpc support being dodgy, etc |
2021-04-21 18:24:37 +0200 | falafel_ | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Remote host closed the connection) |
2021-04-21 18:24:43 +0200 | kritzefitz | (~kritzefit@2003:5b:203b:200::10:49) (Remote host closed the connection) |
2021-04-21 18:25:08 +0200 | safinaskar | (6dfc5a88@109.252.90.136) () |
2021-04-21 18:25:16 +0200 | falafel_ | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-04-21 18:26:12 +0200 | falafel_ | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Remote host closed the connection) |
2021-04-21 18:26:31 +0200 | falafel_ | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-04-21 18:26:51 +0200 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
2021-04-21 18:27:38 +0200 | <tomsmeding> | they left :p |
2021-04-21 18:27:43 +0200 | michalz | (~user@185.246.204.47) |
2021-04-21 18:28:05 +0200 | <dolio> | That original mail doesn't seem like it's based on a realistic picture of why there are two build systems in teh first place. |
2021-04-21 18:28:42 +0200 | Ariakenom | (~Ariakenom@2001:9b1:efb:fc00:4cdc:6166:590b:6cfe) |
2021-04-21 18:31:33 +0200 | rj | (~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds) |
2021-04-21 18:32:14 +0200 | nineonine | (~nineonine@2604:3d08:7785:9600:5c9e:8d21:d745:3944) |
2021-04-21 18:32:51 +0200 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 245 seconds) |
2021-04-21 18:33:45 +0200 | kritzefitz | (~kritzefit@212.86.56.80) |
2021-04-21 18:35:16 +0200 | rj | (~x@gateway/tor-sasl/rj) |
2021-04-21 18:35:55 +0200 | howdoi | (uid224@gateway/web/irccloud.com/x-bfpmhrutqdycibjm) |
2021-04-21 18:36:00 +0200 | slack1256 | (~slack1256@200-112-79-98.baf.movistar.cl) |
2021-04-21 18:36:45 +0200 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: leaving) |
2021-04-21 18:39:22 +0200 | falafel_ | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 265 seconds) |
2021-04-21 18:39:43 +0200 | <slack1256> | I have been enjoying the `extensible` package for records/variants. Apart from the ordering constrains imposed by the HList, what am I missing from a true structural type system as in purescript? |
2021-04-21 18:40:37 +0200 | gnumonic | (~gnumonic@c-73-170-91-210.hsd1.ca.comcast.net) (Ping timeout: 252 seconds) |
2021-04-21 18:42:37 +0200 | son0p | (~ff@181.136.122.143) |
2021-04-21 18:43:07 +0200 | xsperry | (~as@unaffiliated/xsperry) |
2021-04-21 18:46:30 +0200 | kuribas | (~user@ptr-25vy0i8p1spa6dozdqg.18120a2.ip6.access.telenet.be) (Remote host closed the connection) |
2021-04-21 18:47:41 +0200 | ram19890 | (~ram@183.83.155.58) (Ping timeout: 240 seconds) |
2021-04-21 18:49:05 +0200 | Sorny | (~Sornaensi@79.142.232.102.static.router4.bolignet.dk) |
2021-04-21 18:51:36 +0200 | Sorna | (~Sornaensi@077213200034.dynamic.telenor.dk) (Ping timeout: 245 seconds) |
2021-04-21 18:52:26 +0200 | ashesham` | (~user@d8D87D1B0.access.telenet.be) (Ping timeout: 240 seconds) |
2021-04-21 18:56:38 +0200 | Lycurgus | (~niemand@98.4.118.65) (Quit: Exeunt) |
2021-04-21 19:01:57 +0200 | LKoen | (~LKoen@92.163.9.109.rev.sfr.net) (Remote host closed the connection) |
2021-04-21 19:05:15 +0200 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2021-04-21 19:06:22 +0200 | Ccasesvilla | (4a4fd19e@cpe-74-79-209-158.twcny.res.rr.com) (Ping timeout: 240 seconds) |
2021-04-21 19:10:46 +0200 | idhugo_ | (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 245 seconds) |
2021-04-21 19:11:28 +0200 | hypercube | (hypercube@gateway/vpn/protonvpn/hypercube) |
2021-04-21 19:11:37 +0200 | coot | (~coot@37.30.50.130.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-04-21 19:14:15 +0200 | carldd | (~carldd@90-224-49-113-no56.tbcn.telia.com) (Read error: Connection reset by peer) |
2021-04-21 19:14:57 +0200 | carldd | (~carldd@90-224-49-113-no56.tbcn.telia.com) |
2021-04-21 19:15:09 +0200 | rj | (~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds) |
2021-04-21 19:15:45 +0200 | LKoen | (~LKoen@92.163.9.109.rev.sfr.net) |
2021-04-21 19:20:07 +0200 | rj | (~x@gateway/tor-sasl/rj) |
2021-04-21 19:21:00 +0200 | nicholasbulka | (~nicholasb@2601:900:4301:da0:bdc9:711a:32b8:207e) (Remote host closed the connection) |
2021-04-21 19:21:19 +0200 | <hyperisco> | slack1256, I'd like to know too. I use PS but I don't use extensible |
2021-04-21 19:21:32 +0200 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) |
2021-04-21 19:21:36 +0200 | nicholasbulka | (~nicholasb@2601:900:4301:da0:bdc9:711a:32b8:207e) |
2021-04-21 19:22:16 +0200 | <hyperisco> | if HList does not recognise records with the same fields are equivalent then I'd consider that a major difference |
2021-04-21 19:26:11 +0200 | nicholasbulka | (~nicholasb@2601:900:4301:da0:bdc9:711a:32b8:207e) (Ping timeout: 250 seconds) |
2021-04-21 19:29:18 +0200 | ddellaco_ | (~ddellacos@ool-44c73afa.dyn.optonline.net) |
2021-04-21 19:31:12 +0200 | ddellacosta | (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 240 seconds) |
2021-04-21 19:32:19 +0200 | nyd | (~nyd@unaffiliated/elysian) |
2021-04-21 19:32:21 +0200 | malumore | (~malumore@151.62.122.70) (Ping timeout: 260 seconds) |
2021-04-21 19:35:57 +0200 | <justsomeguy> | Is there any way to suppress the "-- Defined at ${some_insanely_long_path}" messages in the output of GHCi's ":info" command? |
2021-04-21 19:36:01 +0200 | Pickchea | (~private@unaffiliated/pickchea) |
2021-04-21 19:36:19 +0200 | <monochrom> | I think no. |
2021-04-21 19:36:55 +0200 | <monochrom> | But I have found the message very valuable. |
2021-04-21 19:38:06 +0200 | ashesham` | (~user@d8D87D1B0.access.telenet.be) |
2021-04-21 19:38:09 +0200 | Guest78317 | (~laudiacay@67.176.215.84) |
2021-04-21 19:38:32 +0200 | <monochrom> | "Do an :info X.ByteString and an :info Y.ByteString to see that they are the same re-exports" is my favourite way of telling off the wrong presumption "X.ByteString and Y.ByteString are different types". No, both say "Define at $(same long path)" therefore they are the same. |
2021-04-21 19:39:21 +0200 | ubert | (~Thunderbi@62-47-7-125.adsl.highway.telekom.at) (Ping timeout: 260 seconds) |
2021-04-21 19:40:30 +0200 | vdukhovni | (64022765@100.2.39.101) |
2021-04-21 19:42:12 +0200 | Guest78317 | (~laudiacay@67.176.215.84) (Ping timeout: 240 seconds) |
2021-04-21 19:42:35 +0200 | ddellacosta | (~ddellacos@ool-44c73afa.dyn.optonline.net) |
2021-04-21 19:44:08 +0200 | frozenErebus | (~frozenEre@37.231.244.249) (Ping timeout: 246 seconds) |
2021-04-21 19:44:26 +0200 | ddellaco_ | (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 240 seconds) |
2021-04-21 19:48:12 +0200 | nicholasbulka | (~nicholasb@2601:900:4301:da0:bdc9:711a:32b8:207e) |
2021-04-21 19:48:57 +0200 | DTZUZU | (~DTZUZO@205.ip-149-56-132.net) (Read error: Connection reset by peer) |
2021-04-21 19:49:55 +0200 | ddellacosta | (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 252 seconds) |
2021-04-21 19:49:59 +0200 | ddellaco_ | (~ddellacos@ool-44c73afa.dyn.optonline.net) |
2021-04-21 19:50:32 +0200 | DTZUZU | (~DTZUZO@205.ip-149-56-132.net) |
2021-04-21 19:50:57 +0200 | <justsomeguy> | It's definitely useful, just verbose. When exploring new type classes interactively sometimes I get overwhelemed by the amount of output. For now, I guess I'll use a shell function to filter the output: gi() { echo ":info $1" | stack ghci | sed 's/--.*$//g'; } |
2021-04-21 19:51:03 +0200 | <monochrom> | Nice life hack. |
2021-04-21 19:51:19 +0200 | <justsomeguy> | It somehow worked out ^_^ |
2021-04-21 19:53:29 +0200 | evanjs | (~evanjs@075-129-098-007.res.spectrum.com) (Read error: Connection reset by peer) |
2021-04-21 19:54:58 +0200 | evanjs | (~evanjs@075-129-098-007.res.spectrum.com) |
2021-04-21 19:55:20 +0200 | kritzefitz | (~kritzefit@212.86.56.80) (Ping timeout: 246 seconds) |
2021-04-21 19:55:46 +0200 | nicholasbulka | (~nicholasb@2601:900:4301:da0:bdc9:711a:32b8:207e) (Ping timeout: 245 seconds) |
2021-04-21 19:55:49 +0200 | Sornaensis | (~Sornaensi@077213200034.dynamic.telenor.dk) |
2021-04-21 19:57:04 +0200 | evanjs | (~evanjs@075-129-098-007.res.spectrum.com) (Read error: Connection reset by peer) |
2021-04-21 19:58:18 +0200 | evanjs | (~evanjs@075-129-098-007.res.spectrum.com) |
2021-04-21 19:58:32 +0200 | malumore | (~malumore@151.62.122.70) |
2021-04-21 19:59:01 +0200 | rajivr | (uid269651@gateway/web/irccloud.com/x-xhstqsvcchluvrrc) (Quit: Connection closed for inactivity) |
2021-04-21 19:59:11 +0200 | Sorny | (~Sornaensi@79.142.232.102.static.router4.bolignet.dk) (Ping timeout: 240 seconds) |
2021-04-21 19:59:57 +0200 | rj | (~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds) |
2021-04-21 20:00:51 +0200 | vicfred | (~vicfred@unaffiliated/vicfred) |
2021-04-21 20:03:06 +0200 | malumore | (~malumore@151.62.122.70) (Ping timeout: 240 seconds) |
2021-04-21 20:03:16 +0200 | rj | (~x@gateway/tor-sasl/rj) |
2021-04-21 20:06:19 +0200 | NinjaTrappeur | (~ninja@unaffiliated/ninjatrappeur) (Ping timeout: 260 seconds) |
2021-04-21 20:07:36 +0200 | <zzz> | hi. can someone walk me through why (join (.) f) === (f . f) when f :: (a -> a) ? |
2021-04-21 20:08:43 +0200 | <ski> | @src join |
2021-04-21 20:08:43 +0200 | <lambdabot> | join x = x >>= id |
2021-04-21 20:08:48 +0200 | <ski> | @src (->) (>>=) |
2021-04-21 20:08:48 +0200 | <lambdabot> | f >>= k = \ r -> k (f r) r |
2021-04-21 20:09:22 +0200 | <ski> | join f |
2021-04-21 20:09:35 +0200 | <ski> | = f >>= id |
2021-04-21 20:09:46 +0200 | Ccasesvilla | (4a4fd19e@cpe-74-79-209-158.twcny.res.rr.com) |
2021-04-21 20:09:51 +0200 | <ski> | = \r -> id (f r) r |
2021-04-21 20:09:57 +0200 | <ski> | = \r -> f r r |
2021-04-21 20:10:03 +0200 | <ski> | so |
2021-04-21 20:10:12 +0200 | <ski> | join (.) f |
2021-04-21 20:10:21 +0200 | <ski> | = (.) f f |
2021-04-21 20:10:26 +0200 | <ski> | = f . f |
2021-04-21 20:10:59 +0200 | <tomsmeding> | neat |
2021-04-21 20:14:12 +0200 | DavidEichmann | (~david@147.136.46.217.dyn.plus.net) (Ping timeout: 240 seconds) |
2021-04-21 20:15:05 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-04-21 20:15:15 +0200 | aveltras | (uid364989@gateway/web/irccloud.com/x-nbetplnhypazvidp) (Quit: Connection closed for inactivity) |
2021-04-21 20:16:48 +0200 | NinjaTrappeur | (~ninja@unaffiliated/ninjatrappeur) |
2021-04-21 20:19:49 +0200 | Ferdirand2 | (~Ferdirand@2001:4c78:2012:5000::2) |
2021-04-21 20:20:01 +0200 | Ferdirand2 | (~Ferdirand@2001:4c78:2012:5000::2) (Client Quit) |
2021-04-21 20:21:40 +0200 | <zzz> | when you ask lambdabot for @src (->) (>>=) you're asking it for the definition of (>>=) for the ((->) r) Monad, right? |
2021-04-21 20:22:26 +0200 | <monochrom> | yeah |
2021-04-21 20:22:30 +0200 | nicholasbulka | (~nicholasb@2601:900:4301:da0:bdc9:711a:32b8:207e) |
2021-04-21 20:22:48 +0200 | <zzz> | great. didn't know you could do that |
2021-04-21 20:22:56 +0200 | <zzz> | @src Maybe (>>=) |
2021-04-21 20:22:56 +0200 | <lambdabot> | (Just x) >>= k = k x |
2021-04-21 20:22:56 +0200 | <lambdabot> | Nothing >>= _ = Nothing |
2021-04-21 20:23:22 +0200 | <wroathe> | When using QuantifiedConstraints like (Show a, forall a. Show (t a)) => (Foo t a) I'm getting a warning saying that "a" shadows an existing binding. Are the a's distinct between the first constraint and the second constraint? It still seems to compile, even with the warning, and results in the behavior that I want. |
2021-04-21 20:24:21 +0200 | <ski> | yes, they are |
2021-04-21 20:24:55 +0200 | dyeplexer | (~lol@unaffiliated/terpin) (Remote host closed the connection) |
2021-04-21 20:25:23 +0200 | <ski> | saying `(Show a,forall b. Show (t b)) => Foo t a' might be less confusing for a reader |
2021-04-21 20:25:54 +0200 | <wroathe> | ski: That's actually what I've already gone with, but I was just verifying my understanding |
2021-04-21 20:26:01 +0200 | ashesham` | (~user@d8D87D1B0.access.telenet.be) (Ping timeout: 252 seconds) |
2021-04-21 20:26:50 +0200 | ski | nods |
2021-04-21 20:27:33 +0200 | kritzefitz | (~kritzefit@212.86.56.80) |
2021-04-21 20:27:45 +0200 | <ski> | (i suppose you've confirmed you don't actually want `(Show a,forall b. Show b => Show (t b)) => Foo t a') |
2021-04-21 20:28:54 +0200 | cfricke | (~cfricke@unaffiliated/cfricke) |
2021-04-21 20:29:07 +0200 | mmfood_2 | (~mmfood@45.91.21.59) |
2021-04-21 20:29:19 +0200 | mmfood_1 | (~mmfood@45.91.21.58) (Ping timeout: 252 seconds) |
2021-04-21 20:30:46 +0200 | justan0theruser | (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 245 seconds) |
2021-04-21 20:31:43 +0200 | notzmv | (~zmv@unaffiliated/zmv) (Ping timeout: 252 seconds) |
2021-04-21 20:31:53 +0200 | horatiohb | (~horatiohb@138.197.103.32) (Ping timeout: 252 seconds) |
2021-04-21 20:32:45 +0200 | vchlup | (~vchlup@nat.brnet.cz) (Ping timeout: 268 seconds) |
2021-04-21 20:36:47 +0200 | vdukhovni | (64022765@100.2.39.101) (Quit: Connection closed) |
2021-04-21 20:36:54 +0200 | pthariensflame | (~pthariens@2600:6c52:727f:4200:edf5:29b5:ee6b:7a0f) |
2021-04-21 20:37:04 +0200 | <wroathe> | ski: Nope, and I was just about to ask about that. |
2021-04-21 20:37:16 +0200 | pthariensflame | (~pthariens@2600:6c52:727f:4200:edf5:29b5:ee6b:7a0f) (Client Quit) |
2021-04-21 20:38:38 +0200 | <wroathe> | Nice. That works like a charm. |
2021-04-21 20:38:58 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
2021-04-21 20:38:59 +0200 | <wroathe> | I always forget that you can apply constraints to variables in constraints |
2021-04-21 20:44:21 +0200 | rj | (~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds) |
2021-04-21 20:45:12 +0200 | <wroathe> | ski: Thanks btw |
2021-04-21 20:46:35 +0200 | coot | (~coot@37.30.50.130.nat.umts.dynamic.t-mobile.pl) |
2021-04-21 20:47:18 +0200 | HannaM | (~quassel@p54849510.dip0.t-ipconnect.de) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) |
2021-04-21 20:48:59 +0200 | Guest_68 | (4b1ac0c4@75-26-192-196.lightspeed.bcvloh.sbcglobal.net) |
2021-04-21 20:49:02 +0200 | Guest_68 | (4b1ac0c4@75-26-192-196.lightspeed.bcvloh.sbcglobal.net) (Client Quit) |
2021-04-21 20:49:36 +0200 | invaser | (~Thunderbi@31.148.23.125) |
2021-04-21 20:49:36 +0200 | rj | (~x@gateway/tor-sasl/rj) |
2021-04-21 20:49:52 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-04-21 20:49:56 +0200 | safinaskar | (~user@109.252.90.136) |
2021-04-21 20:51:18 +0200 | wavemode | (~wavemode@097-070-075-143.res.spectrum.com) (Remote host closed the connection) |
2021-04-21 20:52:34 +0200 | usr25 | (~usr25@unaffiliated/usr25) |
2021-04-21 20:53:27 +0200 | wavemode | (~wavemode@097-070-075-143.res.spectrum.com) |
2021-04-21 20:56:01 +0200 | malumore | (~malumore@151.62.122.70) |
2021-04-21 20:58:37 +0200 | vdukhovni | (64022765@100.2.39.101) |
2021-04-21 20:59:09 +0200 | ludi49 | (~hryhorij@ip595.t15.ds.pwr.wroc.pl) |
2021-04-21 21:00:08 +0200 | ludi49 | (~hryhorij@ip595.t15.ds.pwr.wroc.pl) () |
2021-04-21 21:00:41 +0200 | psygate | (~psygate@unaffiliated/psygate) |
2021-04-21 21:03:56 +0200 | NinjaTrappeur | (~ninja@unaffiliated/ninjatrappeur) (Quit: WeeChat 3.1) |
2021-04-21 21:04:02 +0200 | boogsbunny | (17520e19@23.82.14.25) (Ping timeout: 240 seconds) |
2021-04-21 21:04:47 +0200 | NinjaTrappeur | (~ninja@unaffiliated/ninjatrappeur) |
2021-04-21 21:09:53 +0200 | NinjaTrappeur | (~ninja@unaffiliated/ninjatrappeur) (Ping timeout: 246 seconds) |
2021-04-21 21:13:10 +0200 | NinjaTrappeur | (~ninja@unaffiliated/ninjatrappeur) |
2021-04-21 21:13:17 +0200 | mmfood_2 | mmfood |
2021-04-21 21:13:21 +0200 | nut | (~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
2021-04-21 21:14:53 +0200 | <ski> | np |
2021-04-21 21:17:07 +0200 | vdukhovni | (64022765@100.2.39.101) (Quit: Connection closed) |
2021-04-21 21:17:36 +0200 | vs^ | (vs@ip98-184-89-2.mc.at.cox.net) () |
2021-04-21 21:18:58 +0200 | pavonia | (~user@unaffiliated/siracusa) |
2021-04-21 21:19:17 +0200 | <infinisil> | Can cabal show a graph of how the modules depend on each other? |
2021-04-21 21:19:21 +0200 | mikoto-chan | (~anass@gateway/tor-sasl/mikoto-chan) (Quit: mikoto-chan) |
2021-04-21 21:19:33 +0200 | mikoto-chan | (~anass@gateway/tor-sasl/mikoto-chan) |
2021-04-21 21:19:47 +0200 | LKoen | (~LKoen@92.163.9.109.rev.sfr.net) (Remote host closed the connection) |
2021-04-21 21:20:08 +0200 | <davean> | infinisil: not cabal, thats not what cabal does - it doesn't know hwat modules depend on what even - but there are tools |
2021-04-21 21:20:22 +0200 | <davean> | infinisil: I think you've missunderstood what cabal does though if you think it understands Haskell source code at all. |
2021-04-21 21:20:37 +0200 | <davean> | It does not. |
2021-04-21 21:20:45 +0200 | <davean> | Thats GHC's job |
2021-04-21 21:21:19 +0200 | <infinisil> | Oh, does cabal not call GHC multiple times then for each module? |
2021-04-21 21:21:52 +0200 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds) |
2021-04-21 21:22:27 +0200 | <monochrom> | No. |
2021-04-21 21:22:44 +0200 | <monochrom> | Ever did a "cabal build -v" to see how it calls GHC? |
2021-04-21 21:23:10 +0200 | <monochrom> | It throws the complete module list at GHC in one go. |
2021-04-21 21:23:17 +0200 | LKoen | (~LKoen@92.163.9.109.rev.sfr.net) |
2021-04-21 21:23:36 +0200 | <monochrom> | Admire the thousands-of-characters-long command line. |
2021-04-21 21:24:19 +0200 | <monochrom> | I wouldn't want to be GHC. |
2021-04-21 21:24:42 +0200 | <monochrom> | cabal : ghc :: me : my TAs |
2021-04-21 21:24:46 +0200 | <monochrom> | my poor TAs |
2021-04-21 21:24:52 +0200 | minoru_shiraeesh | (~shiraeesh@109.166.59.151) (Ping timeout: 240 seconds) |
2021-04-21 21:25:39 +0200 | minoru_shiraeesh | (~shiraeesh@46.34.207.53) |
2021-04-21 21:25:43 +0200 | <monochrom> | But it's alright, someone already wrote the heroic topological sort code in GHC decades ago, may as well actually use it. |
2021-04-21 21:26:29 +0200 | <monochrom> | Too late to say "separation of concerns, this belongs to a makefile" now. :) |
2021-04-21 21:26:58 +0200 | <davean> | Well, makefiles are more limited, and also not automatic. Makefiles get it wrong all the time |
2021-04-21 21:27:09 +0200 | <sclv> | infinisil: there's a ghc command to generate a makefile, which in turn will encode the graph of dependencies |
2021-04-21 21:27:09 +0200 | rj | (~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds) |
2021-04-21 21:27:10 +0200 | mmfood | (~mmfood@45.91.21.59) (Quit: Leaving) |
2021-04-21 21:27:16 +0200 | <davean> | I've seen a pile of makefiles that have to be run 3 or 4 times because they get it wrong |
2021-04-21 21:27:34 +0200 | invaser | (~Thunderbi@31.148.23.125) (Ping timeout: 265 seconds) |
2021-04-21 21:27:47 +0200 | <infinisil> | monochrom: I see, thanks for the info |
2021-04-21 21:27:48 +0200 | <monochrom> | Use "ghc -M" to output a correct makefile :) |
2021-04-21 21:27:48 +0200 | notzmv | (~zmv@unaffiliated/zmv) |
2021-04-21 21:28:10 +0200 | <davean> | I mean theres things like SOurceGraph |
2021-04-21 21:28:14 +0200 | <infinisil> | So, how can I get the graph of modules though? Any tool recommendations? |
2021-04-21 21:28:34 +0200 | <monochrom> | Does "ghc -M"'s makefile count? :) |
2021-04-21 21:28:44 +0200 | <monochrom> | It's an adjacency list... |
2021-04-21 21:28:46 +0200 | <sclv> | you can run makefile2graph or a similar tool on it |
2021-04-21 21:28:49 +0200 | <davean> | infinisil: and graphmod |
2021-04-21 21:28:52 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
2021-04-21 21:28:53 +0200 | d34df00d | (~d34df00d@104-14-27-213.lightspeed.austtx.sbcglobal.net) (Read error: Connection reset by peer) |
2021-04-21 21:29:11 +0200 | <infinisil> | Hm I see |
2021-04-21 21:29:14 +0200 | <davean> | I haven't used any of the source representation tools in a few years |
2021-04-21 21:29:15 +0200 | <infinisil> | Lemme try.. |
2021-04-21 21:29:19 +0200 | <davean> | SourceGraph use to work great |
2021-04-21 21:29:33 +0200 | <davean> | I don't actually find the graph useful though I found |
2021-04-21 21:29:40 +0200 | <sclv> | its extremely bitrotted but shouldn't be hard to fix up: https://matrix.hackage.haskell.org/#/package/SourceGraph |
2021-04-21 21:29:51 +0200 | <davean> | graphmod is probably less bitrotted |
2021-04-21 21:29:53 +0200 | <monochrom> | Yeah a graph of packages is the useful one. |
2021-04-21 21:30:06 +0200 | <infinisil> | In my case I want to see why a file is being recompiled so often |
2021-04-21 21:30:07 +0200 | <davean> | monochrom: yah, that I've used once or twice recently |
2021-04-21 21:30:16 +0200 | <davean> | infinisil: you might be looking in the wrong place? |
2021-04-21 21:30:25 +0200 | <sclv> | oh graphmod looks like its in good shape: https://matrix.hackage.haskell.org/#/package/graphmod |
2021-04-21 21:30:33 +0200 | <infinisil> | I mean I kinda know why, but it would be nice to have something visual |
2021-04-21 21:30:46 +0200 | rj | (~x@gateway/tor-sasl/rj) |
2021-04-21 21:30:57 +0200 | nicholasbulka | (~nicholasb@2601:900:4301:da0:bdc9:711a:32b8:207e) (Remote host closed the connection) |
2021-04-21 21:31:04 +0200 | <infinisil> | davean: No I already know the problem, the file transitively depends on other frequently updated files |
2021-04-21 21:32:12 +0200 | vchlup | (~vchlup@nat.brnet.cz) |
2021-04-21 21:32:19 +0200 | sdrodge_ | (~sdrodge@unaffiliated/sdrodge) |
2021-04-21 21:32:27 +0200 | <monochrom> | Yeah maybe try graphmod. (But I haven't.) |
2021-04-21 21:32:41 +0200 | sdrodge | (~sdrodge@unaffiliated/sdrodge) (Ping timeout: 240 seconds) |
2021-04-21 21:32:50 +0200 | <infinisil> | Oh nice |
2021-04-21 21:33:20 +0200 | <monochrom> | Does it just output the text file that graphviz wants to read? |
2021-04-21 21:33:31 +0200 | <infinisil> | I'd expect so |
2021-04-21 21:33:48 +0200 | infinisil | is installing graphmod |
2021-04-21 21:34:35 +0200 | DavidEichmann | (~david@147.136.46.217.dyn.plus.net) |
2021-04-21 21:34:47 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-04-21 21:35:18 +0200 | infinisil | installs graphviz |
2021-04-21 21:35:57 +0200 | <infinisil> | (or rather, adding it to the shell.nix) |
2021-04-21 21:36:54 +0200 | infinisil | installs xdotool |
2021-04-21 21:37:21 +0200 | wonko7 | (~wonko7@62.115.229.50) (Ping timeout: 260 seconds) |
2021-04-21 21:38:48 +0200 | <davean> | infinisil: why do you want xdotool for *this* task? |
2021-04-21 21:39:10 +0200 | <infinisil> | Reading through https://github.com/yav/graphmod/wiki |
2021-04-21 21:39:20 +0200 | <infinisil> | First example command is `find Data -name '*.hs' | xargs graphmod -q | xdot -` |
2021-04-21 21:39:31 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 245 seconds) |
2021-04-21 21:39:32 +0200 | <infinisil> | And I checked where the `xdot` binary comes from, apparently xdotool |
2021-04-21 21:39:47 +0200 | <davean> | Uh |
2021-04-21 21:39:49 +0200 | <infinisil> | But, as I just discovered, maybe not so after all, because I don't have xdot after installing xdotool |
2021-04-21 21:39:56 +0200 | davean | looks at infinisil askew |
2021-04-21 21:40:04 +0200 | <davean> | Yah I think you're off your rocker |
2021-04-21 21:40:05 +0200 | <pjb> | Yes, me too… |
2021-04-21 21:40:11 +0200 | <geekosaur> | that looks like a failed grep to me :) |
2021-04-21 21:40:21 +0200 | <infinisil> | Huh? |
2021-04-21 21:40:23 +0200 | <davean> | xdotool is a tool for simulating X events |
2021-04-21 21:40:23 +0200 | infinisil | is confused |
2021-04-21 21:40:29 +0200 | <geekosaur> | same prefix |
2021-04-21 21:40:30 +0200 | <davean> | not a graph display tool like xdot is |
2021-04-21 21:40:32 +0200 | <pjb> | infinisil: xdot has nothing in common with xdotool! |
2021-04-21 21:40:33 +0200 | <infinisil> | Oh! |
2021-04-21 21:41:05 +0200 | <davean> | Your addition does not pass a sanity check |
2021-04-21 21:41:13 +0200 | <infinisil> | Ugh yeah, I see my mistake. I searched for the xdot binary, but not for `xdot$`, meaning I also got the result for xdotool |
2021-04-21 21:41:15 +0200 | <geekosaur> | and apt-cache search shows them right next to each other |
2021-04-21 21:41:51 +0200 | sveit | (~sveit@2001:19f0:ac01:247:5400:ff:fe5c:689f) ("ERC Version 5.3 (IRC client for Emacs)") |
2021-04-21 21:42:00 +0200 | <davean> | infinisil: now, if you want to fake a mouse click in X11, you want xdotool |
2021-04-21 21:42:21 +0200 | infinisil | installs xdot, this time |
2021-04-21 21:43:55 +0200 | <monochrom> | I always search for, e.g., ^graphviz$ |
2021-04-21 21:44:46 +0200 | <infinisil> | There are nix setups to get command-not-found to work, but I don't have that configured. When a command cannot be found that would tell you where the binary can be found |
2021-04-21 21:45:07 +0200 | <monochrom> | and there is enough reason to do so because otherwise you would be spammed by the horde of eg "golang-python-graphviz-dev-lib-profiling" already. |
2021-04-21 21:45:42 +0200 | <infinisil> | I am confused by that sentence |
2021-04-21 21:46:34 +0200 | unyu | (~pyon@unaffiliated/pyon) (Quit: brb) |
2021-04-21 21:46:56 +0200 | unyu | (~pyon@unaffiliated/pyon) |
2021-04-21 21:47:23 +0200 | <monochrom> | If you ask aptitude or apt-cache search etc to look for "graphviz", you don't get graphviz itself. Never. You get all those things like python-graphviz-binding, golang-graphviz-lib, everything peripheral except the centre you actually need. |
2021-04-21 21:47:42 +0200 | <infinisil> | Ohh I see |
2021-04-21 21:47:50 +0200 | <monochrom> | And there a a million of those peripheral tag-along free loaders. |
2021-04-21 21:47:56 +0200 | <infinisil> | Yeah the binary reverse search is nice |
2021-04-21 21:48:39 +0200 | <infinisil> | It works! |
2021-04-21 21:48:40 +0200 | heatsink | (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-04-21 21:48:44 +0200 | <monochrom> | :) |
2021-04-21 21:49:25 +0200 | <infinisil> | So, in conclusion, install graphmod, graphvis and xdot, then run find src -name '*.hs' | xargs graphmod -q | xdot - |
2021-04-21 21:50:10 +0200 | <monochrom> | Hrm, graphmod parses source code directly? |
2021-04-21 21:50:35 +0200 | <monochrom> | err nevermind, nothing says it can't call ghc with the same filename arguments. |
2021-04-21 21:50:47 +0200 | <monochrom> | Nice either way. |
2021-04-21 21:50:49 +0200 | <infinisil> | https://hackage.haskell.org/package/graphmod |
2021-04-21 21:50:56 +0200 | <infinisil> | Seems to use the haskell-lexer package |
2021-04-21 21:51:14 +0200 | <infinisil> | So, seemingly not even though ghc! |
2021-04-21 21:51:24 +0200 | geekosaur | wonders if it groks addDependentFile |
2021-04-21 21:51:27 +0200 | <monochrom> | Haha the module graph of lens. |
2021-04-21 21:51:40 +0200 | Cale | (~cale@cpef48e38ee8583-cm0c473de9d680.cpe.net.cable.rogers.com) (Remote host closed the connection) |
2021-04-21 21:52:24 +0200 | Cale | (~cale@cpef48e38ee8583-cm0c473de9d680.cpe.net.cable.rogers.com) |
2021-04-21 21:52:25 +0200 | <infinisil> | Oh no, some new black magic I don't know about |
2021-04-21 21:53:07 +0200 | nyd | (~nyd@unaffiliated/elysian) (Ping timeout: 252 seconds) |
2021-04-21 21:53:21 +0200 | dsrt^ | (dsrt@ip98-184-89-2.mc.at.cox.net) |
2021-04-21 21:53:33 +0200 | <infinisil> | Interesting |
2021-04-21 21:57:06 +0200 | <tomsmeding> | templatehaskell breaks everything that's not normal compilation |
2021-04-21 21:57:07 +0200 | Lord_of_Life_ | (~Lord@unaffiliated/lord-of-life/x-0885362) |
2021-04-21 21:58:41 +0200 | Pickchea | (~private@unaffiliated/pickchea) (Quit: Leaving) |
2021-04-21 21:59:39 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-04-21 22:00:06 +0200 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 240 seconds) |
2021-04-21 22:00:14 +0200 | Lord_of_Life_ | Lord_of_Life |
2021-04-21 22:00:38 +0200 | DavidEichmann | (~david@147.136.46.217.dyn.plus.net) (Ping timeout: 246 seconds) |
2021-04-21 22:05:15 +0200 | petersen | (~petersen@redhat/juhp) (Ping timeout: 268 seconds) |
2021-04-21 22:07:41 +0200 | conal | (~conal@64.71.133.70) (Ping timeout: 240 seconds) |
2021-04-21 22:08:14 +0200 | petersen | (~petersen@redhat/juhp) |
2021-04-21 22:08:14 +0200 | vgtw_ | (~vgtw@gateway/tor-sasl/vgtw) |
2021-04-21 22:08:21 +0200 | vgtw | (~vgtw@gateway/tor-sasl/vgtw) (Ping timeout: 240 seconds) |
2021-04-21 22:08:33 +0200 | vgtw_ | vgtw |
2021-04-21 22:10:07 +0200 | Rudd0 | (~Rudd0@185.189.115.108) (Read error: Connection reset by peer) |
2021-04-21 22:10:11 +0200 | malumore | (~malumore@151.62.122.70) (Ping timeout: 240 seconds) |
2021-04-21 22:11:33 +0200 | rj | (~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds) |
2021-04-21 22:12:27 +0200 | kritzefitz | (~kritzefit@212.86.56.80) (Remote host closed the connection) |
2021-04-21 22:13:50 +0200 | coot | (~coot@37.30.50.130.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-04-21 22:14:32 +0200 | bitmapper | (uid464869@gateway/web/irccloud.com/x-tuzcokklkvrgravg) (Quit: Connection closed for inactivity) |
2021-04-21 22:15:33 +0200 | PragCypher | (~cypher@li1507-98.members.linode.com) (Read error: Connection reset by peer) |
2021-04-21 22:16:45 +0200 | rj | (~x@gateway/tor-sasl/rj) |
2021-04-21 22:22:01 +0200 | Nahra | (~user@unaffiliated/nahra) (Ping timeout: 245 seconds) |
2021-04-21 22:22:10 +0200 | myShoggoth | (~myShoggot@75.164.11.109) (Ping timeout: 260 seconds) |
2021-04-21 22:23:08 +0200 | nut | (~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 268 seconds) |
2021-04-21 22:29:13 +0200 | nineonin_ | (~nineonine@50.216.62.2) |
2021-04-21 22:29:43 +0200 | nut | (~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
2021-04-21 22:30:21 +0200 | psygate | (~psygate@unaffiliated/psygate) (Quit: Leaving) |
2021-04-21 22:30:32 +0200 | hexfive | (~hexfive@50.35.83.177) |
2021-04-21 22:31:57 +0200 | ClaudiusMaximus | (~claude@unaffiliated/claudiusmaximus) (Quit: ->) |
2021-04-21 22:32:05 +0200 | nineonine | (~nineonine@2604:3d08:7785:9600:5c9e:8d21:d745:3944) (Ping timeout: 250 seconds) |
2021-04-21 22:32:38 +0200 | myShoggoth | (~myShoggot@75.164.11.109) |
2021-04-21 22:36:20 +0200 | alx741 | (~alx741@181.196.68.199) (Ping timeout: 246 seconds) |
2021-04-21 22:39:38 +0200 | Aquazi | (uid312403@gateway/web/irccloud.com/x-fvdnxupudqhwtjny) (Quit: Connection closed for inactivity) |
2021-04-21 22:43:03 +0200 | fendor | (~fendor@91.141.3.112.wireless.dyn.drei.com) (Remote host closed the connection) |
2021-04-21 22:43:22 +0200 | sammyh | (~sammyh@vps-15813cea.vps.ovh.net) |
2021-04-21 22:44:49 +0200 | rodriga | (~quassel@134.204.25.66) (Ping timeout: 252 seconds) |
2021-04-21 22:45:29 +0200 | heatsink | (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-04-21 22:45:47 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-04-21 22:45:54 +0200 | bitmapper | (uid464869@gateway/web/irccloud.com/x-zaklydynoasermoj) |
2021-04-21 22:47:38 +0200 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
2021-04-21 22:49:14 +0200 | alx741 | (~alx741@186.178.109.231) |
2021-04-21 22:49:46 +0200 | hypercube | (hypercube@gateway/vpn/protonvpn/hypercube) (Quit: WeeChat 3.1) |
2021-04-21 22:51:05 +0200 | LKoen | (~LKoen@92.163.9.109.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”) |
2021-04-21 22:51:11 +0200 | stef204 | (~stef204@unaffiliated/stef-204/x-384198) (Quit: WeeChat 3.1) |
2021-04-21 22:51:19 +0200 | safinaskar | (~user@109.252.90.136) () |
2021-04-21 22:51:21 +0200 | safinaskar | (~user@109.252.90.136) |
2021-04-21 22:52:03 +0200 | dmytrish | (~mitra@2a02:8084:a82:d900:fdd2:ac3d:3471:66d9) |
2021-04-21 22:52:19 +0200 | stef204 | (~stef204@unaffiliated/stef-204/x-384198) |
2021-04-21 22:52:25 +0200 | <safinaskar> | is there a way to dynamically evaluate some haskell code, ideally in the form of ast? i know about "hint" package, but its description says "requires ghc installed", i don't want such requirement |
2021-04-21 22:53:40 +0200 | cfricke | (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.1) |
2021-04-21 22:54:26 +0200 | <infinisil> | safinaskar: Are you sure it needs to be Haskell? |
2021-04-21 22:54:31 +0200 | jao | (~jao@pdpc/supporter/professional/jao) (Ping timeout: 245 seconds) |
2021-04-21 22:55:28 +0200 | <infinisil> | Because to evaluate haskell you need to compile it, which requires a GHC compiler, therefore the requirement |
2021-04-21 22:57:49 +0200 | <safinaskar> | infinisil: i mean i don't want requirement to have ghc binary on system. but i am ok with dependency on some kind of library |
2021-04-21 22:58:08 +0200 | <geekosaur> | ghc exists as a library but that more or less means ghc installed |
2021-04-21 22:58:15 +0200 | <infinisil> | Yeah that won't really work |
2021-04-21 22:58:17 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds) |
2021-04-21 22:58:21 +0200 | <Uniaika> | yep' |
2021-04-21 22:58:21 +0200 | rj | (~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds) |
2021-04-21 22:58:30 +0200 | <infinisil> | safinaskar: What's your use case? |
2021-04-21 22:59:37 +0200 | <geekosaur> | conceivably it would be possible to make hugs work, provided you stick to its subset of ghc's functionality; it's a smaller footprint than ghc but I think doesn't come as a library as it is |
2021-04-21 23:00:55 +0200 | <safinaskar> | infinisil: i. e. i want to be able to copy my program to another machine with all its shared libraries and i want it to work. it is okey if one of this libraries will be ghc library. but this is not okey if ghc executable is required, too. is this possible? |
2021-04-21 23:01:51 +0200 | rj | (~x@gateway/tor-sasl/rj) |
2021-04-21 23:02:00 +0200 | <infinisil> | Oh yeah that's not the right approach for this |
2021-04-21 23:02:10 +0200 | <c_wraith> | the big issue with using ghc as a library is really that you depend on the package databases still |
2021-04-21 23:02:33 +0200 | <safinaskar> | so is this possible? |
2021-04-21 23:02:58 +0200 | <infinisil> | Well, I know how to do it with Nix. No idea how GHC programs usually get distributed |
2021-04-21 23:02:59 +0200 | slack1256 | (~slack1256@200-112-79-98.baf.movistar.cl) (Remote host closed the connection) |
2021-04-21 23:03:02 +0200 | <c_wraith> | It's basically impossible to have installed libraries with having GHC |
2021-04-21 23:04:40 +0200 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
2021-04-21 23:04:51 +0200 | <c_wraith> | If you want to run haskell code and allow it to have access to definitions in base, you need base to be installed. That's not the same as compiled into your program |
2021-04-21 23:05:30 +0200 | <infinisil> | I think they just want a distribution mechanism for a compiled binary |
2021-04-21 23:05:48 +0200 | <geekosaur> | which brings up another good point: with or without ghc, the things you compile can't access your program's internals |
2021-04-21 23:05:56 +0200 | <geekosaur> | it would be a separate program |
2021-04-21 23:06:08 +0200 | DavidEichmann | (~david@147.136.46.217.dyn.plus.net) |
2021-04-21 23:06:32 +0200 | hyperisco | (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 240 seconds) |
2021-04-21 23:08:16 +0200 | <safinaskar> | c_wraith: ok, thanks |
2021-04-21 23:08:31 +0200 | <safinaskar> | well, okey, thanks everybody, so, this is impossible |
2021-04-21 23:08:33 +0200 | <c_wraith> | GHC is just not well suited for embedding except in cases where it's running on the machine that compiled it. |
2021-04-21 23:11:06 +0200 | <c_wraith> | This is mostly the result of how it handles libraries with separate compilation and using the system linker |
2021-04-21 23:11:22 +0200 | <infinisil> | safinaskar: https://www.reddit.com/r/haskell/comments/a0stgf/how_to_package_and_distribute_software/eals7zn/ |
2021-04-21 23:11:25 +0200 | <infinisil> | How about this ^ |
2021-04-21 23:11:39 +0200 | <infinisil> | Compiling the program with `-static -optc-static -optl-static` |
2021-04-21 23:14:25 +0200 | safinaskar | (~user@109.252.90.136) () |
2021-04-21 23:15:15 +0200 | ddellacosta | (~ddellacos@ool-44c73afa.dyn.optonline.net) |
2021-04-21 23:15:57 +0200 | mastarija | (~mastarija@31.217.16.219) |
2021-04-21 23:16:32 +0200 | jumper149 | (~jumper149@80.240.31.34) (Quit: WeeChat 3.1) |
2021-04-21 23:17:12 +0200 | ddellaco_ | (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 240 seconds) |
2021-04-21 23:17:24 +0200 | conal | (~conal@64.71.133.70) |
2021-04-21 23:18:01 +0200 | knupfer | (~Thunderbi@200116b82b5e7400d544a78922962f4e.dip.versatel-1u1.de) (Ping timeout: 250 seconds) |
2021-04-21 23:19:43 +0200 | <c_wraith> | this sort of sounds like something that could be integrated into cabal. Though it'd be a lot of work. Still, you could tell cabal to package up all the interface and library files and store them as data in a distributable package, and while it's at it add stubs for using the ghc api configured with exactly the same flags it uses for your project. |
2021-04-21 23:19:49 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-04-21 23:21:07 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-04-21 23:22:14 +0200 | heatsink | (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-04-21 23:25:24 +0200 | horatiohb | (~horatiohb@104.236.234.13) |
2021-04-21 23:28:45 +0200 | mikoto-chan | (~anass@gateway/tor-sasl/mikoto-chan) (Ping timeout: 240 seconds) |
2021-04-21 23:30:14 +0200 | Tario | (~Tario@201.192.165.173) (Ping timeout: 246 seconds) |
2021-04-21 23:30:38 +0200 | nicholasbulka | (~nicholasb@2601:900:4301:da0:bdc9:711a:32b8:207e) |
2021-04-21 23:30:49 +0200 | <monochrom> | Static linking will not help you with deploying GHC-API-using exes to a no-GHC machine at all. |
2021-04-21 23:30:57 +0200 | Tario | (~Tario@200.119.185.36) |
2021-04-21 23:31:01 +0200 | nut | (~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 252 seconds) |
2021-04-21 23:31:18 +0200 | <monochrom> | This is because the statically-linked GHC-API will still dynamically open GHC's *.so files during run time. |
2021-04-21 23:31:30 +0200 | <monochrom> | That's right, no typo there. |
2021-04-21 23:31:52 +0200 | <monochrom> | In fact it gets worse^W better. |
2021-04-21 23:32:23 +0200 | <monochrom> | The dlopen uses an absolute path, the very same absolute path as where GHC's *.so files are during build time. |
2021-04-21 23:32:27 +0200 | nut | (~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
2021-04-21 23:34:42 +0200 | Tario | (~Tario@200.119.185.36) (Read error: Connection reset by peer) |
2021-04-21 23:34:55 +0200 | nicholasbulka | (~nicholasb@2601:900:4301:da0:bdc9:711a:32b8:207e) (Ping timeout: 250 seconds) |
2021-04-21 23:35:32 +0200 | Tario | (~Tario@201.192.165.173) |
2021-04-21 23:35:45 +0200 | <monochrom> | You will probably find that a docker approach is more viable. And use pretty much the same docker image for both building your exe and deploying. OK the deploy image can skip gcc and make, sure. |
2021-04-21 23:36:37 +0200 | elliott_ | (~elliott@pool-108-18-30-46.washdc.fios.verizon.net) |
2021-04-21 23:36:54 +0200 | rj_ | (~x@gateway/tor-sasl/rj) |
2021-04-21 23:37:59 +0200 | michalz | (~user@185.246.204.47) (Remote host closed the connection) |
2021-04-21 23:39:13 +0200 | boogsbunny | (2d23821c@45.35.130.28) |
2021-04-21 23:39:33 +0200 | rj | (~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds) |
2021-04-21 23:40:47 +0200 | Varis | (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
2021-04-21 23:41:15 +0200 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving) |
2021-04-21 23:41:38 +0200 | cagrioz64 | (4ea70324@78.167.3.36) |
2021-04-21 23:43:08 +0200 | cagrioz64 | (4ea70324@78.167.3.36) (Client Quit) |
2021-04-21 23:43:09 +0200 | rj_ | (~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds) |
2021-04-21 23:43:35 +0200 | <monochrom> | It is becoming more and more naïve to believe that you can solve all deployment problems by shouting "static linking!" at the build tool a huge number of times. |
2021-04-21 23:43:46 +0200 | sleblanc | (~sleblanc@unaffiliated/sebleblanc) |
2021-04-21 23:44:11 +0200 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 240 seconds) |
2021-04-21 23:44:14 +0200 | cagrioz83 | (4ea70324@78.167.3.36) |
2021-04-21 23:44:22 +0200 | <monochrom> | It was true of most C ecosystems a long time ago, in a much simpler time, in a previous life. |
2021-04-21 23:44:45 +0200 | <monochrom> | Today even glibc makes that false. |
2021-04-21 23:45:04 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-04-21 23:45:17 +0200 | <monochrom> | So never mind a whole new generation of high-level language implementations. Haskell is not alone here. |
2021-04-21 23:46:29 +0200 | stef204 | (~stef204@unaffiliated/stef-204/x-384198) (Quit: WeeChat 3.1) |
2021-04-21 23:46:51 +0200 | <hpc> | nowadays you shout "docker!" at the build tool a huge number of times |
2021-04-21 23:47:10 +0200 | <hpc> | oh, already mentioned |
2021-04-21 23:47:12 +0200 | <monochrom> | Yeah. Let's hope this lasts for the next 10 years. |
2021-04-21 23:47:25 +0200 | <infinisil> | monochrom: I don't think they're using the ghc api? |
2021-04-21 23:47:39 +0200 | geekosaur | will be surprised if docker's still the hotness in 10 years |
2021-04-21 23:47:42 +0200 | <monochrom> | If you use hint you're using the ghc api. |
2021-04-21 23:47:45 +0200 | <geekosaur> | things move far too fast |
2021-04-21 23:47:51 +0200 | <monochrom> | If you use ghc-mod you're using the ghc api. |
2021-04-21 23:48:14 +0200 | <geekosaur> | ghc as a library is the ghc api |
2021-04-21 23:48:36 +0200 | <monochrom> | If you use anything remotely close to "honour dynamically received Haskell code" you're using the ghc api. |
2021-04-21 23:48:38 +0200 | <geekosaur> | other options for dynamically compiling haskell code basically don't exist |
2021-04-21 23:49:08 +0200 | <infinisil> | monochrom: I don't think they're doing that though |
2021-04-21 23:49:34 +0200 | <infinisil> | Oh |
2021-04-21 23:49:39 +0200 | <infinisil> | Wait maybe I misunderstood |
2021-04-21 23:49:45 +0200 | <infinisil> | Yeah I probably did, never mind |
2021-04-21 23:49:50 +0200 | <geekosaur> | >> is there a way to dynamically evaluate some haskell code, ideally in the form of ast? i know about "hint" package, but its description says "requires ghc installed", i don't want such requirement |
2021-04-21 23:50:21 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
2021-04-21 23:50:41 +0200 | nut | (~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds) |
2021-04-21 23:50:49 +0200 | <monochrom> | Actually, may I recommend system("hugs")? >:) |
2021-04-21 23:51:04 +0200 | <monochrom> | At least hugs is much much smaller. |
2021-04-21 23:51:28 +0200 | <geekosaur> | I did suggest that early on |
2021-04-21 23:51:42 +0200 | <monochrom> | Darn. |
2021-04-21 23:54:22 +0200 | usr25 | (~usr25@unaffiliated/usr25) (Quit: Leaving) |
2021-04-21 23:55:19 +0200 | heatsink | (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-04-21 23:56:47 +0200 | nicholasbulka | (~nicholasb@2601:900:4301:da0:bdc9:711a:32b8:207e) |
2021-04-21 23:59:20 +0200 | hypercube | (hypercube@gateway/vpn/protonvpn/hypercube) |