Logs on 2020-12-04 (freenode/#haskell)
| 00:01:45 | × | chele quits (~chele@ip5b416ea2.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 00:02:08 | → | conal joins (~conal@64.71.133.70) |
| 00:03:51 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 00:04:36 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 00:05:40 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
| 00:08:11 | hackage | language-dickinson 1.4.1.2 - A language for generative literature https://hackage.haskell.org/package/language-dickinson-1.4.1.2 (vmchale) |
| 00:08:40 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 00:09:01 | → | p8m joins (p8m@gateway/vpn/protonvpn/p8m) |
| 00:09:40 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
| 00:10:20 | × | _linker_ quits (~linker@2a02:a31a:a041:9a80:2cd0:74ec:fa0:a975) (Remote host closed the connection) |
| 00:11:48 | → | p8m_ joins (p8m@gateway/vpn/protonvpn/p8m) |
| 00:11:55 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) |
| 00:12:02 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:a1c2:b119:a4c8:3942:7eb) |
| 00:15:42 | × | p8m quits (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 272 seconds) |
| 00:16:20 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds) |
| 00:19:20 | <texasmynsted> | is there a way to derive a Show instance for a type from an included module? Example: https://jaspervdj.be/hakyll/reference/src/Hakyll-Web-Template-Context.html |
| 00:19:28 | <texasmynsted> | I want to show Context |
| 00:20:19 | <hpc> | turn on orphan instances, and you need its data constructors in scope |
| 00:21:01 | p8m_ | is now known as p8m |
| 00:21:07 | <hpc> | you won't be able to show Context values though, there's no Show instance for functions |
| 00:21:35 | <hpc> | if you did write one, the best you could get is show = const "Context <function>" or something along those lines |
| 00:22:33 | × | sondr3 quits (~sondr3@cm-84.211.56.132.getinternet.no) (Quit: Leaving) |
| 00:23:09 | <texasmynsted> | Isn't Context just a newtype wrapper to provide a monoid? |
| 00:23:44 | <texasmynsted> | hmm. I just want to see all the fields in the Context. |
| 00:24:22 | <hpc> | newtype Context a = Context {unContext :: String -> [String] -> Item a -> Compiler ContextField} |
| 00:24:39 | <hpc> | it has one field, unContext |
| 00:24:45 | × | jespada quits (~jespada@90.254.245.49) (Ping timeout: 240 seconds) |
| 00:24:46 | <hpc> | which is a function that takes etc etc |
| 00:24:58 | <hpc> | you can't show what parameters the function takes because it hasn't been given any yet |
| 00:25:22 | <texasmynsted> | right okay |
| 00:26:48 | → | tessier joins (~treed@98.171.210.130) |
| 00:26:48 | × | tessier quits (~treed@98.171.210.130) (Changing host) |
| 00:26:48 | → | tessier joins (~treed@kernel-panic/copilotco) |
| 00:28:41 | → | jespada joins (~jespada@90.254.245.49) |
| 00:34:01 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Remote host closed the connection) |
| 00:36:15 | × | elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving) |
| 00:38:16 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 00:38:40 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 00:38:48 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 00:39:10 | × | Tops2 quits (~Tobias@dyndsl-095-033-024-237.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
| 00:42:30 | × | drincruz_ quits (~adriancru@ool-44c748be.dyn.optonline.net) (Ping timeout: 256 seconds) |
| 00:42:45 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 00:48:41 | → | nkatte joins (~nkatte@2804:14c:7982:10c9:4e1d:96ff:fe53:98e1) |
| 00:54:06 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 00:55:47 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 00:56:12 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 00:57:54 | × | pent quits (sid313808@gateway/web/irccloud.com/x-xqrqvlzrksrgsiqc) (Ping timeout: 244 seconds) |
| 00:57:59 | × | dmj` quits (sid72307@gateway/web/irccloud.com/x-zlqjhjlnfrbzhlnn) (Ping timeout: 244 seconds) |
| 00:57:59 | × | rann quits (sid175221@gateway/web/irccloud.com/x-hjffvubjrurprbtl) (Ping timeout: 244 seconds) |
| 00:57:59 | × | PatrickRobotham_ quits (sid18270@gateway/web/irccloud.com/x-dijdrdskgiequney) (Ping timeout: 244 seconds) |
| 00:57:59 | × | stylewarning quits (stylewarni@gateway/web/irccloud.com/x-kgzvevvekhekeqvf) (Ping timeout: 244 seconds) |
| 00:58:38 | → | PatrickRobotham_ joins (sid18270@gateway/web/irccloud.com/x-aeyrfpqtngtucpch) |
| 00:58:40 | → | pent joins (sid313808@gateway/web/irccloud.com/x-myformzqndtngank) |
| 00:58:49 | → | stylewarning joins (stylewarni@gateway/web/irccloud.com/x-qyrbdxfrgqvtmbve) |
| 00:59:32 | → | dmj` joins (sid72307@gateway/web/irccloud.com/x-bxoewkcbisfzckva) |
| 00:59:38 | → | rann joins (sid175221@gateway/web/irccloud.com/x-alttaaqufafgtfty) |
| 01:02:43 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) (Remote host closed the connection) |
| 01:03:12 | × | Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Ping timeout: 272 seconds) |
| 01:04:52 | × | nisstyre quits (~wes@python-zero/conduct-committee/nisstyre) (Quit: WeeChat 2.9) |
| 01:06:25 | × | Axman6 quits (~Axman6@pdpc/supporter/student/Axman6) (Ping timeout: 240 seconds) |
| 01:06:38 | → | nisstyre joins (~wes@python-zero/conduct-committee/nisstyre) |
| 01:09:05 | → | jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb) |
| 01:11:10 | → | drincruz_ joins (~adriancru@ool-44c748be.dyn.optonline.net) |
| 01:11:14 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) |
| 01:13:02 | × | m0rphism quits (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 260 seconds) |
| 01:13:18 | → | geowiesnot joins (~user@87-89-181-157.abo.bbox.fr) |
| 01:13:40 | × | jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 256 seconds) |
| 01:16:43 | → | bcasiello joins (~brian@071-088-110-201.res.spectrum.com) |
| 01:16:52 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
| 01:20:47 | → | Axman6 joins (~Axman6@pdpc/supporter/student/Axman6) |
| 01:30:06 | × | dnlkrgr quits (~dnlkrgr@HSI-KBW-046-005-005-080.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 256 seconds) |
| 01:30:40 | × | drincruz_ quits (~adriancru@ool-44c748be.dyn.optonline.net) (Ping timeout: 256 seconds) |
| 01:33:16 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 01:40:53 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) |
| 01:43:54 | → | Lord_of_Life_ joins (~Lord@46.217.221.156) |
| 01:44:18 | × | Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 260 seconds) |
| 01:45:44 | Lord_of_Life_ | is now known as Lord_of_Life |
| 01:48:13 | × | nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 260 seconds) |
| 01:49:15 | × | Deide quits (~Deide@217.155.19.23) (Quit: Seeee yaaaa) |
| 01:50:02 | → | Alleria_ joins (~AllahuAkb@2604:2000:1484:26:5ce:3f03:877d:a85e) |
| 01:51:53 | → | nineonine joins (~nineonine@50.216.62.2) |
| 01:52:46 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 01:55:02 | × | darjeeling_ quits (~darjeelin@122.245.218.196) (Ping timeout: 260 seconds) |
| 01:55:11 | → | wei2912 joins (~wei2912@unaffiliated/wei2912) |
| 01:58:51 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
| 01:59:12 | <Feuermagier> | is there a function like "init" but for the first element of a list? |
| 01:59:41 | <Feuermagier> | oh, wait |
| 01:59:43 | <jle`> | Feuermagier: what would it return for [1,2,3] ? |
| 01:59:44 | <Feuermagier> | thats just tail |
| 01:59:50 | <Feuermagier> | lol |
| 02:00:24 | <jle`> | iqubic: just import https://hackage.haskell.org/package/generic-lens-2.0.0.0/docs/Data-Generics-Labels.html |
| 02:06:53 | <iqubic> | jle`: And then all the lenses I need will be automatically created when I |
| 02:07:06 | × | aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) |
| 02:07:14 | <iqubic> | When I use "#foo" as the lens name? |
| 02:08:41 | hackage | kempe 0.1.0.1 - Kempe compiler https://hackage.haskell.org/package/kempe-0.1.0.1 (vmchale) |
| 02:09:25 | × | jmchael quits (~Chi1thang@87.112.60.168) (Ping timeout: 240 seconds) |
| 02:09:30 | × | nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 260 seconds) |
| 02:09:57 | <siraben> | Has anyone got https://github.com/mathandley/AutoBench to build via Nix? |
| 02:10:51 | × | Amras quits (~Amras@unaffiliated/amras) (Ping timeout: 272 seconds) |
| 02:11:00 | <jle`> | iqubic: you'd need a Generic instance for your data type |
| 02:11:15 | <iqubic> | Oh. But can't I derive that for free? |
| 02:11:34 | <jle`> | yeah, you can derive it with GHC |
| 02:11:39 | → | aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net) |
| 02:11:47 | → | argent0 joins (~argent0@168.227.97.34) |
| 02:12:28 | <iqubic> | Yeah. I was thinking I could derive that for free like I can with Eq and Show and Ord and such. |
| 02:12:55 | → | conal joins (~conal@64.71.133.70) |
| 02:13:52 | × | st8less quits (~st8less@2603:a060:11fd:0:3c0a:a808:d920:6dc7) (Ping timeout: 260 seconds) |
| 02:14:08 | <exarkun> | I never noticed stack.yaml.lock files before. What do I do with these? Check them into vcs? Ignore them? |
| 02:14:39 | → | st8less joins (~st8less@2603:a060:11fd:0:ed90:283:d17e:16d7) |
| 02:15:40 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:a1c2:b119:a4c8:3942:7eb) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 02:17:18 | × | solonarv quits (~solonarv@anancy-651-1-197-136.w109-217.abo.wanadoo.fr) (Ping timeout: 272 seconds) |
| 02:17:32 | → | benoitj joins (~benoitj@bras-base-mtrlpq3708w-grc-25-76-65-84-134.dsl.bell.ca) |
| 02:17:34 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@171.5.167.167) |
| 02:17:41 | <int-e> | $SEARCHENGINE suggests https://docs.haskellstack.org/en/stable/lock_files/ |
| 02:18:21 | → | Jonkimi727406120 joins (~Jonkimi@119.123.242.216) |
| 02:19:42 | <exarkun> | How prosaic. |
| 02:19:45 | <exarkun> | Thanks. |
| 02:20:36 | <int-e> | (not sure what the best practice is. my gut feeling would be to ignore them unless build plans are actually fragile) |
| 02:20:59 | × | andi- quits (~andi-@NixOS/user/andi-) (Ping timeout: 272 seconds) |
| 02:21:18 | → | xff0x_ joins (~fox@2001:1a81:53bd:d700:1d8:e345:7859:18b9) |
| 02:21:44 | int-e | is not a stack user though |
| 02:22:03 | × | benjamingr__ quits (uid23465@gateway/web/irccloud.com/x-jvjqyyvaxiprykpx) (Quit: Connection closed for inactivity) |
| 02:22:35 | → | guest124 joins (~user@49.5.6.87) |
| 02:22:39 | → | toorevitimirp joins (~tooreviti@117.182.181.85) |
| 02:23:38 | × | Entertainment quits (~entertain@104.246.132.210) (Ping timeout: 272 seconds) |
| 02:24:25 | × | xff0x quits (~fox@port-92-193-204-144.dynamic.as20676.net) (Ping timeout: 246 seconds) |
| 02:25:16 | → | sleblanc joins (~sleblanc@unaffiliated/sebleblanc) |
| 02:25:53 | → | olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
| 02:27:19 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 02:28:20 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 02:28:33 | → | nineonine joins (~nineonine@50.216.62.2) |
| 02:29:37 | × | Lowl3v3l quits (~Lowl3v3l@dslb-088-072-167-020.088.072.pools.vodafone-ip.de) (Ping timeout: 264 seconds) |
| 02:31:30 | → | conal_ joins (~conal@64.71.133.70) |
| 02:32:02 | → | sparsity joins (5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145) |
| 02:33:00 | × | nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 256 seconds) |
| 02:33:01 | × | borne quits (~fritjof@200116b864c92000f60f2508b10af3d6.dip.versatel-1u1.de) (Ping timeout: 272 seconds) |
| 02:33:24 | → | FreeBirdLjj joins (~freebirdl@101.228.42.108) |
| 02:34:10 | → | TooDifficult joins (~TooDiffic@139.59.59.230) |
| 02:34:20 | × | TooDifficult quits (~TooDiffic@139.59.59.230) (Remote host closed the connection) |
| 02:34:34 | → | TooDifficult joins (~TooDiffic@139.59.59.230) |
| 02:36:10 | → | andi- joins (~andi-@NixOS/user/andi-) |
| 02:41:52 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 02:41:59 | → | darjeeling_ joins (~darjeelin@112.16.171.8) |
| 02:42:39 | → | Tario joins (~Tario@201.192.165.173) |
| 02:43:53 | → | Gigabitten joins (~Somn@098-127-002-172.res.spectrum.com) |
| 02:44:19 | → | Lowl3v3l joins (~Lowl3v3l@dslb-002-203-233-025.002.203.pools.vodafone-ip.de) |
| 02:47:02 | × | xcmw quits (~textual@cpe-69-133-55-43.cinci.res.rr.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 02:47:44 | × | FreeBirdLjj quits (~freebirdl@101.228.42.108) (Remote host closed the connection) |
| 02:48:20 | → | FreeBirdLjj joins (~freebirdl@101.228.42.108) |
| 02:50:05 | → | xcmw joins (~textual@cpe-69-133-55-43.cinci.res.rr.com) |
| 02:51:37 | → | Stanley00 joins (~stanley00@unaffiliated/stanley00) |
| 02:52:50 | × | FreeBirdLjj quits (~freebirdl@101.228.42.108) (Ping timeout: 256 seconds) |
| 02:58:12 | hackage | taffybar 3.2.3 - A desktop bar similar to xmobar, but with more GUI https://hackage.haskell.org/package/taffybar-3.2.3 (eyevanmalicesun) |
| 03:01:20 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
| 03:02:13 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
| 03:04:03 | × | xcmw quits (~textual@cpe-69-133-55-43.cinci.res.rr.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 03:05:13 | × | shatriff quits (~vitaliish@176.52.219.10) (Ping timeout: 260 seconds) |
| 03:05:45 | × | kupi quits (uid212005@gateway/web/irccloud.com/x-jthauiwdetxrewvw) (Quit: Connection closed for inactivity) |
| 03:06:00 | × | conal_ quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 03:07:40 | × | nkatte quits (~nkatte@2804:14c:7982:10c9:4e1d:96ff:fe53:98e1) (Quit: nkatte) |
| 03:08:53 | → | conal joins (~conal@64.71.133.70) |
| 03:09:59 | → | drbean joins (~drbean@TC210-63-209-76.static.apol.com.tw) |
| 03:10:52 | × | sparsity quits (5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145) (Quit: Connection closed) |
| 03:14:31 | → | xcmw joins (~textual@cpe-69-133-55-43.cinci.res.rr.com) |
| 03:15:06 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Read error: Connection reset by peer) |
| 03:15:12 | → | livvy joins (~livvy@gateway/tor-sasl/livvy) |
| 03:16:07 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 03:17:44 | × | st8less quits (~st8less@2603:a060:11fd:0:ed90:283:d17e:16d7) (Ping timeout: 240 seconds) |
| 03:19:53 | → | st8less joins (~st8less@inet-167-224-197-181.isp.ozarksgo.net) |
| 03:20:00 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection) |
| 03:20:16 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 03:21:16 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds) |
| 03:26:19 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 03:26:43 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 03:28:40 | × | keviv_ quits (~keviv@35.142.17.117) (Quit: Leaving) |
| 03:29:11 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 03:29:48 | × | catchme quits (uid355354@gateway/web/irccloud.com/x-tmcodhvuaxunpqgn) (Quit: Connection closed for inactivity) |
| 03:30:08 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood) |
| 03:31:16 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds) |
| 03:31:23 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 03:33:50 | lagothrix | is now known as Guest9998 |
| 03:33:50 | × | Guest9998 quits (~lagothrix@unaffiliated/lagothrix) (Killed (hitchcock.freenode.net (Nickname regained by services))) |
| 03:33:56 | → | lagothrix joins (~lagothrix@unaffiliated/lagothrix) |
| 03:34:01 | × | urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna) |
| 03:34:12 | → | nolrai joins (4c1bcada@c-76-27-202-218.hsd1.or.comcast.net) |
| 03:34:23 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 03:35:34 | <nolrai> | So I want to get the file and line number like what an assert gets you but in my own error handler..is there an easier then throwing an assert then catching it? |
| 03:35:37 | × | theDon quits (~td@muedsl-82-207-238-021.citykom.de) (Ping timeout: 264 seconds) |
| 03:36:32 | <nolrai> | I could swear I've read an article on how to do this, but it was a while ago. |
| 03:37:08 | → | theDon joins (~td@94.134.91.27) |
| 03:40:01 | <nolrai> | Man its quiet in here, I used to there being some weird conversation here at all times. Or is my memory playing tricks on me? |
| 03:45:04 | → | haroldwu_ joins (uid13653@gateway/web/irccloud.com/x-byqcdnfpqmwwdvpe) |
| 03:47:50 | <Vulfe> | hey, anyone seen any good deals on left kan extensions recently? |
| 03:52:54 | <jle`> | fresh outta left, only got rights now |
| 03:53:16 | <Axman6> | bloody typical |
| 03:53:25 | <Axman6> | no one needs rights |
| 03:53:53 | <int-e> | with that attitude, you have no leg to stand on |
| 03:54:13 | × | BlackCapCoder quits (~blackcap@48.80-203-23.nextgentel.com) (Ping timeout: 264 seconds) |
| 03:54:22 | <int-e> | (anything to get away from c**egory the**y) |
| 03:54:56 | × | darjeeling_ quits (~darjeelin@112.16.171.8) (Ping timeout: 240 seconds) |
| 03:55:56 | × | geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds) |
| 03:56:22 | × | Stanley00 quits (~stanley00@unaffiliated/stanley00) (Remote host closed the connection) |
| 03:57:55 | → | Stanley00 joins (~stanley00@unaffiliated/stanley00) |
| 03:59:36 | × | TooDifficult quits (~TooDiffic@139.59.59.230) (Quit: TooDifficult) |
| 04:00:01 | × | alexelcu_ quits (~alexelcu@142.93.180.198) (Quit: ZNC 1.8.2 - https://znc.in) |
| 04:00:04 | → | TooDifficult joins (~TooDiffic@139.59.59.230) |
| 04:00:30 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 04:00:54 | → | alexelcu joins (~alexelcu@142.93.180.198) |
| 04:03:21 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Remote host closed the connection) |
| 04:05:35 | → | alp joins (~alp@2a01:e0a:58b:4920:a8f4:c286:6432:c306) |
| 04:08:39 | × | urek__ quits (~urek@2804:7f1:e10a:9644:2492:fd7b:c739:6641) (Ping timeout: 272 seconds) |
| 04:08:50 | → | Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas) |
| 04:08:50 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 04:10:28 | → | shatriff joins (~vitaliish@176.52.219.10) |
| 04:13:18 | → | contiver joins (~contiver@84-115-64-26.wifi.dynamic.surfer.at) |
| 04:13:28 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cc36:a878:d9e6:6223) |
| 04:14:17 | × | contiver quits (~contiver@84-115-64-26.wifi.dynamic.surfer.at) (Remote host closed the connection) |
| 04:14:34 | × | Jonkimi727406120 quits (~Jonkimi@119.123.242.216) (Ping timeout: 260 seconds) |
| 04:15:02 | → | contiver joins (~contiver@84-115-64-26.wifi.dynamic.surfer.at) |
| 04:15:14 | × | TooDifficult quits (~TooDiffic@139.59.59.230) (Quit: TooDifficult) |
| 04:15:42 | → | TooDifficult joins (~TooDiffic@139.59.59.230) |
| 04:15:46 | × | TooDifficult quits (~TooDiffic@139.59.59.230) (Remote host closed the connection) |
| 04:16:13 | → | TooDifficult joins (~TooDiffic@139.59.59.230) |
| 04:16:15 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 04:16:39 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 04:17:51 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cc36:a878:d9e6:6223) (Ping timeout: 244 seconds) |
| 04:19:14 | × | contiver quits (~contiver@84-115-64-26.wifi.dynamic.surfer.at) (Remote host closed the connection) |
| 04:19:57 | → | contiver joins (~contiver@84-115-64-26.wifi.dynamic.surfer.at) |
| 04:21:14 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds) |
| 04:21:22 | × | TooDifficult quits (~TooDiffic@139.59.59.230) (Quit: TooDifficult) |
| 04:22:19 | → | TooDifficult joins (~TooDiffic@139.59.59.230) |
| 04:22:50 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 04:23:05 | × | Stanley00 quits (~stanley00@unaffiliated/stanley00) (Remote host closed the connection) |
| 04:23:05 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 04:23:25 | → | darjeeling_ joins (~darjeelin@112.16.171.8) |
| 04:25:16 | × | contiver quits (~contiver@84-115-64-26.wifi.dynamic.surfer.at) (Read error: Connection reset by peer) |
| 04:26:18 | × | Wuzzy quits (~Wuzzy@p549c9976.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 04:27:28 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
| 04:32:53 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 04:33:03 | → | mounty joins (~mounty@210.1.196.133) |
| 04:34:26 | → | drincruz_ joins (~adriancru@ool-44c748be.dyn.optonline.net) |
| 04:37:24 | × | TooDifficult quits (~TooDiffic@139.59.59.230) (Quit: TooDifficult) |
| 04:38:23 | × | ClaudiusMaximus quits (~claude@unaffiliated/claudiusmaximus) (Quit: ...zzzZZZ) |
| 04:38:55 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 04:40:16 | × | machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 240 seconds) |
| 04:41:15 | → | nineonine joins (~nineonine@50.216.62.2) |
| 04:42:45 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 04:43:01 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 04:43:26 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 04:43:48 | → | christo joins (~chris@81.96.113.213) |
| 04:43:48 | × | chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
| 04:44:12 | → | chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
| 04:44:15 | → | Jonkimi727406120 joins (~Jonkimi@119.123.242.216) |
| 04:45:57 | → | abhixec joins (~abhixec@c-67-169-141-95.hsd1.ca.comcast.net) |
| 04:47:49 | → | conal joins (~conal@64.71.133.70) |
| 04:47:55 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds) |
| 04:47:56 | × | christo quits (~chris@81.96.113.213) (Ping timeout: 240 seconds) |
| 04:48:37 | × | Jonkimi727406120 quits (~Jonkimi@119.123.242.216) (Ping timeout: 246 seconds) |
| 04:54:48 | → | sagax joins (~sagax_nb@213.138.71.146) |
| 04:55:07 | × | xcmw quits (~textual@cpe-69-133-55-43.cinci.res.rr.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 04:56:42 | → | xcmw joins (~textual@2607:f388:1080:2::c2) |
| 04:56:45 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 04:57:10 | → | BlackCapCoder joins (~blackcap@48.80-203-23.nextgentel.com) |
| 04:57:32 | → | crestfallen joins (~jvw@192-184-135-144.fiber.dynamic.sonic.net) |
| 04:57:44 | → | conal joins (~conal@64.71.133.70) |
| 04:57:52 | × | conal quits (~conal@64.71.133.70) (Client Quit) |
| 05:00:09 | <crestfallen> | hi how do I write something like this is a parser do block? : guard $ notElem (x:xs) keywords ( I saw this in a question on SO re: parsing variable names, but I'm not sure if it's riddled with errors or deprecated ) thanks |
| 05:00:41 | → | conal joins (~conal@64.71.133.70) |
| 05:00:42 | × | lpy quits (~nyd@unaffiliated/elysian) (Ping timeout: 272 seconds) |
| 05:01:01 | × | conal quits (~conal@64.71.133.70) (Client Quit) |
| 05:01:13 | × | ericsagn1 quits (~ericsagne@2405:6580:0:5100:5edc:6c03:7218:210e) (Ping timeout: 272 seconds) |
| 05:01:37 | → | conal joins (~conal@64.71.133.70) |
| 05:01:49 | × | conal quits (~conal@64.71.133.70) (Client Quit) |
| 05:02:24 | × | texasmynsted quits (~texasmyns@212.102.45.103) (Remote host closed the connection) |
| 05:02:49 | <crestfallen> | (I've never used the 'guard' keyword? or if it even exists .. and the OP was just guessing at a solution) |
| 05:03:14 | <crestfallen> | correction "or whether the OP was just guessing..." |
| 05:04:00 | × | shadowdaemon quits (~user@unaffiliated/shadowdaemon) (Read error: Connection reset by peer) |
| 05:05:22 | → | shadowdaemon joins (~user@unaffiliated/shadowdaemon) |
| 05:08:01 | → | jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb) |
| 05:08:21 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@171.5.167.167) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 05:10:46 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cc36:a878:d9e6:6223) |
| 05:12:05 | × | jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 240 seconds) |
| 05:12:18 | <crestfallen> | i.e. is there a keyword called "keywords". I cannot find that in the docs |
| 05:12:39 | <arahael> | How do I install sqlite-simple using cabal? I'm trying `cabal install sqlite-simple`, but it doesn't work. (apparently it doesn't contain any executables) |
| 05:13:44 | <arahael> | Adding it to the cabal file of the current project and building *that*, however, does bring it in, but I'm a bit confused because the documentation for sqlite-simple says I can install it with that command... |
| 05:13:49 | <arahael> | https://github.com/nurpax/sqlite-simple |
| 05:14:42 | × | xcmw quits (~textual@2607:f388:1080:2::c2) (Ping timeout: 260 seconds) |
| 05:15:28 | <crestfallen> | this is what I was trying to do on the 3rd line of the do block: http://ix.io/2Grk |
| 05:15:38 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cc36:a878:d9e6:6223) (Ping timeout: 264 seconds) |
| 05:16:36 | × | nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 256 seconds) |
| 05:16:39 | × | Gigabitten quits (~Somn@098-127-002-172.res.spectrum.com) (Quit: Leaving) |
| 05:17:27 | × | davidfg41 quits (~davidfg4@185.204.1.185) (Remote host closed the connection) |
| 05:17:29 | → | Nahra joins (~Nahra@unaffiliated/nahra) |
| 05:17:34 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 05:17:39 | → | nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
| 05:18:44 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 05:19:27 | × | Sheilong quits (uid293653@gateway/web/irccloud.com/x-wyoujgmfddjrgmqq) () |
| 05:20:18 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 05:20:27 | <MarcelineVQ> | keywords is the name of some list defined elsewhere in the code, I assume it's a list of the keywords of the language you're parsing |
| 05:21:10 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cc36:a878:d9e6:6223) |
| 05:21:24 | <MarcelineVQ> | you can tell it's a list because it's the second argument to notElem |
| 05:21:45 | × | iqubic quits (~user@c-67-171-38-72.hsd1.wa.comcast.net) (Ping timeout: 240 seconds) |
| 05:22:45 | × | honigkuchen quits (~honigkuch@ip5b42981b.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 05:23:16 | × | drincruz_ quits (~adriancru@ool-44c748be.dyn.optonline.net) (Ping timeout: 240 seconds) |
| 05:23:26 | → | texasmynsted joins (~texasmyns@212.102.45.103) |
| 05:23:53 | → | Jonkimi727406120 joins (~Jonkimi@119.123.242.216) |
| 05:23:58 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 05:24:08 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 05:24:42 | × | Feuermagier quits (~Feuermagi@213.178.26.41) (Ping timeout: 256 seconds) |
| 05:24:56 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds) |
| 05:25:24 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cc36:a878:d9e6:6223) (Ping timeout: 240 seconds) |
| 05:26:23 | <crestfallen> | MarcelineVQ: excellent *thanks* I see. I'll give it a shot. |
| 05:26:23 | → | sdx231 joins (~sdx23@84.39.117.57) |
| 05:27:56 | × | ddellacosta quits (dd@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 272 seconds) |
| 05:28:25 | × | Jonkimi727406120 quits (~Jonkimi@119.123.242.216) (Ping timeout: 264 seconds) |
| 05:29:04 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
| 05:31:20 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cc36:a878:d9e6:6223) |
| 05:31:28 | × | texasmynsted quits (~texasmyns@212.102.45.103) (Remote host closed the connection) |
| 05:33:00 | → | xcmw joins (~textual@cpe-69-133-55-43.cinci.res.rr.com) |
| 05:36:02 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cc36:a878:d9e6:6223) (Ping timeout: 264 seconds) |
| 05:39:44 | × | sleblanc quits (~sleblanc@unaffiliated/sebleblanc) (Ping timeout: 265 seconds) |
| 05:40:22 | → | boxscape joins (54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8) |
| 05:43:31 | × | benjamin-l quits (~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e61) (Remote host closed the connection) |
| 05:45:17 | → | benjamin-l joins (~benjamin@c-67-189-59-76.hsd1.or.comcast.net) |
| 05:48:23 | × | Tario quits (~Tario@201.192.165.173) (Ping timeout: 260 seconds) |
| 05:50:15 | → | Feuermagier joins (~Feuermagi@213.178.26.41) |
| 05:50:29 | → | britva joins (~britva@31-10-157-156.cgn.dynamic.upc.ch) |
| 05:51:29 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cc36:a878:d9e6:6223) |
| 05:53:49 | → | iqubic joins (~user@2601:602:9500:4870:4afa:d1c4:5c89:10e9) |
| 05:54:34 | × | haroldwu_ quits (uid13653@gateway/web/irccloud.com/x-byqcdnfpqmwwdvpe) (Quit: Connection closed for inactivity) |
| 05:55:12 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 05:55:12 | × | chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
| 05:55:22 | → | chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
| 05:55:44 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cc36:a878:d9e6:6223) (Ping timeout: 240 seconds) |
| 05:58:24 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 06:01:48 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cc36:a878:d9e6:6223) |
| 06:03:24 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 272 seconds) |
| 06:04:27 | × | sdx231 quits (~sdx23@84.39.117.57) (Remote host closed the connection) |
| 06:06:22 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cc36:a878:d9e6:6223) (Ping timeout: 260 seconds) |
| 06:08:53 | → | Jonkimi727406120 joins (~Jonkimi@119.123.242.216) |
| 06:12:00 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cc36:a878:d9e6:6223) |
| 06:15:22 | → | falafel_ joins (~falafel@pool-71-182-130-97.pitbpa.fios.verizon.net) |
| 06:15:51 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 06:16:50 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cc36:a878:d9e6:6223) (Ping timeout: 264 seconds) |
| 06:20:34 | × | darjeeling_ quits (~darjeelin@112.16.171.8) (Ping timeout: 256 seconds) |
| 06:22:41 | → | chrisdotcode joins (~chrisdotc@unaffiliated/chrisdotcode) |
| 06:24:59 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 06:26:05 | × | xff0x_ quits (~fox@2001:1a81:53bd:d700:1d8:e345:7859:18b9) (Ping timeout: 272 seconds) |
| 06:26:16 | → | coot joins (~coot@37.30.53.191.nat.umts.dynamic.t-mobile.pl) |
| 06:26:29 | → | xff0x_ joins (~fox@2001:1a81:53bd:d700:de9e:116:c7cb:bd55) |
| 06:27:58 | → | Boomerang joins (~Boomerang@xd520f68c.cust.hiper.dk) |
| 06:28:39 | × | chrisdotcode quits (~chrisdotc@unaffiliated/chrisdotcode) (Quit: Leaving) |
| 06:29:16 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
| 06:30:00 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
| 06:31:13 | → | popey1 joins (~popey@185.163.110.125) |
| 06:31:21 | <boxscape> | Hm, am I seeing it correctly that "digit" exists in Parsec but not Megaparsec? |
| 06:31:37 | × | crestfallen quits (~jvw@192-184-135-144.fiber.dynamic.sonic.net) (Quit: leaving) |
| 06:31:49 | <boxscape> | ah, nevermind |
| 06:31:51 | <boxscape> | digitChar exists |
| 06:34:43 | × | livvy quits (~livvy@gateway/tor-sasl/livvy) (Ping timeout: 240 seconds) |
| 06:35:38 | × | johnw quits (~johnw@haskell/developer/johnw) (Quit: ZNC - http://znc.in) |
| 06:35:44 | × | polyphem quits (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Ping timeout: 240 seconds) |
| 06:36:44 | → | flyingpotatoman joins (~seiless@103.205.80.22) |
| 06:36:58 | × | flyingpotatoman quits (~seiless@103.205.80.22) (Client Quit) |
| 06:39:13 | × | monochrom quits (trebla@216.138.220.146) (Quit: NO CARRIER) |
| 06:40:45 | × | gioyik quits (~gioyik@186.112.99.244) (Quit: WeeChat 3.0) |
| 06:42:41 | × | boxscape quits (54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8) (Quit: Connection closed) |
| 06:42:45 | × | danso quits (~dan@69-165-210-185.cable.teksavvy.com) (Quit: WeeChat 2.9) |
| 06:42:53 | → | boxscape joins (54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8) |
| 06:42:59 | → | monochrom joins (trebla@216.138.220.146) |
| 06:44:51 | → | flyingpo3atoman joins (~seiless@103.205.80.22) |
| 06:44:58 | → | ph88 joins (~ph88@2a02:8109:9e00:7e5c:b9c9:ead4:edeb:2d57) |
| 06:45:13 | × | benjamin-l quits (~benjamin@c-67-189-59-76.hsd1.or.comcast.net) (Ping timeout: 264 seconds) |
| 06:47:00 | ← | flyingpo3atoman parts (~seiless@103.205.80.22) () |
| 06:50:26 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@171.5.167.167) |
| 06:51:25 | × | alp quits (~alp@2a01:e0a:58b:4920:a8f4:c286:6432:c306) (Ping timeout: 272 seconds) |
| 06:56:36 | × | cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
| 06:58:59 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 07:00:10 | × | coot quits (~coot@37.30.53.191.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 07:01:55 | × | argent0 quits (~argent0@168.227.97.34) (Quit: leaving) |
| 07:03:45 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 07:03:51 | → | Stanley00 joins (~stanley00@unaffiliated/stanley00) |
| 07:05:07 | → | bitmagie joins (~Thunderbi@200116b80685200000259323389592bf.dip.versatel-1u1.de) |
| 07:05:08 | → | dax joins (dax@bitbot/dax) |
| 07:08:34 | → | polyphem joins (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) |
| 07:08:44 | × | falafel_ quits (~falafel@pool-71-182-130-97.pitbpa.fios.verizon.net) (Ping timeout: 256 seconds) |
| 07:08:56 | → | jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb) |
| 07:09:16 | × | Rudd0 quits (~Rudd0@185.189.115.98) (Ping timeout: 240 seconds) |
| 07:09:35 | → | christo joins (~chris@81.96.113.213) |
| 07:10:52 | → | jonatanb_ joins (jonatanb@gateway/vpn/protonvpn/jonatanb) |
| 07:11:03 | × | xff0x_ quits (~fox@2001:1a81:53bd:d700:de9e:116:c7cb:bd55) (Ping timeout: 272 seconds) |
| 07:11:43 | → | xff0x_ joins (~fox@2001:1a81:53bd:d700:ad0c:4930:14ea:7f52) |
| 07:12:52 | → | alp joins (~alp@2a01:e0a:58b:4920:a4e7:54a4:ebae:9da0) |
| 07:13:16 | <boxscape> | is there a way to make a megaparsec parser for a sum type like `data A = A | B | C` automatically? I.e. basically what deriving Read does? |
| 07:13:30 | × | jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 256 seconds) |
| 07:14:21 | → | ericsagnes joins (~ericsagne@2405:6580:0:5100:43fe:8354:1780:830b) |
| 07:15:12 | × | jonatanb_ quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 256 seconds) |
| 07:15:25 | → | livvy joins (~livvy@gateway/tor-sasl/livvy) |
| 07:16:13 | <pavonia> | With Template Haskell it should be quite straight-forward |
| 07:16:27 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 07:16:29 | <boxscape> | hm, yeah I suppose you're right |
| 07:19:09 | <pavonia> | Maybe even the Data.Data functions are enough for this |
| 07:19:24 | → | Vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
| 07:20:09 | <boxscape> | I'll take a look, thanks |
| 07:20:56 | × | Vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Read error: Connection reset by peer) |
| 07:20:57 | <dminuoso> | boxscape: Or.. just Generic? |
| 07:21:08 | <boxscape> | Oh, yeah, I suppose that exists, too |
| 07:21:13 | <dminuoso> | Seems really like a straight forward few lines of code |
| 07:21:32 | <boxscape> | haven't used Generics much but yeah it seems like it shouldn't be hard |
| 07:21:34 | <dminuoso> | Out of all the options Generics has probably least effort, and will optimize nicely |
| 07:21:39 | → | christo joins (~chris@81.96.113.213) |
| 07:21:40 | <boxscape> | okay, thanks |
| 07:22:11 | <dminuoso> | In my case I tend to write a `thruRead` combinator though |
| 07:22:13 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:b1f1:a8b7:f9f9:80e3) |
| 07:22:28 | <dminuoso> | Which is a few lines of code that I then copy and paste whenever I want to go through Read. |
| 07:22:42 | <boxscape> | I see |
| 07:22:46 | <boxscape> | that sounds reasonable |
| 07:23:05 | <dminuoso> | Both are an option, with Generics you can address non-trivial variants of it |
| 07:23:08 | → | dhouthoo joins (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) |
| 07:23:15 | <boxscape> | right, makes sense |
| 07:23:45 | × | vicfred quits (~vicfred@unaffiliated/vicfred) (Quit: Leaving) |
| 07:24:48 | <dminuoso> | boxscape: Is this strictly a nullary data type? |
| 07:24:54 | <boxscape> | yess |
| 07:24:55 | <dminuoso> | Or do you have non-nullary constructors? |
| 07:24:57 | <boxscape> | nope |
| 07:24:57 | <dminuoso> | Mkay |
| 07:25:12 | hackage | http-conduit 2.3.7.4 - HTTP client package with conduit interface and HTTPS support. https://hackage.haskell.org/package/http-conduit-2.3.7.4 (MichaelSnoyman) |
| 07:25:36 | × | ph88 quits (~ph88@2a02:8109:9e00:7e5c:b9c9:ead4:edeb:2d57) (Quit: Leaving) |
| 07:25:55 | × | christo quits (~chris@81.96.113.213) (Ping timeout: 260 seconds) |
| 07:26:07 | <dminuoso> | boxscape: Also consider generics-sop if you want to explore the generics route |
| 07:26:17 | <boxscape> | ok, I will |
| 07:27:02 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:b1f1:a8b7:f9f9:80e3) (Ping timeout: 264 seconds) |
| 07:27:31 | → | falafel_ joins (~falafel@pool-71-182-130-97.pitbpa.fios.verizon.net) |
| 07:30:31 | × | nolrai quits (4c1bcada@c-76-27-202-218.hsd1.or.comcast.net) (Remote host closed the connection) |
| 07:32:12 | → | benjamin-l joins (~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e61) |
| 07:36:20 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 07:38:24 | × | benjamin-l quits (~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e61) (Ping timeout: 240 seconds) |
| 07:40:45 | × | falafel_ quits (~falafel@pool-71-182-130-97.pitbpa.fios.verizon.net) (Ping timeout: 240 seconds) |
| 07:46:45 | → | lpy joins (~nyd@unaffiliated/elysian) |
| 07:50:37 | × | jchia quits (~jchia@58.32.35.67) (Ping timeout: 246 seconds) |
| 07:50:44 | × | Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
| 07:51:15 | × | Stanley00 quits (~stanley00@unaffiliated/stanley00) (Remote host closed the connection) |
| 07:51:16 | × | drbean quits (~drbean@TC210-63-209-76.static.apol.com.tw) (Ping timeout: 240 seconds) |
| 07:51:39 | → | drbean joins (~drbean@TC210-63-209-15.static.apol.com.tw) |
| 07:51:54 | → | Stanley00 joins (~stanley00@unaffiliated/stanley00) |
| 07:52:05 | → | marinelli joins (~marinelli@gateway/tor-sasl/marinelli) |
| 07:54:43 | × | nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Quit: nineonine) |
| 07:56:21 | <carbolymer> | I'm writing parsec combinator for today's aoc, and how can I parse fields without enforcing order in my parser? |
| 07:59:10 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 07:59:25 | <hc> | carbolymer: use a many . any [ ... ] combinator? |
| 08:00:11 | hackage | replace-megaparsec 1.4.4.0 - Find, replace, and split string patterns with Megaparsec parsers (instead of regex) https://hackage.haskell.org/package/replace-megaparsec-1.4.4.0 (JamesBrock) |
| 08:01:16 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 08:01:22 | → | danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
| 08:01:58 | → | johnw joins (~johnw@haskell/developer/johnw) |
| 08:02:18 | <carbolymer> | hc, which any? |
| 08:02:33 | → | knupfer joins (~Thunderbi@200116b82c9bc00018616dfffee3b6e0.dip.versatel-1u1.de) |
| 08:02:34 | × | knupfer quits (~Thunderbi@200116b82c9bc00018616dfffee3b6e0.dip.versatel-1u1.de) (Client Quit) |
| 08:02:49 | → | knupfer joins (~Thunderbi@87.123.206.78) |
| 08:03:06 | × | knupfer quits (~Thunderbi@87.123.206.78) (Client Quit) |
| 08:03:17 | × | xff0x_ quits (~fox@2001:1a81:53bd:d700:ad0c:4930:14ea:7f52) (Ping timeout: 260 seconds) |
| 08:03:32 | → | knupfer joins (~Thunderbi@200116b82c9bc00029d7617336584c50.dip.versatel-1u1.de) |
| 08:03:36 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds) |
| 08:03:41 | → | xff0x_ joins (~fox@2001:1a81:53bd:d700:accf:77cf:75b2:3ca3) |
| 08:04:19 | → | jchia joins (~jchia@58.32.35.91) |
| 08:06:25 | × | Lord_of_Life quits (~Lord@46.217.221.156) (Changing host) |
| 08:06:25 | → | Lord_of_Life joins (~Lord@unaffiliated/lord-of-life/x-0885362) |
| 08:07:00 | <dminuoso> | carbolymer: https://hackage.haskell.org/package/parser-combinators-1.2.1/docs/Control-Applicative-Permutations.html |
| 08:07:10 | <dminuoso> | https://hackage.haskell.org/package/parsers-0.12.10/docs/Text-Parser-Permutation.html |
| 08:07:25 | <dminuoso> | Either will work. Chances are you will have one of them in your dependencies when writing non-trivial parsers anyway |
| 08:07:26 | → | coot joins (~coot@37.30.53.191.nat.umts.dynamic.t-mobile.pl) |
| 08:08:10 | × | knupfer quits (~Thunderbi@200116b82c9bc00029d7617336584c50.dip.versatel-1u1.de) (Client Quit) |
| 08:08:18 | → | knupfer joins (~Thunderbi@200116b82c9bc00029d7617336584c50.dip.versatel-1u1.de) |
| 08:08:18 | <carbolymer> | dminuoso, thx |
| 08:08:41 | <idnar> | @hoogle (a -> b) -> (a -> c) -> (a -> d) -> a -> (b, c, d) |
| 08:08:42 | <lambdabot> | No results found |
| 08:08:58 | × | marinelli quits (~marinelli@gateway/tor-sasl/marinelli) (Quit: marinelli) |
| 08:10:16 | × | boxscape quits (54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8) (Ping timeout: 240 seconds) |
| 08:10:42 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
| 08:12:09 | <dminuoso> | idnar: (&&&) or Strong profunctors give yo uthat |
| 08:12:45 | → | LKoen joins (~LKoen@105.175.9.109.rev.sfr.net) |
| 08:13:11 | <idnar> | (&&&) only does (,), but tell me more about the profunctors |
| 08:13:58 | <dminuoso> | idnar: well, ((a,b),c) ~~~ (a,(b,c)) |
| 08:14:11 | <dminuoso> | so if you (&&&) twice that's just it |
| 08:14:26 | <idnar> | I guess |
| 08:14:27 | <int-e> | :t liftA3 (,,) |
| 08:14:29 | <lambdabot> | Applicative f => f a -> f b -> f c -> f (a, b, c) |
| 08:14:57 | <int-e> | liftA3 (,,) succ show (:[]) 1 |
| 08:15:00 | <int-e> | > liftA3 (,,) succ show (:[]) 1 |
| 08:15:04 | <lambdabot> | (2,"1",[1]) |
| 08:15:09 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 08:15:20 | <dminuoso> | cunning |
| 08:15:30 | <int-e> | literate |
| 08:15:53 | <int-e> | (accomplished Reader) |
| 08:15:55 | <idnar> | hmm, I tried (,,) <$> f <*> g <*> h |
| 08:16:05 | → | m0rphism joins (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) |
| 08:16:27 | <dminuoso> | % ((,,) <$> map toUpper <*> map toLower <*> tail) "fooBar" |
| 08:16:27 | <yahb> | dminuoso: ("FOOBAR","foobar","ooBar") |
| 08:16:29 | <int-e> | idnar: that's the same as liftA3 (,,) f g h |
| 08:16:37 | <idnar> | oh damnit |
| 08:16:55 | → | Aquazi joins (uid312403@gateway/web/irccloud.com/x-pvpfqehhiksirdcj) |
| 08:17:03 | <idnar> | (-1) is not a section :D |
| 08:17:12 | <int-e> | > (-1+) 2 |
| 08:17:14 | <lambdabot> | 1 |
| 08:17:16 | <int-e> | > subtract 1 2 |
| 08:17:16 | × | Sgeo quits (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer) |
| 08:17:19 | <lambdabot> | 1 |
| 08:17:37 | <dminuoso> | Negating numbers is just odd in Haskell. :( |
| 08:17:39 | <int-e> | the former is nasty. |
| 08:17:54 | <dminuoso> | % :t (+1-) |
| 08:17:54 | <yahb> | dminuoso: ; <interactive>:1:5: error: parse error on input `)' |
| 08:17:58 | <dminuoso> | % :t (-1+) |
| 08:17:58 | <yahb> | dminuoso: Num a => a -> a |
| 08:18:04 | <dminuoso> | What lovely symmetry. |
| 08:18:16 | <int-e> | :t (+ -1) -- wait till you see this |
| 08:18:17 | <lambdabot> | error: |
| 08:18:17 | <lambdabot> | The operator ‘+’ [infixl 6] of a section |
| 08:18:17 | <lambdabot> | must have lower precedence than that of the operand, |
| 08:18:50 | <dminuoso> | Mmm, and what's the precedence of the operand? |
| 08:18:56 | <dminuoso> | :t ($ -1) |
| 08:18:58 | <lambdabot> | Num a => (a -> b) -> b |
| 08:18:58 | <dminuoso> | % :t ($ -1) |
| 08:18:58 | <yahb> | dminuoso: Num a => (a -> b) -> b |
| 08:19:05 | <dminuoso> | So between 1 and 6 I guess |
| 08:20:17 | → | benjamin-l joins (~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e61) |
| 08:20:27 | × | hekkaidekapus_ quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Quit: hekkaidekapus_) |
| 08:20:28 | <dsal> | > Just (odd (-1)) |
| 08:20:30 | <lambdabot> | Just True |
| 08:20:56 | <dsal> | > let numbers = [1..10] in negate <$> numbers |
| 08:20:58 | <lambdabot> | [-1,-2,-3,-4,-5,-6,-7,-8,-9,-10] |
| 08:21:31 | <dsal> | I think there's a language extension that lets naked negative numbers work. |
| 08:21:40 | → | jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb) |
| 08:23:42 | → | hekkaidekapus joins (~tchouri@gateway/tor-sasl/hekkaidekapus) |
| 08:23:49 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@171.5.167.167) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 08:24:32 | → | boxscape joins (54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8) |
| 08:24:42 | × | drbean quits (~drbean@TC210-63-209-15.static.apol.com.tw) (Ping timeout: 260 seconds) |
| 08:24:48 | → | jonathanx joins (~jonathan@dyn-8-sc.cdg.chalmers.se) |
| 08:29:27 | × | jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection) |
| 08:30:43 | → | dnlkrgr joins (~dnlkrgr@HSI-KBW-046-005-005-080.hsi8.kabel-badenwuerttemberg.de) |
| 08:32:36 | → | cfricke joins (~cfricke@unaffiliated/cfricke) |
| 08:32:54 | <hekkaidekapus> | % :set -XNegativeLiterals |
| 08:32:54 | <yahb> | hekkaidekapus: |
| 08:33:13 | <hekkaidekapus> | % map (0 -) [-10 .. -1] |
| 08:33:13 | <yahb> | hekkaidekapus: [10,9,8,7,6,5,4,3,2,1] |
| 08:33:19 | <boxscape> | % 3 * -10 |
| 08:33:19 | <yahb> | boxscape: -30 |
| 08:33:21 | <hekkaidekapus> | % :q |
| 08:33:22 | <yahb> | hekkaidekapus: |
| 08:34:44 | <boxscape> | kind of unfortunate that (- 10) is still not a section with -XNegativeLiterals |
| 08:35:08 | <hekkaidekapus> | It will be, soon. |
| 08:35:16 | <boxscape> | oh, nice |
| 08:35:50 | <hekkaidekapus> | I don’t remember the exact proposal but it is already accepted, IIRC. |
| 08:35:57 | <boxscape> | goodd |
| 08:36:01 | <boxscape> | s/dd/d |
| 08:36:42 | → | christo joins (~chris@81.96.113.213) |
| 08:36:45 | <hekkaidekapus> | And Vladimir, its author, tend to swiftly implement parser-related proposals. |
| 08:36:47 | → | gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh) |
| 08:36:54 | <hekkaidekapus> | *tends |
| 08:36:56 | <boxscape> | I suppose https://github.com/ghc-proposals/ghc-proposals/pull/344 |
| 08:37:16 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 08:37:26 | <boxscape> | yeah it already has a closed merge request |
| 08:37:40 | <boxscape> | but not a merged merge request I think |
| 08:37:40 | <hekkaidekapus> | o/ |
| 08:38:00 | <boxscape> | never mind |
| 08:38:08 | <boxscape> | gitlab merge requests are just confusing is all |
| 08:38:26 | × | mbomba quits (~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca) (Quit: WeeChat 3.0) |
| 08:39:07 | → | raichoo joins (~raichoo@213.240.178.58) |
| 08:41:17 | → | urek__ joins (~urek@2804:7f1:e10a:9644:2492:fd7b:c739:6641) |
| 08:42:30 | → | christo joins (~chris@81.96.113.213) |
| 08:44:42 | <hekkaidekapus> | boxscape: <https://paste.tomsmeding.com/tW4JoIo9> |
| 08:44:56 | <boxscape> | very cool |
| 08:45:26 | → | Yumasi joins (~guillaume@2a01:e0a:5cb:4430:e1ea:8f38:f518:4e69) |
| 08:47:01 | × | christo quits (~chris@81.96.113.213) (Ping timeout: 264 seconds) |
| 08:48:40 | × | wonko7 quits (~wonko7@2a01:e35:2ffb:7040:55f1:c3a3:cdbe:bf52) (Quit: See You Space Cowboy..) |
| 08:49:00 | urek__ | is now known as urek |
| 08:49:04 | → | vilpan joins (~0@212.117.1.172) |
| 08:51:42 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@mx-ll-171.5.167-167.dynamic.3bb.co.th) |
| 08:53:56 | → | Seiless joins (~jeremy@45.248.143.26) |
| 08:55:16 | × | BlackCapCoder quits (~blackcap@48.80-203-23.nextgentel.com) (Ping timeout: 240 seconds) |
| 08:57:12 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@mx-ll-171.5.167-167.dynamic.3bb.co.th) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 08:59:45 | <merijn> | meh, just use subtract instead of relying on an extension >.> |
| 09:00:49 | <boxscape> | no >:( |
| 09:01:05 | <merijn> | This whole "lets pile on 30 syntactical extensions to fix minor warts" thing is a terrible idea |
| 09:01:10 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@mx-ll-171.5.167-167.dynamic.3bb.co.th) |
| 09:01:31 | <dminuoso> | If you think of a syntactical extension as just a candidate for a future Haskell report, I dont think extensions are that bad. |
| 09:01:42 | <merijn> | We end up with 2^n distinct lexical grammar that need to be supported in all tools |
| 09:01:51 | × | Seiless quits (~jeremy@45.248.143.26) (Read error: Connection reset by peer) |
| 09:01:55 | <merijn> | dminuoso: ha |
| 09:01:59 | <dminuoso> | merijn: That's why you use ghc-lib-parser. |
| 09:02:01 | <dminuoso> | ;) |
| 09:02:04 | <merijn> | Like a future Haskell Report will ever happen |
| 09:02:12 | <dminuoso> | It might, nothings off the board |
| 09:02:27 | <merijn> | Sure! |
| 09:02:43 | <merijn> | And I might someday become a millionaire! |
| 09:02:50 | <merijn> | But I wouldn't count on it... |
| 09:03:08 | <dminuoso> | My point is just, I dont think extensions are necessarily bad. |
| 09:03:10 | × | Boomerang quits (~Boomerang@xd520f68c.cust.hiper.dk) (Remote host closed the connection) |
| 09:03:14 | <boxscape> | we'll get -XGHC20XX flags at least |
| 09:03:22 | <merijn> | I don't think extensions are necessarily bad either |
| 09:03:29 | → | Boomerang joins (~Boomerang@xd520f68c.cust.hiper.dk) |
| 09:03:30 | <merijn> | I think *trivial syntactic extensions* are bad |
| 09:03:56 | <dminuoso> | I think trivial syntactic extensions are much better than wide ranging syntactic extensions. |
| 09:04:03 | <merijn> | ok |
| 09:04:07 | <merijn> | lemme rephrase |
| 09:04:17 | <merijn> | *all* syntactic extensions are trivial *and* bad |
| 09:04:34 | <carbolymer> | is there any function in parsec (or related libraries) to parse input with parser of a to get [Either Parser a]? |
| 09:04:45 | <merijn> | And the handful that aren't trivial (I'm looking at you, ArrowNotation) are double bad |
| 09:04:46 | <carbolymer> | [Either ParserError a] |
| 09:05:35 | <dminuoso> | carbolymer: What should that list represent? |
| 09:06:26 | <carbolymer> | dminuoso, a result of multiple parsings; I want to extract from input multiple 'a's separated by separator; but I want to retain all parserrors |
| 09:06:36 | × | obfusk quits (~quassel@a82-161-150-56.adsl.xs4all.nl) (Ping timeout: 256 seconds) |
| 09:06:56 | × | bitmagie quits (~Thunderbi@200116b80685200000259323389592bf.dip.versatel-1u1.de) (Quit: bitmagie) |
| 09:07:11 | × | benjamin-l quits (~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e61) (Ping timeout: 244 seconds) |
| 09:07:12 | <[exa]> | carbolymer: you will have to reliably extract the parts as strings and run the parser normally on the contents (e.g. runParser). |
| 09:07:42 | <[exa]> | carbolymer: the "direct" method involves the (problematic) error recovery |
| 09:07:52 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) (Remote host closed the connection) |
| 09:07:57 | → | obfusk joins (~quassel@a82-161-150-56.adsl.xs4all.nl) |
| 09:08:03 | <carbolymer> | [exa], yeah, I wanted to avoid splitting strings and use big parser for the list of 'a's |
| 09:08:59 | <[exa]> | I'm gonna double check megaparsec docs, I remember there was some error recovery but not sure where (or if in megaparsec) |
| 09:09:01 | <boxscape> | huh, is the LANGUAGE pragma redundant and replaceable by OPTIONS_GHC? |
| 09:09:10 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@mx-ll-171.5.167-167.dynamic.3bb.co.th) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 09:09:34 | <merijn> | boxscape: If you pretend there is only GHC, sure |
| 09:09:40 | <boxscape> | ah, fair |
| 09:10:02 | <merijn> | Especially considering UHC implements a number of GHC extensions too |
| 09:10:32 | <eedgit> | I'm having trouble getting Haskell-chart to work, I'm getting a PATH error - but I've ensured my path is on both basic and zshrc -> https://dpaste.org/0JCw |
| 09:11:32 | → | Amras joins (~Amras@unaffiliated/amras) |
| 09:12:35 | <[exa]> | eedgit: and there's even more than one! :] Are you sure stack isn't changing the $PATH ? |
| 09:13:26 | <[exa]> | anyway, it looks just like a warning so it could work |
| 09:15:09 | <[exa]> | carbolymer: actually they have this https://hackage.haskell.org/package/megaparsec-9.0.1/docs/Text-Megaparsec.html#v:withRecovery |
| 09:16:13 | <[exa]> | carbolymer: for you it should work with something simple like `manytill ','` |
| 09:17:09 | <carbolymer> | [exa], hmm, thanks, will look into that! |
| 09:18:21 | × | xff0x_ quits (~fox@2001:1a81:53bd:d700:accf:77cf:75b2:3ca3) (Ping timeout: 272 seconds) |
| 09:18:56 | → | xff0x_ joins (~fox@2001:1a81:53bd:d700:a57d:2d36:c4ed:73cf) |
| 09:18:56 | × | Boomerang quits (~Boomerang@xd520f68c.cust.hiper.dk) (Quit: Leaving) |
| 09:20:17 | × | joaoh82_ quits (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Remote host closed the connection) |
| 09:24:41 | → | joaoh82 joins (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) |
| 09:25:55 | → | fendor joins (~fendor@91.141.2.63.wireless.dyn.drei.com) |
| 09:25:58 | → | chele joins (~chele@ip5b416ea2.dynamic.kabel-deutschland.de) |
| 09:27:04 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 09:28:38 | <dminuoso> | Note that withRecovery requires care wrt to backtracking |
| 09:30:20 | <dminuoso> | carbolymer: Can you perhaps elaborate on your larger goal? |
| 09:31:46 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds) |
| 09:32:13 | → | watt313 joins (~watt313@124.123.105.225) |
| 09:32:23 | × | livvy quits (~livvy@gateway/tor-sasl/livvy) (Ping timeout: 240 seconds) |
| 09:33:09 | <[exa]> | I guess that megaparsec in general requires care wrt backtracking.. :] |
| 09:33:26 | <[exa]> | but yeah this can be ugly, esp. the error message masking |
| 09:34:11 | × | hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-braorqjpjuqmensd) (Quit: Connection closed for inactivity) |
| 09:34:16 | → | plutoniix joins (~q@ppp-27-55-72-38.revip3.asianet.co.th) |
| 09:35:16 | <dminuoso> | It's moments like this where maybe parser combinators are just too powerful for your own good. |
| 09:35:22 | <dminuoso> | :p |
| 09:36:34 | × | watt313 quits (~watt313@124.123.105.225) (Ping timeout: 265 seconds) |
| 09:38:05 | × | joaoh82 quits (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Remote host closed the connection) |
| 09:38:27 | × | howdoi quits (uid224@gateway/web/irccloud.com/x-oyiccouvdvnehmhe) (Quit: Connection closed for inactivity) |
| 09:39:23 | <eedgit> | [exa] Not sure about stack changing the path, is there anyway to check? Doesn't want to build without fixing it, it seems `gtk2hs-buildtools needed, but the stack configuration has no specified version (latest matching version is 0.13.8.0)` |
| 09:40:15 | → | bitmagie joins (~Thunderbi@200116b80685200000259323389592bf.dip.versatel-1u1.de) |
| 09:40:48 | × | Sigyn quits (sigyn@freenode/utility-bot/sigyn) (Remote host closed the connection) |
| 09:41:22 | → | Sigyn joins (sigyn@freenode/utility-bot/sigyn) |
| 09:41:22 | ChanServ | sets mode +o Sigyn |
| 09:41:31 | <eedgit> | Oh, `export PATH=~/.local/bin:$PATH echo $PATH` before running the stack install command worked |
| 09:45:33 | → | kuribas joins (~user@ptr-25vy0i8rcepunzqy0n7.18120a2.ip6.access.telenet.be) |
| 09:51:37 | → | son0p joins (~son0p@181.58.39.182) |
| 09:52:01 | × | alp quits (~alp@2a01:e0a:58b:4920:a4e7:54a4:ebae:9da0) (Remote host closed the connection) |
| 09:52:22 | → | alp joins (~alp@2a01:e0a:58b:4920:39c3:c410:f47e:16f5) |
| 09:54:34 | × | datajerk quits (~datajerk@sense.net) (Ping timeout: 272 seconds) |
| 09:54:36 | × | b3z quits (~b3z@vmd41962.contaboserver.net) (Quit: cya) |
| 09:54:54 | → | b3z joins (~b3z@vmd41962.contaboserver.net) |
| 09:55:45 | <typetetris> | How can I get the gc stop the world pause times? Which stat in ekg would that be? Or here https://hackage.haskell.org/package/base-4.14.0.0/docs/GHC-Stats.html ? |
| 09:56:22 | <typetetris> | Is it the elapsed_ns |
| 09:56:39 | × | enikar quits (~enikar@2001:41d0:2:8673::42) (Quit: WeeChat 2.8) |
| 09:57:11 | hackage | circular 0.3.0 - Circular fixed-sized mutable vectors https://hackage.haskell.org/package/circular-0.3.0 (dschrempf) |
| 09:57:12 | → | enikar joins (~enikar@2001:41d0:2:8673::42) |
| 09:57:34 | × | Sigyn quits (sigyn@freenode/utility-bot/sigyn) (Quit: i've seen things you people wouldn't believe. spam bots on fire off the shoulder of sigyn. i watched k-line beams glitter in the dark near the Tannhäuser Gate. all these moments will be lost in time, like tears in rain. time to /die) |
| 09:57:34 | → | joaoh82 joins (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) |
| 09:57:59 | → | Sigyn joins (sigyn@freenode/utility-bot/sigyn) |
| 09:57:59 | ChanServ | sets mode +o Sigyn |
| 09:58:14 | × | hexfive quits (~hexfive@50-47-142-195.evrt.wa.frontiernet.net) (Quit: i must go. my people need me.) |
| 10:00:08 | <eedgit> | Still no joy though, should I have both a `stack.yaml` and a `package.yaml` ? https://gist.github.com/glasgowm148/0b5d7834c322100692317d6b6be0c898 |
| 10:00:17 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 10:00:24 | → | Rudd0 joins (~Rudd0@185.189.115.103) |
| 10:00:30 | → | datajerk joins (~datajerk@sense.net) |
| 10:00:38 | → | Axma88579 joins (~Axman6@pdpc/supporter/student/Axman6) |
| 10:02:25 | × | Axman6 quits (~Axman6@pdpc/supporter/student/Axman6) (Ping timeout: 240 seconds) |
| 10:02:45 | × | vilpan quits (~0@212.117.1.172) (Ping timeout: 240 seconds) |
| 10:02:57 | <merijn> | eedgit: Define "should" :) |
| 10:03:44 | <merijn> | stack.yaml specifies your stack configuration. package.yaml is an hpack thing (stack just happens to automatically call hpack), and I would generally define hpack as *bad* :p |
| 10:03:51 | → | thc202 joins (~thc202@unaffiliated/thc202) |
| 10:03:55 | <merijn> | See also: https://gist.github.com/merijn/8152d561fb8b011f9313c48d876ceb07 |
| 10:04:58 | × | knupfer quits (~Thunderbi@200116b82c9bc00029d7617336584c50.dip.versatel-1u1.de) (Remote host closed the connection) |
| 10:05:07 | → | knupfer joins (~Thunderbi@200116b82c9bc000c8b7568bc99cc3b4.dip.versatel-1u1.de) |
| 10:05:09 | <eedgit> | oh ok thanks, thought maybe it was mixing them up somehow |
| 10:05:20 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 272 seconds) |
| 10:05:50 | → | vilpan joins (~0@212.117.1.172) |
| 10:06:01 | <eedgit> | Adding it to the stack.yaml appears to make it look in the current directory for a folder with that name, but the package doesn't install a folder with that name anywhere as far as I can see |
| 10:08:16 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) |
| 10:08:19 | <merijn> | (I don't actually use stack, so I can't help with the details :p) |
| 10:09:46 | × | guest124 quits (~user@49.5.6.87) (Remote host closed the connection) |
| 10:10:54 | → | borne joins (~fritjof@200116b864198500f60f2508b10af3d6.dip.versatel-1u1.de) |
| 10:13:14 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) (Ping timeout: 264 seconds) |
| 10:14:21 | → | kritzefitz joins (~kritzefit@fw-front.credativ.com) |
| 10:14:45 | → | BlackCapCoder joins (~blackcap@48.80-203-23.nextgentel.com) |
| 10:15:57 | → | ubert joins (~Thunderbi@p200300ecdf1e53c9e6b318fffe838f33.dip0.t-ipconnect.de) |
| 10:16:33 | <eedgit> | no worries, got a bit further 'From lts-13.11 and above gtk2hs-buildtools is not available in stackage, so you need to add it as an extra-dep.' > https://stackoverflow.com/questions/58690982/getting-error-while-using-gtk2hs-buildtool-library-in-haskell-project-using-stac |
| 10:20:20 | → | berberman_ joins (~berberman@unaffiliated/berberman) |
| 10:20:26 | × | berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds) |
| 10:20:37 | × | lxsameer quits (~lxsameer@unaffiliated/lxsameer) (Ping timeout: 264 seconds) |
| 10:20:44 | × | toorevitimirp quits (~tooreviti@117.182.181.85) (Read error: Connection reset by peer) |
| 10:21:02 | → | toorevitimirp joins (~tooreviti@117.182.181.85) |
| 10:23:45 | → | AndreasK joins (uid320732@gateway/web/irccloud.com/x-mmzfigialnrtkzrf) |
| 10:23:46 | × | jess quits (jess@freenode/staff/jess) (Quit: Leaving) |
| 10:28:20 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 10:29:05 | × | borne quits (~fritjof@200116b864198500f60f2508b10af3d6.dip.versatel-1u1.de) (Ping timeout: 246 seconds) |
| 10:30:06 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 10:32:11 | → | zyklotomic1 joins (~ethan@210.13.104.210) |
| 10:32:35 | zyklotomic1 | is now known as chocopuff |
| 10:32:36 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
| 10:32:42 | × | chocopuff quits (~ethan@210.13.104.210) (Changing host) |
| 10:32:42 | → | chocopuff joins (~ethan@unaffiliated/chocopuff) |
| 10:33:01 | × | chocopuff quits (~ethan@unaffiliated/chocopuff) (Client Quit) |
| 10:33:53 | → | lxsameer joins (lxsameer@gateway/vpn/protonvpn/lxsameer) |
| 10:34:17 | × | wei2912 quits (~wei2912@unaffiliated/wei2912) (Remote host closed the connection) |
| 10:35:19 | → | zyklotomic joins (~ethan@unaffiliated/chocopuff) |
| 10:35:35 | <zyklotomic> | dminuoso: i'm back if you're still here and happen to have that example |
| 10:36:07 | <zyklotomic> | I did read up on Conduit too, but I have another slightly tangential question, then when is it "acceptable" tm, to use State? |
| 10:37:28 | <zyklotomic> | my original rationale was it may be easier to write the slightly complex control block of if-else-then for-loop in terms of State, I knew you could probably do it with a fold, but it still seemed a lot harder to write / bad readability |
| 10:38:04 | → | nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
| 10:39:04 | × | nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Client Quit) |
| 10:43:04 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@mx-ll-171.5.167-167.dynamic.3bb.co.th) |
| 10:46:25 | × | zyklotomic quits (~ethan@unaffiliated/chocopuff) (Ping timeout: 256 seconds) |
| 10:48:01 | → | jedws joins (~jedws@pa49-195-30-73.pa.nsw.optusnet.com.au) |
| 10:49:09 | → | zyklotomic joins (~ethan@210.13.104.210) |
| 10:49:21 | <dminuoso> | zyklotomic: Hiya. https://gist.github.com/dminuoso/1dae6372dc8df57e780899759f9156ed |
| 10:50:31 | <dminuoso> | So this with a single "mutable" buffer encoded as a function argument to go |
| 10:51:12 | <dminuoso> | This is a bit more constrained than State. Also this streams |
| 10:51:22 | <dminuoso> | So it works on an infinite input list |
| 10:51:50 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:b1f1:a8b7:f9f9:80e3) |
| 10:52:12 | × | lxsameer quits (lxsameer@gateway/vpn/protonvpn/lxsameer) (Ping timeout: 272 seconds) |
| 10:52:38 | × | zyklotomic quits (~ethan@210.13.104.210) (Remote host closed the connection) |
| 10:53:06 | → | zyklotomic joins (~ethan@210.13.104.210) |
| 10:53:48 | × | jedws quits (~jedws@pa49-195-30-73.pa.nsw.optusnet.com.au) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 10:54:12 | <dminuoso> | What Conduit buys you, is being able to talk about streaming together with IO in constant space and in a composable fashion |
| 10:54:33 | <dminuoso> | I suggested conduit based on some quick skimming of your code |
| 10:54:58 | <dminuoso> | The code seemed to call into ffi for linguistic things |
| 10:56:04 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:b1f1:a8b7:f9f9:80e3) (Ping timeout: 240 seconds) |
| 10:57:47 | <dminuoso> | And with conduit you can write this streaming in a semi-imperative style, since you can "await" for input and "yield" |
| 10:58:03 | <dminuoso> | (It doesnt have to be conduit, there's a large wealth of libraries in this design space) |
| 10:59:13 | × | joaoh82 quits (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Remote host closed the connection) |
| 10:59:49 | → | joaoh82 joins (~joaoh82@157-131-134-210.dedicated.static.sonic.net) |
| 11:00:35 | <merijn> | bleh, containers really needs a better story for "constructing a map while checking for duplicate keys" |
| 11:02:56 | <zyklotomic> | i see, that makes sense |
| 11:04:15 | → | ClaudiusMaximus joins (~claude@223.153.198.146.dyn.plus.net) |
| 11:04:15 | × | ClaudiusMaximus quits (~claude@223.153.198.146.dyn.plus.net) (Changing host) |
| 11:04:15 | → | ClaudiusMaximus joins (~claude@unaffiliated/claudiusmaximus) |
| 11:04:57 | <kuribas> | conduit seems the easiest to us... |
| 11:06:41 | hackage | circular 0.3.1 - Circular fixed-sized mutable vectors https://hackage.haskell.org/package/circular-0.3.1 (dschrempf) |
| 11:07:07 | → | lxsameer joins (~lxsameer@unaffiliated/lxsameer) |
| 11:08:00 | → | darjeeling_ joins (~darjeelin@122.245.218.196) |
| 11:08:29 | <Taneb> | merijn: if something like "insertOrFail :: k -> a -> Map k a -> Maybe (Map k a)" that failed on duplicate keys existed it'd carry a lot of weight there... |
| 11:08:53 | <merijn> | Taneb: tbh, I was thinking more some general Applicative |
| 11:09:14 | × | Jonkimi727406120 quits (~Jonkimi@119.123.242.216) (Ping timeout: 256 seconds) |
| 11:09:29 | <merijn> | "fromListWithKey :: (Ord k, Applicative f) => (k -> a -> a -> f a) -> f (Map k a)" |
| 11:09:32 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) |
| 11:09:32 | <merijn> | eh |
| 11:09:39 | <merijn> | Add a missing [(k, v)] there |
| 11:10:00 | <merijn> | Taneb: That way you could even easily do fancy things like "report all duplicates via Validation" |
| 11:11:01 | <maerwald> | kuribas: what? :D |
| 11:11:20 | <kuribas> | to use I mean |
| 11:11:41 | hackage | hriemann 0.3.3.4 - A Riemann Client for Haskell https://hackage.haskell.org/package/hriemann-0.3.3.4 (shmish111) |
| 11:11:43 | <kuribas> | it's most like unix pipes |
| 11:12:56 | × | zyklotomic quits (~ethan@210.13.104.210) (Ping timeout: 240 seconds) |
| 11:14:26 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) (Ping timeout: 264 seconds) |
| 11:14:47 | → | nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
| 11:15:52 | × | nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Client Quit) |
| 11:15:56 | <maerwald> | I think it's not really idiomatic, because you're not really using standard operators (like monadic bind) |
| 11:16:36 | × | raichoo quits (~raichoo@213.240.178.58) (Quit: Lost terminal) |
| 11:16:49 | × | Stanley00 quits (~stanley00@unaffiliated/stanley00) (Remote host closed the connection) |
| 11:16:55 | <hekkaidekapus> | merijn: There is a Set version of your apllicative in the repo and D.F. would very probably merge a Map version of it. See <https://github.com/haskell/containers/issues/680> |
| 11:17:25 | × | ericsagnes quits (~ericsagne@2405:6580:0:5100:43fe:8354:1780:830b) (Ping timeout: 272 seconds) |
| 11:17:37 | → | christo joins (~chris@94.119.64.34) |
| 11:17:45 | → | zyklotomic joins (~ethan@210.13.104.210) |
| 11:18:50 | <dminuoso> | Taneb: Well you can quickly cook it up with alterF |
| 11:19:06 | <merijn> | dminuoso: I'm talking about fromListWith |
| 11:19:44 | <dminuoso> | Ah, I guess a fold over alterF would be rather expensive |
| 11:19:49 | <dminuoso> | In comparison |
| 11:20:17 | <merijn> | dminuoso: The fact that the default, most convenient construction mechanism is unsafe (i.e. clobbers keys) and there is no sensible way to detect that is a farce |
| 11:21:33 | <merijn> | you can roll your own via fromListWith and sequence, but it's tedious |
| 11:21:39 | <hekkaidekapus> | From that discussion, it more of something waiting for a proposed patch than a farce. |
| 11:22:27 | hekkaidekapus | gets that merijn is mostly venting… |
| 11:22:32 | → | carlomagno1 joins (~cararell@148.87.23.11) |
| 11:24:30 | × | zyklotomic quits (~ethan@210.13.104.210) (Ping timeout: 272 seconds) |
| 11:24:49 | × | Guest81223 quits (~AllahuAkb@mskresolve-a.mskcc.org) (Ping timeout: 246 seconds) |
| 11:25:24 | × | christo quits (~chris@94.119.64.34) (Remote host closed the connection) |
| 11:25:40 | × | carlomagno quits (~cararell@148.87.23.12) (Ping timeout: 256 seconds) |
| 11:26:00 | × | LKoen quits (~LKoen@105.175.9.109.rev.sfr.net) (Remote host closed the connection) |
| 11:29:16 | → | ericsagnes joins (~ericsagne@2405:6580:0:5100:2a4b:4c53:e4dc:e61e) |
| 11:29:25 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 11:29:28 | → | borne joins (~fritjof@2001:638:708:30da:53d7:a324:c504:633) |
| 11:32:50 | × | britva quits (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep) |
| 11:33:03 | × | polyphem quits (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Quit: WeeChat 2.9) |
| 11:33:36 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds) |
| 11:33:58 | → | Ariakenom joins (~Ariakenom@h-98-128-229-53.NA.cust.bahnhof.se) |
| 11:34:00 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds) |
| 11:35:59 | → | britva joins (~britva@2a02:aa13:7240:2980:c416:eb6b:963d:a119) |
| 11:37:25 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 264 seconds) |
| 11:38:04 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 11:39:18 | → | revprez_1nzio joins (~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) |
| 11:40:29 | → | jamm_ joins (~jamm@unaffiliated/jamm) |
| 11:41:16 | × | revprez_anzio quits (~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) (Ping timeout: 246 seconds) |
| 11:42:05 | → | dhil joins (~dhil@195.213.192.34) |
| 11:42:45 | × | alp quits (~alp@2a01:e0a:58b:4920:39c3:c410:f47e:16f5) (Ping timeout: 272 seconds) |
| 11:44:16 | × | revprez_1nzio quits (~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) (Ping timeout: 240 seconds) |
| 11:44:17 | → | revprez_anzio joins (~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) |
| 11:46:46 | → | polyphem joins (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) |
| 11:51:07 | × | borne quits (~fritjof@2001:638:708:30da:53d7:a324:c504:633) (Ping timeout: 260 seconds) |
| 11:56:15 | → | ggole joins (~ggole@2001:8003:8119:7200:1065:53ac:b0e7:6308) |
| 11:57:13 | × | seveg quits (~gabriel@2a02-ab04-0249-8d00-3603-db93-c217-257c.dynamic.v6.chello.sk) (Quit: WeeChat 3.0) |
| 11:59:16 | ← | vilpan parts (~0@212.117.1.172) () |
| 12:05:48 | <dminuoso> | cosmos :: Plated a => Fold a a |
| 12:05:50 | <dminuoso> | The word plays. |
| 12:06:06 | <Taneb> | :t universe |
| 12:06:08 | <lambdabot> | Plated a => a -> [a] |
| 12:06:48 | × | pavonia quits (~user@unaffiliated/siracusa) (Quit: Bye!) |
| 12:07:17 | <dminuoso> | Taneb: Is there any meaning inside those, or are they just to denote the "all of it"? |
| 12:08:44 | → | jess joins (jess@freenode/staff/jess) |
| 12:09:38 | → | alp joins (~alp@2a01:e0a:58b:4920:39c3:c410:f47e:16f5) |
| 12:11:12 | × | coeus quits (~coeus@p200300d027453600d114986072cc2eb8.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 12:11:56 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-115-108.w86-198.abo.wanadoo.fr) |
| 12:12:24 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 260 seconds) |
| 12:13:01 | e | is now known as demiurge |
| 12:13:25 | → | xiinotulp joins (~q@ppp-27-55-74-75.revip3.asianet.co.th) |
| 12:13:40 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 12:14:08 | × | inkbottle quits (~inkbottle@aaubervilliers-654-1-81-2.w86-212.abo.wanadoo.fr) (Ping timeout: 265 seconds) |
| 12:14:32 | × | xcmw quits (~textual@cpe-69-133-55-43.cinci.res.rr.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 12:15:01 | × | plutoniix quits (~q@ppp-27-55-72-38.revip3.asianet.co.th) (Read error: Connection reset by peer) |
| 12:17:31 | × | bitmagie quits (~Thunderbi@200116b80685200000259323389592bf.dip.versatel-1u1.de) (Quit: bitmagie) |
| 12:17:47 | → | bitmagie joins (~Thunderbi@200116b80685200000259323389592bf.dip.versatel-1u1.de) |
| 12:18:01 | <Taneb> | dminuoso: I think the terminology predates lens here, universe comes from at least universe and cosmos is just a near-synonym of that |
| 12:18:15 | <Taneb> | So I think it's just "all of it" |
| 12:18:46 | → | AlterEgo- joins (~ladew@124-198-158-163.dynamic.caiway.nl) |
| 12:18:46 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
| 12:19:36 | × | kritzefitz quits (~kritzefit@fw-front.credativ.com) (Ping timeout: 240 seconds) |
| 12:20:51 | → | whatisRT joins (~whatisRT@2002:5b41:6a33:0:856b:b027:50b:2bc3) |
| 12:20:55 | → | Entertainment joins (~entertain@104.246.132.210) |
| 12:22:08 | × | xiinotulp quits (~q@ppp-27-55-74-75.revip3.asianet.co.th) (Quit: Leaving) |
| 12:25:11 | → | Wuzzy joins (~Wuzzy@p549c9976.dip0.t-ipconnect.de) |
| 12:25:27 | × | popey1 quits (~popey@185.163.110.125) (Remote host closed the connection) |
| 12:26:53 | <merijn> | hekkaidekapus: "Me needing to write a patch decades after something should've been added" is a farce >.> |
| 12:27:08 | → | coeus joins (~coeus@p200300d0271c3b00114a6166d66724be.dip0.t-ipconnect.de) |
| 12:28:04 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
| 12:28:25 | → | cosimone joins (~cosimone@93-47-228-249.ip115.fastwebnet.it) |
| 12:28:35 | → | jchia__ joins (~jchia@58.32.37.146) |
| 12:29:50 | → | darkspadez|lapto joins (~darkspade@217.146.82.202) |
| 12:30:12 | × | whatisRT quits (~whatisRT@2002:5b41:6a33:0:856b:b027:50b:2bc3) (Ping timeout: 260 seconds) |
| 12:34:41 | × | loller_ quits (uid358106@gateway/web/irccloud.com/x-ystjmforbrvlleet) (Quit: Connection closed for inactivity) |
| 12:35:51 | <hekkaidekapus> | merijn: Gotcha! In all honesty, even a seemingly non-contentious patch could later be stalled due to performance tuning knobs in containers. PR!340 is an emblematic example: a ~7kLOC+ & ~5kLOC- patch ending in a “cute but not fast” state gives pause. |
| 12:38:20 | → | LKoen joins (~LKoen@105.175.9.109.rev.sfr.net) |
| 12:38:43 | → | rayyyy joins (~nanoz@gateway/tor-sasl/nanoz) |
| 12:40:03 | × | shutdown_-h_now quits (~arjan@2001:1c06:2d0b:2312:a913:5438:3a24:3de8) (Ping timeout: 244 seconds) |
| 12:40:30 | × | bitmagie quits (~Thunderbi@200116b80685200000259323389592bf.dip.versatel-1u1.de) (Quit: bitmagie) |
| 12:41:13 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:b1f1:a8b7:f9f9:80e3) |
| 12:42:36 | × | jespada quits (~jespada@90.254.245.49) (Ping timeout: 240 seconds) |
| 12:43:59 | × | jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 12:44:50 | → | jamm_ joins (~jamm@unaffiliated/jamm) |
| 12:45:27 | → | jespada joins (~jespada@90.254.245.49) |
| 12:45:57 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:b1f1:a8b7:f9f9:80e3) (Ping timeout: 260 seconds) |
| 12:46:17 | → | shutdown_-h_now joins (~arjan@2001:1c06:2d0b:2312:a913:5438:3a24:3de8) |
| 12:48:30 | × | cosimone quits (~cosimone@93-47-228-249.ip115.fastwebnet.it) (Quit: cosimone) |
| 12:49:04 | × | jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 240 seconds) |
| 12:57:42 | → | raichoo joins (~raichoo@213.240.178.58) |
| 12:58:05 | → | iqubic` joins (~user@2601:602:9500:4870:55f6:de24:d001:bc51) |
| 12:58:10 | × | iqubic` quits (~user@2601:602:9500:4870:55f6:de24:d001:bc51) (Remote host closed the connection) |
| 12:58:44 | → | urodna joins (~urodna@unaffiliated/urodna) |
| 12:59:17 | → | drincruz_ joins (~adriancru@ool-44c748be.dyn.optonline.net) |
| 13:01:12 | → | drbean joins (~drbean@TC210-63-209-212.static.apol.com.tw) |
| 13:01:30 | → | Vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
| 13:02:17 | × | iqubic quits (~user@2601:602:9500:4870:4afa:d1c4:5c89:10e9) (Ping timeout: 260 seconds) |
| 13:02:27 | → | sleblanc joins (~sleblanc@unaffiliated/sebleblanc) |
| 13:02:40 | → | texasmynsted joins (~texasmyns@212.102.44.36) |
| 13:02:57 | → | drbean_ joins (~drbean@TC210-63-209-150.static.apol.com.tw) |
| 13:03:42 | × | benoitj quits (~benoitj@bras-base-mtrlpq3708w-grc-25-76-65-84-134.dsl.bell.ca) (Ping timeout: 256 seconds) |
| 13:04:00 | → | jmchael joins (~Chi1thang@87.112.60.168) |
| 13:05:33 | → | fendor_ joins (~fendor@178.115.130.110.wireless.dyn.drei.com) |
| 13:05:35 | → | benoitj joins (~benoitj@bras-base-mtrlpq3708w-grc-25-76-65-84-134.dsl.bell.ca) |
| 13:06:13 | × | Vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 264 seconds) |
| 13:06:18 | × | drbean quits (~drbean@TC210-63-209-212.static.apol.com.tw) (Ping timeout: 256 seconds) |
| 13:08:04 | × | fendor quits (~fendor@91.141.2.63.wireless.dyn.drei.com) (Ping timeout: 256 seconds) |
| 13:08:58 | → | dmdias joins (59108cd7@89.16.140.215) |
| 13:09:04 | × | son0p quits (~son0p@181.58.39.182) (Quit: leaving) |
| 13:09:10 | × | Feuermagier quits (~Feuermagi@213.178.26.41) (Remote host closed the connection) |
| 13:10:05 | × | xff0x_ quits (~fox@2001:1a81:53bd:d700:a57d:2d36:c4ed:73cf) (Ping timeout: 246 seconds) |
| 13:10:18 | × | joaoh82 quits (~joaoh82@157-131-134-210.dedicated.static.sonic.net) (Remote host closed the connection) |
| 13:10:46 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) |
| 13:11:04 | × | dmdias quits (59108cd7@89.16.140.215) (Remote host closed the connection) |
| 13:11:11 | → | xff0x_ joins (~fox@2001:1a81:53bd:d700:8f93:fd62:22df:b06f) |
| 13:11:34 | → | Tario joins (~Tario@201.192.165.173) |
| 13:14:20 | → | sondr3 joins (~sondr3@cm-84.211.56.132.getinternet.no) |
| 13:15:04 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) (Ping timeout: 240 seconds) |
| 13:16:17 | → | geekosaur joins (82659a09@host154-009.vpn.uakron.edu) |
| 13:17:06 | → | sm2n joins (~sm2n@bras-base-hmtnon1497w-grc-44-69-156-5-58.dsl.bell.ca) |
| 13:19:30 | <carbolymer> | https://bpa.st/TISA - what's wrong with my parser? |
| 13:20:09 | → | joaoh82 joins (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) |
| 13:21:02 | × | drincruz_ quits (~adriancru@ool-44c748be.dyn.optonline.net) (Ping timeout: 256 seconds) |
| 13:22:09 | ← | jil parts (~user@45.86.162.6) ("ERC (IRC client for Emacs 26.1)") |
| 13:22:28 | <carbolymer> | choice is supposed to test everything and fail when nothing matches |
| 13:24:05 | <carbolymer> | or w8, is string consuming input letter by letter thus preventing next case to be evaulated? |
| 13:24:19 | <lambda> | I have a `data T = A Int | B String | C` and a `[T]` and want to check if it contains of one of each `A`, `B` and `C` (without having to write them down again separately). Am I just overthinking this or does this need some special magic? |
| 13:24:40 | × | Ariakenom quits (~Ariakenom@h-98-128-229-53.NA.cust.bahnhof.se) (Ping timeout: 256 seconds) |
| 13:25:10 | <carbolymer> | oh fuck, right, that's exactly what's happening, I should use `try . string` |
| 13:25:29 | <Rembane> | carbolymer: Exactly! More about that here: https://stackoverflow.com/questions/33057481/why-does-it-seem-that-the-parsec-choice-operator-depends-on-order-of-the-parsers |
| 13:26:00 | <carbolymer> | Rembane, thx |
| 13:26:50 | × | joaoh82 quits (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Remote host closed the connection) |
| 13:27:00 | <merijn> | heh |
| 13:27:13 | <Rembane> | carbolymer: np! |
| 13:27:13 | <merijn> | Did I just get lucky with my AoC input? :p |
| 13:27:23 | <xerox_> | how? |
| 13:27:24 | <merijn> | because I just use asum without problems :p |
| 13:27:45 | <cheater> | xerox_: what is the (ri -> n) syntax in your code in pattern matches? |
| 13:28:06 | <xerox_> | asum is nice |
| 13:28:19 | → | jamm_ joins (~jamm@unaffiliated/jamm) |
| 13:28:27 | <merijn> | Well, I didn't bother with try around string and my parser still works :p |
| 13:29:05 | <xerox_> | some people did it all in the parser! |
| 13:29:11 | <hekkaidekapus> | carbolymer: I get that some people prefer parsec because of its boot lib status, but you could also use almost the same code with megaparsec and you wouldn’t have to worry about backtracking for chunk (string) parsers. |
| 13:29:31 | <geekosaur> | cheater, looks like a view pattern to me |
| 13:29:36 | <cheater> | thanks |
| 13:29:44 | <merijn> | hekkaidekapus: tbh, I'm starting to prefer parsec (again) because the megaparsec haddocks are a mess |
| 13:30:06 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 13:30:12 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection) |
| 13:30:12 | → | Vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
| 13:30:27 | × | darkspadez|lapto quits (~darkspade@217.146.82.202) (Remote host closed the connection) |
| 13:30:28 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 13:30:28 | <hekkaidekapus> | merijn: Some of the haddocks were copied verbatim from parsec and don’t match the lib’s implementation. |
| 13:30:32 | <merijn> | I dunno when they started degrading, but the haddocks are borderline useless to me (an experienced user of like 6 different parser combinators) as there seems to be almost no care in how combinators and modules are grouped |
| 13:30:32 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 13:30:42 | <merijn> | hekkaidekapus: My problem isn't even the description |
| 13:31:10 | × | jrm quits (~jrm@freebsd/developer/jrm) (Ping timeout: 272 seconds) |
| 13:31:11 | <merijn> | hekkaidekapus: It's that it's impossible to find things I *know* exist. How can beginners possibly find something when they don't even have years of parser combinator experience |
| 13:31:36 | <hekkaidekapus> | Ah, that. |
| 13:31:50 | <merijn> | The fact that it, for example, re-exports "Control.Monad.Combinators" without the docs for the re-export is *terrible* for example |
| 13:32:17 | → | jrm joins (~jrm@freebsd/developer/jrm) |
| 13:32:52 | <hekkaidekapus> | But the split to parser-combinators was a good decision, IMO. |
| 13:32:55 | <merijn> | Now, I know it's unfortunate that haddock doesn't (yet) support nice re-exports for whole module, but that can be solved by explicitly naming each re-export. Yes, explicitly listing all of Control.Monad.Combinators is an awkward tedious job, but for something as polished as megaparsec it's a shame it doesn't |
| 13:33:19 | <merijn> | hekkaidekapus: Irrelevanat, they could still list the re-exports and thereby get inline haddocks for them in the Text.Megaparsec module |
| 13:33:30 | <merijn> | Instantly improving the usability for both beginners *and* experts |
| 13:34:11 | → | forcer1 joins (~forcer@185.204.1.185) |
| 13:34:20 | <hekkaidekapus> | No argument there, docs improvements are always welcome. |
| 13:34:56 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
| 13:35:01 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds) |
| 13:35:28 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
| 13:36:42 | → | joaoh82 joins (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) |
| 13:36:57 | → | hyperisco joins (~hyperisco@d192-186-117-226.static.comm.cgocable.net) |
| 13:37:02 | <hekkaidekapus> | carbolymer: More to the point, `let eclP = choice (chunk <$> yourList); runParser eclP "" "brn"` will work like a charm with megaparsec. |
| 13:38:33 | → | seveg joins (~gabriel@2a02-ab04-0249-8d00-3603-db93-c217-257c.dynamic.v6.chello.sk) |
| 13:39:34 | <hekkaidekapus> | merijn: Guess what? “Control.Monad.Combinators documentation should be reexported.” <https://github.com/mrkkrp/megaparsec/issues/417> |
| 13:39:36 | × | drbean_ quits (~drbean@TC210-63-209-150.static.apol.com.tw) (Ping timeout: 240 seconds) |
| 13:40:17 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood) |
| 13:40:17 | × | gentauro quits (~gentauro@unaffiliated/gentauro) (Read error: Connection reset by peer) |
| 13:40:27 | → | drbean joins (~drbean@TC210-63-209-157.static.apol.com.tw) |
| 13:40:58 | → | gentauro joins (~gentauro@unaffiliated/gentauro) |
| 13:41:33 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 13:41:39 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 260 seconds) |
| 13:41:42 | <hekkaidekapus> | Paging lyxia… |
| 13:41:49 | <hekkaidekapus> | lyxia: Are you there? |
| 13:43:38 | × | Vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Remote host closed the connection) |
| 13:43:47 | → | Vulfe_ joins (~vulfe@2600:1702:31b0:34e0:cce9:14da:222:dd1d) |
| 13:44:02 | × | obfusk quits (~quassel@a82-161-150-56.adsl.xs4all.nl) (Ping timeout: 265 seconds) |
| 13:45:13 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 13:45:29 | × | drbean quits (~drbean@TC210-63-209-157.static.apol.com.tw) (Ping timeout: 265 seconds) |
| 13:45:33 | → | danso joins (~dan@69-165-210-185.cable.teksavvy.com) |
| 13:45:35 | → | obfusk joins (~quassel@a82-161-150-56.adsl.xs4all.nl) |
| 13:48:09 | <cheater> | geekosaur: thanks. are implicit view functions implemented in ghc? |
| 13:48:14 | → | drincruz_ joins (~adriancru@ool-44c748be.dyn.optonline.net) |
| 13:48:21 | <cheater> | the foo (-> 4) stuff |
| 13:48:39 | <hekkaidekapus> | {-# language ViewPatterns #-} |
| 13:49:22 | <merijn> | hekkaidekapus: tbh, I'd argue that implicit re-exports of modules from another package are a misfeature anyway, as there's no way to do that and stay PVP compliant unless you maintain strict upperbounds |
| 13:49:56 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 256 seconds) |
| 13:50:42 | <hekkaidekapus> | It could be configurable as lyxia proposed. |
| 13:50:47 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
| 13:50:56 | <maerwald> | someone said "upper bounds"? :p |
| 13:51:06 | → | cosimone joins (~cosimone@93-47-228-249.ip115.fastwebnet.it) |
| 13:51:18 | <hekkaidekapus> | haha… |
| 13:51:30 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@mx-ll-171.5.167-167.dynamic.3bb.co.th) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 13:52:00 | <merijn> | maerwald: hmm? |
| 13:52:01 | <hekkaidekapus> | maerwald says: “CI and tooling are better.” :p |
| 13:52:31 | <merijn> | maerwald: https://i.kym-cdn.com/entries/icons/facebook/000/006/759/both.jpg |
| 13:52:55 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 13:53:07 | <merijn> | CI is nice for detecting breakage, but doesn't help you get non-broken buildplans |
| 13:53:40 | <maerwald> | If I'd have time I'd make a study about why software is so crappy these days. I think there are two main reasons: git and semver. It allows to move fast and break stuff as much as you like. |
| 13:54:26 | <maerwald> | And I'm not saying I blame git or semver, but I think those are observable effects. |
| 13:54:36 | <maerwald> | But we can argue about causality |
| 13:55:36 | × | sleblanc quits (~sleblanc@unaffiliated/sebleblanc) (Quit: Leaving) |
| 13:55:59 | <hekkaidekapus> | We could also adopt a solution available right now: follow the PVP and write down those bounds. |
| 13:57:21 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 13:58:04 | <maerwald> | hekkaidekapus: did anyone think of the security implications of that approach? :) I think it's a safe bet that bugfixes are never backporeted to major previous versions |
| 13:58:30 | <merijn> | maerwald: That's an entirely different issue |
| 13:58:34 | <maerwald> | doing semver properly is really hight maintenance load |
| 13:58:37 | <maerwald> | and ppl are lazy af |
| 13:58:52 | <merijn> | "Should you develop against the latest version as much as possible?" 'yes' |
| 13:58:59 | <hekkaidekapus> | Devops is also high maintenance. |
| 13:59:13 | <merijn> | Should you *package* versions so that they have less chance of breaking retro-actively (i.e. add upperbounds)? Also yes |
| 13:59:42 | <merijn> | maerwald: I work a lot with scientific code. Security is a non-issue, but the ability to reasonably reive 10 year old code is a big deal |
| 14:00:24 | <merijn> | Do upperbounds help you avoid security issues and what not? No. Do they help ensure that a package that builds correctly *now* has a non-zero chance of building as-is ten years from now? Yes. |
| 14:00:30 | <maerwald> | I don't mind semver if 1. I get build time warnings saying "this major version is going EOL in 1 year", so I can prepare and assign tickets to interns, 2. major versions are maintained for at least a couple of years |
| 14:00:51 | <merijn> | maerwald: That's an entirely separate concern, though |
| 14:01:18 | <merijn> | maerwald: You care about "how long/well will this be supported?" which is a valid concern, but no one is pretending upperbounds address that at all |
| 14:02:11 | <exarkun> | I see a lot of socket types on hoogle. is Network.Socket the correct answer? |
| 14:02:16 | <merijn> | Upperbounds address a single (trivial from a distribution/operations perspective, but important nonetheless) issue of "if it builds now, it should build 10 years from now using the compiler from 10 years ago" |
| 14:02:36 | <maerwald> | merijn: they don't even address that well |
| 14:02:54 | <maerwald> | freeze files, stack and nix address that |
| 14:02:54 | <merijn> | maerwald: Sure, but do you have a *better* solution? |
| 14:03:05 | <hekkaidekapus> | What amazes me is a subset of people rallying against upper-bounds, but happily writing down Nix expressions to lock down deps up to exact commits (not maerwald, obviously. :p) |
| 14:03:25 | <maerwald> | if I want to build something in 10 years, an upper bound isn't enough for me, I want to reproduce the environment |
| 14:03:35 | <merijn> | hekkaidekapus: "oh, but I don't wanna write upperbounds, because it's tedious :(((" |
| 14:03:42 | <maerwald> | hekkaidekapus: yeah, nix is a nightmare if you care about security |
| 14:03:59 | <merijn> | hekkaidekapus: 5 minutes later "why am I stuck in cabal hell and nothing's building when I try to use this 6 year old package?!?!?" |
| 14:04:10 | <hekkaidekapus> | lol |
| 14:04:23 | <merijn> | Man...fuck those people >.> |
| 14:04:51 | <hekkaidekapus> | That escalated quickly. >.> |
| 14:04:56 | <maerwald> | lolo |
| 14:05:16 | <maerwald> | merijn: take a sip of Laphroaig |
| 14:05:24 | <maerwald> | good for your blood pressure |
| 14:05:24 | <merijn> | maerwald: It's only 3 PM >.> |
| 14:05:37 | <hekkaidekapus> | Friday PM is ok. |
| 14:05:56 | <maerwald> | No one will mind |
| 14:06:01 | <merijn> | hekkaidekapus: See, the great thing of hypothetical strawmen is that you can rage against them without anyone getting upset! |
| 14:06:16 | <merijn> | (Well, if you keep your rage to a somehwat acceptable level) |
| 14:07:00 | <hekkaidekapus> | In before maerwald talks about blood pressure and insurance costs induced by upper bounds… |
| 14:07:05 | <merijn> | maerwald: I'm writing C++ right now, my bloodpressure can't be saved |
| 14:08:41 | → | geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
| 14:08:46 | <maerwald> | C++ is like weed... if you're already paranoid, it will CRACK you |
| 14:09:04 | <kuribas> | merijn: I cannot imagine what clojure would do to you :) |
| 14:09:15 | <maerwald> | ok, yes, clojure is worse |
| 14:09:55 | <maerwald> | You can randomly delete lines and it still compiles, but instead of showing a web page with account information, will start to compute mandelbrots and send them over a blockchain |
| 14:10:57 | <kuribas> | clojure is way to lenient |
| 14:11:04 | <kuribas> | even more than common lisp. |
| 14:11:16 | <kuribas> | Anyway, that's offtopic... |
| 14:11:19 | <geekosaur> | @remember maerwald ok, yes, clojure is worse. You can randomly delete lines and it still compiles, but instead of showing a web page with account information, will start to compute mandelbrots and send them over a blockchain |
| 14:11:19 | <lambdabot> | Good to know. |
| 14:11:38 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 14:12:48 | → | falafel_ joins (~falafel@pool-71-182-130-97.pitbpa.fios.verizon.net) |
| 14:16:00 | × | hyperisco quits (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Disconnected by services) |
| 14:16:00 | → | hyperisco_ joins (~hyperisco@d192-186-117-226.static.comm.cgocable.net) |
| 14:17:13 | → | carlomagno joins (~cararell@148.87.23.11) |
| 14:18:08 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@mx-ll-171.5.167-167.dynamic.3bb.co.th) |
| 14:18:44 | × | ubert quits (~Thunderbi@p200300ecdf1e53c9e6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 14:19:18 | × | carlomagno1 quits (~cararell@148.87.23.11) (Ping timeout: 272 seconds) |
| 14:20:12 | × | drincruz_ quits (~adriancru@ool-44c748be.dyn.optonline.net) (Ping timeout: 256 seconds) |
| 14:26:07 | × | falafel_ quits (~falafel@pool-71-182-130-97.pitbpa.fios.verizon.net) (Ping timeout: 246 seconds) |
| 14:27:34 | × | jasperr quits (~gazso@91-82-250-42.pool.digikabel.hu) (Remote host closed the connection) |
| 14:27:43 | × | geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 260 seconds) |
| 14:29:17 | × | knupfer quits (~Thunderbi@200116b82c9bc000c8b7568bc99cc3b4.dip.versatel-1u1.de) (Quit: knupfer) |
| 14:29:27 | → | kritzefitz joins (~kritzefit@fw-front.credativ.com) |
| 14:29:29 | → | knupfer joins (~Thunderbi@200116b82c9bc000a8fd43d85d8a07f6.dip.versatel-1u1.de) |
| 14:29:47 | → | drincruz_ joins (~adriancru@ool-44c748be.dyn.optonline.net) |
| 14:31:46 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 14:34:42 | <lyxia> | hekkaidekapus: did you ping me |
| 14:34:47 | × | knupfer quits (~Thunderbi@200116b82c9bc000a8fd43d85d8a07f6.dip.versatel-1u1.de) (Quit: knupfer) |
| 14:34:58 | → | knupfer joins (~Thunderbi@200116b82c9bc000adff544b4545b020.dip.versatel-1u1.de) |
| 14:36:25 | → | qwfpluykh joins (2e050550@HSI-KBW-046-005-005-080.hsi8.kabel-badenwuerttemberg.de) |
| 14:36:28 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
| 14:40:13 | × | geekosaur quits (82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection) |
| 14:43:32 | <tdammers> | maerwald: well, duh, just don't delete those lines then XD |
| 14:43:41 | × | jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 14:43:49 | → | mimagic joins (~mimagic@201.82.37.29) |
| 14:44:16 | <maerwald> | :D |
| 14:44:36 | → | jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb) |
| 14:44:53 | × | mimagic quits (~mimagic@201.82.37.29) (Remote host closed the connection) |
| 14:45:09 | → | mimagic joins (~mimagic@201.82.37.29) |
| 14:46:55 | × | jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection) |
| 14:47:12 | × | joaoh82 quits (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Remote host closed the connection) |
| 14:48:10 | → | joaoh82 joins (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) |
| 14:49:40 | × | mimagic quits (~mimagic@201.82.37.29) (Ping timeout: 256 seconds) |
| 14:52:30 | → | son0p joins (~son0p@181.136.122.143) |
| 14:52:50 | <typetetris> | Sorry for asking again: Which metric in ekg indicates gc pause times? Which metric in `GHC.Stats`? |
| 14:52:59 | <typetetris> | Or can they only be seen with an eventlog? |
| 14:53:22 | × | knupfer quits (~Thunderbi@200116b82c9bc000adff544b4545b020.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
| 14:53:35 | → | knupfer joins (~Thunderbi@200116b82c9bc0005da51f6efb192e42.dip.versatel-1u1.de) |
| 14:54:20 | × | dnlkrgr quits (~dnlkrgr@HSI-KBW-046-005-005-080.hsi8.kabel-badenwuerttemberg.de) (Quit: WeeChat 2.9) |
| 14:55:55 | × | xff0x_ quits (~fox@2001:1a81:53bd:d700:8f93:fd62:22df:b06f) (Ping timeout: 272 seconds) |
| 14:55:56 | × | drincruz_ quits (~adriancru@ool-44c748be.dyn.optonline.net) (Ping timeout: 240 seconds) |
| 14:56:29 | → | xff0x_ joins (~fox@2001:1a81:53bd:d700:e925:a6a8:c96:2dfe) |
| 14:57:56 | → | drincruz_ joins (~adriancru@ool-44c748be.dyn.optonline.net) |
| 14:58:09 | × | stree quits (~stree@50-108-78-9.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception) |
| 14:58:41 | hackage | rhbzquery 0.1.1 - Bugzilla query tool https://hackage.haskell.org/package/rhbzquery-0.1.1 (JensPetersen) |
| 15:05:32 | <merijn> | hmm |
| 15:06:05 | <merijn> | Is there a convenient way to run a number of megaparsec parsers in non-deterministic order? |
| 15:07:04 | → | berberman joins (~berberman@unaffiliated/berberman) |
| 15:07:44 | × | berberman_ quits (~berberman@unaffiliated/berberman) (Ping timeout: 240 seconds) |
| 15:07:56 | → | Mrbuck joins (~Mrbuck@gateway/tor-sasl/mrbuck) |
| 15:08:10 | <sm[m]> | choice $ map try $ randomizeList [p1,p2,p3] ? |
| 15:08:33 | <merijn> | sm[m]: That still only parses one |
| 15:08:44 | <merijn> | I mean "I need to parse N things in an unknown order" |
| 15:08:44 | <Mrbuck> | hi some I think haskell a good choice for distributed systems? Any serious known project related to that domain |
| 15:09:17 | <merijn> | sm[m]: So "try to parse p1-p3, check which succeeds, then continue with the remaining two" |
| 15:09:31 | <sm[m]> | merijn: oh.. yes there is something in megaparsec for that. "permute" ? |
| 15:09:53 | <merijn> | Not permute at least :p |
| 15:10:31 | <merijn> | sm[m]: Text.Megaparsec.Perm used to exist, but got nuked, apparently |
| 15:10:53 | → | bcasiello_ joins (~brian@071-088-110-201.res.spectrum.com) |
| 15:11:23 | <merijn> | ah, it's in parser-combinators now |
| 15:11:31 | × | joaoh82 quits (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Remote host closed the connection) |
| 15:12:39 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) |
| 15:13:11 | <sm[m]> | yup runPermutation |
| 15:13:37 | → | Sgeo joins (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
| 15:14:02 | × | bcasiello quits (~brian@071-088-110-201.res.spectrum.com) (Ping timeout: 256 seconds) |
| 15:16:44 | <exarkun> | Okay, nobody gonna warn me away from Network.Socket? |
| 15:17:37 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) (Ping timeout: 260 seconds) |
| 15:17:49 | → | bitmagie joins (~Thunderbi@200116b80685200000259323389592bf.dip.versatel-1u1.de) |
| 15:18:38 | <Philonous> | exarkun, If you need to work with sockets, then network's Network.Socket is the way to go. |
| 15:19:06 | × | bitmagie quits (~Thunderbi@200116b80685200000259323389592bf.dip.versatel-1u1.de) (Client Quit) |
| 15:19:07 | × | chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
| 15:19:16 | × | Ranhir quits (~Ranhir@157.97.53.139) (Remote host closed the connection) |
| 15:19:22 | → | chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
| 15:19:36 | shapr | hugs exarkun |
| 15:20:32 | <exarkun> | Heya shapr |
| 15:20:37 | × | alp quits (~alp@2a01:e0a:58b:4920:39c3:c410:f47e:16f5) (Ping timeout: 272 seconds) |
| 15:21:21 | → | __monty__ joins (~toonn@unaffiliated/toonn) |
| 15:23:08 | <Philonous> | I have a series of requests and each requests carries a nonce and a time stamp, so I want to check if I have seen that nonce before. To limit the amount of space I need I want to only store a sliding window of them, and now I'm wondering which data structure to use. If I use a »Map UTCTime Nonce« I can drop old entries using dropWhileAntitone or split on O(log(n)) , but looking for the nonce is O(n). If I use a »Map Nonce UTCTime« I |
| 15:23:09 | <Philonous> | can find the nonce in O(log(n)), but dropping old entries is O(n) |
| 15:23:30 | <Philonous> | Is there a clever data structure that has insert, drop-old and lookup, all in log(n) ? |
| 15:25:15 | → | catchme joins (uid355354@gateway/web/irccloud.com/x-efeidyvsbqvqtcow) |
| 15:26:04 | → | Ranhir joins (~Ranhir@157.97.53.139) |
| 15:26:51 | → | falafel_ joins (~falafel@pool-71-182-130-97.pitbpa.fios.verizon.net) |
| 15:27:34 | <__monty__> | Is there a workaround to use ghcid in a multi-package project? Running it for a single project at a time would be fine but `ghcid -c 'cabal repl Project:exe:Myexe'` doesn't work, it doesn't report any syntax errors I introduce in my sources. |
| 15:27:41 | hackage | proteaaudio 0.9.0 - Simple audio library for Windows, Linux, OSX. https://hackage.haskell.org/package/proteaaudio-0.9.0 (CsabaHruska) |
| 15:29:12 | hackage | stack-all 0.1.1 - CLI tool for building across Stackage major versions https://hackage.haskell.org/package/stack-all-0.1.1 (JensPetersen) |
| 15:29:22 | × | DTZUZU quits (~DTZUZU@205.ip-149-56-132.net) (Quit: WeeChat 2.9) |
| 15:29:44 | → | DTZUZU joins (~DTZUZU@205.ip-149-56-132.net) |
| 15:29:46 | <sm[m]> | monty: yes, pass additional -iDIR arguments |
| 15:30:14 | → | lightwave joins (~chris@bras-vprn-nwmkon8540w-lp130-10-142-112-210-136.dsl.bell.ca) |
| 15:30:42 | hackage | proteaaudio-sdl 0.9.0 - Simple audio library for SDL. https://hackage.haskell.org/package/proteaaudio-sdl-0.9.0 (CsabaHruska) |
| 15:31:06 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 15:31:36 | <lightwave> | I'm hitting a wall on my Haskell journey when I'm reading the "Haskell Programing from first principal" book. |
| 15:32:04 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 15:32:13 | <sm[m]> | "make ghcid" in hledger's Makefile is an example. Also I think one of the tools, probably stack, allows "stack ghci all" or some such |
| 15:33:20 | <lightwave> | While reading about Maybe and Either in chapter 12, I ran into this paragraph about Lifted and Unlifted types. '''Lifted and unlifted types To be precise, kind * is the kind of all standard lifted types, while types that have the kind # are unlifted. A lifted type, which includes any datatype you could define yourself, is any that can be inhabited by bottom. Lifted types are represented by a pointer and include |
| 15:33:21 | <lightwave> | we’ve seen and most that you’re likely to encounter and use. Unlifted types are any types that cannot be inhabited by bottom. Types of kind # are often native machine types and raw pointers. Newtypes are a special case in that they are kind *, but they are unlifted, because their representation is identical to that of the type they contain, so a newtype itself is not creating any new pointer beyond that of t |
| 15:33:21 | <lightwave> | fact means that the newtype itself cannot be inhabited by bottom—only the thing it contains can be—so newtypes are unlifted. The default kind of concrete, fully-applied datatypes in GHC is kind *.''' |
| 15:33:37 | × | xff0x_ quits (~fox@2001:1a81:53bd:d700:e925:a6a8:c96:2dfe) (Ping timeout: 260 seconds) |
| 15:33:43 | × | Mrbuck quits (~Mrbuck@gateway/tor-sasl/mrbuck) (Ping timeout: 240 seconds) |
| 15:33:56 | <sm[m]> | lightwave: phew |
| 15:34:19 | → | xff0x_ joins (~fox@2001:1a81:53bd:d700:34e2:7dfe:e47a:7867) |
| 15:34:50 | <lightwave> | What is a lifted/unlifted type? I am thoroughly confused. My apology for pasting the paragraph.... didn't look that big ono the PDF. LOL |
| 15:34:55 | <sm[m]> | and this is the book we send beginners to :) |
| 15:35:34 | <merijn> | sm[m]: Pretty sure that's an aside :) |
| 15:35:37 | × | falafel_ quits (~falafel@pool-71-182-130-97.pitbpa.fios.verizon.net) (Ping timeout: 264 seconds) |
| 15:36:00 | <merijn> | lightwave: it's not really that important right now, just a mental note for "later" |
| 15:36:15 | <merijn> | lightwave: Incidentally, do you happen to know Java or C#? |
| 15:36:38 | <lightwave> | I used to write Java. :-) |
| 15:36:44 | <xerox_> | this is just a proposal or is it implemented somewhere? https://gitlab.haskell.org/ghc/ghc/-/wikis/view-patterns#implicit-view-functions |
| 15:36:52 | <boxscape> | hmmm I wish I could use `compare `on` fst` to compare (String, String) with (String, String -> Bool) |
| 15:37:52 | → | Mrbuck joins (~Mrbuck@gateway/tor-sasl/mrbuck) |
| 15:37:55 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 15:38:03 | × | rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds) |
| 15:38:54 | <lightwave> | merijn: It's not shown as an aside in the book. In this book, I'm hitting a lot of these "aside" things in the middle of learning the basics. hahaha |
| 15:38:55 | → | jollygood2 joins (~bc8165ab@217.29.117.252) |
| 15:39:16 | × | dxld quits (~dxld@80-109-136-248.cable.dynamic.surfer.at) (Remote host closed the connection) |
| 15:39:18 | <merijn> | lightwave: Right, so do you have a sense of the difference between "int" and "Integer"? |
| 15:39:23 | <xerox_> | boxscape: maybe there's a way passing through Arg |
| 15:39:26 | <boxscape> | Seems like that section from a book is a little outdated as well, since kinds of Unlifted types now have different names |
| 15:39:51 | <xerox_> | boxscape: scratch that, the types wouldn't match anyway |
| 15:40:07 | <lightwave> | merijn: Yes, int is a primitive while Integer is a boxed int. |
| 15:40:20 | → | rayyyy joins (~nanoz@gateway/tor-sasl/nanoz) |
| 15:40:23 | <lightwave> | merijn: kind of like the newtype thingy in haskell? |
| 15:40:44 | <merijn> | lightwave: "lifted" = boxed (roughly) "unlifted" = unboxed/primitive (roughly) |
| 15:41:57 | × | cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9) |
| 15:42:11 | <merijn> | lightwave: GHC actually has a slightly more nuanced distinction of types, but that's close enough |
| 15:42:12 | × | z0k quits (~user@101.50.127.33) (Read error: Connection reset by peer) |
| 15:42:12 | → | machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca) |
| 15:42:30 | → | dxld joins (~dxld@rush.pub.dxld.at) |
| 15:42:43 | <merijn> | lightwave: Boxing exists for the same reason too, to accommodate parametric polymorphism (aka Java's generics) |
| 15:42:52 | <lightwave> | merijn: What does "A lifted type is any that can be inhabited by bottom." mean? Bottom (in the british sense) vs. a?? in the american sense? LOL |
| 15:43:25 | <merijn> | lightwave: Bottom in type theory terms is "non-terminating computation" |
| 15:43:40 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@mx-ll-171.5.167-167.dynamic.3bb.co.th) (Read error: Connection reset by peer) |
| 15:44:52 | <merijn> | lightwave: Since Haskell is turing complete it's possible to write infinite computations for any possible type. "bottom" is the term used to describe any "non-terminating computation" and any "normal type" can (via laziness) harbor such a non-terminating computation inside |
| 15:45:31 | <merijn> | lightwave: otoh, a machine integer isn't lazy. It's just a machine integer, and thus cannot secretly be infinite |
| 15:45:54 | <merijn> | lightwave: It's a bit weird that it's going into that, because this is some fairly nuanced GHC implementation details stuff :p |
| 15:46:49 | <lightwave> | merijn: I see... so if bottom is in the set for the type, the type is a lifted type? |
| 15:46:57 | <__monty__> | sm[m]: Hmm, I think this might not work for me because I'm making use of cabal's generated data-files modules and ghci can't find those. So I think I need cabal repl. I also don't think -i solves my problem, I don't have deps in other directories. |
| 15:47:11 | <merijn> | lightwave: If you have "x :: Int" then (due to laziness) you can't tell whether you have 1) an actual number or 2) a lazy computation returning a number |
| 15:47:27 | × | britva quits (~britva@2a02:aa13:7240:2980:c416:eb6b:963d:a119) (Quit: This computer has gone to sleep) |
| 15:47:39 | <merijn> | lightwave: Whereas with "x :: Int#" (the unlifted integer type, thinkg Java's "int") you *know* you have a number |
| 15:47:39 | <lightwave> | What's the best intuitive way to wrap my head around "lift" or "lifted" type...? English is not my language.... |
| 15:48:00 | → | z0k joins (~user@101.50.127.33) |
| 15:48:17 | <merijn> | lightwave: tbh, mentally replacing "lifted"/"unlifted" with Java's "boxed"/"unboxed" (or primitive) is cloe enough |
| 15:48:59 | <merijn> | It's not 100% accurate, but it's, say, ~95% accurate which is more than good enough for beginners :p |
| 15:49:30 | <lightwave> | Knowing less is more in my Haskell journey... LOL |
| 15:50:22 | <merijn> | lightwave: tbh, for a long time "boxed" was also used in GHC/papers talking about GHC, so it's not that weird to use |
| 15:50:42 | × | hyperisco_ quits (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Quit: Curry, you fools!) |
| 15:50:53 | <lightwave> | I'm 466 pages into this book and I'm still no where near writing any "fun" program to sratch my itch. |
| 15:51:04 | → | hyperisco joins (~hyperisco@d192-186-117-226.static.comm.cgocable.net) |
| 15:51:26 | <merijn> | It's...not a "quickly start hacking book", no. There are other, shorter books, though :) |
| 15:51:27 | <lightwave> | Still 800 pages to go. LOL |
| 15:51:28 | → | jonathanx_ joins (~jonathan@dyn-8-sc.cdg.chalmers.se) |
| 15:51:31 | × | jonathanx quits (~jonathan@dyn-8-sc.cdg.chalmers.se) (Read error: Connection reset by peer) |
| 15:52:23 | → | Franciman joins (~franko@host-212-171-88-43.retail.telecomitalia.it) |
| 15:52:50 | <Franciman> | Hi, what is stackage made of? |
| 15:52:56 | <lightwave> | I told my wife I'm not going to buy a Nintendo Switch until I finish this book by end of year. Bad decision... |
| 15:53:10 | <Franciman> | is there any file representing a stackage snapshot? |
| 15:53:37 | <sm[m]> | big mistake ! :) |
| 15:54:14 | <hyperisco> | https://hackage.haskell.org/package/foldl-1.4.10/docs/Control-Foldl.html#t:EndoM is there another formulation or source of this? |
| 15:54:18 | <merijn> | lightwave: That said, you don't have to stop yourself from writing stuff until you finish the book :p |
| 15:54:21 | <hyperisco> | particularly for folding |
| 15:54:29 | <hyperisco> | Foldable f => f (a -> m a) -> a -> m a |
| 15:55:24 | → | mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) |
| 15:56:05 | <sm[m]> | Franciman: build-constraints.yaml in the stackage repo |
| 15:56:48 | <lightwave> | merijn: My brain is constantly distracting me with ideas on how to "rewrite" an existing system with Haskell. Kind of like day-dreaming about the utopia of 100% Haskell & PureScript code base. :-) |
| 15:57:12 | <Franciman> | sm[m], thank shon |
| 15:57:18 | <lightwave> | I'm sure that happens to lots of beginners... |
| 15:57:52 | <sm[m]> | yup |
| 15:58:08 | <monochrom> | IMO it is the fault of HFFP to bring up unlifted types this early. (Yes, 400 pages into is still too early.) |
| 15:58:16 | <merijn> | monochrom: I agree |
| 15:58:25 | <merijn> | I don't recall them being in there, let alone that early |
| 15:58:27 | → | cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
| 15:58:36 | <merijn> | I'm sure my girlfriend would've been confused and asked me... |
| 15:58:37 | <monochrom> | In fact for most practical purposes you don't even need to know for your entire life. |
| 15:58:49 | <merijn> | lightwave: ^^^ that |
| 15:59:01 | <lightwave> | I'm beginning to see why Haskell is harder to learn for seasoned programmer. |
| 15:59:14 | <jollygood2> | hi. I need to compare images of different size for similarity. what haskell package or packages do you recommend? |
| 15:59:23 | <sm[m]> | HFFFP is the book #haskell would write given unlimited time :) |
| 15:59:28 | <merijn> | lightwave: Naah, this is just poor pedagogical timing |
| 15:59:38 | <merijn> | lightwave: (of the book) |
| 15:59:48 | <monochrom> | When do you need to know: you read asm code generated by GHC, or you want to write the next generation vector library, or you contribute to GHC... low-level stuff. |
| 15:59:53 | → | alp joins (~alp@88.126.45.36) |
| 16:00:05 | <sm[m]> | lightwave: there are other books that move along faster |
| 16:00:18 | <merijn> | lightwave: unlifted types are interesting if you wanna, say, write super high performance code/etc. not for "I wanna write a simple application" |
| 16:00:27 | <Taneb> | I've been writing Haskell for like a decade now and I don't think I've ever really needed to know about unlifted types |
| 16:00:47 | <Taneb> | Except for when I was trying to a write a program that would go faster than the one my friend wrote in C++ or something |
| 16:01:08 | <monochrom> | Well, I avoided the magic trigger word "performance" because everyone goes overboard with "performance". |
| 16:01:21 | <lightwave> | sm[m]: I was reading PureScript by Example and then found it to be too sparse in details. |
| 16:01:25 | <merijn> | monochrom: Also true |
| 16:02:10 | <merijn> | monochrom: That's because most programmers don't understand shit about performance :) |
| 16:02:11 | <lightwave> | monochrom: hear hear |
| 16:02:13 | <sm[m]> | lightwave: it's good to have a place to turn when you want more details, maybe LHFFP is that |
| 16:02:48 | <lightwave> | sm[m]: What's LHFFP? |
| 16:03:04 | <Franciman> | sm[m], wait, but in the build-constraints I see no constraints :) |
| 16:03:23 | <sm[m]> | I'm trying to remember the acronym for the book you're talking about, and probably failing. Even that is too long for me :) |
| 16:03:49 | <Franciman> | Learning Haskell for Future Proof |
| 16:03:51 | <Franciman> | ? |
| 16:04:05 | → | benjamingr__ joins (uid23465@gateway/web/irccloud.com/x-jwefvpayxcoyisfw) |
| 16:04:15 | <sm[m]> | Franciman: they're implied somehow, I forget the details but read me should say |
| 16:04:23 | <Franciman> | oh great, thanks |
| 16:04:43 | <lightwave> | Oh the book I'm reading is "Haskell Programming from first principal" |
| 16:05:04 | <sm[m]> | HPFFP. Thank you |
| 16:05:44 | <sm[m]> | very unmemorable alas |
| 16:06:48 | <lightwave> | The book "Real World Haskell" is more appealing but perhaps a bit dated? |
| 16:06:58 | <boxscape> | sm[m] I just think of it as haskellbook |
| 16:07:02 | <boxscape> | @where haskellbook |
| 16:07:02 | <lambdabot> | http://haskellbook.com |
| 16:07:19 | → | ubert joins (~Thunderbi@p200300ecdf1e53c9e6b318fffe838f33.dip0.t-ipconnect.de) |
| 16:07:27 | <sm[m]> | lightwave: yes. One I like is |
| 16:07:27 | <sm[m]> | @where HTAC |
| 16:07:27 | <lambdabot> | "Haskell Tutorial and Cookbook" by Mark Watson in 2017-09-04 at <https://leanpub.com/haskell-cookbook> |
| 16:07:28 | <boxscape> | lightwave definitely dated |
| 16:07:33 | <ski> | @where HPFFP |
| 16:07:33 | <lambdabot> | "Haskell Programming: from first principles - Pure functional programming without fear or frustration" by Chistopher Allen (bitemyapp),Julie Moronuki at <http://haskellbook.com/>,#haskell-beginners |
| 16:07:47 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 16:08:00 | ski | isn't really fond of the name "haskellbook" |
| 16:08:28 | <sm[m]> | yup, we have more than one |
| 16:09:27 | <int-e> | ski: quick, register thehaskellbook.com |
| 16:11:18 | <int-e> | https://haskellbooks.com/ haha |
| 16:11:26 | <int-e> | (fair enough) |
| 16:11:50 | → | conal joins (~conal@64.71.133.70) |
| 16:12:21 | <int-e> | (and in fact the existence of that domain makes haskellbook.com slightly more questionable to my mind) |
| 16:12:39 | <maerwald> | boxscape: have the lawsuits around that book settled? >:) |
| 16:12:45 | <boxscape> | no clue |
| 16:12:58 | <merijn> | I thought they were settled out of court? |
| 16:13:01 | <Franciman> | oh I found out about jenga, such a great project |
| 16:13:13 | <Franciman> | soon stack will be useless, except for being hipster |
| 16:13:52 | <maerwald> | there's also stack2cabal |
| 16:14:09 | <maerwald> | and jenga is deprecated |
| 16:14:14 | <Franciman> | oh :< |
| 16:14:15 | <Franciman> | why |
| 16:14:19 | <sm[m]> | ha I'd take that bet |
| 16:14:22 | <maerwald> | because it says so on hackage |
| 16:14:24 | <sm[m]> | damn too late |
| 16:14:25 | → | jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb) |
| 16:15:01 | <merijn> | Readme of that still mentions sandboxes :p |
| 16:15:02 | <Franciman> | why don't we create our own version of stackage that doesn't rely on amazon? |
| 16:15:11 | <Franciman> | ah, because we are poor |
| 16:15:16 | <merijn> | Franciman: So..."hackage"? :p |
| 16:15:25 | <Franciman> | merijn, does hackage provide snapshots? |
| 16:15:33 | <Franciman> | of working together packages? |
| 16:15:36 | <Franciman> | like a distro |
| 16:15:46 | <maerwald> | Franciman: yes, it's called stackages snapshots :D |
| 16:15:52 | <Franciman> | lolz |
| 16:15:53 | <maerwald> | those are just version infos |
| 16:15:59 | <maerwald> | so you just use that |
| 16:16:01 | <merijn> | Franciman: Sure, just make a freeze file :p |
| 16:16:09 | <lightwave> | What? Stackage will be gone? Why? |
| 16:16:15 | <Franciman> | no it won't |
| 16:16:26 | <merijn> | lightwave: That was wishful thinking by some people :) |
| 16:16:31 | <Franciman> | merijn, if I can translate stackage files fo cabal freezes |
| 16:16:38 | <Franciman> | it'd be great |
| 16:16:48 | <maerwald> | well, stack has a saner file format than Cabal, that you can actually use and parse yourself |
| 16:17:03 | <sm[m]> | Franciman: I think stackage provides that somewhere |
| 16:17:21 | × | conal quits (~conal@64.71.133.70) (Read error: Connection reset by peer) |
| 16:17:27 | <maerwald> | so I wouldn't want it to die, just so I can still abuse stack2cabal to generate my cabal.project files for me |
| 16:17:36 | <lightwave> | Any haskeller here using PureScript to build the front-end? |
| 16:17:41 | → | conal joins (~conal@64.71.133.70) |
| 16:18:09 | <Franciman> | sm[m], it's a bit obscure where |
| 16:18:10 | <Franciman> | yeah |
| 16:18:16 | <merijn> | maerwald: Hard disagree on any implication that YAML is sane >.> |
| 16:18:16 | × | mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 240 seconds) |
| 16:18:38 | <maerwald> | merijn: don't tell me cabal file format is sane :o |
| 16:18:53 | <Franciman> | what would be a cool format? |
| 16:18:58 | <maerwald> | and there are zero tools that can deal with it other than a huge 300module monolith |
| 16:19:00 | <merijn> | maerwald: I didn't say so, but at least that one is improving, unlike YAML |
| 16:19:03 | <Franciman> | let's write a compiler |
| 16:19:16 | <Franciman> | I like TOML |
| 16:19:17 | <Franciman> | topkek |
| 16:19:29 | <maerwald> | yes, toml, yaml, anything is better than cabal format |
| 16:19:44 | <merijn> | maerwald: Tools can only "deal" with yaml in the sense that it can turn your file into a nested dictionary |
| 16:19:53 | <maerwald> | yes, that's already a huge win |
| 16:19:57 | <merijn> | maerwald: If you wanna actually parse it you still gotta write a parser on top of that |
| 16:20:21 | <maerwald> | so tools like stack2cabal don't really need to interface or depend on stack, they can just easily parse the yaml themselves |
| 16:20:25 | <Franciman> | I agree with maerwald about cabal being an arcane format only supported by a huge lib |
| 16:20:35 | <maerwald> | with cabal, you have to depend on Cabal the library and that's no fun :) |
| 16:20:38 | <merijn> | maerwald: The latest CABAL spec is already more parseable. Splitting of a seperate parser lib is feasible, but someone would have to actually do it |
| 16:21:54 | <maerwald> | custom file formats are always a bad idea for things that will be used by a large number of ppl |
| 16:22:06 | <Franciman> | agree |
| 16:22:48 | <operand> | Hi, I'm trying to use Megaparsec's Lexer components, but I feel like I'm misunderstanding something. |
| 16:23:05 | <merijn> | YAML doesn't eliminate any of the customness. It just means parsing dictionaries instead of text |
| 16:23:36 | × | jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection) |
| 16:23:41 | <operand> | Is the 'lexeme' function (when supplied with a space consumer) not supposed to strip trailing whitespace and then run the parser on the result? |
| 16:23:47 | <operand> | Is it the other way around, perhaps? |
| 16:23:54 | <dcoutts_> | yaml was not a popular format when the original Cabal spec was written |
| 16:23:58 | dcoutts_ | is now known as dcoutts |
| 16:24:18 | <merijn> | XML was popular when Cabal was written :p |
| 16:24:25 | <dcoutts> | yeah, exactly |
| 16:24:29 | <Franciman> | still better than cabal, imho |
| 16:24:32 | <merijn> | So be happy you don't have Maven's insanity |
| 16:24:45 | <merijn> | Franciman: What, specifically, is so bad about the format? |
| 16:24:51 | <maerwald> | I have PTSD from XML, no thanks |
| 16:24:54 | × | cosimone quits (~cosimone@93-47-228-249.ip115.fastwebnet.it) (Quit: cosimone) |
| 16:25:01 | <Franciman> | the fact that you don't have a simple library for parsing it |
| 16:25:03 | <merijn> | Sure, the fact that *currently* the only parser is embedded in Cabal itself is unfortunate |
| 16:25:07 | <Franciman> | is a huge downside |
| 16:25:08 | × | Axma88579 quits (~Axman6@pdpc/supporter/student/Axman6) (Read error: Connection reset by peer) |
| 16:25:10 | <lightwave> | maerwald: I still have to suffer from XML torture... |
| 16:25:14 | <merijn> | Franciman: *that* is not a complaint about the format |
| 16:25:24 | → | Axman6 joins (~Axman6@pdpc/supporter/student/Axman6) |
| 16:25:26 | <Franciman> | well it is a complain about the choices made |
| 16:25:29 | <maerwald> | merijn: it is, because common formats already have all the tools |
| 16:25:36 | <merijn> | Franciman: That's a complaint about the lack of an external parser. Which is valid, but different |
| 16:25:40 | <merijn> | maerwald: Which tools? |
| 16:25:48 | <maerwald> | parsers, formatters, anything |
| 16:25:53 | <dcoutts> | but you don't just want a parser, but all the types for representing the contents |
| 16:25:56 | <merijn> | Franciman: There was no "choice made" to not have an external parser |
| 16:26:01 | <int-e> | merijn: the real complaint I have is about the awkwardness of multi-line text fields (synopsis) |
| 16:26:12 | <merijn> | Franciman: No one has implemented one, therefore there is none |
| 16:26:12 | <maerwald> | schemas, validators |
| 16:26:27 | <merijn> | maerwald: There is a schema and validator it's just in Cabal. |
| 16:26:44 | <Franciman> | fair point, but still |
| 16:26:49 | <merijn> | I'll be the first to say that splitting up Cabal is probably a wise decisions |
| 16:27:21 | <Franciman> | also using a non custom format, implies more support |
| 16:27:23 | <merijn> | But given that all of Cabal and cabal-install is maintained by like 1.5 people, I suggest that if you want things to be better, you start coding this better world |
| 16:27:55 | <int-e> | And I'm really glad that it's not XML. |
| 16:28:08 | <merijn> | tbh, phadej is already performing minor miracles as it is |
| 16:28:25 | <merijn> | Complaining is easy |
| 16:28:44 | <Franciman> | merijn, I'm not complaining, though, I'm discussing |
| 16:28:48 | <Franciman> | not saying cabal sucks |
| 16:28:52 | <Franciman> | or else |
| 16:29:04 | <Franciman> | I said that not using a custom format, could have been easier |
| 16:29:11 | <maerwald> | merijn: cabal development is pretty closed doors afais, for some historical reasons. I'd say that may be one of the reasons it doesn't attract many contributors (apart from the complexity) |
| 16:29:19 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 246 seconds) |
| 16:29:23 | <merijn> | Franciman: Easy to say, 16 (?) years later |
| 16:29:36 | <Franciman> | yes, that's why I'm saying it :P |
| 16:29:47 | <merijn> | maerwald: How so? You get contributor access by simply opening a PR, pretty much >.> |
| 16:30:11 | <Franciman> | I think maerwald means that it is hard to get started at understanding what is going on both now and in the future directions |
| 16:30:15 | <Franciman> | at least that's what I felt |
| 16:30:45 | <int-e> | Franciman: IIRC the state of the art at the time were 1) key=value config files with [sections] and no nesting and 2) XML. |
| 16:30:48 | <maerwald> | merijn: Well, there are some plans about upcoming cabal features, which I was told about *in private* :) |
| 16:31:02 | <maerwald> | And I did not leak them |
| 16:31:07 | <merijn> | Franciman: Development is pretty "I need this driven" |
| 16:31:21 | <int-e> | XML is godawful for writing by hand, and lack of nesting ruled out config files |
| 16:31:29 | <maerwald> | so it seems sharing visions and directions is done behind closed doors in private meetings and conversations |
| 16:31:33 | <lightwave> | More like "I need this yesterday" |
| 16:32:08 | <merijn> | maerwald: Most of the discussions is on IRC in #hackage and/or github issues, tbh |
| 16:32:18 | <maerwald> | merijn: and I think the historical reason is that nix-style builds was in fact *planned* prior to stack, but stack then implemented it first |
| 16:32:37 | <maerwald> | (announced even) |
| 16:32:42 | <merijn> | maerwald: v2 implementation started prior to stack |
| 16:32:48 | <merijn> | (not just planning) |
| 16:32:50 | <maerwald> | yeah |
| 16:32:56 | <Franciman> | int-e, ok right |
| 16:33:04 | <Franciman> | then it seems a forced decision |
| 16:33:17 | <merijn> | maerwald: There's no real "behind closed doors", tbh |
| 16:33:53 | <merijn> | maerwald: It's more "there's no real venue for design discussions at all, and most of the vision is spread by osmosis", I think :p |
| 16:34:29 | <maerwald> | sure, I'm just speculating... hard to verify either theory |
| 16:34:40 | <sm[m]> | Franciman: later hpack came along and made it easy to write cabal files in yaml. Stack integrated this as an option but cabal-install didn't (yet!) |
| 16:34:49 | × | boxscape quits (54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8) (Quit: Ping timeout (120 seconds)) |
| 16:35:01 | <merijn> | maerwald: Well, I like to think I'm keep a close track of cabal development and the occasional patch and *I* don't know of any such venue :p |
| 16:35:03 | <maerwald> | hpack was a good idea, but ppl used it wrong |
| 16:35:12 | <merijn> | sm[m]: It's not happening |
| 16:35:21 | × | Yumasi quits (~guillaume@2a01:e0a:5cb:4430:e1ea:8f38:f518:4e69) (Ping timeout: 272 seconds) |
| 16:35:24 | <dolio> | YAML only helps get you a concrete parse tree, so the hypothetical wider 'support' would probably be a bunch of buggy tools that each implement their own incorrect version of the actual cabal file format. |
| 16:35:45 | <maerwald> | dolio: that's web scale |
| 16:35:51 | <merijn> | dolio: Sure, but no one wants to admit that harsh truth |
| 16:36:01 | <sm[m]> | Re closed doors, it takes extra time and energy to lead things in an open transparent manner, stack has had a bit more of that kind of leadership |
| 16:36:03 | <merijn> | dolio: Everything's just strings! |
| 16:36:19 | → | zaquest joins (~notzaques@5.128.210.178) |
| 16:36:20 | <int-e> | merijn: let's hack something in perl with regular expressions |
| 16:36:20 | × | zaquest quits (~notzaques@5.128.210.178) (Remote host closed the connection) |
| 16:36:30 | <int-e> | (is that redundant?) |
| 16:37:02 | <merijn> | sm[m]: hpack is basically an anti-feature and one of these days I'll get around to writing a bunch of blogs on why >.> |
| 16:37:09 | <dcoutts> | maerwald: what makes you think it's closed world. It's all there on github. Same as everything else. We'd really like more contributors. The problem is the lack of contributors. |
| 16:37:46 | <merijn> | dcoutts: Well, one problem is that there is, afaik, no high level overview of what is roughly where in the codebase |
| 16:37:53 | <maerwald> | dcoutts: open source alone doesn't imply "open development". I make a distinction of those |
| 16:38:04 | <maerwald> | And this is without any judgement |
| 16:38:06 | <merijn> | dcoutts: So every time I do something I spend ages delving through code and bugging phadej if he knows |
| 16:38:32 | <maerwald> | open development can also crash a project (the SVN devs talked about that once) |
| 16:38:50 | <merijn> | dcoutts: Especially the inversion of cabal-install calling into Cabal messes me up every single time |
| 16:40:21 | <maerwald> | (e.g. I consider NixOS too much of open development) |
| 16:40:51 | → | Guest_68 joins (48307fac@72.48.127.172) |
| 16:40:58 | → | neiluj joins (~jco@91-167-203-101.subs.proxad.net) |
| 16:41:49 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 16:42:23 | <dcoutts> | merijn: would something like this be useful, if it were more comprehensive? https://github.com/haskell/cabal/wiki/Source-Guide |
| 16:43:25 | <dcoutts> | merijn: what do you mean by inversion? Confusing that cabal calls into the Cabal lib, or that is runs the Setup.hs exe, or both or? |
| 16:44:13 | <maerwald> | dcoutts: well, one other way I could think of is that big companies allow employees to spend some time on e.g. cabal and get paid for that as well. It happens with GHC, why is cabal a 2nd class citizen here? |
| 16:44:13 | × | alx741 quits (~alx741@186.178.110.235) (Ping timeout: 260 seconds) |
| 16:45:07 | × | Guest_68 quits (48307fac@72.48.127.172) (Remote host closed the connection) |
| 16:45:35 | <dcoutts> | maerwald: do you realise that IOHK does pay for 0.5 FTE on cabal? |
| 16:45:45 | <maerwald> | :o |
| 16:47:52 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 246 seconds) |
| 16:47:58 | <sm[m]> | I did not. Thanks IOHK! |
| 16:48:18 | <maerwald> | Yeah, where's the banner in the README :) |
| 16:48:33 | <sm[m]> | where is that time being spent I wonder. The ghc work has some great monthly reporting |
| 16:48:39 | × | urek quits (~urek@2804:7f1:e10a:9644:2492:fd7b:c739:6641) (Ping timeout: 272 seconds) |
| 16:50:21 | <maerwald> | sm[m]: you just look up the commit history of phadej :p |
| 16:50:27 | <maerwald> | there's no other metric |
| 16:51:11 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 16:51:58 | <sm[m]> | phadej seemed a bit conflicted about working on cabal last time we chatted |
| 16:52:21 | → | ubert1 joins (~Thunderbi@p200300ecdf1e53cfe6b318fffe838f33.dip0.t-ipconnect.de) |
| 16:52:22 | <merijn> | dcoutts: cabal-install parsing everything, then serialising back into strings to pass to Cabal |
| 16:52:22 | × | ubert quits (~Thunderbi@p200300ecdf1e53c9e6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 16:52:23 | ubert1 | is now known as ubert |
| 16:52:32 | <sm[m]> | maybe 1.0 FTE would make a big difference, dunno |
| 16:52:48 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) |
| 16:52:59 | <Uniaika> | merijn: sweet hell |
| 16:52:59 | <merijn> | dcoutts: Ah, I think that was missing when I last hacked on it |
| 16:53:01 | <sm[m]> | Like (I assume) bgamari is a FTE for ghc |
| 16:53:09 | <merijn> | Uniaika: hmm? |
| 16:53:40 | <merijn> | dcoutts: tbh, mostly it's Cabal's option parser that is confusing as fuck |
| 16:53:47 | → | zaquest joins (~notzaques@5.128.210.178) |
| 16:54:02 | <Uniaika> | merijn: the string serialisation between the cli tool and the lib |
| 16:54:03 | <dcoutts> | merijn: cli parser you mean? |
| 16:54:03 | × | zaquest quits (~notzaques@5.128.210.178) (Remote host closed the connection) |
| 16:54:07 | <merijn> | dcoutts: Yeah |
| 16:54:19 | sm[m] | thinks what real world cli parser isn't |
| 16:54:23 | <merijn> | dcoutts: Like, it took me 5+ days to add an option to a command |
| 16:54:32 | <merijn> | sm[m]: Clearly you have not looked at Cabal's |
| 16:55:08 | → | jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb) |
| 16:55:37 | <dcoutts> | merijn: to get rid of the serialsing back to strings, we'd have to eliminate the build-type Custom, and stop invoking Setup.hs scripts as external processes. |
| 16:55:58 | <merijn> | I can't even explain why it's so confusing because my understanding is insufficient to describe it well enough to point it out |
| 16:56:08 | <merijn> | dcoutts: I know *why* it exists |
| 16:56:20 | <merijn> | dcoutts: But tht doesn't make it any easier to work on :p |
| 16:56:36 | <dcoutts> | eliminating build-type custom would make a lot of things easier, but also break a lot of packages |
| 16:56:40 | <dcoutts> | it's quite awkward |
| 16:56:55 | → | alx741 joins (~alx741@186.178.110.235) |
| 16:57:00 | <merijn> | dcoutts: And really, the serialising to strings wouldn't be so bad if Cabal's CLI was understandable by mere mortals without losing their mind like a Lovecraft protagonist ;) |
| 16:58:27 | → | mimagic joins (~mimagic@201.82.37.29) |
| 16:58:31 | → | Ariakenom joins (~Ariakenom@h-98-128-229-53.NA.cust.bahnhof.se) |
| 17:01:28 | → | hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-npckdfwtcapekmuw) |
| 17:04:33 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) (Remote host closed the connection) |
| 17:05:18 | × | jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection) |
| 17:06:00 | → | vicfred joins (~vicfred@unaffiliated/vicfred) |
| 17:08:04 | × | knupfer quits (~Thunderbi@200116b82c9bc0005da51f6efb192e42.dip.versatel-1u1.de) (Ping timeout: 240 seconds) |
| 17:08:31 | × | Codaraxis_ quits (~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Ping timeout: 246 seconds) |
| 17:09:31 | → | geekosaur joins (82659a09@host154-009.vpn.uakron.edu) |
| 17:10:11 | hackage | time-compat 1.9.5 - Compatibility package for time https://hackage.haskell.org/package/time-compat-1.9.5 (phadej) |
| 17:10:17 | → | Codaraxis_ joins (~Codaraxis@ip68-5-90-227.oc.oc.cox.net) |
| 17:10:31 | × | Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
| 17:11:18 | → | DavidEichmann joins (~david@62.110.198.146.dyn.plus.net) |
| 17:14:32 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 17:16:29 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:b861:e4c1:4a1a:c272) |
| 17:16:53 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 17:17:31 | × | kuribas quits (~user@ptr-25vy0i8rcepunzqy0n7.18120a2.ip6.access.telenet.be) (Remote host closed the connection) |
| 17:18:22 | × | Codaraxis_ quits (~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Remote host closed the connection) |
| 17:18:49 | → | Codaraxis_ joins (~Codaraxis@ip68-5-90-227.oc.oc.cox.net) |
| 17:22:31 | → | elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
| 17:23:08 | × | Codaraxis_ quits (~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Remote host closed the connection) |
| 17:23:34 | → | Codaraxis_ joins (~Codaraxis@ip68-5-90-227.oc.oc.cox.net) |
| 17:23:59 | → | falafel_ joins (~falafel@pool-71-182-130-97.pitbpa.fios.verizon.net) |
| 17:24:01 | → | urek joins (~urek@191.32.138.229) |
| 17:24:28 | × | falafel_ quits (~falafel@pool-71-182-130-97.pitbpa.fios.verizon.net) (Remote host closed the connection) |
| 17:25:32 | × | urek quits (~urek@191.32.138.229) (Remote host closed the connection) |
| 17:25:38 | × | xff0x_ quits (~fox@2001:1a81:53bd:d700:34e2:7dfe:e47a:7867) (Ping timeout: 260 seconds) |
| 17:25:59 | → | urek joins (~urek@2804:7f1:e10a:a8d:f425:3992:76ae:78b0) |
| 17:26:16 | → | xff0x_ joins (~fox@2001:1a81:53bd:d700:fbfe:51a:3f37:b15) |
| 17:27:44 | × | Codaraxis_ quits (~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Remote host closed the connection) |
| 17:28:09 | → | Codaraxis_ joins (~Codaraxis@ip68-5-90-227.oc.oc.cox.net) |
| 17:28:36 | × | coot quits (~coot@37.30.53.191.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 17:31:34 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
| 17:31:35 | × | chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
| 17:31:44 | → | chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
| 17:32:17 | → | coot joins (~coot@37.30.53.191.nat.umts.dynamic.t-mobile.pl) |
| 17:32:38 | <koz_> | :t (*>) |
| 17:32:39 | <lambdabot> | Applicative f => f a -> f b -> f b |
| 17:35:33 | → | conal joins (~conal@64.71.133.70) |
| 17:35:55 | → | joaoh82 joins (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) |
| 17:36:04 | × | ubert quits (~Thunderbi@p200300ecdf1e53cfe6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 17:37:19 | <koz_> | :t (>>) |
| 17:37:20 | <lambdabot> | Monad m => m a -> m b -> m b |
| 17:37:24 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 17:37:25 | <koz_> | Today I realized. |
| 17:38:55 | → | gioyik joins (~gioyik@186.112.99.244) |
| 17:39:02 | <merijn> | :p |
| 17:40:07 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:b861:e4c1:4a1a:c272) (Remote host closed the connection) |
| 17:42:40 | → | vfaronov joins (~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru) |
| 17:43:32 | <dsal> | I think >> is in monad of no return |
| 17:43:56 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds) |
| 17:46:48 | × | alp quits (~alp@88.126.45.36) (Ping timeout: 256 seconds) |
| 17:47:05 | × | cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
| 17:47:27 | × | joaoh82 quits (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Remote host closed the connection) |
| 17:47:29 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 17:48:14 | × | coot quits (~coot@37.30.53.191.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 17:51:03 | × | Mrbuck quits (~Mrbuck@gateway/tor-sasl/mrbuck) (Ping timeout: 240 seconds) |
| 17:53:49 | → | pokid joins (~pokid@unaffiliated/pokid) |
| 17:54:50 | → | jamm_ joins (~jamm@unaffiliated/jamm) |
| 17:56:25 | × | urek quits (~urek@2804:7f1:e10a:a8d:f425:3992:76ae:78b0) (Ping timeout: 272 seconds) |
| 17:58:34 | → | urek joins (~urek@179.187.114.53.dynamic.adsl.gvt.net.br) |
| 17:59:04 | × | jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 240 seconds) |
| 18:00:32 | → | Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
| 18:02:14 | × | jneira quits (5127ade4@gateway/web/cgi-irc/kiwiirc.com/ip.81.39.173.228) (Ping timeout: 272 seconds) |
| 18:02:25 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:b861:e4c1:4a1a:c272) |
| 18:05:23 | × | raichoo quits (~raichoo@213.240.178.58) (Quit: Lost terminal) |
| 18:06:52 | <ezzieyguywuf> | glguy: why is the arguement order in Config.Schema.Spec.reqSection' as it is, rather than "reqSection' :: Text -> Text -> ValueSpec a -> SectionSpec a"? it'd seem that flipping the last two would make it easier to describe nested specs in-line |
| 18:07:44 | <glguy> | ezzieyguywuf: because I expected the documentation string to be long and probably on a separate line |
| 18:08:12 | <ezzieyguywuf> | hrm, I see |
| 18:08:41 | <glguy> | ezzieyguywuf: and I try to name the nested things, I haven't built very complicated things to use locally with reqSection |
| 18:08:58 | × | ChaiTRex quits (~ChaiTRex@gateway/tor-sasl/chaitrex) (Remote host closed the connection) |
| 18:09:28 | → | ChaiTRex joins (~ChaiTRex@gateway/tor-sasl/chaitrex) |
| 18:09:44 | <ezzieyguywuf> | glguy: yea, I was just thinking that naming them probably makes the most sense anyway |
| 18:10:52 | → | joaoh82 joins (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) |
| 18:11:01 | → | jneira joins (02896aa1@gateway/web/cgi-irc/kiwiirc.com/ip.2.137.106.161) |
| 18:11:06 | <Franciman> | Hi, do you prefer github or gitlab for contributing to haskell and/or ghc? |
| 18:11:21 | <Franciman> | haskell projects* |
| 18:13:08 | <sm[m]> | ghc uses gitlab, most others use github |
| 18:14:13 | × | gioyik quits (~gioyik@186.112.99.244) (Ping timeout: 265 seconds) |
| 18:14:58 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 18:15:21 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 18:17:57 | <Franciman> | yes I mean what would be your personal preference? |
| 18:18:23 | × | ChaiTRex quits (~ChaiTRex@gateway/tor-sasl/chaitrex) (Ping timeout: 240 seconds) |
| 18:19:45 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds) |
| 18:19:46 | → | ChaiTRex joins (~ChaiTRex@gateway/tor-sasl/chaitrex) |
| 18:20:15 | <jle`> | it will probably depend on what haskell project you want to contribute to |
| 18:20:27 | <jle`> | unless you are asking, if you could decide for other people |
| 18:21:06 | → | pavonia joins (~user@unaffiliated/siracusa) |
| 18:22:36 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds) |
| 18:22:51 | <maerwald> | Franciman: I self-host and use github as an availability mirror |
| 18:22:53 | × | chele quits (~chele@ip5b416ea2.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 18:23:27 | <Franciman> | jle`, if you could decide, yes |
| 18:24:30 | <merijn> | Ideally neither, since those both involve using git ;) |
| 18:24:42 | <Franciman> | :') |
| 18:24:49 | <Franciman> | are you a pijul user? |
| 18:25:02 | <merijn> | It's on my list to play with Soon (TM) |
| 18:25:02 | <Franciman> | or you like exponential merge problems? |
| 18:25:11 | <merijn> | But I wanted to wait until it's out of alpha |
| 18:25:22 | <merijn> | Franciman: I mostly use Mercurial :p |
| 18:25:27 | <Franciman> | i learnt there is some project for darcs 3, can't wait |
| 18:25:33 | <Franciman> | merijn, rly? I found it really hard |
| 18:25:42 | <maerwald> | branches are weird in mercurial |
| 18:25:49 | <merijn> | Franciman: What? It's soo much simpler than git |
| 18:26:00 | <maerwald> | you can't force push your development branch |
| 18:26:03 | <Franciman> | ehe I don't know, I couldn't learn it, but maybe I'll give it another go |
| 18:26:11 | × | xff0x_ quits (~fox@2001:1a81:53bd:d700:fbfe:51a:3f37:b15) (Ping timeout: 272 seconds) |
| 18:26:12 | <merijn> | maerwald: no they're not, you just gotta realised that "named branched" /= "git branches" |
| 18:26:29 | → | xff0x_ joins (~fox@2001:1a81:53bd:d700:8188:2e86:d7e3:d195) |
| 18:26:38 | <merijn> | maerwald: Also, you can force push if you're pushing to a "non-publishing" repo |
| 18:26:50 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 18:26:57 | <merijn> | In fact, the phase distinction and evolve are major reasons why I think mercurial is better than git |
| 18:27:01 | <maerwald> | yeah, I created a PR and wanted to update it... but I couldn't |
| 18:27:04 | <maerwald> | great |
| 18:27:23 | <merijn> | (although I'm currently using Mercurial as user-friendly UI for git) |
| 18:27:51 | <maerwald> | git rebases are awful, but the concept of everything is state is probably easier for most ppl |
| 18:28:06 | <merijn> | Easier than what? |
| 18:28:12 | <maerwald> | everything is a patch |
| 18:28:13 | <Franciman> | i rly like darcs, honestly, but too scared of the exponential merge problem |
| 18:28:34 | <dolio> | Saying something about exponential merges is how you know someone's knowledge about darcs is like 10 years old. |
| 18:28:47 | <Franciman> | dolio, PLZ EXPLAIN SAR |
| 18:28:49 | <Franciman> | are they solved? |
| 18:28:53 | <Franciman> | I mean always |
| 18:28:58 | <Franciman> | can't they happen anymore? |
| 18:29:48 | <Franciman> | I'd read with darcs 2, it got harder to get into exp merges, but they still can happen |
| 18:29:51 | <Franciman> | I'm scared AF |
| 18:30:12 | <dolio> | Did you know Hindley-Milner is double-exponential? |
| 18:30:18 | <Franciman> | I do |
| 18:30:20 | <Franciman> | so what |
| 18:30:30 | <Franciman> | pijul doesn't have exp merges |
| 18:30:57 | <dolio> | Because what matters is whether cases where it happens actually come up. |
| 18:31:07 | <Franciman> | not from the theoretical standpoint |
| 18:31:18 | <Franciman> | it's interesting if you can solve it |
| 18:32:00 | <tomsmeding> | I thought I'd heard that HM is only exponential if the inferred type is also exponentially-sized, but perhaps that's a misunderstanding on my side? |
| 18:32:30 | <dolio> | I think it is unknown whether the only cases are 'large types', but those are the obvious ones. |
| 18:33:10 | <tomsmeding> | because for type checking I think having reasonable complexity in inputsize+outputsize is fine, even if that means it's exponential in just inputsize |
| 18:33:36 | <dolio> | Anyhow, the original statement wasn't that it is 'theoretically interesting' to fix all possible merge problems. It was that you are "scared" of using a tool for practical purposes. |
| 18:33:54 | <tomsmeding> | but ah, if it's unknown then TIL :) |
| 18:34:07 | <Franciman> | dolio, no, I don't use darcs |
| 18:34:08 | → | plakband joins (~plakband@softbank126074182017.bbtec.net) |
| 18:34:09 | <Franciman> | I'm scared of it |
| 18:34:19 | ← | texasmynsted parts (~texasmyns@212.102.44.36) () |
| 18:34:24 | → | texasmynsted joins (~texasmyns@212.102.44.36) |
| 18:34:34 | <Franciman> | because its theory still contemplates the possibility of exp merges |
| 18:34:51 | × | texasmynsted quits (~texasmyns@212.102.44.36) () |
| 18:34:55 | <tomsmeding> | hence dolio's point, do you also not use HM because you're scared of it? |
| 18:34:57 | <Franciman> | I meant from the theoretical point of view |
| 18:35:21 | → | texasmynsted joins (~texasmyns@212.102.44.36) |
| 18:35:35 | <Franciman> | if there were a better solution, yes I would be scared of it |
| 18:36:00 | <geekosaur> | you're not making a whole lot of sense right now |
| 18:36:07 | <Franciman> | why? |
| 18:36:59 | <merijn> | Because, presumably, you *are* using Haskell, despite the type checking being (theoretically) exponential |
| 18:37:14 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 18:37:20 | × | thc202 quits (~thc202@unaffiliated/thc202) (Quit: thc202) |
| 18:37:37 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 18:37:50 | <Franciman> | now that I know, I won't anymore |
| 18:37:52 | <Franciman> | eaz |
| 18:38:08 | <Franciman> | but the question is, is there a better typechecking algorithm? |
| 18:38:23 | <Franciman> | if yes, I shall use it, if not, I shall use Haskell |
| 18:38:29 | <Franciman> | eaz |
| 18:38:40 | <Franciman> | that's the whole point. I see no problem |
| 18:38:42 | → | Sheilong joins (uid293653@gateway/web/irccloud.com/x-ngjtmooaohvreyum) |
| 18:38:45 | <Franciman> | where am I being blind to you? |
| 18:41:32 | <merijn> | The fact that no real Haskell program hits the exponential case |
| 18:41:52 | <merijn> | And similarly, the darcs exponential case only mattters if it occurs during real use, rather than merely hypothetically |
| 18:42:00 | <Franciman> | wait |
| 18:42:19 | <Franciman> | are you saying I should use haskell's typechecker even if there was a better solution? |
| 18:42:26 | <Franciman> | in this case, pijul |
| 18:42:34 | <Franciman> | having a better solution than darcs |
| 18:42:35 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds) |
| 18:43:08 | → | gioyik joins (~gioyik@186.112.99.244) |
| 18:43:23 | <geekosaur> | also ghc doesn't use H-M, it uses System Fc… which if you take one limit off of it is Turing-complete and therefore can be worse than exponential. is this something to be scared of, and if so how do you ever use any programming language? |
| 18:44:02 | <Franciman> | geekosaur, so, if you have a polynomial algorithm for SAT, you'd still use the combinatorial approach |
| 18:44:09 | <Franciman> | because for your problems in practice, it's good enough? |
| 18:44:52 | → | mbomba joins (~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca) |
| 18:44:54 | <merijn> | If it's easier, yes |
| 18:45:10 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 18:45:15 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:b861:e4c1:4a1a:c272) (Remote host closed the connection) |
| 18:45:30 | <Franciman> | I find this cringeworthy |
| 18:45:38 | <Franciman> | I want to always use the fastest solution |
| 18:46:18 | <Franciman> | but ok I can understand |
| 18:46:22 | <Franciman> | it's engineering after all |
| 18:46:35 | <Franciman> | bridges aren't the best solution, but they work |
| 18:46:43 | <Franciman> | capitalism is not the best, but it works |
| 18:46:45 | <sm[m]> | I think your reaction to darcs exponential merge is reasonable since it is always brought up and darcs hasn't really laid the issue to rest.. but just FYI, darcs users don't experience it / have learned usage patterns that avoid it |
| 18:48:09 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 18:48:30 | → | coot joins (~coot@37.30.53.191.nat.umts.dynamic.t-mobile.pl) |
| 18:48:49 | × | toorevitimirp quits (~tooreviti@117.182.181.85) (Remote host closed the connection) |
| 18:49:02 | <sm[m]> | what's better than a bridge btw ? :) |
| 18:49:40 | → | borne joins (~fritjof@200116b864198500f60f2508b10af3d6.dip.versatel-1u1.de) |
| 18:50:42 | <tomsmeding> | 19:45:38 Franciman | I want to always use the fastest solution |
| 18:50:49 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 260 seconds) |
| 18:50:51 | <tomsmeding> | the fastest solution in practice is not always the one with the lowest complexity |
| 18:51:07 | <tomsmeding> | see simplex vs interior point method for linear programming |
| 18:51:41 | <tomsmeding> | also naive/strassen vs the insane theoretical algorithms with n^2.4 complexity or so for matrix multiplication |
| 18:51:57 | <Franciman> | sm[m], I don't know :P |
| 18:52:01 | <Franciman> | I'm not making much sense tonight |
| 18:52:03 | → | conal joins (~conal@64.71.133.70) |
| 18:52:14 | <tomsmeding> | you're battling against pragmatists at the moment :p |
| 18:52:19 | <tomsmeding> | well "battling" |
| 18:52:24 | <tomsmeding> | speaking |
| 18:52:29 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:b861:e4c1:4a1a:c272) |
| 18:52:30 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 18:52:30 | <sm[m]> | transporter beams, isn't it :) |
| 18:53:39 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 18:54:07 | → | alp joins (~alp@2a01:e0a:58b:4920:282f:2d06:cff3:827d) |
| 18:54:34 | <monochrom> | The fallacy is in assuming there is one single "fastest" for all cases. |
| 18:54:46 | <monochrom> | Well, actually, there is, but it is not what you think. |
| 18:54:50 | <Franciman> | eheheheheheheheheheh |
| 18:55:02 | <typetetris> | Why does persistent needs the types in a database schema to be PathPieces, ToHttpApiData, and {From,To}JSON ? |
| 18:55:13 | <tomsmeding> | (correction: ellipsoid method, not interior point method) |
| 18:55:19 | <monochrom> | For example, sorting. Oh let's even confine to comparison-based sorting, none of those radix sort tricks. |
| 18:55:25 | <Franciman> | monochrom, the fallacy is that you don't know what your users are gonna do |
| 18:55:30 | geekosaur | was also going to raise the question of e.g. access vs. modify complexity/time |
| 18:55:44 | <monochrom> | For input sizes below 10 or so, use a handcoded decision tree. |
| 18:55:48 | <Franciman> | perfect solutions don't exist |
| 18:55:48 | <Franciman> | ok |
| 18:55:52 | <geekosaur> | re "always want the fastest" — so, fastest for what? |
| 18:55:53 | <Franciman> | I'll acknowledge |
| 18:56:00 | <Franciman> | I was answering to SAT problems |
| 18:56:03 | <Franciman> | it was a particular case |
| 18:56:22 | <Franciman> | but heh, I unerstand you like Unix more than plan9 because it works fine |
| 18:56:31 | → | Shadorain_ joins (uid453914@gateway/web/irccloud.com/x-zacharxypgsnvrfo) |
| 18:56:33 | <Franciman> | am I right? Are you pursuing that case? |
| 18:56:39 | × | LKoen quits (~LKoen@105.175.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.”) |
| 18:56:43 | <merijn> | no |
| 18:56:55 | <monochrom> | For input sizes between 10 and 1000 or something, use mergesort. For input sizes above 1000 or something, use some variant of quicksort. Or something. |
| 18:57:04 | <merijn> | He's pursuing the case that all live is a complicated multi-objective optimisation with no single "best" solution |
| 18:57:21 | <monochrom> | Generally, do a case analaysis on the input size, then switch to an algorithm optimized for that size range. |
| 18:57:30 | <merijn> | It's trade-offs all the way down, one of which is "how much of my life do I waste on researching this?" |
| 18:57:35 | <Franciman> | not sure I buy it, it just that we are stupid as humankind |
| 18:58:03 | <monochrom> | So, it is not true that "one single algorithm" is the fastest. But it is true that if you switch algorithms based on input size, you can do it. |
| 18:58:13 | <sm[m]> | Franciman: getting back to your q, I think you know but: if contributing to a project I'll use their vcs. If starting a project and I want contributors I'll pick a vcs and hub they'll use. In the past that was darcs for haskell projects but for now it's git and github. If starting a project and only concerned about my convenience it's still git because tools integrate best with it |
| 18:58:13 | <Franciman> | I mean people thought there didn't exist continuous function that are not differentiable, but they exist, in abundance even :P |
| 18:58:15 | <merijn> | Franciman: Here you go: https://homepages.uc.edu/~martinj/Philosophy%20and%20Religion/Arguments%20for%20the%20Existence%20of%20God/Teleology%20&%20Intelligent%20Design/Intelligent%20Design/Wolpert%20No%20Free%20Lunch.pdf |
| 18:58:16 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 240 seconds) |
| 18:58:24 | <monochrom> | But this is never in the minds of people who claim "I want the fastest". |
| 18:58:35 | <merijn> | monochrom: No, even that doesn't work in general |
| 18:58:46 | <Franciman> | I see sm[m], thanks |
| 18:58:48 | <merijn> | monochrom: There are algorithms where implementation choice depends on things other than size |
| 18:58:58 | <monochrom> | Yeah see, that too. |
| 18:59:05 | <Franciman> | lol frameworks |
| 18:59:15 | <Franciman> | merijn, is it from analytic philosophers? |
| 18:59:15 | <monochrom> | IIRC GMP actually does this for multiplication. |
| 18:59:47 | × | danso quits (~dan@69-165-210-185.cable.teksavvy.com) (Quit: WeeChat 2.9) |
| 18:59:47 | <tomsmeding> | it does, it has limits for switching between algorithms that you can tune for your machine if you compile it yourself |
| 18:59:50 | <monochrom> | Below a certain threshold, it doesn't use the FFT algorithm. Because doesn't win there. |
| 19:00:14 | <Franciman> | ok I think I get your point |
| 19:00:30 | <Franciman> | you are right |
| 19:00:46 | <Franciman> | but still, can I say I'd prefer a theory which avoid exponential merges? |
| 19:00:59 | <Franciman> | it's not a problem of darcs or what else |
| 19:01:04 | <Franciman> | but I'd find it neater |
| 19:01:10 | <merijn> | Franciman: Depends, what if the theory that avoid exponential merges is 10x slower for "normal" operations? |
| 19:01:12 | <Franciman> | ok I'm gonna use darcs from now on |
| 19:01:27 | <merijn> | Franciman: Are you willing to accept 10x slowdown on all operations if it guarantees no exponential case? |
| 19:01:30 | <monochrom> | And all this time we have been leaving out: What about programmer's time? Isn't it much more expensive than computer time? |
| 19:01:43 | <Franciman> | merijn, I'd say it dependes, as you have taught me |
| 19:01:48 | <Franciman> | but let me be more precise |
| 19:01:54 | <Franciman> | I prefer pijul's theory to darcs, now |
| 19:01:55 | × | cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 246 seconds) |
| 19:02:01 | × | Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 264 seconds) |
| 19:02:03 | <Franciman> | since it's at least as fast, and avoid exponential merges |
| 19:02:39 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:b861:e4c1:4a1a:c272) (Remote host closed the connection) |
| 19:02:55 | × | berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 272 seconds) |
| 19:03:25 | → | berberman joins (~berberman@unaffiliated/berberman) |
| 19:03:31 | → | iqubic joins (~user@2601:602:9500:4870:55f6:de24:d001:bc51) |
| 19:04:48 | × | kritzefitz quits (~kritzefit@fw-front.credativ.com) (Remote host closed the connection) |
| 19:06:33 | <sm[m]> | Franciman: we're a bit off topic here, but have you used pijul much ? I wonder which operations are still slow with it |
| 19:06:44 | × | phaul quits (~phaul@ruby/staff/phaul) (Remote host closed the connection) |
| 19:06:46 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
| 19:08:32 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 19:08:38 | <Xnuk> | :t (>>>) >>> (>>>) fmap |
| 19:08:40 | <lambdabot> | Functor f => (a1 -> f a2) -> (a2 -> b) -> a1 -> f b |
| 19:08:51 | <Xnuk> | :t let f = (>>>) >>> (>>>) in f fmap |
| 19:08:53 | <lambdabot> | Functor f => (((a -> b) -> c1) -> c2) -> ((f a -> f b) -> c1) -> c2 |
| 19:10:05 | Shadorain_ | is now known as Shadorain |
| 19:10:37 | <Franciman> | sm[m], i tried it |
| 19:10:40 | <Franciman> | it looked ok |
| 19:10:51 | <Franciman> | but i'm mostly basing my judgement on the docs |
| 19:11:21 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 19:12:35 | × | geekosaur quits (82659a09@host154-009.vpn.uakron.edu) (Ping timeout: 245 seconds) |
| 19:12:42 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds) |
| 19:12:56 | × | neiluj quits (~jco@91-167-203-101.subs.proxad.net) (Ping timeout: 256 seconds) |
| 19:14:28 | → | neiluj joins (~jco@91-167-203-101.subs.proxad.net) |
| 19:15:16 | <sm[m]> | #darcs is a good place to discuss deeper, if you didn't know |
| 19:17:07 | × | coot quits (~coot@37.30.53.191.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection) |
| 19:17:19 | × | abhixec quits (~abhixec@c-67-169-141-95.hsd1.ca.comcast.net) (Ping timeout: 246 seconds) |
| 19:17:45 | → | coot joins (~coot@37.30.53.191.nat.umts.dynamic.t-mobile.pl) |
| 19:18:38 | × | jespada quits (~jespada@90.254.245.49) (Quit: Leaving) |
| 19:19:29 | → | abhixec joins (~abhixec@c-67-169-141-95.hsd1.ca.comcast.net) |
| 19:20:49 | × | asthasr quits (~asthasr@162.210.29.120) (Quit: asthasr) |
| 19:21:01 | <typetetris> | Shouldn't ` [mkPersist (sqlSettings {mpsEntityJSON = Nothing})]` prevent persistent from trying to generate `FromJSON` und `ToJSON` instances? Doesn't seem to work for me. |
| 19:22:29 | × | phaul quits (~phaul@ruby/staff/phaul) (Remote host closed the connection) |
| 19:23:03 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 19:26:05 | × | son0p quits (~son0p@181.136.122.143) (Quit: Lost terminal) |
| 19:26:21 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 19:26:37 | → | macrover joins (~macrover@2600:8801:1100:2f14:20e6:98ee:438:fb7c) |
| 19:27:42 | hackage | kubernetes-client 0.3.2.0 - Client library for Kubernetes https://hackage.haskell.org/package/kubernetes-client-0.3.2.0 (axeman) |
| 19:29:06 | × | SupaYoshi quits (~supayoshi@213-10-140-13.fixed.kpn.net) (Quit: Goodbye!) |
| 19:31:03 | → | conal joins (~conal@64.71.133.70) |
| 19:31:32 | → | geekosaur joins (82659a09@host154-009.vpn.uakron.edu) |
| 19:38:03 | × | rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds) |
| 19:40:22 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 256 seconds) |
| 19:40:41 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 19:40:44 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 19:41:27 | → | SupaYoshi joins (~supayoshi@213-10-140-13.fixed.kpn.net) |
| 19:42:46 | <ezzieyguywuf> | neat, coc is pretty nice. |
| 19:42:54 | <ezzieyguywuf> | but so far all the diagnostics it's giving me I also already get from ghcid |
| 19:43:05 | <ezzieyguywuf> | ghcid = life |
| 19:43:09 | × | joaoh82 quits (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Remote host closed the connection) |
| 19:43:27 | × | alp quits (~alp@2a01:e0a:58b:4920:282f:2d06:cff3:827d) (Ping timeout: 272 seconds) |
| 19:43:42 | → | joaoh82 joins (~joaoh82@157-131-134-210.dedicated.static.sonic.net) |
| 19:45:45 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 19:50:18 | ← | pokid parts (~pokid@unaffiliated/pokid) () |
| 19:50:20 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
| 19:51:34 | → | softwarm joins (4408f588@ip68-8-245-136.sd.sd.cox.net) |
| 19:51:53 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 19:52:34 | → | hexfive joins (~hexfive@50-47-142-195.evrt.wa.frontiernet.net) |
| 19:54:13 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Client Quit) |
| 19:57:02 | × | softwarm quits (4408f588@ip68-8-245-136.sd.sd.cox.net) (Remote host closed the connection) |
| 19:58:07 | → | knupfer joins (~Thunderbi@200116b82c9bc000e4e06ffffe2f9d0e.dip.versatel-1u1.de) |
| 19:58:07 | × | knupfer quits (~Thunderbi@200116b82c9bc000e4e06ffffe2f9d0e.dip.versatel-1u1.de) (Client Quit) |
| 19:58:16 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 256 seconds) |
| 19:58:24 | → | knupfer joins (~Thunderbi@87.123.206.78) |
| 19:58:48 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 20:00:30 | → | Deide joins (~Deide@217.155.19.23) |
| 20:00:54 | → | alp joins (~alp@2a01:e0a:58b:4920:c8c1:4453:2d45:c47f) |
| 20:03:03 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:b861:e4c1:4a1a:c272) |
| 20:03:33 | → | conal_ joins (~conal@64.71.133.70) |
| 20:06:08 | → | xcmw joins (~textual@cpe-69-133-55-43.cinci.res.rr.com) |
| 20:08:21 | → | BenSima[m] joins (bensimatim@gateway/shell/matrix.org/x-uoybmhbnttuhdmnm) |
| 20:08:24 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:b861:e4c1:4a1a:c272) (Ping timeout: 240 seconds) |
| 20:09:19 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:b861:e4c1:4a1a:c272) |
| 20:10:31 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 20:14:05 | → | kritzefitz joins (~kritzefit@212.86.56.80) |
| 20:16:32 | → | solonarv joins (~solonarv@astrasbourg-552-1-28-212.w90-13.abo.wanadoo.fr) |
| 20:24:09 | × | abhixec quits (~abhixec@c-67-169-141-95.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
| 20:29:09 | × | SupaYoshi quits (~supayoshi@213-10-140-13.fixed.kpn.net) (Quit: Goodbye!) |
| 20:29:36 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds) |
| 20:32:23 | × | ggole quits (~ggole@2001:8003:8119:7200:1065:53ac:b0e7:6308) (Quit: Leaving) |
| 20:33:09 | → | SupaYoshi joins (~supayoshi@213-10-140-13.fixed.kpn.net) |
| 20:36:07 | × | conal_ quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 20:38:11 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:b861:e4c1:4a1a:c272) (Remote host closed the connection) |
| 20:38:36 | → | conal joins (~conal@64.71.133.70) |
| 20:41:11 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 20:42:01 | → | Lycurgus joins (~niemand@cpe-45-46-137-210.buffalo.res.rr.com) |
| 20:43:01 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 20:47:25 | × | danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds) |
| 20:47:42 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:b861:e4c1:4a1a:c272) |
| 20:48:04 | × | ClaudiusMaximus quits (~claude@unaffiliated/claudiusmaximus) (Quit: ...zzzZZZ) |
| 20:50:00 | → | ddellacosta joins (dd@gateway/vpn/mullvad/ddellacosta) |
| 20:52:25 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 264 seconds) |
| 20:53:53 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 20:57:33 | × | justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 272 seconds) |
| 20:58:57 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 20:59:15 | × | jollygood2 quits (~bc8165ab@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout)) |
| 21:02:19 | × | bcasiello_ quits (~brian@071-088-110-201.res.spectrum.com) (Quit: Leaving) |
| 21:02:53 | → | bcasiello joins (~brian@071-088-110-201.res.spectrum.com) |
| 21:04:12 | × | mimagic quits (~mimagic@201.82.37.29) (Remote host closed the connection) |
| 21:04:19 | → | conal joins (~conal@64.71.133.70) |
| 21:04:32 | → | mimagic joins (~mimagic@201.82.37.29) |
| 21:04:46 | × | plakband quits (~plakband@softbank126074182017.bbtec.net) (Quit: WeeChat 2.9) |
| 21:06:35 | × | okfinesangy quits (~mnrmnaugh@unaffiliated/mnrmnaugh) (Read error: Connection reset by peer) |
| 21:07:09 | × | whataday quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 21:08:15 | → | whataday joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 21:08:37 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 264 seconds) |
| 21:08:46 | × | mimagic quits (~mimagic@201.82.37.29) (Ping timeout: 256 seconds) |
| 21:09:09 | × | whataday quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 21:09:55 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 21:10:16 | → | whataday joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 21:13:24 | × | forcer1 quits (~forcer@185.204.1.185) (Remote host closed the connection) |
| 21:14:25 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 240 seconds) |
| 21:15:11 | hackage | derive-storable-plugin 0.2.3.2 - GHC core plugin supporting the derive-storable package. https://hackage.haskell.org/package/derive-storable-plugin-0.2.3.2 (mkloczko) |
| 21:15:24 | × | alx741 quits (~alx741@186.178.110.235) (Ping timeout: 272 seconds) |
| 21:15:24 | × | urek quits (~urek@179.187.114.53.dynamic.adsl.gvt.net.br) (Ping timeout: 256 seconds) |
| 21:16:10 | × | Shadorain quits (uid453914@gateway/web/irccloud.com/x-zacharxypgsnvrfo) (Quit: Connection closed for inactivity) |
| 21:16:58 | × | xcmw quits (~textual@cpe-69-133-55-43.cinci.res.rr.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 21:18:25 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 21:20:10 | × | whataday quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 21:21:16 | → | whataday joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 21:22:10 | × | whataday quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Read error: Connection reset by peer) |
| 21:23:05 | → | Tops2 joins (~Tobias@dyndsl-095-033-016-243.ewe-ip-backbone.de) |
| 21:23:17 | → | whataday joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 21:23:32 | → | xcmw joins (~textual@cpe-69-133-55-43.cinci.res.rr.com) |
| 21:24:13 | × | conal quits (~conal@64.71.133.70) (Ping timeout: 264 seconds) |
| 21:25:12 | × | knupfer quits (~Thunderbi@87.123.206.78) (Ping timeout: 256 seconds) |
| 21:26:43 | → | conal joins (~conal@64.71.133.70) |
| 21:27:26 | <shinobi_> | How is the List.Sort method only defined for ordinal members? If I have a list of Foos and Foo is not part of the Ord typeclass is the method hidden? |
| 21:27:50 | → | alx741 joins (~alx741@186.178.110.235) |
| 21:28:05 | <geekosaur> | it won't typecheck |
| 21:28:18 | <geekosaur> | if you apply it to a list of Foos |
| 21:28:37 | <glguy> | % data Foos = Foos |
| 21:28:37 | <yahb> | glguy: |
| 21:28:42 | × | benoitj quits (~benoitj@bras-base-mtrlpq3708w-grc-25-76-65-84-134.dsl.bell.ca) (Quit: leaving) |
| 21:28:47 | <glguy> | % :t sort ([] :: [Foos]) |
| 21:28:48 | <yahb> | glguy: ; <interactive>:1:1: error:; * No instance for (Ord Foos) arising from a use of `sort'; * In the expression: sort ([] :: [Foos]) |
| 21:29:56 | <shinobi_> | geekosaur, Understood but the implementation of the List object must state that the sort method can only be used on Ords |
| 21:30:06 | <geekosaur> | :t sort |
| 21:30:09 | <lambdabot> | Ord a => [a] -> [a] |
| 21:30:19 | <solonarv> | the terms you're using indicate some confusion |
| 21:30:23 | <dolio> | What's a list object? |
| 21:30:24 | <geekosaur> | and you sound like you're thinking in terms of OO. stop now, this can only get you in trouble |
| 21:30:44 | × | conal quits (~conal@64.71.133.70) (Client Quit) |
| 21:30:54 | <shinobi_> | geekosaur: I'm trying :) |
| 21:31:17 | <geekosaur> | anyway Ord is not intrinsic to lists, as I showed above with the type of "sort". |
| 21:31:26 | <solonarv> | there is no great big complicated "implementation of the List object", there is simply data List a = Empty | Cons a (List a) (syntax sugar aside) |
| 21:31:27 | <merijn> | shinobi_: "sort" isn't part of "the List object" |
| 21:31:53 | <merijn> | shinobi_: There's no list object, just a list type and the sort function happens to accept inputs that are lists |
| 21:31:56 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds) |
| 21:32:03 | <shinobi_> | ok. 1st. If it's not a class then what would you call it in Haskell? |
| 21:32:04 | → | conal joins (~conal@64.71.133.70) |
| 21:32:06 | <dsal> | :t sort |
| 21:32:08 | <lambdabot> | Ord a => [a] -> [a] |
| 21:32:11 | <shinobi_> | ok |
| 21:32:13 | <dsal> | It's just a function. |
| 21:32:16 | <merijn> | shinobi_: A type or datatype |
| 21:32:29 | <merijn> | And sort is just a function, it's not part of anything |
| 21:32:43 | <geekosaur> | sort is a function that happens to make use of the Ord typeclass. lists are just a data type |
| 21:32:53 | → | Harekiet1 joins (~Harekiet@84.39.117.57) |
| 21:33:33 | × | conal quits (~conal@64.71.133.70) (Client Quit) |
| 21:33:39 | <geekosaur> | Ord is the typeclass for things that can be compared; it requires the Eq typeclass, and provides `compare` and the usual comparison operators aside from `==` and `/=` which come from Eq |
| 21:34:01 | <shinobi_> | ok, so I'm still a little unclear. The list datatype defines a sort function and the typeclass defintion for that function enforces that it is only for Ords? |
| 21:34:21 | → | cosimone joins (~cosimone@93-47-228-249.ip115.fastwebnet.it) |
| 21:34:23 | <jle`> | hm, i wouldn't say that the list datatype defines a sort function |
| 21:34:24 | <iqubic> | No. The list datatype does not define a sort function. |
| 21:34:29 | <merijn> | shinobi_: "the list datatype defines a sort function" <- no |
| 21:34:31 | → | conal joins (~conal@64.71.133.70) |
| 21:34:39 | × | conal quits (~conal@64.71.133.70) (Client Quit) |
| 21:34:40 | <jle`> | functions are just there...they have no owner |
| 21:34:46 | <jle`> | they are 'top-level' things |
| 21:34:47 | <merijn> | Functions aren't tied to types |
| 21:35:29 | → | conal joins (~conal@64.71.133.70) |
| 21:35:32 | <jle`> | sort is a polymorphic function, meaning that you can pick what type you want to use for the 'a' |
| 21:35:36 | → | justanotheruser joins (~justanoth@unaffiliated/justanotheruser) |
| 21:35:37 | <jle`> | kind of like head :: [a] -> a |
| 21:35:46 | <jle`> | so if you pick a for Int, you get head :: [Int] -> Int |
| 21:35:57 | <jle`> | if you pick Bool, you get head :: [Bool] -> Bool, etc. |
| 21:36:09 | <jle`> | a typeclass constraint restricts the types you are allowed to pick for 'a' |
| 21:36:22 | <jle`> | so sort :: Ord a => [a] -> [a], you could pick a is Int and get sort :: [Int] -> [Int] |
| 21:36:41 | <jle`> | but you can't pick a as Foo and get sort :: [Foo] -> [Foo], if Foo doesn't have an Ord instance |
| 21:37:25 | <shinobi_> | I see |
| 21:37:52 | <jle`> | and you can write a function to do something similar, not attached to any data type |
| 21:38:07 | <jle`> | % let myFunc x y = x * y + 3 |
| 21:38:07 | <yahb> | jle`: |
| 21:38:10 | <jle`> | % :t myFunc |
| 21:38:10 | <yahb> | jle`: Num a => a -> a -> a |
| 21:38:24 | <jle`> | myFunc is a polymorphic function so you can pick which 'a' you want to use it with |
| 21:38:32 | <jle`> | i could set a to Int and get myFunc :: Int -> Int -> Int |
| 21:38:50 | <jle`> | but Num a restricts the allowed 'a'; i can't, for instance, use Bool, since Bool has no Num instance |
| 21:38:54 | <jle`> | % myFunc True False |
| 21:38:54 | <yahb> | jle`: ; <interactive>:6:1: error:; * No instance for (Num Bool) arising from a use of `myFunc'; * In the expression: myFunc True False; In an equation for `it': it = myFunc True False |
| 21:39:19 | <jle`> | maybe i used a poor choice of words in saying "for instance", heh |
| 21:39:40 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 21:39:49 | <jle`> | note that it isn't true that "the num datatype defines a myFunc function" |
| 21:39:58 | <jle`> | Num didn't do anything... (it's not even a datatype). i did it :) |
| 21:40:34 | × | L29Ah quits (~L29Ah@unaffiliated/l29ah) (Ping timeout: 260 seconds) |
| 21:42:00 | × | cosimone quits (~cosimone@93-47-228-249.ip115.fastwebnet.it) (Quit: cosimone) |
| 21:43:26 | × | geekosaur quits (82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection) |
| 21:43:51 | <shinobi_> | So would the methods that get imported with import Data.List are "top level" i.e. independent of the List datatype? |
| 21:44:44 | <jle`> | yup |
| 21:45:21 | <jle`> | well, methods has a slightly different meaning in haskell that actually sort of has an interesting twist in this discussion |
| 21:45:34 | <jle`> | sort is not a method, it's just a normal function here |
| 21:45:57 | <jle`> | and Data.List exports functions, but no methods |
| 21:46:27 | <jle`> | one of those functions being 'sort' |
| 21:47:45 | <shinobi_> | Yes, I used the wrong term here. I should have said function. I've not learned about Haskell methods yet. |
| 21:47:57 | <shinobi_> | Thanks |
| 21:47:59 | <merijn> | Because they don't exist :) |
| 21:48:16 | <shinobi_> | scratch that off my list. :) |
| 21:48:17 | <jle`> | haskell has methods, but they mean a little bit different than they do in OOP languages D: |
| 21:48:28 | <jle`> | at least, the word means something different |
| 21:48:31 | <merijn> | jle`: Eh, how so? |
| 21:48:33 | <jle`> | definitions are weird |
| 21:48:49 | <merijn> | You mean typeclasses? I've not heard those described as methods before |
| 21:48:52 | <jle`> | methods things like (==), compare, show |
| 21:48:56 | × | Vulfe_ quits (~vulfe@2600:1702:31b0:34e0:cce9:14da:222:dd1d) (Remote host closed the connection) |
| 21:49:04 | <monochrom> | (==) is a method of Eq. This is the wording in the Haskell Report. |
| 21:49:41 | <jle`> | so there is sort of a wonky analogy between the OOP usage of method and the haskell usage |
| 21:49:45 | <monochrom> | And BTW you also never saw the spelling "type class" because it is in the Haskell Report. |
| 21:50:12 | <jle`> | "typeclasses" contain "methods" which have "instances" (types) |
| 21:50:13 | <merijn> | monochrom: That assumes all of us have *only* read the report :p |
| 21:50:15 | <monochrom> | Basically everything the Haskell Report says, no one has ever seen. |
| 21:50:27 | <merijn> | oh, the reverse |
| 21:50:32 | <merijn> | Reading is hard |
| 21:50:33 | <jle`> | in java, "classes" contain "methods" which have "instances" ('values') |
| 21:50:51 | <jle`> | but i don't think the connection is particularly useful heh |
| 21:50:51 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cce9:14da:222:dd1d) |
| 21:51:19 | <monochrom> | I really have no idea where "typeclass" came from, apart from one day accidentally a German made that typo and everyone thought it was official. |
| 21:51:22 | <jle`> | er, the typeclasses have instances, not the methods |
| 21:51:44 | <jle`> | saves invisible ink :) |
| 21:52:44 | <dsal> | typoclass |
| 21:53:17 | × | nf quits (~n@monade.li) (Quit: Fairfarren.) |
| 21:53:30 | <monochrom> | Here is another one for you. The Haskell Report has wordings like "the Maybe type", "the IO type". |
| 21:53:44 | <glguy> | why is that surprising? |
| 21:54:04 | <monochrom> | In my mind that settles the question "since Maybe :: * -> *, not *, is it still a type?" |
| 21:54:05 | <jle`> | slightly confusing because there is a distinction between 'type' and 'Type' |
| 21:54:20 | → | urek joins (~urek@2804:7f1:e10a:a8d:9d56:f4b3:72da:42fc) |
| 21:54:27 | → | nf joins (~n@monade.li) |
| 21:54:36 | <jle`> | yeah, i feel like it shooouuld be a unanimous thing in haskell that Maybe is considered a type, in the way that True is a value |
| 21:54:39 | <jle`> | er, Just is a value |
| 21:54:51 | <jle`> | but people still argue with me so idk |
| 21:54:53 | <monochrom> | glguy, I don't know about surprising, but I swear to you a lot of people swear that it's wrong. |
| 21:54:58 | <merijn> | monochrom: Was anyone disagreeing with that? Besides people who are wrong >.< |
| 21:54:59 | <jle`> | ^ |
| 21:55:42 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cce9:14da:222:dd1d) (Ping timeout: 260 seconds) |
| 21:55:43 | → | Vulfe_ joins (~vulfe@2600:1702:31b0:34e0:2542:c60f:3a80:283) |
| 21:55:52 | × | pfurla quits (~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 246 seconds) |
| 21:56:36 | <jle`> | back in the day i feel like i got in an argument about this every few weeks |
| 21:58:03 | → | christo joins (~chris@81.96.113.213) |
| 21:58:59 | → | pfurla joins (~pfurla@227.15.195.173.client.static.strong-in52.as13926.net) |
| 21:59:39 | <monochrom> | Well, I guess ever since DataKinds and dependent Haskell, the liberal people have won, i.e., if something has a kind, then it is a type, oh the kind is a little funny, that's OK. |
| 22:00:28 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:b861:e4c1:4a1a:c272) (Remote host closed the connection) |
| 22:00:38 | × | Vulfe_ quits (~vulfe@2600:1702:31b0:34e0:2542:c60f:3a80:283) (Ping timeout: 264 seconds) |
| 22:01:01 | <monochrom> | But really, before that, in the old days, the conservative people were very vocal and influential in "Maybe is a type constructor, not a type" or "a type function, not a type". |
| 22:01:09 | <merijn> | monochrom: I will acknowledge the existence of TypeInType over my dead body >.< |
| 22:01:17 | <merijn> | Madness, madness, I say! |
| 22:01:32 | <monochrom> | Fortunately the "type constructor" camp and the "type function" camp also had much in-fighting. That's good for the rest of us. |
| 22:01:41 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 22:02:04 | → | britva joins (~britva@2a02:aa13:7240:2980:c416:eb6b:963d:a119) |
| 22:02:09 | <merijn> | monochrom: Well it is a type constructor, however that doesn't mean it isn't also a type. That's like saying "id" is a function, sure, but it's also a value |
| 22:03:30 | × | Franciman quits (~franko@host-212-171-88-43.retail.telecomitalia.it) (Ping timeout: 256 seconds) |
| 22:04:07 | <monochrom> | I have a cunning plan! I never liked the name "Type". What do you think of "Valuable"? Integer :: Valuable. |
| 22:04:22 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:b861:e4c1:4a1a:c272) |
| 22:04:33 | <jle`> | M.lookup monochomArgument |
| 22:04:39 | <jle`> | => "What about Void?" |
| 22:04:57 | <jle`> | * M.lookup monochromArgument pedanticNonsense |
| 22:05:07 | → | Franciman joins (~franko@host-212-171-88-43.retail.telecomitalia.it) |
| 22:05:25 | → | L29Ah joins (~L29Ah@unaffiliated/l29ah) |
| 22:05:36 | <monochrom> | We accept bottom as a value. That covers Void. The thing is non-Type types don't even have bottom. |
| 22:05:45 | <jle`> | to be clear the idea is that "What about Void" is the pedantic nonsense in response to your valid idea :) |
| 22:06:11 | <jle`> | ah yeah, haskell's bottom |
| 22:06:47 | <jle`> | how about type * = FullySaturatedTypeConstructor |
| 22:06:55 | <dolio> | How about: who gives a shit? |
| 22:07:23 | → | cosimone joins (~cosimone@93-47-228-249.ip115.fastwebnet.it) |
| 22:07:23 | <jle`> | clearly it is our favorite thing to be talking about on a friday night :) |
| 22:07:29 | → | delYsid joins (~user@vra-173-158.tugraz.at) |
| 22:09:02 | × | cosimone quits (~cosimone@93-47-228-249.ip115.fastwebnet.it) (Client Quit) |
| 22:12:26 | → | cosimone joins (~cosimone@93-47-228-249.ip115.fastwebnet.it) |
| 22:13:38 | × | britva quits (~britva@2a02:aa13:7240:2980:c416:eb6b:963d:a119) (Quit: This computer has gone to sleep) |
| 22:14:37 | × | Lycurgus quits (~niemand@cpe-45-46-137-210.buffalo.res.rr.com) (Quit: Exeunt) |
| 22:15:27 | × | alp quits (~alp@2a01:e0a:58b:4920:c8c1:4453:2d45:c47f) (Ping timeout: 272 seconds) |
| 22:15:41 | → | britva joins (~britva@2a02:aa13:7240:2980:c416:eb6b:963d:a119) |
| 22:15:50 | × | vfaronov quits (~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru) (Quit: vfaronov) |
| 22:19:53 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 22:21:08 | → | alp joins (~alp@88.126.45.36) |
| 22:22:08 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:2542:c60f:3a80:283) |
| 22:23:36 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 22:24:00 | × | nf quits (~n@monade.li) (Quit: Fairfarren.) |
| 22:25:16 | → | nf joins (~n@monade.li) |
| 22:26:17 | → | joaoh82_ joins (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) |
| 22:27:33 | <texasmynsted> | I am sure I used an online repl for haskell where I could turn on vim key bindings. Can't find it. |
| 22:27:56 | × | pfurla quits (~pfurla@227.15.195.173.client.static.strong-in52.as13926.net) (Ping timeout: 240 seconds) |
| 22:28:01 | × | neiluj quits (~jco@91-167-203-101.subs.proxad.net) (Quit: leaving) |
| 22:28:27 | <texasmynsted> | anybody recall this? |
| 22:28:32 | <monochrom> | repl.it |
| 22:28:52 | <monochrom> | I don't know about vim key bindings. |
| 22:28:53 | → | z0 joins (~z0@188.251.84.254) |
| 22:29:03 | × | xcmw quits (~textual@cpe-69-133-55-43.cinci.res.rr.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 22:29:17 | z0 | is now known as Guest41303 |
| 22:29:47 | <Guest41303> | what's the syntax for binary literals? ghci is giving me an error on 0b10 |
| 22:29:57 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:2542:c60f:3a80:283) (Remote host closed the connection) |
| 22:30:46 | × | joaoh82 quits (~joaoh82@157-131-134-210.dedicated.static.sonic.net) (Ping timeout: 272 seconds) |
| 22:30:58 | → | pfurla joins (~pfurla@ool-182ed2e2.dyn.optonline.net) |
| 22:31:06 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:2542:c60f:3a80:283) |
| 22:31:16 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:2542:c60f:3a80:283) (Remote host closed the connection) |
| 22:31:37 | → | timCF joins (~i.tkachuk@m91-129-106-3.cust.tele2.ee) |
| 22:31:38 | <monochrom> | You need to turn on the relevant extension. |
| 22:31:40 | → | conal joins (~conal@64.71.133.70) |
| 22:31:47 | <monochrom> | It's all in the GHC user's guide. What does it say? |
| 22:31:54 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:2542:c60f:3a80:283) |
| 22:32:41 | <timCF> | Hello guys! Can anybody help me with small example of Haskell code? https://gist.github.com/tim2CF/221616992d89d9ef458df8080bfa4a28 |
| 22:34:03 | → | xcmw joins (~textual@cpe-69-133-55-43.cinci.res.rr.com) |
| 22:34:06 | × | zzz quits (~zzz@46.101.134.251) (Ping timeout: 256 seconds) |
| 22:34:30 | → | zzz joins (~zzz@2a03:b0c0:3:d0::3095:3001) |
| 22:34:40 | × | qwfpluykh quits (2e050550@HSI-KBW-046-005-005-080.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 245 seconds) |
| 22:34:42 | × | kritzefitz quits (~kritzefit@212.86.56.80) (Remote host closed the connection) |
| 22:35:22 | <monochrom> | timCF, my advice is don't bother constraining b, at least for now. |
| 22:35:33 | <monochrom> | Premature design constraint or something. |
| 22:36:14 | <monochrom> | After you have fleshed out some actual operations on Money, then maybe it will become clear how much you need to constrain b, and by what mechanism. |
| 22:36:59 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:2542:c60f:3a80:283) (Ping timeout: 272 seconds) |
| 22:37:06 | <monochrom> | If you only have a type, no operations, basically the type is meaningless. The real meaning is always in the functions that operate on that type. Programmers keep forgetting this. |
| 22:38:15 | <timCF> | monochrom: Well, it's just simple example :) In real life these types are implementing a bunch of classes |
| 22:39:24 | × | Franciman quits (~franko@host-212-171-88-43.retail.telecomitalia.it) (Quit: Leaving) |
| 22:39:39 | <timCF> | I just simplified it to understand is it possible in principle to do such type constraints - not just `b` but only some of given types |
| 22:41:12 | × | xff0x_ quits (~fox@2001:1a81:53bd:d700:8188:2e86:d7e3:d195) (Ping timeout: 260 seconds) |
| 22:41:48 | → | xff0x_ joins (~fox@2001:1a81:53bd:d700:a2a1:7119:15d0:7c3f) |
| 22:41:56 | <monochrom> | I'll tell you a story. In this story, I was on the receiving end of the advice I give you today. |
| 22:42:42 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:2542:c60f:3a80:283) |
| 22:42:42 | <monochrom> | I had a function, I only intended to allow the user to use it on Integer, it's f :: Integer -> [Integer], f x = [x, x, x]. Or something like that. |
| 22:42:48 | → | rprije joins (~rprije@14-201-170-17.tpgi.com.au) |
| 22:43:03 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:2542:c60f:3a80:283) (Remote host closed the connection) |
| 22:43:08 | <monochrom> | An expert saw that and pointed out why not a -> [a]. |
| 22:43:10 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:2542:c60f:3a80:283) |
| 22:43:29 | <monochrom> | I replied I wanted to restrict its use case, the user should only use it on Integer. |
| 22:43:40 | <monochrom> | The expert pointed out a greater lesson. |
| 22:44:24 | <monochrom> | The type a->[a] gives the user a much stronger assurance than the type Integer->[Integer]. Equivalently and flipsidely, it gives me much fewer room for bugs. |
| 22:44:59 | <monochrom> | If my intention is "I turn one number ot a list of numbers, but all those numbers are the same, in fact the same as the input number" |
| 22:45:23 | <monochrom> | a->[a] assures that. Integer->[Integer] doesn't. |
| 22:45:46 | <monochrom> | By leaving b unconstrained, you may actually be doing yourself and your users a great service. |
| 22:45:46 | → | geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
| 22:46:46 | <hpc> | for optimally bug-free code, use the type signature a -> b |
| 22:46:54 | <monochrom> | haha |
| 22:47:01 | × | p8m quits (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 264 seconds) |
| 22:47:12 | <monochrom> | that probably is also liveness-free |
| 22:47:30 | <timCF> | input -> output |
| 22:47:52 | <timCF> | but thanks for advice |
| 22:48:07 | <texasmynsted> | hmm maybe not repl.it unless I get different results if I create an account |
| 22:49:08 | <monochrom> | ah, maybe code world? |
| 22:49:25 | → | p8m joins (p8m@gateway/vpn/protonvpn/p8m) |
| 22:49:28 | <monochrom> | nah, code world uses its own language, not exactly Haskell |
| 22:49:31 | <texasmynsted> | Is there a nice tutorial for converting String based code to Text? Example: https://gist.github.com/mmynsted/7831dbd552c1f874143c0e0d5807a4c8 |
| 22:50:24 | <monochrom> | No. It's just conceptually easy, time consuming chore. E.g., change "take" to "T.take" |
| 22:50:42 | <texasmynsted> | I did and ... splode with errors |
| 22:51:01 | <hpc> | easy, just fix the errors :D |
| 22:51:28 | <sm[m]> | texasmynsted: change one small piece at a time |
| 22:52:06 | <sm[m]> | sprinkle T.[un]pack as needed |
| 22:52:11 | <hpc> | usuallly that means you've just missed some places |
| 22:52:41 | hackage | postgresql-tx 0.2.0.0 - A safe transaction monad for use with various PostgreSQL Haskell libraries. https://hackage.haskell.org/package/postgresql-tx-0.2.0.0 (carymrobbins) |
| 22:53:46 | <monochrom> | OK, I misread, you have [Text], you're doing take on that, that's still []'s take. |
| 22:54:07 | <monochrom> | This one you're just missing Data.Text.IO.putStrLn |
| 22:54:11 | hackage | postgresql-tx-monad-logger 0.2.0.0 - postgresql-tx interfacing for use with monad-logger. https://hackage.haskell.org/package/postgresql-tx-monad-logger-0.2.0.0 (carymrobbins) |
| 22:54:39 | × | fendor_ quits (~fendor@178.115.130.110.wireless.dyn.drei.com) (Remote host closed the connection) |
| 22:54:57 | <monochrom> | Oh, and f::Int->Text |
| 22:55:44 | × | borne quits (~fritjof@200116b864198500f60f2508b10af3d6.dip.versatel-1u1.de) (Ping timeout: 240 seconds) |
| 22:57:00 | <monochrom> | left my comment (really code) on that. |
| 22:57:58 | → | borne joins (~fritjof@200116b864198500f60f2508b10af3d6.dip.versatel-1u1.de) |
| 22:58:00 | <monochrom> | Doesn't my avatar look monochrome? :) |
| 22:58:04 | → | mimagic joins (~mimagic@201.82.37.29) |
| 22:58:06 | <texasmynsted> | okay |
| 22:58:43 | <texasmynsted> | I really did miss a bunch of stuff by not just fixing one thing at a time |
| 22:58:44 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 22:59:17 | <texasmynsted> | I did not see the fact that I should be using the take from list. I think that will help |
| 22:59:23 | → | Tario joins (~Tario@201.192.165.173) |
| 22:59:45 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
| 23:00:12 | <texasmynsted> | Pulling the x and y from the where makes it easier for me to see the actual types because I can have a full type sig |
| 23:01:36 | × | elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving) |
| 23:01:59 | → | p8m_ joins (p8m@gateway/vpn/protonvpn/p8m) |
| 23:03:04 | × | geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 272 seconds) |
| 23:03:31 | × | bitmapper quits (uid464869@gateway/web/irccloud.com/x-hhucsrtimygjrzko) (Quit: Connection closed for inactivity) |
| 23:04:25 | × | p8m quits (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 264 seconds) |
| 23:07:35 | <texasmynsted> | oh treblacy, sorry I did not see your comment in there |
| 23:10:38 | <texasmynsted> | :-) Okay thank you all. |
| 23:10:50 | × | ericsagnes quits (~ericsagne@2405:6580:0:5100:2a4b:4c53:e4dc:e61e) (Ping timeout: 264 seconds) |
| 23:13:35 | <texasmynsted> | oh yeah monochrom, I did not know that was you |
| 23:13:40 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 23:13:47 | × | tromp_ quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
| 23:13:49 | <texasmynsted> | yes, nice avatar |
| 23:14:47 | → | conal joins (~conal@64.71.133.70) |
| 23:14:47 | × | conal quits (~conal@64.71.133.70) (Client Quit) |
| 23:16:53 | × | borne quits (~fritjof@200116b864198500f60f2508b10af3d6.dip.versatel-1u1.de) (Ping timeout: 272 seconds) |
| 23:17:39 | × | gioyik quits (~gioyik@186.112.99.244) (Quit: WeeChat 3.0) |
| 23:17:41 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:2542:c60f:3a80:283) (Remote host closed the connection) |
| 23:18:47 | × | bcasiello quits (~brian@071-088-110-201.res.spectrum.com) (Quit: Leaving) |
| 23:19:01 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:2542:c60f:3a80:283) |
| 23:19:09 | <texasmynsted> | snap, now here are more books I need/want to read http://www.vex.net/~trebla/weblog/fpbooks.xhtml |
| 23:19:20 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 23:19:23 | <monochrom> | haha |
| 23:19:37 | → | conal joins (~conal@64.71.133.70) |
| 23:20:10 | × | bliminse quits (~bliminse@host86-134-63-68.range86-134.btcentralplus.com) (Ping timeout: 265 seconds) |
| 23:20:15 | × | dhouthoo quits (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) (Quit: WeeChat 2.9) |
| 23:20:34 | → | bliminse joins (~bliminse@host86-134-63-68.range86-134.btcentralplus.com) |
| 23:20:54 | × | mbomba quits (~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca) (Quit: WeeChat 3.0) |
| 23:21:30 | <texasmynsted> | Oooh. The Algebra of Programming. That one is near unobtainable |
| 23:21:49 | × | hyperisco quits (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 264 seconds) |
| 23:22:45 | → | ericsagnes joins (~ericsagne@2405:6580:0:5100:cd57:3434:c0d0:b946) |
| 23:23:35 | <Rembane> | Is that Knuth's? |
| 23:23:55 | <monochrom> | Richard Bird and Oege de Moor |
| 23:24:02 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:2542:c60f:3a80:283) (Ping timeout: 264 seconds) |
| 23:25:03 | <Rembane> | Thank you |
| 23:27:05 | → | borne joins (~fritjof@200116b864198500f60f2508b10af3d6.dip.versatel-1u1.de) |
| 23:27:30 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 23:28:11 | × | sondr3 quits (~sondr3@cm-84.211.56.132.getinternet.no) (Quit: Leaving) |
| 23:29:37 | × | Tops2 quits (~Tobias@dyndsl-095-033-016-243.ewe-ip-backbone.de) (Quit: Leaving.) |
| 23:30:17 | → | Tops2 joins (~Tobias@dyndsl-095-033-016-243.ewe-ip-backbone.de) |
| 23:32:50 | <dsal> | I found last night that Text is not Foldable and that made me a little sad. |
| 23:35:18 | <texasmynsted> | it is not? Is it because of unicode or something? |
| 23:35:20 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 23:35:31 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:2542:c60f:3a80:283) |
| 23:35:56 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 23:36:09 | <texasmynsted> | The Algebra of Programming needs to be re-printed so I can get a copy. Heh |
| 23:37:25 | <texasmynsted> | I could try ILL (Inter-library-loan) but most often when I do that I find that I really really want the book. Hehe |
| 23:37:58 | × | britva quits (~britva@2a02:aa13:7240:2980:c416:eb6b:963d:a119) (Quit: This computer has gone to sleep) |
| 23:38:07 | × | Deide quits (~Deide@217.155.19.23) (Quit: Seeee yaaaa) |
| 23:38:33 | → | Tops21 joins (~Tobias@dyndsl-095-033-016-243.ewe-ip-backbone.de) |
| 23:40:07 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:2542:c60f:3a80:283) (Ping timeout: 260 seconds) |
| 23:41:04 | → | Tops22 joins (~Tobias@dyndsl-095-033-016-243.ewe-ip-backbone.de) |
| 23:41:41 | <Guest41303> | is there any reason why elem is conventionally used as infix? |
| 23:41:56 | × | Tops2 quits (~Tobias@dyndsl-095-033-016-243.ewe-ip-backbone.de) (Ping timeout: 240 seconds) |
| 23:42:22 | <Guest41303> | to the point of hlint even suggesting it |
| 23:44:22 | × | Tops21 quits (~Tobias@dyndsl-095-033-016-243.ewe-ip-backbone.de) (Ping timeout: 246 seconds) |
| 23:44:33 | × | Aquazi quits (uid312403@gateway/web/irccloud.com/x-pvpfqehhiksirdcj) (Quit: Connection closed for inactivity) |
| 23:44:48 | × | cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving) |
| 23:45:18 | <dolio> | x ∈ X |
| 23:46:39 | <Guest41303> | fair |
| 23:46:47 | → | p-core joins (~Thunderbi@cst-prg-99-198.cust.vodafone.cz) |
| 23:47:15 | → | Tops2 joins (~Tobias@dyndsl-095-033-016-243.ewe-ip-backbone.de) |
| 23:49:07 | × | Guest41303 quits (~z0@188.251.84.254) (Quit: Lost terminal) |
| 23:49:12 | → | Tops21 joins (~Tobias@dyndsl-095-033-016-243.ewe-ip-backbone.de) |
| 23:50:02 | × | AndreasK quits (uid320732@gateway/web/irccloud.com/x-mmzfigialnrtkzrf) (Quit: Connection closed for inactivity) |
| 23:50:50 | × | Tops22 quits (~Tobias@dyndsl-095-033-016-243.ewe-ip-backbone.de) (Ping timeout: 256 seconds) |
| 23:52:22 | × | Tops2 quits (~Tobias@dyndsl-095-033-016-243.ewe-ip-backbone.de) (Ping timeout: 256 seconds) |
| 23:53:04 | <glguy> | > 0 `elem` 1 : 2 : 3 : [] |
| 23:53:07 | <lambdabot> | False |
| 23:54:11 | <monochrom> | texasmynsted: Text is not Foldable because it is not a polymorphic type like [] and Vector. But there is a monofoldable library for these cases. |
| 23:55:19 | × | joaoh82_ quits (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Remote host closed the connection) |
| 23:55:26 | → | hekkaidekapus_ joins (~tchouri@gateway/tor-sasl/hekkaidekapus) |
| 23:55:37 | → | joaoh82 joins (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) |
| 23:55:41 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:2542:c60f:3a80:283) |
| 23:55:43 | <texasmynsted> | oh that makes sense |
| 23:56:07 | × | joaoh82 quits (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Remote host closed the connection) |
| 23:56:27 | <shinobi_> | If you are creating submodules and are using common helper functions that are not going to be exported, where do you put them? In a separate "common" submodule? A parent module? |
| 23:56:43 | × | hekkaidekapus quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds) |
| 23:57:10 | <dsal> | If they're not exported, you put them where you need them. |
| 23:57:18 | <sm[m]> | I tend to make a Common module in the same directory |
| 23:57:23 | × | jb55 quits (~jb55@gateway/tor-sasl/jb55) (Ping timeout: 240 seconds) |
| 23:57:50 | → | joaoh82 joins (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) |
| 23:59:44 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:2542:c60f:3a80:283) (Ping timeout: 240 seconds) |
All times are in UTC on 2020-12-04.