2020-12-31 00:01:13 +0100 | <tdammers> | justsomeguy: concrete use case: I have a wrapper around mlocked memory for storing crypto secrets (mlocking means the memory is locked into a fixed location in physical RAM and will not be swapped out or moved elsewhere, which is tremendously useful, because it means you can't accidentally leak those secrets to the swap disk or to unallocated memory) |
2020-12-31 00:01:43 +0100 | <tdammers> | for that to work, though, I need to also make sure that before I munlock that RAM, it gets wiped, so that I don't leave secrets lingering around in unallocated RAM |
2020-12-31 00:02:11 +0100 | <dsal> | merijn: Do you have an example of nested optparse-applicative subparsers? |
2020-12-31 00:02:26 +0100 | <tdammers> | so I need to have a way of saying "hey look, I have this reference here, but I want it erased now", and from that point on, the memory is no longer usefully accessible |
2020-12-31 00:02:40 +0100 | <Athas> | tdammers: you could also do that with an ST-style monad design, right? |
2020-12-31 00:02:46 +0100 | <tdammers> | well yes, sort of |
2020-12-31 00:02:54 +0100 | <Athas> | I'm not saying it wouldn't be more clumsy. |
2020-12-31 00:03:04 +0100 | <merijn> | dsal: Eh, yes...but I wrote bunch of wrapper code to hide it away, so, eh, also no? :P |
2020-12-31 00:03:11 +0100 | <tdammers> | there is a problem though |
2020-12-31 00:03:29 +0100 | <dsal> | merijn: Heh. OK. I'll figure out what I'm doing here. |
2020-12-31 00:03:32 +0100 | <merijn> | You can try and reverse engineer it from the wrapper code :p |
2020-12-31 00:03:35 +0100 | <tdammers> | we can do the deterministic cleanup, and we can mark the reference as "useless"; but this information isn't tracked at the type level |
2020-12-31 00:03:51 +0100 | <tdammers> | that is, to the type checker, a "live" reference looks the same as a "useless" reference |
2020-12-31 00:04:00 +0100 | <merijn> | dsal: https://github.com/merijn/Belewitte/blob/master/benchmark-analysis/src/Commands.hs |
2020-12-31 00:04:39 +0100 | <merijn> | dsal: Conveniently, there's a datatype that corresponds to commands with and without subcommands, so you just gotta follow the logic for implementing each in that file :p |
2020-12-31 00:05:07 +0100 | <dsal> | Thanks. I think the thing I'm doing right now doesn't actually need that, but I kind of want to understand it better. |
2020-12-31 00:05:22 +0100 | <tdammers> | we can approximate linear types with singletons and an effect system modelled with type-level sets, but it's incredibly baroque, still kind of awkward, and not even foolproof |
2020-12-31 00:07:21 +0100 | <Athas> | I expect that the RHS of many linear functions start with unsafePerformIO. |
2020-12-31 00:08:26 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:2994:ee4e:2fd6:b5cb) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-12-31 00:08:41 +0100 | mastarija | (~mastarija@93-136-141-206.adsl.net.t-com.hr) (Quit: Leaving) |
2020-12-31 00:08:55 +0100 | vicfred | (vicfred@gateway/vpn/mullvad/vicfred) |
2020-12-31 00:09:28 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
2020-12-31 00:09:49 +0100 | <monochrom> | :) |
2020-12-31 00:10:24 +0100 | <tdammers> | yup |
2020-12-31 00:10:25 +0100 | crblmr | (~carbolyme@matrix.dropacid.net) (Ping timeout: 264 seconds) |
2020-12-31 00:12:28 +0100 | crblmr | (~carbolyme@matrix.dropacid.net) |
2020-12-31 00:18:41 +0100 | b4er | (~b5er_@91.193.4.138) (Ping timeout: 265 seconds) |
2020-12-31 00:20:22 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2020-12-31 00:21:27 +0100 | Gurkenglas | (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 256 seconds) |
2020-12-31 00:23:35 +0100 | loller_ | (uid358106@gateway/web/irccloud.com/x-etlpbnyndplofboo) |
2020-12-31 00:24:00 +0100 | Mikagami | (~MOSCOS@122.54.107.175) (Remote host closed the connection) |
2020-12-31 00:24:24 +0100 | Mikagami | (~MOSCOS@122.54.107.175) |
2020-12-31 00:25:39 +0100 | ddellacosta | (dd@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 260 seconds) |
2020-12-31 00:27:20 +0100 | chang | (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) |
2020-12-31 00:32:56 +0100 | worc3131 | (~quassel@cpc88896-oxfd27-2-0-cust200.4-3.cable.virginm.net) (Ping timeout: 256 seconds) |
2020-12-31 00:34:07 +0100 | frankdma` | frankdmartinez |
2020-12-31 00:34:59 +0100 | hexfive | (~hexfive@50-47-142-195.evrt.wa.frontiernet.net) |
2020-12-31 00:35:03 +0100 | hexfive | (~hexfive@50-47-142-195.evrt.wa.frontiernet.net) (Client Quit) |
2020-12-31 00:37:44 +0100 | chang | (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-12-31 00:38:26 +0100 | myname_ | (~sevenk@64.85.149.202) |
2020-12-31 00:38:34 +0100 | <myname_> | hello |
2020-12-31 00:38:50 +0100 | ces | (~ces@fsf/member/ces) (Quit: WeeChat 3.0) |
2020-12-31 00:39:15 +0100 | myname_ | (~sevenk@64.85.149.202) (Client Quit) |
2020-12-31 00:39:46 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
2020-12-31 00:40:18 +0100 | seventhousand | (~sevenk@64.85.149.202) |
2020-12-31 00:40:28 +0100 | Melanie_ | (~Melanie@192-0-134-138.cpe.teksavvy.com) (Quit: leaving) |
2020-12-31 00:40:59 +0100 | nbloomf | (~nbloomf@76.217.43.73) |
2020-12-31 00:41:02 +0100 | nbloomf | (~nbloomf@76.217.43.73) (Client Quit) |
2020-12-31 00:41:29 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2020-12-31 00:45:39 +0100 | t3xp4t | (~texinwien@213162073014.public.t-mobile.at) (Remote host closed the connection) |
2020-12-31 00:45:41 +0100 | MOSCOS | (~MOSCOS@152.32.70.55) |
2020-12-31 00:46:00 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2020-12-31 00:46:07 +0100 | Tario | (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
2020-12-31 00:46:22 +0100 | Tario | (~Tario@201.192.165.173) |
2020-12-31 00:46:48 +0100 | kuribas | (~user@ptr-25vy0i8109xerw15t0a.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
2020-12-31 00:46:58 +0100 | t3xp4t | (~texinwien@213162073014.public.t-mobile.at) |
2020-12-31 00:47:11 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer) |
2020-12-31 00:47:14 +0100 | <Squarism> | i never tried the optics library. I heard it has less dependencies than lens which would fit my ghcjs app well. Do you recommend switching? |
2020-12-31 00:47:25 +0100 | <frankdmartinez> | Is there a way to make an alias for `<*>`? I can do `let myMap = map` and `let myPure = pure`. What I try to do `let appliedTo = <*>`, I get a message: "parse error on input ‘<*>’". |
2020-12-31 00:47:36 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2020-12-31 00:49:26 +0100 | Mikagami | (~MOSCOS@122.54.107.175) (Ping timeout: 272 seconds) |
2020-12-31 00:49:53 +0100 | Mikagami | (~MOSCOS@122.54.107.175) |
2020-12-31 00:50:45 +0100 | MOSCOS | (~MOSCOS@152.32.70.55) (Ping timeout: 240 seconds) |
2020-12-31 00:51:16 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2020-12-31 00:51:19 +0100 | dfeuer | (~dfeuer@pool-108-18-223-60.washdc.fios.verizon.net) (Ping timeout: 260 seconds) |
2020-12-31 00:51:45 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds) |
2020-12-31 00:53:13 +0100 | <ephemient> | wrap infix operators in parentheses to make it an expression without applying it to args, e.g. `let appliedTo = (<*>)` |
2020-12-31 00:53:48 +0100 | <dsal> | Squarism: there's also microlens. optics is a bit of a different style. |
2020-12-31 00:54:15 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving) |
2020-12-31 00:54:28 +0100 | <frankdmartinez> | ephemient: Of course! How silly of me! Thank you! |
2020-12-31 00:55:10 +0100 | <Squarism> | dsal, oh ok. |
2020-12-31 00:55:10 +0100 | <monochrom> | Furthermore, "(!!!!!) = (<*>)" if you want a symbolic alias. |
2020-12-31 00:55:36 +0100 | <frankdmartinez> | BTW, is it fair to say, since `<*>` is canonically pronounced "applied over", is it correct to say `<$>` is pronounced "mapped over"? |
2020-12-31 00:55:59 +0100 | <dsal> | I've never heard either pronounced. heh |
2020-12-31 00:56:04 +0100 | <frankdmartinez> | monochrom: Wait, what? |
2020-12-31 00:56:05 +0100 | <monochrom> | I skip the "over" and the "ed". app, fmap. |
2020-12-31 00:56:50 +0100 | <frankdmartinez> | dsal: I am taking https://wiki.haskell.org/Pronunciation as "canon" in this case. |
2020-12-31 00:57:00 +0100 | <monochrom> | > let (!!!!!) = (<*>) in [sin, cos] !!!!! [0, pi/2] |
2020-12-31 00:57:03 +0100 | <ephemient> | `ap = (<*>)` (for Monads) |
2020-12-31 00:57:03 +0100 | <lambdabot> | [0.0,1.0,1.0,6.123233995736766e-17] |
2020-12-31 00:57:52 +0100 | <dsal> | frankdmartinez: Oh weird. I've never seen that. I just type haskell into my editor. Never tried doing dictation. |
2020-12-31 00:58:00 +0100 | <frankdmartinez> | monochrom: That hurts my head trying to parse that; what is happining? |
2020-12-31 00:58:14 +0100 | <ephemient> | I never pronounce them either. just `<*>` etc. is fine |
2020-12-31 00:58:46 +0100 | <frankdmartinez> | dsal: I'm the sort of person who reads his code to himself as he types to make sure it sounds right (I've been burnt too many times to not do that.) |
2020-12-31 00:58:48 +0100 | <ephemient> | frankdmartinez: same as `let x !!!!! y = x <*> y` |
2020-12-31 00:59:31 +0100 | <frankdmartinez> | ephemient: Ohhhhhhh, got it. Thanks. |
2020-12-31 00:59:57 +0100 | <monochrom> | I minimally respect asking about wording code because given that "1+2" has a wording "one plus two" I guess it is fair to ask about a counterpart to "x <*> y". |
2020-12-31 01:00:22 +0100 | <monochrom> | But I always remind that you are not a modem, you are not supposed to convert code to voice. |
2020-12-31 01:04:40 +0100 | <monochrom> | Because by the time you get to the complexity of "(x * sqrt (y + z)) / (2 * e**(sin (x * pi / t)))" it becomes counterproductive to "try to understand it by reading out loud". No, reading it out loud is more confusing. |
2020-12-31 01:06:11 +0100 | <monochrom> | The productive thing to do is to visualize that as an expression tree, and focus on a subtree or focus on the big picture (it's just "foo / bar" FSVO foo and bar) as needed. |
2020-12-31 01:09:21 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2020-12-31 01:10:17 +0100 | crblmr | (~carbolyme@matrix.dropacid.net) (Ping timeout: 260 seconds) |
2020-12-31 01:11:01 +0100 | mputz | (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 264 seconds) |
2020-12-31 01:11:41 +0100 | crblmr | (~carbolyme@matrix.dropacid.net) |
2020-12-31 01:16:48 +0100 | usr25 | (~usr25@unaffiliated/usr25) (Quit: Leaving) |
2020-12-31 01:19:55 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-12-31 01:20:14 +0100 | bitmapper | (uid464869@gateway/web/irccloud.com/x-zdvypcqrxauhxxjm) |
2020-12-31 01:23:32 +0100 | <arahael> | monochrom: Not "one and two"? ;) |
2020-12-31 01:23:44 +0100 | arahael | never pronounces either. |
2020-12-31 01:24:47 +0100 | madjestic | (~Android@86-88-72-244.fixed.kpn.net) (Ping timeout: 272 seconds) |
2020-12-31 01:25:24 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2020-12-31 01:28:46 +0100 | Entertainment | (~entertain@104.246.132.210) (Ping timeout: 265 seconds) |
2020-12-31 01:32:26 +0100 | sgibber2018 | (~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f) |
2020-12-31 01:34:25 +0100 | crblmr | (~carbolyme@matrix.dropacid.net) (Ping timeout: 264 seconds) |
2020-12-31 01:36:10 +0100 | crblmr | (~carbolyme@matrix.dropacid.net) |
2020-12-31 01:38:28 +0100 | acidjnk_new | (~acidjnk@p200300d0c704e799613ed27d32309497.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
2020-12-31 01:38:31 +0100 | <monochrom> | You can always put two and two together to get four, and this is robust wrt how you interpret "and" as addition, multiplication, or exponentiation :) |
2020-12-31 01:38:52 +0100 | alx741 | (~alx741@181.196.68.142) (Ping timeout: 260 seconds) |
2020-12-31 01:40:54 +0100 | arahael | thus concludes that 2 <> 2 == 4 |
2020-12-31 01:43:24 +0100 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) () |
2020-12-31 01:43:41 +0100 | <MarcelineVQ> | good job everyone |
2020-12-31 01:44:05 +0100 | <dolio> | Works for every hyper operation, too. |
2020-12-31 01:45:18 +0100 | <monochrom> | "Freedom is the freedom to write 2 <> 2 == 4, and with a fountain pen while we're at it." |
2020-12-31 01:47:03 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
2020-12-31 01:47:47 +0100 | t3xp4t | (~texinwien@213162073014.public.t-mobile.at) (Remote host closed the connection) |
2020-12-31 01:47:51 +0100 | Varis | (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
2020-12-31 01:48:23 +0100 | t3xp4t | (~texinwien@213162073014.public.t-mobile.at) |
2020-12-31 01:49:04 +0100 | Varis | (~Tadas@unaffiliated/varis) |
2020-12-31 01:49:10 +0100 | urek | (~urek@2804:7f1:e10b:8573:bc13:7848:44d2:2b7e) |
2020-12-31 01:49:13 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2020-12-31 01:49:21 +0100 | urek | (~urek@2804:7f1:e10b:8573:bc13:7848:44d2:2b7e) (Remote host closed the connection) |
2020-12-31 01:49:41 +0100 | olligobber | (~olligobbe@unaffiliated/olligobber) |
2020-12-31 01:50:26 +0100 | Varis | (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
2020-12-31 01:51:44 +0100 | Varis | (~Tadas@unaffiliated/varis) |
2020-12-31 01:51:46 +0100 | boxscape | (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) |
2020-12-31 01:52:02 +0100 | <boxscape> | % (+ x) = (+++ x) |
2020-12-31 01:52:02 +0100 | <yahb> | boxscape: ; <interactive>:124:2: error: Parse error in pattern: +x |
2020-12-31 01:52:13 +0100 | <boxscape> | hm you can't use sections to define an operator? |
2020-12-31 01:52:16 +0100 | <boxscape> | on the lhs |
2020-12-31 01:52:46 +0100 | dfeuer | (~dfeuer@pool-108-18-223-60.washdc.fios.verizon.net) |
2020-12-31 01:52:54 +0100 | alx741 | (~alx741@186.178.110.198) |
2020-12-31 01:53:24 +0100 | t3xp4t | (~texinwien@213162073014.public.t-mobile.at) (Ping timeout: 272 seconds) |
2020-12-31 01:53:46 +0100 | <monochrom> | No. |
2020-12-31 01:53:49 +0100 | <boxscape> | sad :( |
2020-12-31 01:53:50 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-12-31 01:55:08 +0100 | chipc | (~chipc@217.146.82.202) (Remote host closed the connection) |
2020-12-31 01:57:00 +0100 | Feuermagier | (~Feuermagi@213.178.26.41) (Remote host closed the connection) |
2020-12-31 01:59:28 +0100 | aveltras | (uid364989@gateway/web/irccloud.com/x-twzhylkueocqmpyy) (Quit: Connection closed for inactivity) |
2020-12-31 01:59:39 +0100 | polyrain | (~polyrain@2001:8003:e501:6901:7854:1650:194e:4c2f) |
2020-12-31 02:01:19 +0100 | <seventhousand> | hello |
2020-12-31 02:01:35 +0100 | <seventhousand> | Why can I not scroll up to see chat history |
2020-12-31 02:01:35 +0100 | natechan | (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Quit: WeeChat 2.9) |
2020-12-31 02:02:06 +0100 | <rom1504> | seventhousand: no chat history feature in irc |
2020-12-31 02:02:12 +0100 | <seventhousand> | Interesting |
2020-12-31 02:02:16 +0100 | <seventhousand> | never used one before |
2020-12-31 02:02:20 +0100 | natechan | (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2020-12-31 02:02:22 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:2994:ee4e:2fd6:b5cb) |
2020-12-31 02:02:38 +0100 | <rom1504> | irc servers just relays messages to users, that's it |
2020-12-31 02:02:56 +0100 | <boxscape> | seventhousand you can see logs here though https://ircbrowse.tomsmeding.com/browse/haskell?events_page=2276 |
2020-12-31 02:03:19 +0100 | polyrain | (~polyrain@2001:8003:e501:6901:7854:1650:194e:4c2f) (Client Quit) |
2020-12-31 02:04:41 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:2994:ee4e:2fd6:b5cb) (Client Quit) |
2020-12-31 02:06:13 +0100 | paintcan` | (~user@cpe-69-206-241-99.nyc.res.rr.com) |
2020-12-31 02:06:44 +0100 | paintcan | (~user@cpe-69-206-241-99.nyc.res.rr.com) (Remote host closed the connection) |
2020-12-31 02:07:10 +0100 | t3xp4t | (~texinwien@213162073014.public.t-mobile.at) |
2020-12-31 02:10:14 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@mx-ll-171.5.28-247.dynamic.3bb.co.th) |
2020-12-31 02:10:26 +0100 | threestrikes | (~threestri@ec2-3-236-237-32.compute-1.amazonaws.com) |
2020-12-31 02:11:03 +0100 | threestrikes | (~threestri@ec2-3-236-237-32.compute-1.amazonaws.com) (Client Quit) |
2020-12-31 02:11:36 +0100 | t3xp4t | (~texinwien@213162073014.public.t-mobile.at) (Ping timeout: 240 seconds) |
2020-12-31 02:12:54 +0100 | vicfred | (vicfred@gateway/vpn/mullvad/vicfred) (Quit: Leaving) |
2020-12-31 02:14:34 +0100 | seventhousand | (~sevenk@64.85.149.202) (Quit: Lost terminal) |
2020-12-31 02:18:17 +0100 | myname_ | (~sevenk@64.85.149.202) |
2020-12-31 02:21:08 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2020-12-31 02:25:18 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@mx-ll-171.5.28-247.dynamic.3bb.co.th) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-12-31 02:26:07 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 260 seconds) |
2020-12-31 02:28:25 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2020-12-31 02:30:20 +0100 | Fischmiep | (~Fischmiep@46.59.132.43) |
2020-12-31 02:32:32 +0100 | christo | (~chris@81.96.113.213) |
2020-12-31 02:33:38 +0100 | Fischmie1 | (~Fischmiep@149.224.197.30) (Ping timeout: 256 seconds) |
2020-12-31 02:34:12 +0100 | gzj | (~gzj@unaffiliated/gzj) |
2020-12-31 02:35:12 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 272 seconds) |
2020-12-31 02:35:36 +0100 | Tops22 | (~Tobias@dyndsl-095-033-027-207.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
2020-12-31 02:36:16 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@171.5.28.247) |
2020-12-31 02:37:30 +0100 | gzj | (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
2020-12-31 02:38:51 +0100 | columbarius | (~columbari@i5E86B34F.versanet.de) (Ping timeout: 265 seconds) |
2020-12-31 02:39:34 +0100 | gzj | (~gzj@unaffiliated/gzj) |
2020-12-31 02:40:49 +0100 | columbarius | (~columbari@mue-88-130-54-032.dsl.tropolys.de) |
2020-12-31 02:42:14 +0100 | ransom | (~c4264035@8.47.12.52) (Read error: Connection reset by peer) |
2020-12-31 02:42:38 +0100 | ransom | (~c4264035@8.47.12.52) |
2020-12-31 02:42:38 +0100 | ransom | (~c4264035@8.47.12.52) (Client Quit) |
2020-12-31 02:45:31 +0100 | suriro | (~suriro@178.239.168.171) |
2020-12-31 02:52:57 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 260 seconds) |
2020-12-31 02:57:19 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
2020-12-31 03:03:18 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-12-31 03:08:07 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2020-12-31 03:08:42 +0100 | chang | (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) |
2020-12-31 03:09:09 +0100 | carthia | (~carthia@gateway/tor-sasl/carthia) (Quit: carthia) |
2020-12-31 03:09:31 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2020-12-31 03:13:00 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
2020-12-31 03:14:01 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 264 seconds) |
2020-12-31 03:15:25 +0100 | crblmr | (~carbolyme@matrix.dropacid.net) (Ping timeout: 256 seconds) |
2020-12-31 03:16:23 +0100 | crblmr | (~carbolyme@matrix.dropacid.net) |
2020-12-31 03:20:19 +0100 | chang | (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-12-31 03:20:50 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:202c:5e45:3f22:4315) |
2020-12-31 03:21:38 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 256 seconds) |
2020-12-31 03:22:45 +0100 | frankdmartinez | (~user@c-69-249-137-255.hsd1.pa.comcast.net) (Ping timeout: 240 seconds) |
2020-12-31 03:26:01 +0100 | dfeuer | (~dfeuer@pool-108-18-223-60.washdc.fios.verizon.net) (Ping timeout: 264 seconds) |
2020-12-31 03:26:39 +0100 | frankdmartinez | (~user@5.181.234.188) |
2020-12-31 03:27:53 +0100 | myname_ | (~sevenk@64.85.149.202) (Quit: Lost terminal) |
2020-12-31 03:29:00 +0100 | dfeuer | (~dfeuer@pool-108-18-223-60.washdc.fios.verizon.net) |
2020-12-31 03:30:51 +0100 | xiinotulp | (~q@node-us0.pool-125-24.dynamic.totinternet.net) |
2020-12-31 03:31:26 +0100 | Deide | (~Deide@217.155.19.23) (Quit: Seeee yaaaa) |
2020-12-31 03:33:12 +0100 | sgibber2018 | (~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f) (Ping timeout: 260 seconds) |
2020-12-31 03:33:16 +0100 | fryguybob | (~fryguybob@cpe-74-65-31-113.rochester.res.rr.com) (Ping timeout: 240 seconds) |
2020-12-31 03:33:50 +0100 | chang | (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) |
2020-12-31 03:33:55 +0100 | argento | (~argent0@168.227.97.23) |
2020-12-31 03:34:09 +0100 | argento | (~argent0@168.227.97.23) (Remote host closed the connection) |
2020-12-31 03:35:00 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) |
2020-12-31 03:35:01 +0100 | plutoniix | (~q@node-uil.pool-125-24.dynamic.totinternet.net) (Ping timeout: 264 seconds) |
2020-12-31 03:39:49 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-12-31 03:40:22 +0100 | Iceland_jack | (~user@31.124.48.169) |
2020-12-31 03:47:18 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 256 seconds) |
2020-12-31 03:49:22 +0100 | ransom | (~c4264035@2a09:bac0:72::82f:c34) |
2020-12-31 03:50:26 +0100 | xff0x_ | (~fox@2001:1a81:5361:7200:b495:b5df:7e6c:e9db) (Ping timeout: 268 seconds) |
2020-12-31 03:51:05 +0100 | gzj | (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
2020-12-31 03:51:26 +0100 | gzj | (~gzj@unaffiliated/gzj) |
2020-12-31 03:51:44 +0100 | xff0x_ | (~fox@2001:1a81:5398:2d00:1f27:11b6:17e5:8c13) |
2020-12-31 03:52:05 +0100 | gzj | (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
2020-12-31 03:52:26 +0100 | gzj | (~gzj@unaffiliated/gzj) |
2020-12-31 03:57:59 +0100 | drbean | (~drbean@TC210-63-209-60.static.apol.com.tw) |
2020-12-31 04:03:39 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2020-12-31 04:07:45 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds) |
2020-12-31 04:11:41 +0100 | xirhtogal | (~lagothrix@unaffiliated/lagothrix) |
2020-12-31 04:11:41 +0100 | lagothrix | Guest74714 |
2020-12-31 04:11:41 +0100 | Guest74714 | (~lagothrix@unaffiliated/lagothrix) (Killed (kornbluth.freenode.net (Nickname regained by services))) |
2020-12-31 04:11:41 +0100 | xirhtogal | lagothrix |
2020-12-31 04:14:00 +0100 | m0rphism | (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 272 seconds) |
2020-12-31 04:14:16 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2020-12-31 04:14:31 +0100 | Kronic | (~Kronic___@84.203.96.46) |
2020-12-31 04:17:43 +0100 | ddellacosta | (dd@gateway/vpn/mullvad/ddellacosta) |
2020-12-31 04:20:11 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) |
2020-12-31 04:21:45 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
2020-12-31 04:24:29 +0100 | Varis | (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
2020-12-31 04:27:01 +0100 | jedws | (~jedws@121.209.189.201) |
2020-12-31 04:27:33 +0100 | Varis | (~Tadas@unaffiliated/varis) |
2020-12-31 04:27:33 +0100 | matryoshka` | (~matryoshk@184.75.223.227) |
2020-12-31 04:28:34 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Read error: Connection reset by peer) |
2020-12-31 04:30:40 +0100 | frankdmartinez | (~user@5.181.234.188) (Remote host closed the connection) |
2020-12-31 04:30:56 +0100 | frankdmartinez | (~user@5.181.234.188) |
2020-12-31 04:31:45 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 268 seconds) |
2020-12-31 04:35:27 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2020-12-31 04:44:15 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-12-31 04:46:28 +0100 | justsomeguy | (~justsomeg@216.186.218.241) |
2020-12-31 04:46:28 +0100 | justsomeguy | (~justsomeg@216.186.218.241) (Changing host) |
2020-12-31 04:46:28 +0100 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) |
2020-12-31 04:47:05 +0100 | eacameron | (uid256985@gateway/web/irccloud.com/x-galbhouawynbrsup) (Quit: Connection closed for inactivity) |
2020-12-31 04:48:00 +0100 | jacks2 | (~bc815220@217.29.117.252) |
2020-12-31 04:48:05 +0100 | <jacks2> | hi |
2020-12-31 04:48:08 +0100 | <jacks2> | :t 1e6 |
2020-12-31 04:48:10 +0100 | <lambdabot> | Fractional p => p |
2020-12-31 04:48:12 +0100 | christo | (~chris@81.96.113.213) |
2020-12-31 04:48:19 +0100 | <boxscape> | hi |
2020-12-31 04:48:26 +0100 | <koz_> | Yo. |
2020-12-31 04:48:26 +0100 | <jacks2> | why is it a Fractional and not Num? |
2020-12-31 04:48:36 +0100 | <boxscape> | % :seti -XNumDecimals |
2020-12-31 04:48:36 +0100 | <yahb> | boxscape: |
2020-12-31 04:48:41 +0100 | <boxscape> | % :t 1e6 |
2020-12-31 04:48:41 +0100 | <yahb> | boxscape: Num p => p |
2020-12-31 04:48:53 +0100 | <boxscape> | it can be Num with an extension |
2020-12-31 04:49:06 +0100 | <jacks2> | ah ok, good |
2020-12-31 04:49:12 +0100 | chang | (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-12-31 04:49:15 +0100 | <boxscape> | when the language was designed I guess people didn't consider that you might want to write integers in scientific notation |
2020-12-31 04:49:38 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2020-12-31 04:49:45 +0100 | <dsal> | I pretty much only write integers in scientific notation. |
2020-12-31 04:49:59 +0100 | boxscape | (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Quit: Connection closed) |
2020-12-31 04:50:11 +0100 | boxscape | (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) |
2020-12-31 04:51:16 +0100 | <boxscape> | % :t 1.6666e2 |
2020-12-31 04:51:16 +0100 | <yahb> | boxscape: Fractional p => p |
2020-12-31 04:51:39 +0100 | <boxscape> | jacks2 note that it will still be Fractional if there are more decimal places than would make sense for an integer |
2020-12-31 04:52:40 +0100 | <jacks2> | % :t 1.66e6 |
2020-12-31 04:52:40 +0100 | <yahb> | jacks2: Num p => p |
2020-12-31 04:52:47 +0100 | <jacks2> | yeah, that's what I'd expect |
2020-12-31 04:55:37 +0100 | rekahsoft | (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Remote host closed the connection) |
2020-12-31 04:56:19 +0100 | rekahsoft | (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) |
2020-12-31 04:57:43 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2020-12-31 05:00:11 +0100 | benjamingr__ | (uid23465@gateway/web/irccloud.com/x-hcdctxhyzchiutea) (Quit: Connection closed for inactivity) |
2020-12-31 05:00:16 +0100 | dfeuer | (~dfeuer@pool-108-18-223-60.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
2020-12-31 05:01:16 +0100 | theDon | (~td@94.134.91.51) (Ping timeout: 240 seconds) |
2020-12-31 05:02:06 +0100 | ddellacosta | (dd@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 256 seconds) |
2020-12-31 05:02:37 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 264 seconds) |
2020-12-31 05:03:07 +0100 | rekahsoft | (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Remote host closed the connection) |
2020-12-31 05:03:12 +0100 | drbean | (~drbean@TC210-63-209-60.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin1 - https://znc.in) |
2020-12-31 05:03:18 +0100 | theDon | (~td@94.134.91.182) |
2020-12-31 05:03:21 +0100 | sm2n | (~sm2n@bras-base-hmtnon1497w-grc-43-64-231-95-247.dsl.bell.ca) |
2020-12-31 05:03:27 +0100 | rekahsoft | (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) |
2020-12-31 05:03:55 +0100 | crblmr | (~carbolyme@matrix.dropacid.net) (Ping timeout: 246 seconds) |
2020-12-31 05:05:56 +0100 | crblmr | (~carbolyme@matrix.dropacid.net) |
2020-12-31 05:14:36 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:202c:5e45:3f22:4315) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-12-31 05:16:22 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) |
2020-12-31 05:18:45 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:202c:5e45:3f22:4315) |
2020-12-31 05:19:00 +0100 | frankdmartinez | (~user@5.181.234.188) (Quit: switching to a gui client) |
2020-12-31 05:20:19 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-12-31 05:20:42 +0100 | frankdmartinez | (~frankdmar@5.181.234.188) |
2020-12-31 05:24:54 +0100 | jmchael | (~jmchael@81.174.205.210) (Ping timeout: 260 seconds) |
2020-12-31 05:26:51 +0100 | urodna | (~urodna@unaffiliated/urodna) (Quit: urodna) |
2020-12-31 05:30:19 +0100 | <jacks2> | is there a more concise way of writing this? instance (FromJSON a, FromJSON b, FromJSONKey a, FromJSONKey b, Ord a, Ord b) => FromJSON (MyType a b) |
2020-12-31 05:31:39 +0100 | Sheilong | (uid293653@gateway/web/irccloud.com/x-lomouarpoiwiahvm) () |
2020-12-31 05:35:15 +0100 | <boxscape> | if that's a patter you encounter often you could write something like `type FromJSON' = (FromJSON a, FromJSONKey a, Ord a)` and then `instance (FromJSON' a, FromJSON' b) => FromJSON (MyType a b)` |
2020-12-31 05:35:24 +0100 | <boxscape> | jacks2 ^ |
2020-12-31 05:35:29 +0100 | <boxscape> | s/patter/pattern |
2020-12-31 05:35:53 +0100 | <boxscape> | (I think that does require -XConstraintKinds though) |
2020-12-31 05:36:19 +0100 | <jacks2> | I only do this once, probably not worth it |
2020-12-31 05:36:25 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
2020-12-31 05:36:28 +0100 | <MarcelineVQ> | You could but then you have to search for that alias, I think being explicit is clearer here for current and future you |
2020-12-31 05:38:34 +0100 | <jacks2> | actually I also have to use same signature in the read function, so it might be worth it |
2020-12-31 05:38:40 +0100 | <jacks2> | and in the write function |
2020-12-31 05:38:59 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving) |
2020-12-31 05:47:22 +0100 | crblmr | (~carbolyme@matrix.dropacid.net) (Ping timeout: 260 seconds) |
2020-12-31 05:47:25 +0100 | xiinotulp | (~q@node-us0.pool-125-24.dynamic.totinternet.net) (Quit: Leaving) |
2020-12-31 05:49:08 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
2020-12-31 05:49:37 +0100 | crblmr | (~carbolyme@matrix.dropacid.net) |
2020-12-31 05:50:00 +0100 | bitmapper | (uid464869@gateway/web/irccloud.com/x-zdvypcqrxauhxxjm) (Quit: Connection closed for inactivity) |
2020-12-31 05:50:50 +0100 | rdivyanshu | (uid322626@gateway/web/irccloud.com/x-xprnzzrqpfxzghyi) |
2020-12-31 05:51:09 +0100 | Anthaas | (~Anthaas@unaffiliated/anthaas) (Ping timeout: 260 seconds) |
2020-12-31 05:51:50 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2020-12-31 05:52:15 +0100 | Anthaas | (~Anthaas@unaffiliated/anthaas) |
2020-12-31 05:53:26 +0100 | solonarv | (~solonarv@astrasbourg-653-1-157-135.w90-6.abo.wanadoo.fr) (Ping timeout: 264 seconds) |
2020-12-31 05:54:42 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2020-12-31 05:56:04 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 246 seconds) |
2020-12-31 06:04:40 +0100 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) () |
2020-12-31 06:05:11 +0100 | MOSCOS | (~MOSCOS@152.32.70.55) |
2020-12-31 06:07:45 +0100 | Jesin | (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
2020-12-31 06:08:04 +0100 | Jesin | (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) |
2020-12-31 06:08:22 +0100 | Mikagami | (~MOSCOS@122.54.107.175) (Ping timeout: 260 seconds) |
2020-12-31 06:09:25 +0100 | MOSCOS | (~MOSCOS@152.32.70.55) (Ping timeout: 240 seconds) |
2020-12-31 06:20:03 +0100 | rayyyy1 | (~nanoz@gateway/tor-sasl/nanoz) |
2020-12-31 06:21:50 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-12-31 06:22:10 +0100 | hoofmaster | (18740acc@unaffiliated/hoofmaster) |
2020-12-31 06:22:15 +0100 | <hoofmaster> | clack clop clack clop |
2020-12-31 06:22:18 +0100 | <hoofmaster> | neiiiiiiiiiiiiiiiigh |
2020-12-31 06:22:21 +0100 | hoofmaster | huffs |
2020-12-31 06:22:44 +0100 | <dsal> | This channel is about curry, not furry |
2020-12-31 06:23:37 +0100 | hoofmaster | gallops |
2020-12-31 06:24:39 +0100 | <MarcelineVQ> | hoofmaster, tell me your tail |
2020-12-31 06:24:57 +0100 | hoofmaster | clops over to MarcelineVQ |
2020-12-31 06:24:58 +0100 | <boxscape> | the furry cow herd correspondence |
2020-12-31 06:25:01 +0100 | hoofmaster | neighs in ear |
2020-12-31 06:25:08 +0100 | hoofmaster | gallops away |
2020-12-31 06:26:27 +0100 | <MarcelineVQ> | Truly a saga for the ages books, the mournful ballad of a high-mountain packer, too powerful to live and too rare to die. |
2020-12-31 06:26:36 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2020-12-31 06:27:08 +0100 | Jesin | (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
2020-12-31 06:27:10 +0100 | ransom | (~c4264035@2a09:bac0:72::82f:c34) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-12-31 06:36:03 +0100 | rayyyy1 | (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds) |
2020-12-31 06:36:04 +0100 | Tario | (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
2020-12-31 06:36:19 +0100 | Tario | (~Tario@201.192.165.173) |
2020-12-31 06:36:27 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:408c:5ab0:3607:c803) (Ping timeout: 258 seconds) |
2020-12-31 06:45:59 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2020-12-31 06:46:11 +0100 | Tario | (~Tario@201.192.165.173) (Ping timeout: 268 seconds) |
2020-12-31 06:46:50 +0100 | dyeplexer | (~lol@unaffiliated/terpin) |
2020-12-31 06:47:16 +0100 | jluttine | (~jluttine@87-95-146-110.bb.dnainternet.fi) (Ping timeout: 240 seconds) |
2020-12-31 06:48:06 +0100 | rayyyy1 | (~nanoz@gateway/tor-sasl/nanoz) |
2020-12-31 06:48:08 +0100 | jluttine | (~jluttine@87-95-146-110.bb.dnainternet.fi) |
2020-12-31 06:48:48 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:93a5:a77a:27e2:f365) |
2020-12-31 06:50:01 +0100 | boxscape | (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Quit: Connection closed) |
2020-12-31 06:50:39 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 260 seconds) |
2020-12-31 06:52:00 +0100 | boxscape | (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) |
2020-12-31 06:52:58 +0100 | Tario | (~Tario@201.192.165.173) |
2020-12-31 06:53:01 +0100 | cheater | (~user@unaffiliated/cheater) (Ping timeout: 264 seconds) |
2020-12-31 06:54:13 +0100 | <dyeplexer> | Why is the "accumulator" argument and "current element" argument in the updation argument-functions in the fold/scan functions swapped? |
2020-12-31 06:54:40 +0100 | ADG1089__ | (~aditya@223.235.213.117) |
2020-12-31 06:54:48 +0100 | <dyeplexer> | foldl :: Foldable t => (b -> a -> b) -> b -> t a -> b, foldr :: Foldable t => (a -> b -> b) -> b -> t a -> b |
2020-12-31 06:55:05 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-12-31 06:55:28 +0100 | ADG1089__ | (~aditya@223.235.213.117) (Remote host closed the connection) |
2020-12-31 06:55:34 +0100 | <dyeplexer> | I am asking fot the rational behind the orders (b -> a -> b) and (a -> b -> b) in the above definitions |
2020-12-31 06:55:43 +0100 | <dyeplexer> | *for the rationale |
2020-12-31 06:56:05 +0100 | <dsal> | @hoogle asum |
2020-12-31 06:56:06 +0100 | <lambdabot> | Data.Foldable asum :: (Foldable t, Alternative f) => t (f a) -> f a |
2020-12-31 06:56:06 +0100 | <lambdabot> | Data.Conduit.Combinators asum :: (Monad m, Alternative f) => ConduitT (f a) o m (f a) |
2020-12-31 06:56:06 +0100 | <lambdabot> | Protolude asum :: (Foldable t, Alternative f) => t (f a) -> f a |
2020-12-31 06:56:10 +0100 | <dsal> | I'm never going to remember where asum is. |
2020-12-31 06:56:27 +0100 | <jle`> | dyeplexer: the a -> b -> b makes sense for foldr, but i don't know about any explanation for foldl |
2020-12-31 06:57:00 +0100 | <dyeplexer> | Okay |
2020-12-31 06:57:04 +0100 | ADG1089__ | (~aditya@223.235.213.117) |
2020-12-31 06:57:10 +0100 | <dsal> | Folding right: thing -> accumulator Folding left accumulator <- thing |
2020-12-31 06:57:26 +0100 | <jle`> | dyeplexer: foldr f z (for lists, at least), it replaces the consturctors of a list |
2020-12-31 06:57:39 +0100 | <jle`> | dyeplexer: it repaces (:) with f, and [] with z |
2020-12-31 06:57:55 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-12-31 06:58:07 +0100 | <boxscape> | > foldr (+) [a,b,c,d] |
2020-12-31 06:58:09 +0100 | <lambdabot> | error: |
2020-12-31 06:58:09 +0100 | <lambdabot> | • Could not deduce (Num [Expr]) arising from a use of ‘+’ |
2020-12-31 06:58:09 +0100 | <lambdabot> | from the context: Foldable t |
2020-12-31 06:58:12 +0100 | <boxscape> | > foldr (+) z [a,b,c,d] |
2020-12-31 06:58:14 +0100 | <jle`> | dyeplexer: so foldr f q (x:y:z:[]) is x `f` y `f` z `f` q |
2020-12-31 06:58:15 +0100 | <lambdabot> | a + (b + (c + (d + z))) |
2020-12-31 06:58:20 +0100 | <boxscape> | > foldl (+) z [a,b,c,d] |
2020-12-31 06:58:22 +0100 | <lambdabot> | z + a + b + c + d |
2020-12-31 06:58:29 +0100 | <jle`> | so it just goes down (x:y:z:[]) and swaps the :'s for f and [] for z |
2020-12-31 06:58:46 +0100 | perrier-jouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.0) |
2020-12-31 06:59:07 +0100 | <dyeplexer> | ah okay got it. Thanks |
2020-12-31 07:00:22 +0100 | <jle`> | for foldl it's a bit arbitrary i think, but foldl can be thought of imperatively updating the b with an 'a' input |
2020-12-31 07:00:30 +0100 | <jle`> | successive a's |
2020-12-31 07:01:16 +0100 | <jle`> | so maybe b -> a -> b makes sense in that light... here's the b we have, the new a we see, now give the new updated b |
2020-12-31 07:01:24 +0100 | <jle`> | but really (a -> b -> b) would work the same way, idk |
2020-12-31 07:02:23 +0100 | rayyyy1 | (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds) |
2020-12-31 07:03:09 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
2020-12-31 07:04:20 +0100 | <boxscape> | if you look at (((z - a) - b) - c), you couldn't write it this way if you used (a -> b -> b) |
2020-12-31 07:05:19 +0100 | <jle`> | ah, that's fair |
2020-12-31 07:06:11 +0100 | t3xp4t | (~texinwien@213162073014.public.t-mobile.at) |
2020-12-31 07:06:18 +0100 | <jle`> | the enw inputs are successively added, foldl f q [x,y,z] = (f q x) y) z, updating the accumulator (starting with q) with each item on the right like that |
2020-12-31 07:08:10 +0100 | Tario | (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
2020-12-31 07:10:44 +0100 | Tario | (~Tario@201.192.165.173) |
2020-12-31 07:11:18 +0100 | t3xp4t | (~texinwien@213162073014.public.t-mobile.at) (Ping timeout: 256 seconds) |
2020-12-31 07:11:28 +0100 | rmk236 | (~lcampos@2a02:908:3616:b100:849c:a12b:ff95:e193) |
2020-12-31 07:15:13 +0100 | rayyyy1 | (~nanoz@gateway/tor-sasl/nanoz) |
2020-12-31 07:17:35 +0100 | Tario | (~Tario@201.192.165.173) (Read error: Connection timed out) |
2020-12-31 07:17:57 +0100 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 256 seconds) |
2020-12-31 07:18:11 +0100 | <dyeplexer> | Okay |
2020-12-31 07:18:39 +0100 | Tario | (~Tario@201.192.165.173) |
2020-12-31 07:19:03 +0100 | philopsos | (~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds) |
2020-12-31 07:20:58 +0100 | sgibber2018 | (~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f) |
2020-12-31 07:23:37 +0100 | _noblegas | (uid91066@gateway/web/irccloud.com/x-fnxlplogleuwxwft) |
2020-12-31 07:24:51 +0100 | <dyeplexer> | Yes. the currying was the problem. Implementing foldl and foldr myself cleared my doubts. |
2020-12-31 07:24:58 +0100 | Vanilla[m] | (danielm_14@gateway/shell/matrix.org/x-dgeqldxyrkfpeufk) |
2020-12-31 07:29:22 +0100 | <dyeplexer> | (or establishing the recursion) |
2020-12-31 07:29:42 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2020-12-31 07:31:13 +0100 | hoofmaster | (18740acc@unaffiliated/hoofmaster) (Quit: "neiiiiiiiiiiiiigh") |
2020-12-31 07:37:16 +0100 | rekahsoft | (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Ping timeout: 240 seconds) |
2020-12-31 07:37:19 +0100 | eruiucuiviucuiv | (dd73e7a2@gateway/web/cgi-irc/kiwiirc.com/ip.221.115.231.162) (Ping timeout: 260 seconds) |
2020-12-31 07:38:15 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:3dea:7cc:1ee9:85fe) (Remote host closed the connection) |
2020-12-31 07:39:02 +0100 | Vulfe | (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
2020-12-31 07:40:05 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2020-12-31 07:40:06 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@171.5.28.247) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-12-31 07:41:47 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) (Remote host closed the connection) |
2020-12-31 07:43:38 +0100 | Vulfe | (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 272 seconds) |
2020-12-31 07:44:30 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 256 seconds) |
2020-12-31 07:45:30 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
2020-12-31 07:48:03 +0100 | rayyyy1 | (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds) |
2020-12-31 07:48:05 +0100 | sgibber2018 | (~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f) (Quit: WeeChat 3.0) |
2020-12-31 07:54:14 +0100 | rayyyy1 | (~nanoz@gateway/tor-sasl/nanoz) |
2020-12-31 07:56:18 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:202c:5e45:3f22:4315) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-12-31 07:57:43 +0100 | rayyyy1 | (~nanoz@gateway/tor-sasl/nanoz) (Remote host closed the connection) |
2020-12-31 07:58:02 +0100 | frankdmartinez | (~frankdmar@5.181.234.188) (Quit: frankdmartinez) |
2020-12-31 07:58:37 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-12-31 07:59:22 +0100 | coot | (~coot@37.30.60.60.nat.umts.dynamic.t-mobile.pl) |
2020-12-31 08:03:52 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2020-12-31 08:04:35 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@183.88.111.61) |
2020-12-31 08:14:58 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2020-12-31 08:17:47 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:795a:c9c3:895a:a14d) |
2020-12-31 08:20:37 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
2020-12-31 08:22:32 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:795a:c9c3:895a:a14d) (Ping timeout: 260 seconds) |
2020-12-31 08:22:50 +0100 | jacks2 | (~bc815220@217.29.117.252) (Quit: http://www.okay.uz/ (Ping timeout)) |
2020-12-31 08:34:16 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-12-31 08:34:18 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2020-12-31 08:34:26 +0100 | pavonia | (~user@unaffiliated/siracusa) (Quit: Bye!) |
2020-12-31 08:35:49 +0100 | guest122` | (~user@49.5.6.87) (Quit: ERC (IRC client for Emacs 27.1)) |
2020-12-31 08:37:37 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) |
2020-12-31 08:38:36 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds) |
2020-12-31 08:39:54 +0100 | <boxscape> | hm, ironic, I'm testing out the new 9.0rc candidate but found a ghc panic that already existed in 8.10 |
2020-12-31 08:40:23 +0100 | <boxscape> | oh, except, it's a different panic, interesting |
2020-12-31 08:40:45 +0100 | <boxscape> | oh no never mind it's the same panic |
2020-12-31 08:46:18 +0100 | kenran | (~kenran@87.123.205.142) |
2020-12-31 08:53:54 +0100 | loller_ | (uid358106@gateway/web/irccloud.com/x-etlpbnyndplofboo) (Quit: Connection closed for inactivity) |
2020-12-31 08:54:33 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2020-12-31 08:55:03 +0100 | mp___ | (~mp@hell.cx) |
2020-12-31 08:57:07 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:795a:c9c3:895a:a14d) |
2020-12-31 09:00:09 +0100 | sgibber2018 | (~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f) |
2020-12-31 09:01:51 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:795a:c9c3:895a:a14d) (Ping timeout: 268 seconds) |
2020-12-31 09:03:51 +0100 | boxscape | (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Quit: Connection closed) |
2020-12-31 09:04:36 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:25e9:81:81d6:bd54) |
2020-12-31 09:05:26 +0100 | boxscape | (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) |
2020-12-31 09:05:48 +0100 | coot | (~coot@37.30.60.60.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2020-12-31 09:08:45 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@183.88.111.61) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-12-31 09:09:12 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:25e9:81:81d6:bd54) (Ping timeout: 260 seconds) |
2020-12-31 09:15:31 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@mx-ll-183.88.111-61.dynamic.3bb.co.th) |
2020-12-31 09:18:36 +0100 | gzj | (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
2020-12-31 09:19:42 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-12-31 09:20:21 +0100 | Kaiepi | (~Kaiepi@47.54.252.148) (Remote host closed the connection) |
2020-12-31 09:20:37 +0100 | Kaiepi | (~Kaiepi@47.54.252.148) |
2020-12-31 09:24:39 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
2020-12-31 09:27:13 +0100 | boxscape | (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Ping timeout: 264 seconds) |
2020-12-31 09:30:27 +0100 | sgibber2018 | (~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f) (Quit: WeeChat 3.0) |
2020-12-31 09:31:11 +0100 | t3xp4t | (~texinwien@213162073014.public.t-mobile.at) |
2020-12-31 09:32:03 +0100 | suriro | (~suriro@178.239.168.171) (Remote host closed the connection) |
2020-12-31 09:32:56 +0100 | _noblegas | (uid91066@gateway/web/irccloud.com/x-fnxlplogleuwxwft) (Quit: Connection closed for inactivity) |
2020-12-31 09:33:42 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) |
2020-12-31 09:33:42 +0100 | <Kronic> | I seen linear types went into GHC 9, seems very interesting and I get it, just can't think of many use cases off the top of my head |
2020-12-31 09:35:44 +0100 | t3xp4t | (~texinwien@213162073014.public.t-mobile.at) (Ping timeout: 272 seconds) |
2020-12-31 09:36:51 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2020-12-31 09:37:49 +0100 | <arahael> | Kronic: In a sentence, can you explain what they are? |
2020-12-31 09:40:08 +0100 | <Kronic> | Restricted to one sentence, I guess it's a type that is evaluated once? In the docs I read I remember that they used the term consumed, but I'm assumming that meant something in the order of evaluated |
2020-12-31 09:40:23 +0100 | <Kronic> | I guess you can go from a to b, but not b back to a ? |
2020-12-31 09:42:02 +0100 | <idnar> | `if s == Just "pending" || isNothing s …` I don't like this somehow. |
2020-12-31 09:42:25 +0100 | <arahael> | Kronic: Hmm, yes... That does seem fairly fringe. |
2020-12-31 09:42:56 +0100 | <Kronic> | Oh, if you were asking for an explanation of them from me then I'm not the guy to ask, https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0111-linear-types.rst they've a proposal here if you wanna read it |
2020-12-31 09:45:55 +0100 | <arahael> | It's intriguing... But ultimately beyond me. |
2020-12-31 09:46:25 +0100 | <Kronic> | They've some good motivational examples there, I'm sure someone here more knowledgeable would explain it if you had a more specific question :) |
2020-12-31 09:52:22 +0100 | acidx1 | (~acidx@185.163.110.125) |
2020-12-31 09:57:20 +0100 | <arahael> | It seems well written, I'm sure I should put some effort into reading it properly, then I might have some sensible questions. :) |
2020-12-31 09:57:31 +0100 | <arahael> | But right now I'm thoroughly in holday mode. :( |
2020-12-31 10:01:50 +0100 | mp___ | (~mp@hell.cx) (Ping timeout: 264 seconds) |
2020-12-31 10:02:38 +0100 | Hatsue[m] | (berbermanm@gateway/shell/matrix.org/x-rvoesmgeaopbcbkh) |
2020-12-31 10:03:00 +0100 | t3xp4t | (~texinwien@213162073014.public.t-mobile.at) |
2020-12-31 10:03:16 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2020-12-31 10:04:54 +0100 | crblmr | (~carbolyme@matrix.dropacid.net) (Ping timeout: 260 seconds) |
2020-12-31 10:06:28 +0100 | ADG1089__ | (~aditya@223.235.213.117) (Remote host closed the connection) |
2020-12-31 10:07:15 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@mx-ll-183.88.111-61.dynamic.3bb.co.th) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-12-31 10:07:23 +0100 | crblmr | (~carbolyme@matrix.dropacid.net) |
2020-12-31 10:07:44 +0100 | ADG1089__ | (~aditya@223.235.213.117) |
2020-12-31 10:08:24 +0100 | son0p | (~son0p@181.58.39.182) |
2020-12-31 10:08:35 +0100 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer) |
2020-12-31 10:11:33 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) |
2020-12-31 10:13:28 +0100 | ADG1089__ | (~aditya@223.235.213.117) (Remote host closed the connection) |
2020-12-31 10:14:44 +0100 | ADG1089__ | (~aditya@223.235.213.117) |
2020-12-31 10:15:56 +0100 | ADG1089__ | (~aditya@223.235.213.117) (Remote host closed the connection) |
2020-12-31 10:17:02 +0100 | t3xp4t | (~texinwien@213162073014.public.t-mobile.at) (Remote host closed the connection) |
2020-12-31 10:18:01 +0100 | iqubic | (~user@c-67-171-38-72.hsd1.wa.comcast.net) (Ping timeout: 265 seconds) |
2020-12-31 10:18:25 +0100 | b4er | (~b5er_@91.193.4.138) |
2020-12-31 10:19:44 +0100 | ADG1089__ | (~aditya@223.235.213.117) |
2020-12-31 10:20:30 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:c4d1:58bf:ee47:d219) (Remote host closed the connection) |
2020-12-31 10:20:35 +0100 | landonf | (landonf@mac68k.info) (Excess Flood) |
2020-12-31 10:21:01 +0100 | landonf | (landonf@mac68k.info) |
2020-12-31 10:22:46 +0100 | petersen | (~petersen@redhat/juhp) (Ping timeout: 246 seconds) |
2020-12-31 10:23:10 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:143:ed02:88f3:91f8:f3d8) |
2020-12-31 10:24:04 +0100 | ADG1089__ | (~aditya@223.235.213.117) (Remote host closed the connection) |
2020-12-31 10:25:11 +0100 | ADG1089__ | (~aditya@223.235.213.117) |
2020-12-31 10:26:37 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0) |
2020-12-31 10:29:34 +0100 | t3xp4t | (~texinwien@213162073014.public.t-mobile.at) |
2020-12-31 10:31:55 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-12-31 10:32:07 +0100 | ADG1089__ | (~aditya@223.235.213.117) (Remote host closed the connection) |
2020-12-31 10:33:35 +0100 | hnOsmium0001 | (uid453710@gateway/web/irccloud.com/x-iakwekdkzgcrclln) (Quit: Connection closed for inactivity) |
2020-12-31 10:35:52 +0100 | crblmr | (~carbolyme@matrix.dropacid.net) (Ping timeout: 256 seconds) |
2020-12-31 10:36:03 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds) |
2020-12-31 10:37:55 +0100 | crblmr | (~carbolyme@matrix.dropacid.net) |
2020-12-31 10:40:00 +0100 | ADG1089__ | (~aditya@223.235.213.117) |
2020-12-31 10:40:11 +0100 | iqubic | (~user@2601:602:9500:4870:b553:c156:aded:724d) |
2020-12-31 10:48:11 +0100 | ADG1089__ | (~aditya@223.235.213.117) (Remote host closed the connection) |
2020-12-31 10:50:16 +0100 | ADG1089__ | (~aditya@223.235.213.117) |
2020-12-31 10:51:07 +0100 | Kaivo | (~Kaivo@104-200-86-99.mc.derytele.com) (Ping timeout: 246 seconds) |
2020-12-31 10:51:16 +0100 | ADG1089__ | (~aditya@223.235.213.117) (Remote host closed the connection) |
2020-12-31 10:53:29 +0100 | Kaivo | (~Kaivo@104-200-86-99.mc.derytele.com) |
2020-12-31 10:53:31 +0100 | ADG1089__ | (~aditya@223.235.213.117) |
2020-12-31 10:55:02 +0100 | mp___ | (mp@hell.cx) |
2020-12-31 10:58:31 +0100 | Gurkenglas | (~Gurkengla@unaffiliated/gurkenglas) |
2020-12-31 10:58:52 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
2020-12-31 11:02:15 +0100 | t3xp4t | (~texinwien@213162073014.public.t-mobile.at) (Remote host closed the connection) |
2020-12-31 11:03:41 +0100 | berberman_ | (~berberman@unaffiliated/berberman) |
2020-12-31 11:04:23 +0100 | berberman | (~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds) |
2020-12-31 11:04:47 +0100 | sw1nn | (~sw1nn@2a00:23c6:2385:3a00:21b2:5ddc:6b14:f7c0) (Ping timeout: 258 seconds) |
2020-12-31 11:04:58 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
2020-12-31 11:05:49 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2020-12-31 11:07:27 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:143:ed02:88f3:91f8:f3d8) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-12-31 11:09:55 +0100 | fendor | (~fendor@77.119.128.173.wireless.dyn.drei.com) |
2020-12-31 11:10:13 +0100 | rdivyanshu | (uid322626@gateway/web/irccloud.com/x-xprnzzrqpfxzghyi) (Quit: Connection closed for inactivity) |
2020-12-31 11:12:07 +0100 | <idnar> | :t \f v -> do x <- readTVar v; x' <- f v; writeTVar v x' |
2020-12-31 11:12:09 +0100 | <lambdabot> | error: |
2020-12-31 11:12:09 +0100 | <lambdabot> | Variable not in scope: readTVar :: t -> m a0 |
2020-12-31 11:13:51 +0100 | <idnar> | :t \f v -> do x <- Control.Concurrent.STM.TVar.readTVar v; x' <- f v; Control.Concurrent.STM.TVar.writeTVar v x' |
2020-12-31 11:13:53 +0100 | <lambdabot> | (GHC.Conc.Sync.TVar a -> GHC.Conc.Sync.STM a) -> GHC.Conc.Sync.TVar a -> GHC.Conc.Sync.STM () |
2020-12-31 11:14:19 +0100 | <idnar> | :t \f v -> do x <- Control.Concurrent.STM.TVar.readTVar v; x' <- f x; Control.Concurrent.STM.TVar.writeTVar v x' |
2020-12-31 11:14:20 +0100 | <lambdabot> | (a -> GHC.Conc.Sync.STM a) -> GHC.Conc.Sync.TVar a -> GHC.Conc.Sync.STM () |
2020-12-31 11:16:06 +0100 | <idnar> | @hoogle (a -> STM a) -> TVar a -> STM () |
2020-12-31 11:16:07 +0100 | <lambdabot> | Control.Concurrent.Async.Lifted mapConcurrently_ :: (Foldable t, MonadBaseControl IO m) => (a -> m b) -> t a -> m () |
2020-12-31 11:16:08 +0100 | <lambdabot> | Control.Concurrent.Async.Lifted.Safe mapConcurrently_ :: (Foldable t, MonadBaseControl IO m, Forall (Pure m)) => (a -> m b) -> t a -> m () |
2020-12-31 11:16:08 +0100 | <lambdabot> | Prelude mapM_ :: (Foldable t, Monad m) => (a -> m b) -> t a -> m () |
2020-12-31 11:16:46 +0100 | Franciman | (~francesco@host-95-250-152-231.retail.telecomitalia.it) |
2020-12-31 11:16:51 +0100 | __monty__ | (~toonn@unaffiliated/toonn) |
2020-12-31 11:17:38 +0100 | sw1nn | (~sw1nn@2a00:23c6:2385:3a00:535:b5d7:a67c:1f0) |
2020-12-31 11:20:51 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:c4d1:58bf:ee47:d219) |
2020-12-31 11:22:40 +0100 | heatsink_ | (~heatsink@2600:1700:bef1:5e10:7885:6416:3686:a90b) |
2020-12-31 11:25:42 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:c4d1:58bf:ee47:d219) (Ping timeout: 260 seconds) |
2020-12-31 11:26:33 +0100 | Juviee | (2ebf899a@46.191.137.154) |
2020-12-31 11:26:48 +0100 | kuribas | (~user@ptr-25vy0i7u8xzr2adyh2i.18120a2.ip6.access.telenet.be) |
2020-12-31 11:27:27 +0100 | heatsink_ | (~heatsink@2600:1700:bef1:5e10:7885:6416:3686:a90b) (Ping timeout: 260 seconds) |
2020-12-31 11:28:48 +0100 | jamm | (~jamm@unaffiliated/jamm) |
2020-12-31 11:32:18 +0100 | <Juviee> | Hello there! I can't solve one simple task. While using list comprehensions with predicates, I can use as predicate x `mod` 3 == 0 condition, but only if in main body of list comprehension I use integer conversions. When I try to multiply body to floating-point number, It doesnt work, and compiler complains on predicate. So I tried to modify |
2020-12-31 11:32:19 +0100 | <Juviee> | predicate to ( ( floor x ) mod 3) == 0, but then compiler thinks I try to put in "floor" function three arguments, despite I used brackets. What can I do, instead of bypassing this problem with stepped by three interval or smth? |
2020-12-31 11:33:10 +0100 | inkbottle | (~inkbottle@aaubervilliers-654-1-73-208.w86-212.abo.wanadoo.fr) |
2020-12-31 11:33:22 +0100 | <Juviee> | Like: [x * 2 | x <- [1 .. 45], x `mod` 3 == 0] -- works, [x * 2 * 2.74 | x <- [1 .. 45], x `mod` 3 == 0] |
2020-12-31 11:33:28 +0100 | <Juviee> | and second don't work |
2020-12-31 11:33:43 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-12-31 11:34:31 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-158-75.w86-212.abo.wanadoo.fr) (Ping timeout: 246 seconds) |
2020-12-31 11:34:34 +0100 | andreas303 | (~andreas@gateway/tor-sasl/andreas303) (Remote host closed the connection) |
2020-12-31 11:37:15 +0100 | ADG1089__ | (~aditya@223.235.213.117) (Remote host closed the connection) |
2020-12-31 11:37:26 +0100 | <kuribas> | Juviee: you cannot combine float and int operations. |
2020-12-31 11:37:35 +0100 | <kuribas> | Juviee: you need to cast to float first |
2020-12-31 11:37:39 +0100 | <kuribas> | :t realToFrac |
2020-12-31 11:37:41 +0100 | <lambdabot> | (Real a, Fractional b) => a -> b |
2020-12-31 11:37:49 +0100 | <kuribas> | > realToFrac (1::Int) |
2020-12-31 11:37:51 +0100 | <lambdabot> | 1.0 |
2020-12-31 11:38:22 +0100 | andreas303 | (~andreas@gateway/tor-sasl/andreas303) |
2020-12-31 11:38:35 +0100 | <kuribas> | > [realToFrac x * 2 * 2.74 | x <- [1 .. 45], x `mod` 3 == 0] |
2020-12-31 11:38:36 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2020-12-31 11:38:37 +0100 | <lambdabot> | [16.44,32.88,49.32000000000001,65.76,82.2,98.64000000000001,115.080000000000... |
2020-12-31 11:42:29 +0100 | <__monty__> | Juviee: Also, you're missing the backticks around mod in the second instance, which changes how the expression is parsed. |
2020-12-31 11:44:05 +0100 | <Kronic> | Btw, you can do [3,6..45] instead of using mod at all |
2020-12-31 11:47:42 +0100 | rdivyanshu | (uid322626@gateway/web/irccloud.com/x-jcdseavtxziunszu) |
2020-12-31 11:49:42 +0100 | jamm_ | (~jamm@unaffiliated/jamm) |
2020-12-31 11:52:14 +0100 | jamm | (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds) |
2020-12-31 11:55:11 +0100 | <pie_> | how can I convert a ForeignPtr to a Ptr? I want to pass some things from c code back to c code |
2020-12-31 11:55:21 +0100 | <pie_> | (also I dont know how to ensure the finalizers dont get run) |
2020-12-31 11:55:36 +0100 | ADG1089__ | (~aditya@223.235.213.117) |
2020-12-31 11:55:47 +0100 | <pie_> | (I'm using someone else's library) |
2020-12-31 11:56:43 +0100 | m0rphism | (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) |
2020-12-31 11:56:47 +0100 | t3xp4t | (~texinwien@213162073014.public.t-mobile.at) |
2020-12-31 12:01:56 +0100 | mp___ | (mp@hell.cx) (Ping timeout: 265 seconds) |
2020-12-31 12:02:11 +0100 | <ski> | > [all (== "pending") ms | ms <- [Just "pending",Just "done",Nothing]] -- idnar ? |
2020-12-31 12:02:14 +0100 | <lambdabot> | [True,False,True] |
2020-12-31 12:02:58 +0100 | <xerox_> | :t all |
2020-12-31 12:02:59 +0100 | <lambdabot> | Foldable t => (a -> Bool) -> t a -> Bool |
2020-12-31 12:04:08 +0100 | michalz | (~user@185.246.204.93) |
2020-12-31 12:05:01 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-12-31 12:05:35 +0100 | Saukk | (~Saukk@83-148-239-3.dynamic.lounea.fi) |
2020-12-31 12:05:51 +0100 | t3xp4t | (~texinwien@213162073014.public.t-mobile.at) (Remote host closed the connection) |
2020-12-31 12:05:53 +0100 | <pie_> | ok i found this https://hackage.haskell.org/package/base-4.14.1.0/docs/Foreign-ForeignPtr-Unsafe.html#v:unsafeFore… , now the question is I dont quite understand how to make the last occurence safe when leaving the haskell code |
2020-12-31 12:06:15 +0100 | <idnar> | ski: ended up with `case s of Just x | x /= "pending" -> … ; _ -> …` |
2020-12-31 12:06:44 +0100 | <ski> | dyeplexer : the rationale is to think of combining the sequence of elements, one at the time, with an accumulator state / rest summary, either coming from the left, or coming from the right |
2020-12-31 12:07:05 +0100 | <ski> | idnar : sure, if you find it clearer |
2020-12-31 12:12:51 +0100 | t3xp4t | (~texinwien@213162073014.public.t-mobile.at) |
2020-12-31 12:12:56 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-12-31 12:13:39 +0100 | kritzefitz | (~kritzefit@212.86.56.80) |
2020-12-31 12:16:41 +0100 | acidx1 | (~acidx@185.163.110.125) (Remote host closed the connection) |
2020-12-31 12:16:41 +0100 | <pie_> | also the code uses https://hackage.haskell.org/package/singletons-2.7/docs/Data-Singletons-TH.html#v:genSingletons , and I have no idea how to fix this: |
2020-12-31 12:16:49 +0100 | <dyeplexer> | ski: yes. But I think comes with the trade-off of uniformity. I would have to look up the type definition of the functions again an again to get it right each time I forget about this while I'm new to Haskell and haven't "instilled" this thought process in my brain, or forget about Haskell and pick it up again later. That's why I had the question in the first place. |
2020-12-31 12:17:25 +0100 | <dyeplexer> | *but I think this |
2020-12-31 12:17:26 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds) |
2020-12-31 12:19:21 +0100 | <dyeplexer> | Maybe this is a non-issue in the long run because I might have to look up the type definition anyway. idk at the moment, |
2020-12-31 12:22:33 +0100 | <pie_> | actually, let me change the question, https://bpa.st/KPTA the type that is in the error is different from the type GHCi gives??? |
2020-12-31 12:22:33 +0100 | <pie_> | > :t translationUnitCursor |
2020-12-31 12:22:33 +0100 | <pie_> | translationUnitCursor :: TranslationUnit -> Cursor |
2020-12-31 12:22:35 +0100 | <lambdabot> | <hint>:1:1: error: <hint>:1:1: error: parse error on input ‘:’ |
2020-12-31 12:24:55 +0100 | <pie_> | how do i even debug this, im throwing :info :k and :t haphazardly at stuff and its not getting any clearer |
2020-12-31 12:25:09 +0100 | <pie_> | hell, CursorK doesnt even seem to be in scope |
2020-12-31 12:25:28 +0100 | usr25 | (~usr25@unaffiliated/usr25) |
2020-12-31 12:29:08 +0100 | <tomsmeding> | pie_: what's Cursor defined as |
2020-12-31 12:29:44 +0100 | <pie_> | > :t Cursor |
2020-12-31 12:29:45 +0100 | <pie_> | Cursor :: Leaf TranslationUnit CXCursor -> Cursor |
2020-12-31 12:29:46 +0100 | <pie_> | tomsmeding: one sec |
2020-12-31 12:29:47 +0100 | <lambdabot> | <hint>:1:1: error: <hint>:1:1: error: parse error on input ‘:’ |
2020-12-31 12:30:07 +0100 | <tomsmeding> | also ghc doesn't always try to qualify stuff in error messages, so the fact that CursorK isn't in scope in ghci doesn't really say much |
2020-12-31 12:30:26 +0100 | <pie_> | tomsmeding: newtype Cursor = Cursor (Leaf TranslationUnit CXCursor) deriving (Child, Clang) |
2020-12-31 12:30:50 +0100 | <pie_> | (I dont think I found cursork in the source either, its probably related to the genSingletons stuff) |
2020-12-31 12:31:30 +0100 | <pie_> | this is the library btw https://hackage.haskell.org/package/clang-pure |
2020-12-31 12:31:51 +0100 | <pie_> | i had to move the internal things to exposed in the cabal to poke at it though |
2020-12-31 12:32:31 +0100 | <tomsmeding> | CursorK is just a newtype wrapper around Cursor, apparently: https://hackage.haskell.org/package/clang-pure-0.2.0.6/docs/src/Language.C.Clang.Cursor.Typed.html… |
2020-12-31 12:32:43 +0100 | knupfer | (~Thunderbi@200116b82c2ab400883930fffecfb804.dip.versatel-1u1.de) |
2020-12-31 12:32:44 +0100 | knupfer | (~Thunderbi@200116b82c2ab400883930fffecfb804.dip.versatel-1u1.de) (Client Quit) |
2020-12-31 12:33:01 +0100 | knupfer | (~Thunderbi@87.123.206.212) |
2020-12-31 12:33:30 +0100 | <pie_> | oh, i was only grepping a subdirectory *facepalm* |
2020-12-31 12:33:41 +0100 | <tomsmeding> | pie_: there are two translationUnitCursor definitions with different types: https://tomsmeding.com/ss/get/tomsmeding/n72aqp |
2020-12-31 12:33:45 +0100 | <tomsmeding> | that might be your issue |
2020-12-31 12:34:00 +0100 | <tomsmeding> | hint: the 's' key on a haddocks page opens a search box ;) |
2020-12-31 12:34:13 +0100 | son0p | (~son0p@181.58.39.182) (Quit: leaving) |
2020-12-31 12:34:15 +0100 | <pie_> | yeah, thanks ;_; |
2020-12-31 12:37:26 +0100 | spake | (~spake@178.162.204.214) |
2020-12-31 12:37:26 +0100 | <Kronic> | Need some cabal help: I have library definition which exports 3 or 4 related modules, All listed under a subfolder in hs-source-dirs: src/Lib, e.g. one is called Lib.A -- I have named them in the module statement Lib.A and the file is called A.hs located inside that Lib folder, but for some reason it cannot find it. Does the name have to be the same or how do achieve this naming scheme like I see other libraries use ? |
2020-12-31 12:37:50 +0100 | <pie_> | tomsmeding: are you able to help maybe with my finalizer question:? |
2020-12-31 12:38:20 +0100 | <pie_> | I dont know how this is supposed to help, if I'm returning from haskell permanently https://hackage.haskell.org/package/base-4.14.1.0/docs/Foreign-ForeignPtr-Safe.html#v:touchForeign… |
2020-12-31 12:38:26 +0100 | <tomsmeding> | pie_: is that about ForeignPtr's? I have absolutely no idea how they work :D |
2020-12-31 12:38:37 +0100 | <pie_> | ok xD |
2020-12-31 12:39:12 +0100 | <tomsmeding> | Kronic: hs-source-dirs: src |
2020-12-31 12:39:15 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2020-12-31 12:39:33 +0100 | <tomsmeding> | if you use src/Lib as the source directory, then the file has relative path A.hs, meaning it gets module name A, not Lib.A |
2020-12-31 12:41:42 +0100 | <Kronic> | Ahh that makes sense, and is easier. Thank you tom |
2020-12-31 12:43:53 +0100 | <pie_> | i mean, how would i even theoretically solve this |
2020-12-31 12:44:32 +0100 | <pie_> | i need to somehow tell haskell that a variable will be live even though it will never actually be returned to, because the c++ is calling haskell, not the other way around |
2020-12-31 12:44:58 +0100 | <Kronic> | What's your use case ? |
2020-12-31 12:48:45 +0100 | <pie_> | i want to test some cpp that consumes a pointer to something |
2020-12-31 12:48:57 +0100 | <pie_> | that somehting is a bunch of stuff already implemented on the haskell side |
2020-12-31 12:49:06 +0100 | <pie_> | so I want my cpp program to get it from haskell |
2020-12-31 12:49:37 +0100 | ADG1089__ | (~aditya@223.235.213.117) (Remote host closed the connection) |
2020-12-31 12:50:01 +0100 | <Kronic> | Hmm, well if you're considering FFI there is probably good reason, but have you considered just sending it over the wire or something? It'll be a lot less painful I would imagine |
2020-12-31 12:51:09 +0100 | <pie_> | well its a pointer into clang stuff managed by the haskell code |
2020-12-31 12:51:18 +0100 | <pie_> | dont think i can serialize that :P |
2020-12-31 12:51:37 +0100 | eruiucuiviucuiv | (dd73e7a2@gateway/web/cgi-irc/kiwiirc.com/ip.221.115.231.162) |
2020-12-31 12:52:08 +0100 | <pie_> | actually, bitonic, ping? 'xD |
2020-12-31 12:53:07 +0100 | madjestic | (~Android@86-88-72-244.fixed.kpn.net) |
2020-12-31 12:53:09 +0100 | <idnar> | @hoogle (Void, Void) -> Void |
2020-12-31 12:53:10 +0100 | <lambdabot> | Sound.Tidal.Utils delta :: Num a => (a, a) -> a |
2020-12-31 12:53:10 +0100 | <lambdabot> | DSP.Basic norm2sqr :: Num a => (a, a) -> a |
2020-12-31 12:53:10 +0100 | <lambdabot> | Prelude fst :: (a, b) -> a |
2020-12-31 12:53:55 +0100 | <pie_> | this sounds like what i want blog.ezyang.com/2010/07/managing-foreign-pointers-effectively/ " you can use a StablePtr to keep your ForeignPtr from ever being garbage collected" |
2020-12-31 12:54:16 +0100 | <pie_> | kind of makes sense if im interpreting this correctly, i can just wrap the foreignptr in a stableptr? |
2020-12-31 12:55:04 +0100 | mp___ | (mp@hell.cx) |
2020-12-31 12:55:39 +0100 | Alleria | (~textual@mskresolve-a.mskcc.org) |
2020-12-31 12:56:02 +0100 | Alleria | Guest21562 |
2020-12-31 12:58:00 +0100 | <idnar> | @hoogle Either Void Void -> Void |
2020-12-31 12:58:01 +0100 | <lambdabot> | Data.Either.Utils fromEither :: Either a a -> a |
2020-12-31 12:58:01 +0100 | <lambdabot> | Data.Either.Extra fromEither :: Either a a -> a |
2020-12-31 12:58:01 +0100 | <lambdabot> | Extra fromEither :: Either a a -> a |
2020-12-31 12:59:55 +0100 | m0rphism | (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 246 seconds) |
2020-12-31 13:02:24 +0100 | t3xp4t | (~texinwien@213162073014.public.t-mobile.at) (Remote host closed the connection) |
2020-12-31 13:02:52 +0100 | Saukk | (~Saukk@83-148-239-3.dynamic.lounea.fi) (Remote host closed the connection) |
2020-12-31 13:03:54 +0100 | Feuermagier | (~Feuermagi@213.178.26.41) |
2020-12-31 13:06:16 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:25e9:81:81d6:bd54) |
2020-12-31 13:09:01 +0100 | Gurkenglas | (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 246 seconds) |
2020-12-31 13:09:28 +0100 | <pie_> | oh cool , i got it to compile, lets see if it crashes |
2020-12-31 13:09:38 +0100 | <pie_> | cool i got a pointer :D |
2020-12-31 13:09:53 +0100 | <ski> | dyeplexer : yes, it's not obviously the only sensible way to have it |
2020-12-31 13:09:57 +0100 | <ski> | SML has it as |
2020-12-31 13:10:07 +0100 | <ski> | val foldl : ('a * 'b -> 'b) -> 'b -> 'a list -> 'b |
2020-12-31 13:10:13 +0100 | <ski> | val foldr : ('a * 'b -> 'b) -> 'b -> 'a list -> 'b |
2020-12-31 13:10:19 +0100 | <ski> | while O'Caml has |
2020-12-31 13:10:25 +0100 | <ski> | val fold_left : ('b -> 'a -> 'b) -> ('b -> 'a list -> 'b) |
2020-12-31 13:10:31 +0100 | <ski> | val fold_right : ('a -> 'b -> 'b) -> ('a list -> 'b -> 'b) |
2020-12-31 13:10:50 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:25e9:81:81d6:bd54) (Ping timeout: 264 seconds) |
2020-12-31 13:12:06 +0100 | <dyeplexer> | I see |
2020-12-31 13:12:13 +0100 | boxscape | (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) |
2020-12-31 13:12:37 +0100 | <ski> | so with SML, they've the same signature, so you can just swap one out for the other (one could debate whether that's a good thing). it does give you that `foldl f z (rev xs)' is equal to `foldr f z xs', though |
2020-12-31 13:13:05 +0100 | <ski> | while the O'Caml ones go with the same parameter ordering for the callback as the Haskell ones |
2020-12-31 13:13:11 +0100 | <ski> | @type foldl |
2020-12-31 13:13:12 +0100 | <lambdabot> | Foldable t => (b -> a -> b) -> b -> t a -> b |
2020-12-31 13:13:15 +0100 | <ski> | @type foldr |
2020-12-31 13:13:17 +0100 | <lambdabot> | Foldable t => (a -> b -> b) -> b -> t a -> b |
2020-12-31 13:13:38 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d) |
2020-12-31 13:13:52 +0100 | byorgey | (~byorgey@155.138.238.211) (Quit: Lost terminal) |
2020-12-31 13:14:18 +0100 | <ski> | while also swapping the order of the list and right-most / initial value, in the `fold_right' case. this means that one can compose them with themselves, like |
2020-12-31 13:14:40 +0100 | <ski> | val fold_left o fold_left : ('b -> 'a -> 'b) -> ('b -> 'a list list -> 'b) |
2020-12-31 13:14:58 +0100 | <ski> | val fold_right o fold_right : ('a -> 'b -> 'b) -> ('a list list -> 'b -> 'b) |
2020-12-31 13:14:58 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-12-31 13:15:01 +0100 | <pie_> | now to figure out how to build this thing... |
2020-12-31 13:16:10 +0100 | <ski> | for Haskell, to do that, you'd do |
2020-12-31 13:16:19 +0100 | <ski> | @type foldl . foldl |
2020-12-31 13:16:20 +0100 | <lambdabot> | (Foldable t1, Foldable t2) => (b -> a -> b) -> b -> t1 (t2 a) -> b |
2020-12-31 13:16:22 +0100 | <ski> | but |
2020-12-31 13:16:39 +0100 | <ski> | @type foldr . flip . foldr |
2020-12-31 13:16:40 +0100 | <lambdabot> | (Foldable t1, Foldable t2) => (a -> b -> b) -> b -> t1 (t2 a) -> b |
2020-12-31 13:18:38 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d) (Ping timeout: 264 seconds) |
2020-12-31 13:20:12 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2020-12-31 13:21:41 +0100 | <ski> | dyeplexer : so there's three different positives here, (a) mnemonic of "injecting" the initial value either from the left, or from the right (Haskell,O'Caml); (b) same callback signature, making it easier to state relation between the two (SML); (c) being able to self-compose the folds (O'Caml. Haskell could have had this, if the initial value and list parameters were swapped) |
2020-12-31 13:22:12 +0100 | Torro | (Torro@gateway/vpn/protonvpn/torro) |
2020-12-31 13:22:27 +0100 | <ski> | (a) is inconsistent with (b), can't have both. btw, (a) is what causes the following to keep the list element ordering in the expression : |
2020-12-31 13:22:43 +0100 | <ski> | > foldl f z [a,b,c,d] |
2020-12-31 13:22:46 +0100 | <lambdabot> | f (f (f (f z a) b) c) d |
2020-12-31 13:22:47 +0100 | <ski> | > foldr f z [a,b,c,d] |
2020-12-31 13:22:50 +0100 | <lambdabot> | f a (f b (f c (f d z))) |
2020-12-31 13:23:09 +0100 | <ski> | > foldl (**) z [a,b,c,d] |
2020-12-31 13:23:12 +0100 | <lambdabot> | (((z**a)**b)**c)**d |
2020-12-31 13:23:28 +0100 | <ski> | > foldr (/) z [a,b,c,d] |
2020-12-31 13:23:31 +0100 | <lambdabot> | a / (b / (c / (d / z))) |
2020-12-31 13:27:17 +0100 | Entertainment | (~entertain@104.246.132.210) |
2020-12-31 13:28:36 +0100 | ADG1089__ | (~aditya@223.235.213.117) |
2020-12-31 13:30:43 +0100 | <Squarism> | Doesnt micro-lens allow me to auto-create Prism's for my sum types? How do they mean one should create a Traversal involving sum type constructors? |
2020-12-31 13:33:06 +0100 | <dyeplexer> | Got it. Thanks. |
2020-12-31 13:33:08 +0100 | <ski> | (i guess SML could also have made their self-composable. but they decided to make the callback tupled, while accepting the initial value and the list curriedly. presumably the former is because an expression like `op +' (corresponding to `(+)' in Haskell), is tupled. generally O'Caml tends to prefer curried style more, while many standard library operations in SML are tupled. i think because tupled were more |
2020-12-31 13:33:10 +0100 | Entertainment | (~entertain@104.246.132.210) () |
2020-12-31 13:33:14 +0100 | perrier-jouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
2020-12-31 13:33:14 +0100 | <ski> | efficient in existing implementations back then in SML, while O'Caml had efficient curried ones from early on at least) |
2020-12-31 13:34:09 +0100 | boxscape | (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Quit: Connection closed) |
2020-12-31 13:34:18 +0100 | t3xp4t | (~texinwien@213162073014.public.t-mobile.at) |
2020-12-31 13:34:33 +0100 | Entertainment | (~entertain@104.246.132.210) |
2020-12-31 13:34:39 +0100 | boxscape | (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) |
2020-12-31 13:34:57 +0100 | ezzieyguywuf | (~Unknown@unaffiliated/ezzieyguywuf) (Remote host closed the connection) |
2020-12-31 13:36:00 +0100 | <int-e> | That's the cost of having a spine :) |
2020-12-31 13:36:30 +0100 | <ski> | (although some common ones, like e.g. `map', and `foldl' and `foldr' themselves (but not the callback parameter) are still curried, probably because it's just so useful to e.g. be able to do `map (map f) xss' or `map (foldl f z) xss', &c.) |
2020-12-31 13:40:52 +0100 | ADG1089__ | (~aditya@223.235.213.117) (Remote host closed the connection) |
2020-12-31 13:41:35 +0100 | t3xp4t | (~texinwien@213162073014.public.t-mobile.at) (Remote host closed the connection) |
2020-12-31 13:43:25 +0100 | geekosaur | (ac3a8c6e@172.58.140.110) |
2020-12-31 13:45:36 +0100 | eruiucuiviucuiv | (dd73e7a2@gateway/web/cgi-irc/kiwiirc.com/ip.221.115.231.162) (Quit: Connection closed) |
2020-12-31 13:47:52 +0100 | andreas303 | (~andreas@gateway/tor-sasl/andreas303) (Quit: andreas303) |
2020-12-31 13:48:02 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 264 seconds) |
2020-12-31 13:51:46 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
2020-12-31 13:52:34 +0100 | ADG1089__ | (~aditya@223.235.213.117) |
2020-12-31 13:53:55 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-12-31 13:54:57 +0100 | Sheilong | (uid293653@gateway/web/irccloud.com/x-bcyqpaqbievullib) |
2020-12-31 13:55:00 +0100 | mirai67 | (~serijima7@5.76.196.62) |
2020-12-31 13:55:16 +0100 | madjestic | (~Android@86-88-72-244.fixed.kpn.net) (Ping timeout: 240 seconds) |
2020-12-31 13:59:43 +0100 | madjest62 | (~Android@31-161-159-42.mobile.kpn.net) |
2020-12-31 14:01:27 +0100 | mp___ | (mp@hell.cx) (Ping timeout: 260 seconds) |
2020-12-31 14:03:42 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:143:ed02:88f3:91f8:f3d8) |
2020-12-31 14:04:41 +0100 | mirai67 | (~serijima7@5.76.196.62) ("Leaving") |
2020-12-31 14:14:14 +0100 | Guest21562 | (~textual@mskresolve-a.mskcc.org) (Quit: Textual IRC Client: www.textualapp.com) |
2020-12-31 14:14:27 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d) |
2020-12-31 14:18:55 +0100 | Alleria | (~textual@zrcout.mskcc.org) |
2020-12-31 14:18:57 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d) (Ping timeout: 260 seconds) |
2020-12-31 14:19:18 +0100 | Alleria | Guest38620 |
2020-12-31 14:20:51 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:143:ed02:88f3:91f8:f3d8) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-12-31 14:23:12 +0100 | <Juviee> | kuribas: Thanks a lot for help! I though I need to mess with predicate, and solution were in a body. That's explains a lot! |
2020-12-31 14:25:10 +0100 | knupfer | (~Thunderbi@87.123.206.212) (Ping timeout: 272 seconds) |
2020-12-31 14:25:13 +0100 | ezzieyguywuf | (~Unknown@unaffiliated/ezzieyguywuf) |
2020-12-31 14:25:50 +0100 | jneira | (5127adb4@gateway/web/cgi-irc/kiwiirc.com/ip.81.39.173.180) (Quit: Connection closed) |
2020-12-31 14:25:52 +0100 | <Juviee> | Kronic: thank you, I already did that, but it was important for me to solve the problem this way, to know types better |
2020-12-31 14:30:13 +0100 | rdivyanshu | (uid322626@gateway/web/irccloud.com/x-jcdseavtxziunszu) (Quit: Connection closed for inactivity) |
2020-12-31 14:31:05 +0100 | <pie_> | tomsmeding: thanks again for getting me unstuck :D looks like im makign progress , i have my cpp code executing the haskell now and it gets the pointer succesfully, not sure if the pointer is actually good yet but the information is flowing. |
2020-12-31 14:31:37 +0100 | cyphase | (~cyphase@unaffiliated/cyphase) (Ping timeout: 246 seconds) |
2020-12-31 14:34:53 +0100 | Shiranai | (beed0d8f@gateway/web/cgi-irc/kiwiirc.com/ip.190.237.13.143) |
2020-12-31 14:35:32 +0100 | <Shiranai> | Hello, silly question, is there some way to tell stack to install a "global", default ghc and ghci? I'm on Windows if that matters |
2020-12-31 14:35:59 +0100 | <geekosaur> | no, it wants to retain full control |
2020-12-31 14:36:09 +0100 | cyphase | (~cyphase@unaffiliated/cyphase) |
2020-12-31 14:36:14 +0100 | son0p | (~son0p@181.136.122.143) |
2020-12-31 14:36:33 +0100 | t3xp4t | (~texinwien@213162073014.public.t-mobile.at) |
2020-12-31 14:37:18 +0100 | <Shiranai> | thanks, I want to use the LSP for haskell in vscode, so there's no way? There doesn't seem to be any way for me to point to the correct binaries inside stack |
2020-12-31 14:38:15 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
2020-12-31 14:38:39 +0100 | ADG1089__ | (~aditya@223.235.213.117) (Remote host closed the connection) |
2020-12-31 14:39:42 +0100 | <geekosaur> | I thought vscode knew about stack. But I don't know details |
2020-12-31 14:42:26 +0100 | ADG1089__ | (~aditya@223.235.213.117) |
2020-12-31 14:45:00 +0100 | pavonia | (~user@unaffiliated/siracusa) |
2020-12-31 14:45:10 +0100 | t3xp4t | (~texinwien@213162073014.public.t-mobile.at) (Remote host closed the connection) |
2020-12-31 14:46:48 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Quit: Reconnecting) |
2020-12-31 14:46:55 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-12-31 14:49:18 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2020-12-31 14:49:57 +0100 | christo | (~chris@81.96.113.213) |
2020-12-31 14:53:30 +0100 | spake | (~spake@178.162.204.214) (Remote host closed the connection) |
2020-12-31 14:54:32 +0100 | christo | (~chris@81.96.113.213) (Ping timeout: 260 seconds) |
2020-12-31 14:55:01 +0100 | mp___ | (mp@hell.cx) |
2020-12-31 15:00:18 +0100 | frankdmartinez | (~frankdmar@5.181.234.188) |
2020-12-31 15:01:07 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:25e9:81:81d6:bd54) |
2020-12-31 15:01:32 +0100 | perrier-jouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Ping timeout: 260 seconds) |
2020-12-31 15:02:58 +0100 | worc3131 | (~quassel@2a02:c7f:dcc4:6500:cf0e:3346:8766:ab20) |
2020-12-31 15:03:51 +0100 | jmchael | (~jmchael@81.174.205.210) |
2020-12-31 15:04:49 +0100 | perrier-jouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
2020-12-31 15:05:51 +0100 | <tomsmeding> | Shiranai: it might be worth trying to write a hie.yaml |
2020-12-31 15:06:22 +0100 | <tomsmeding> | see e.g. https://github.com/mpickering/hie-bios#stack |
2020-12-31 15:06:47 +0100 | <tomsmeding> | (hie-bios is the compiler detection engine underlying ghcide, which underlies HLS, which is used by the vscode plugin :D ) |
2020-12-31 15:06:57 +0100 | <ph88_> | whats the proper key combination to get ghci out of an infinite loop ? |
2020-12-31 15:07:04 +0100 | <tomsmeding> | ctrl-C? |
2020-12-31 15:07:11 +0100 | <Shiranai> | ctrl-d would kill the process |
2020-12-31 15:07:19 +0100 | <geekosaur> | ctrl-c |
2020-12-31 15:07:29 +0100 | <tomsmeding> | pie_: nice! good luck! |
2020-12-31 15:07:34 +0100 | <geekosaur> | ctrl-d sends end-of-file which is unlikely to do anything here |
2020-12-31 15:07:49 +0100 | <ph88_> | hhmm ok .. i use git bash terminal on windows and it responds kind of funky after a ctrl-c |
2020-12-31 15:07:51 +0100 | <Shiranai> | o mb then |
2020-12-31 15:08:02 +0100 | <__monty__> | I've had trouble getting GHCi to stop with ^C too. |
2020-12-31 15:08:19 +0100 | <tomsmeding> | that might be an interaction with windows |
2020-12-31 15:08:21 +0100 | <__monty__> | Seems to only work if I'm quick enough to notice the looping. |
2020-12-31 15:08:27 +0100 | <__monty__> | I'm not on windows. |
2020-12-31 15:08:34 +0100 | <geekosaur> | sadly, ghc/ghci only checks for it during alloction so a loop that doesn't allocate can't be interrupted |
2020-12-31 15:08:42 +0100 | <tomsmeding> | does it quit if you ^C twice, __monty__ ? |
2020-12-31 15:08:47 +0100 | urodna | (~urodna@unaffiliated/urodna) |
2020-12-31 15:08:53 +0100 | <__monty__> | tomsmeding: Not even if I hold down ^C. |
2020-12-31 15:09:12 +0100 | <__monty__> | Probably running into what geekosaur mentions. |
2020-12-31 15:09:13 +0100 | ph88^ | (~ph88@2a02:8109:9e00:7e5c:41e3:583d:215a:64f8) |
2020-12-31 15:09:20 +0100 | <ph88^> | thats interesting Geekingfrog |
2020-12-31 15:09:23 +0100 | <ph88^> | geekosaur, |
2020-12-31 15:09:29 +0100 | <ph88^> | sorry Geekingfrog :/ |
2020-12-31 15:10:08 +0100 | hexreel | (~hr@2600:1700:28e2:14d0:cd7:6aae:18aa:4ec7) |
2020-12-31 15:10:46 +0100 | Rudd0^ | (~Rudd0@185.189.115.103) (Ping timeout: 272 seconds) |
2020-12-31 15:11:37 +0100 | ADG1089__ | (~aditya@223.235.213.117) (Remote host closed the connection) |
2020-12-31 15:12:19 +0100 | <Shiranai> | tomsmeding: checked the hie-bios stuff but I don't think ghcide can be configured as such sadly http://prntscr.com/wdofbj it seems it it's another alternative somehow, and there's no vscode way to link to the hie.yaml, I think. If I were to write it in the installation folder I'd probably lose it after an LSP update |
2020-12-31 15:12:45 +0100 | <merijn> | Shiranai: ghcide *definitely* uses hie-bios |
2020-12-31 15:12:46 +0100 | <Shiranai> | guess I'll just install the haskell platform too then |
2020-12-31 15:13:02 +0100 | <tomsmeding> | Shiranai: you put that hie.yaml file in your project folder (next to the stack.yaml file); it will be picked up automatically |
2020-12-31 15:13:14 +0100 | ph88_ | (~ph88@2a02:8109:9e00:7e5c:b472:19b8:2fa3:f30b) (Ping timeout: 264 seconds) |
2020-12-31 15:13:20 +0100 | <tomsmeding> | possibly you need to restart haskell-language-server, which perhaps means restarting vscode (don't know) |
2020-12-31 15:13:25 +0100 | <lassulus> | hi, my ByteString shows umlauts like this: "f\195\188nfgr\195\182\195\159ten" is there a way to convert them to their correct representation inside a text? I tried decodeUtf8 but that just converted them to "f\252nfgr\246\223ten" |
2020-12-31 15:13:30 +0100 | <ph88^> | both git bash and powershell have problems with ghci :*( |
2020-12-31 15:13:31 +0100 | DavidEichmann | (~david@98.27.93.209.dyn.plus.net) |
2020-12-31 15:13:48 +0100 | <merijn> | lassulus: If you decode to Text and see \252 your problem is "applying show to text" |
2020-12-31 15:14:03 +0100 | <merijn> | > Data.Text.pack "ü" |
2020-12-31 15:14:05 +0100 | <lambdabot> | error: |
2020-12-31 15:14:06 +0100 | <lambdabot> | Not in scope: ‘Data.Text.pack’ |
2020-12-31 15:14:06 +0100 | <lambdabot> | No module named ‘Data.Text’ is imported. |
2020-12-31 15:14:08 +0100 | <geekosaur> | lassulus, that has nothing to do with converion, it's what show does |
2020-12-31 15:14:08 +0100 | <merijn> | hmm |
2020-12-31 15:14:15 +0100 | <merijn> | > "ü" |
2020-12-31 15:14:17 +0100 | <lambdabot> | "\252" |
2020-12-31 15:14:22 +0100 | <merijn> | > text "ü" |
2020-12-31 15:14:24 +0100 | <lambdabot> | ü |
2020-12-31 15:14:30 +0100 | <merijn> | See also in yahb |
2020-12-31 15:14:34 +0100 | <merijn> | % print "ü" |
2020-12-31 15:14:35 +0100 | <yahb> | merijn: "\252" |
2020-12-31 15:14:41 +0100 | <merijn> | % putStrLn "ü" |
2020-12-31 15:14:41 +0100 | <yahb> | merijn: ü |
2020-12-31 15:14:46 +0100 | <Shiranai> | I ohhh my bad, I wasn't using the yamls in my project folder, thought they were meant to be in the installation folder, thanks |
2020-12-31 15:15:02 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d) |
2020-12-31 15:15:07 +0100 | thunderrd | (~thunderrd@183.182.111.131) (Remote host closed the connection) |
2020-12-31 15:15:29 +0100 | <Shiranai> | ph88^: what problems you having? I'm using the normal cmd and it's fine |
2020-12-31 15:16:13 +0100 | thunderrd | (~thunderrd@183.182.111.131) |
2020-12-31 15:16:25 +0100 | olligobber | (~olligobbe@unaffiliated/olligobber) (Ping timeout: 246 seconds) |
2020-12-31 15:17:09 +0100 | ADG1089__ | (~aditya@223.235.213.117) |
2020-12-31 15:19:37 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d) (Ping timeout: 260 seconds) |
2020-12-31 15:20:19 +0100 | Gurkenglas | (~Gurkengla@unaffiliated/gurkenglas) |
2020-12-31 15:21:56 +0100 | christo | (~chris@81.96.113.213) |
2020-12-31 15:22:42 +0100 | Guest20891 | (~AntiSpamM@195.140.213.38) |
2020-12-31 15:23:36 +0100 | ph88_ | (~ph88@2a02:8109:9e00:7e5c:51f9:13ec:811d:93d3) |
2020-12-31 15:27:12 +0100 | ph88^ | (~ph88@2a02:8109:9e00:7e5c:41e3:583d:215a:64f8) (Ping timeout: 260 seconds) |
2020-12-31 15:27:13 +0100 | madjest62 | (~Android@31-161-159-42.mobile.kpn.net) (Read error: Connection reset by peer) |
2020-12-31 15:27:41 +0100 | thunderrd | (~thunderrd@183.182.111.131) (Remote host closed the connection) |
2020-12-31 15:27:59 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2020-12-31 15:28:48 +0100 | thunderrd | (~thunderrd@183.182.111.131) |
2020-12-31 15:31:25 +0100 | Torro | (Torro@gateway/vpn/protonvpn/torro) (Read error: Connection reset by peer) |
2020-12-31 15:31:27 +0100 | christo | (~chris@81.96.113.213) |
2020-12-31 15:31:43 +0100 | t3xp4t | (~texinwien@213162073014.public.t-mobile.at) |
2020-12-31 15:39:23 +0100 | darjeeling_ | (~darjeelin@122.245.217.190) (Ping timeout: 256 seconds) |
2020-12-31 15:40:05 +0100 | usr25 | (~usr25@unaffiliated/usr25) (Ping timeout: 240 seconds) |
2020-12-31 15:40:08 +0100 | geekosaur | (ac3a8c6e@172.58.140.110) (Remote host closed the connection) |
2020-12-31 15:42:41 +0100 | usr25 | (~usr25@unaffiliated/usr25) |
2020-12-31 15:43:51 +0100 | ke4pcx | (~ke4pcx@024-158-093-129.res.spectrum.com) () |
2020-12-31 15:44:59 +0100 | ke4pcx | (~ke4pcx@024-158-093-129.res.spectrum.com) |
2020-12-31 15:45:11 +0100 | ke4pcx | (~ke4pcx@024-158-093-129.res.spectrum.com) (Client Quit) |
2020-12-31 15:46:19 +0100 | phasespace_ | (~sar@89-162-33-21.fiber.signal.no) |
2020-12-31 15:46:32 +0100 | ke4pcx | (~ke4pcx@024-158-093-129.res.spectrum.com) |
2020-12-31 15:46:56 +0100 | phasespace | (~sar@89-162-33-21.fiber.signal.no) (Ping timeout: 240 seconds) |
2020-12-31 15:47:40 +0100 | ph88^ | (~ph88@2a02:8109:9e00:7e5c:61d8:4dbb:1763:5965) |
2020-12-31 15:47:54 +0100 | seliopou_ | (seliopou@entropy.tmok.com) |
2020-12-31 15:48:10 +0100 | ke4pcx | (~ke4pcx@024-158-093-129.res.spectrum.com) (Client Quit) |
2020-12-31 15:48:14 +0100 | seliopou | (seliopou@entropy.tmok.com) (Read error: Connection reset by peer) |
2020-12-31 15:48:30 +0100 | ke4pcx | (~ke4pcx@024-158-093-129.res.spectrum.com) |
2020-12-31 15:48:54 +0100 | seliopou_ | (seliopou@entropy.tmok.com) (Client Quit) |
2020-12-31 15:49:10 +0100 | lmk | (57b15d95@p57b15d95.dip0.t-ipconnect.de) |
2020-12-31 15:50:01 +0100 | <kuribas> | is there an easy way to get a portable binary? Like a docker image with ghc and alpine linux? |
2020-12-31 15:50:03 +0100 | seliopou | (seliopou@entropy.tmok.com) |
2020-12-31 15:50:41 +0100 | jamm_ | (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
2020-12-31 15:51:24 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2020-12-31 15:51:31 +0100 | ph88_ | (~ph88@2a02:8109:9e00:7e5c:51f9:13ec:811d:93d3) (Ping timeout: 258 seconds) |
2020-12-31 15:52:07 +0100 | Varis | (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
2020-12-31 15:52:26 +0100 | chang | (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) |
2020-12-31 15:52:42 +0100 | darjeeling_ | (~darjeelin@115.215.41.150) |
2020-12-31 15:52:55 +0100 | <merijn> | kuribas: full static (so Alpine for musl toolchain) executable should work across any linux distro with a binary compatible kernel (which, given linux' conservative changes in kernel should be "most of them") |
2020-12-31 15:54:09 +0100 | <kuribas> | merijn: but how do I get a ghc for alpine with musl? |
2020-12-31 15:55:24 +0100 | Varis | (~Tadas@unaffiliated/varis) |
2020-12-31 15:55:32 +0100 | <exarkun> | is ghc known to work well with alpine/musl? I know some other language runtimes run into problems with divergence between musl and glibc behavior. |
2020-12-31 15:56:26 +0100 | coffeeturtle | (~coffeetur@cpc103420-donc13-2-0-cust24.17-1.cable.virginm.net) |
2020-12-31 15:56:58 +0100 | <Rembane> | A couple of years ago there were known bugs in the interaction between GHC and Alpine. |
2020-12-31 15:57:32 +0100 | phaul | (~phaul@ruby/staff/phaul) (Ping timeout: 260 seconds) |
2020-12-31 15:57:36 +0100 | coffeeturtle | (~coffeetur@cpc103420-donc13-2-0-cust24.17-1.cable.virginm.net) (Client Quit) |
2020-12-31 15:58:27 +0100 | jamm | (~jamm@unaffiliated/jamm) |
2020-12-31 15:59:01 +0100 | mp___ | (mp@hell.cx) (Ping timeout: 264 seconds) |
2020-12-31 15:59:51 +0100 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
2020-12-31 16:00:40 +0100 | madjestic | (~Android@86-88-72-244.fixed.kpn.net) |
2020-12-31 16:01:24 +0100 | Tops2 | (~Tobias@dyndsl-095-033-019-027.ewe-ip-backbone.de) |
2020-12-31 16:01:37 +0100 | phaul | (~phaul@ruby/staff/phaul) |
2020-12-31 16:01:40 +0100 | cads | (~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 265 seconds) |
2020-12-31 16:03:22 +0100 | jamm | (~jamm@unaffiliated/jamm) (Ping timeout: 260 seconds) |
2020-12-31 16:03:39 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:25e9:81:81d6:bd54) (Ping timeout: 268 seconds) |
2020-12-31 16:04:10 +0100 | <exarkun> | I thought it was allowed to incompletely initialize a record type and then fill in the missing fields later but I get a runtime error "Missing field in record construction ...". Did I misunderstand or does this just mean I tried to use one of the uninitialized fields? |
2020-12-31 16:04:32 +0100 | <exarkun> | Also is there a better pattern for incrementally constructing a value than this? |
2020-12-31 16:08:28 +0100 | <Kronic> | Depends on the case I guess |
2020-12-31 16:10:05 +0100 | <kuribas> | exarkun: probably you used one of the fields |
2020-12-31 16:10:20 +0100 | <kuribas> | exarkun: but incompletely initialized fields are a code smell. |
2020-12-31 16:10:31 +0100 | andreas303 | (~andreas@gateway/tor-sasl/andreas303) |
2020-12-31 16:10:47 +0100 | <kuribas> | exarkun: you can use Maybe if the field can be empty |
2020-12-31 16:11:30 +0100 | <kuribas> | exarkun: or break down the record into parts that you assemble later. |
2020-12-31 16:11:41 +0100 | <exarkun> | All the fields will eventually be required to have a value |
2020-12-31 16:11:54 +0100 | <exarkun> | And there's an annoyingly large number of them |
2020-12-31 16:12:27 +0100 | <kuribas> | exarkun: if you need to leave them uninitialized, better to use defaults then. |
2020-12-31 16:12:36 +0100 | andreas303 | (~andreas@gateway/tor-sasl/andreas303) (Client Quit) |
2020-12-31 16:12:46 +0100 | <Kronic> | How many fields are there out of interest ? |
2020-12-31 16:12:55 +0100 | <exarkun> | 11 right now, not sure if I missed any ... although trying to figure out where I accessed this particularly field, I've realized that maybe I have to initialize all of them with some starting value anyway (and then update them over time rather than giving them their value at one point) |
2020-12-31 16:13:08 +0100 | <Kronic> | why not just use let in syntax? |
2020-12-31 16:13:38 +0100 | <kuribas> | or with recordWildCards: let PartialStruct1{..} = getPartial1; PartialStruct2{..} = getPartial2 in CompleteStruct{..} |
2020-12-31 16:13:44 +0100 | <exarkun> | There are 3 in particular that are annoying and have their value computed over the course of reading an arbitrarily large amount of input |
2020-12-31 16:14:12 +0100 | <exarkun> | computed separately from each other |
2020-12-31 16:14:34 +0100 | <exarkun> | meanwhile a couple other fields get used ... although I could probably get away from that |
2020-12-31 16:14:49 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:8d66:925f:69c5:e3bc) |
2020-12-31 16:15:03 +0100 | <exarkun> | that partial idea might be viable though |
2020-12-31 16:16:00 +0100 | boxscape | (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Ping timeout: 272 seconds) |
2020-12-31 16:16:03 +0100 | obihann | (~jhann@142.177.168.17) (Quit: Lost terminal) |
2020-12-31 16:16:25 +0100 | pera | (~pera@unaffiliated/pera) |
2020-12-31 16:17:04 +0100 | kritzefitz | (~kritzefit@212.86.56.80) (Ping timeout: 260 seconds) |
2020-12-31 16:19:15 +0100 | Torro | (Torro@gateway/vpn/protonvpn/torro) |
2020-12-31 16:19:45 +0100 | jneira | (5127adb4@gateway/web/cgi-irc/kiwiirc.com/ip.81.39.173.180) |
2020-12-31 16:21:22 +0100 | ADG1089__ | (~aditya@223.235.213.117) (Quit: Konversation terminated!) |
2020-12-31 16:21:41 +0100 | DataComputist | (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Quit: Leaving...) |
2020-12-31 16:23:06 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
2020-12-31 16:23:08 +0100 | fendor_ | (~fendor@77.119.130.207.wireless.dyn.drei.com) |
2020-12-31 16:25:50 +0100 | fendor | (~fendor@77.119.128.173.wireless.dyn.drei.com) (Ping timeout: 256 seconds) |
2020-12-31 16:26:07 +0100 | madjestic | (~Android@86-88-72-244.fixed.kpn.net) (Quit: -a- Connection Timed Out) |
2020-12-31 16:26:22 +0100 | madjestic | (~Android@86-88-72-244.fixed.kpn.net) |
2020-12-31 16:26:56 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2020-12-31 16:28:44 +0100 | christo | (~chris@81.96.113.213) |
2020-12-31 16:31:31 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) |
2020-12-31 16:35:51 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:143:ed02:88f3:91f8:f3d8) |
2020-12-31 16:37:03 +0100 | Saukk | (~Saukk@83-148-239-3.dynamic.lounea.fi) |
2020-12-31 16:38:58 +0100 | kritzefitz | (~kritzefit@212.86.56.80) |
2020-12-31 16:41:48 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:25e9:81:81d6:bd54) |
2020-12-31 16:42:34 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-12-31 16:42:53 +0100 | matryoshka` | (~matryoshk@184.75.223.227) (Quit: ZNC 1.8.2 - https://znc.in) |
2020-12-31 16:44:25 +0100 | codeAlways | (uid272474@gateway/web/irccloud.com/x-zlylaysqfazhvjvl) |
2020-12-31 16:45:21 +0100 | Kronic | (~Kronic___@84.203.96.46) (Read error: Connection reset by peer) |
2020-12-31 16:45:57 +0100 | rcdilorenzo | (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Ping timeout: 260 seconds) |
2020-12-31 16:48:18 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-12-31 16:48:51 +0100 | <ph88^> | Shiranai, the normal command from the 80ties ? :/ |
2020-12-31 16:48:57 +0100 | chang | (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-12-31 16:49:35 +0100 | rcdilorenzo | (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) |
2020-12-31 16:49:48 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2020-12-31 16:49:57 +0100 | <Shiranai> | yes haha, it's old as hell but does it really matter? I just use it for stack commands lol |
2020-12-31 16:50:17 +0100 | <ph88^> | lol ok i try |
2020-12-31 16:50:27 +0100 | andreas303 | (~andreas@gateway/tor-sasl/andreas303) |
2020-12-31 16:54:25 +0100 | rcdilorenzo | (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Ping timeout: 240 seconds) |
2020-12-31 16:55:53 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2020-12-31 16:58:09 +0100 | cheater | (~user@unaffiliated/cheater) |
2020-12-31 17:00:30 +0100 | aenesidemus | (~aenesidem@c-73-53-247-25.hsd1.fl.comcast.net) |
2020-12-31 17:04:26 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2020-12-31 17:04:37 +0100 | rcdilorenzo | (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) |
2020-12-31 17:05:31 +0100 | Rudd0 | (~Rudd0@185.189.115.103) |
2020-12-31 17:09:25 +0100 | <madjestic> | hey guys. Do you know if `massiv` supports mixed types for tuples? Like does it support `[(Int, [Float])]` for example? What would the type signature look like? |
2020-12-31 17:10:24 +0100 | worc3131 | (~quassel@2a02:c7f:dcc4:6500:cf0e:3346:8766:ab20) (Remote host closed the connection) |
2020-12-31 17:12:47 +0100 | kritzefitz | (~kritzefit@212.86.56.80) (Ping timeout: 260 seconds) |
2020-12-31 17:13:14 +0100 | lep-delete | (~lep@94.31.81.93) (Read error: Connection reset by peer) |
2020-12-31 17:13:43 +0100 | phasespace | (~sar@89-162-33-21.fiber.signal.no) |
2020-12-31 17:14:48 +0100 | usr25 | (~usr25@unaffiliated/usr25) (Remote host closed the connection) |
2020-12-31 17:15:28 +0100 | <Shiranai> | are guards syntactic sugar? If so, what are they compiling too. Same thing for pattern matching. |
2020-12-31 17:15:46 +0100 | phasespace_ | (~sar@89-162-33-21.fiber.signal.no) (Ping timeout: 246 seconds) |
2020-12-31 17:16:25 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d) |
2020-12-31 17:17:36 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2020-12-31 17:17:41 +0100 | Torro | (Torro@gateway/vpn/protonvpn/torro) (Quit: bye) |
2020-12-31 17:17:53 +0100 | usr25 | (~usr25@unaffiliated/usr25) |
2020-12-31 17:20:26 +0100 | ADG1089__ | (~aditya@223.235.213.117) |
2020-12-31 17:21:25 +0100 | lep-delete | (~lep@94.31.81.93) |
2020-12-31 17:21:38 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d) (Ping timeout: 264 seconds) |
2020-12-31 17:21:49 +0100 | Saukk | (~Saukk@83-148-239-3.dynamic.lounea.fi) (Remote host closed the connection) |
2020-12-31 17:21:54 +0100 | michalz | (~user@185.246.204.93) (Remote host closed the connection) |
2020-12-31 17:28:15 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:143:ed02:88f3:91f8:f3d8) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-12-31 17:28:32 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) |
2020-12-31 17:29:26 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2020-12-31 17:30:36 +0100 | solonarv | (~solonarv@astrasbourg-653-1-157-135.w90-6.abo.wanadoo.fr) |
2020-12-31 17:31:49 +0100 | ADG1089__ | (~aditya@223.235.213.117) (Remote host closed the connection) |
2020-12-31 17:33:55 +0100 | kritzefitz | (~kritzefit@212.86.56.80) |
2020-12-31 17:35:42 +0100 | DataComputist | (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) |
2020-12-31 17:35:43 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds) |
2020-12-31 17:37:44 +0100 | ADG1089__ | (~aditya@223.235.213.117) |
2020-12-31 17:37:44 +0100 | <nf> | Shiranai: write a simple program and compile it with -ddump-simpl to see what it gets desugared into |
2020-12-31 17:38:18 +0100 | <Shiranai> | nf: nice, didn't know that one thanks |
2020-12-31 17:39:56 +0100 | Iceland_jack | (~user@31.124.48.169) (Remote host closed the connection) |
2020-12-31 17:40:53 +0100 | lmk | (57b15d95@p57b15d95.dip0.t-ipconnect.de) (Remote host closed the connection) |
2020-12-31 17:41:05 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-12-31 17:41:15 +0100 | _noblegas | (uid91066@gateway/web/irccloud.com/x-iowlmahgyhczxsfi) |
2020-12-31 17:41:27 +0100 | ADG1089__ | (~aditya@223.235.213.117) (Remote host closed the connection) |
2020-12-31 17:46:05 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2020-12-31 17:47:31 +0100 | hekkaidekapus | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2020-12-31 17:48:31 +0100 | <tomsmeding> | madjestic: I don't think you can have an array element type that includes another array |
2020-12-31 17:49:03 +0100 | hekkaidekapus] | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds) |
2020-12-31 17:49:26 +0100 | <tomsmeding> | or maybe I'm wrong |
2020-12-31 17:50:20 +0100 | <tomsmeding> | madjestic: did you try and did it not work? |
2020-12-31 17:51:25 +0100 | kritzefitz | (~kritzefit@212.86.56.80) (Ping timeout: 240 seconds) |
2020-12-31 17:52:49 +0100 | usr25 | (~usr25@unaffiliated/usr25) (Read error: Connection reset by peer) |
2020-12-31 17:53:49 +0100 | _ashbreeze_ | (~mark@64.85.214.234.reverse.socket.net) (Remote host closed the connection) |
2020-12-31 17:54:17 +0100 | jamm | (~jamm@unaffiliated/jamm) |
2020-12-31 17:55:07 +0100 | _ashbreeze_ | (~mark@64.85.214.234.reverse.socket.net) |
2020-12-31 18:00:56 +0100 | Jeanne-Kamikaze | (~Jeanne-Ka@static-198-54-134-100.cust.tzulo.com) |
2020-12-31 18:01:28 +0100 | geekosaur | (42d52137@66.213.33.55) |
2020-12-31 18:02:33 +0100 | <Shiranai> | Any way to run ghc inside stack with compiler options? Been trying it for a while and can't find that in the docs neither |
2020-12-31 18:02:49 +0100 | <Shiranai> | (without a whole cabal/stack setup, just a single file) |
2020-12-31 18:04:28 +0100 | kuribas | (~user@ptr-25vy0i7u8xzr2adyh2i.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
2020-12-31 18:05:47 +0100 | <geekosaur> | use -- to separate stack options from ghc options, in stack exec -- ghc ... |
2020-12-31 18:07:28 +0100 | ransom | (~c4264035@8.47.12.52) |
2020-12-31 18:12:28 +0100 | chenshen | (~chenshen@2620:10d:c090:400::5:27de) |
2020-12-31 18:12:32 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-12-31 18:12:38 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Remote host closed the connection) |
2020-12-31 18:17:42 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2020-12-31 18:17:55 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d) |
2020-12-31 18:18:14 +0100 | bitmapper | (uid464869@gateway/web/irccloud.com/x-emygrcoqztsqoawx) |
2020-12-31 18:18:30 +0100 | <Shiranai> | geekosaur: thanks, it worked |
2020-12-31 18:19:48 +0100 | _ashbreeze_ | (~mark@64.85.214.234.reverse.socket.net) (Remote host closed the connection) |
2020-12-31 18:21:05 +0100 | _ashbreeze_ | (~mark@64.85.214.234.reverse.socket.net) |
2020-12-31 18:21:34 +0100 | shatriff | (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection) |
2020-12-31 18:21:50 +0100 | shatriff | (~vitaliish@176-52-216-242.irishtelecom.com) |
2020-12-31 18:22:14 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d) (Ping timeout: 264 seconds) |
2020-12-31 18:23:04 +0100 | pera | (~pera@unaffiliated/pera) (Quit: leaving) |
2020-12-31 18:23:24 +0100 | <dexterfoo> | I made a FP expanding brain meme. what do you think? https://i.imgur.com/FvaVFZx.jpg |
2020-12-31 18:26:59 +0100 | pera | (~pera@unaffiliated/pera) |
2020-12-31 18:29:36 +0100 | aveltras | (uid364989@gateway/web/irccloud.com/x-qrhrdryutllrlcmf) |
2020-12-31 18:32:24 +0100 | ADG1089__ | (~aditya@223.235.213.117) |
2020-12-31 18:32:38 +0100 | _ashbreeze_ | (~mark@64.85.214.234.reverse.socket.net) (Read error: Connection timed out) |
2020-12-31 18:32:51 +0100 | shatriff | (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection) |
2020-12-31 18:32:54 +0100 | kritzefitz | (~kritzefit@212.86.56.80) |
2020-12-31 18:33:03 +0100 | _ashbreeze_ | (~mark@64.85.214.234.reverse.socket.net) |
2020-12-31 18:34:15 +0100 | <Shiranai> | I've been checking the desugared version of some stuff and saw that pattern matching and guards are just case-of expressions. I can't seem to see what let-in becomes though, it seems that the let expressions just get replaced whenever they appear in the in expression? Wouldn't that cause possible double computations? |
2020-12-31 18:35:09 +0100 | <Shiranai> | i.e. `let a=myExpensiveComputation(x) in a+a` |
2020-12-31 18:35:31 +0100 | <Shiranai> | if that's just `myExpensiveComputation(x)+myExpensiveComputation(x)` the function could be computed twice? |
2020-12-31 18:37:20 +0100 | chang | (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) |
2020-12-31 18:40:24 +0100 | <monochrom> | This is why I would oppose to considering -ddump-simpl as desugaring. The output isn't even a subset of Haskell. It doesn't even have Haskell semantics. It's an entirely different language. (If you hear people say "core", that's the name of this language.) |
2020-12-31 18:40:55 +0100 | <monochrom> | If anything, -ddump-ds-preopt is the closest to what usually people consider desugaring. |
2020-12-31 18:43:19 +0100 | <monochrom> | And the particular question "are guards syntax sugar", IMO it belongs to the class of it-doesn't-matter. |
2020-12-31 18:44:25 +0100 | <ephemient> | `let a = expensive in a + a` doesn't say the computation happens only once; neither does `expensive + expensive` say the computation happens twice |
2020-12-31 18:44:39 +0100 | Anthaas | (~Anthaas@unaffiliated/anthaas) (Ping timeout: 260 seconds) |
2020-12-31 18:44:43 +0100 | <Shiranai> | I kinda agree it doesn't matter really but I was asking it because of one I hoped it mattered: what are the minimum syntax that allow me to have full semantics? |
2020-12-31 18:45:15 +0100 | Anthaas | (~Anthaas@unaffiliated/anthaas) |
2020-12-31 18:45:41 +0100 | <Shiranai> | ephemient: so how could I tell? Just accept there's some weird haskell magic or are there some good rules of thumb? |
2020-12-31 18:46:26 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-12-31 18:46:36 +0100 | <ephemient> | as far as pure code is concerned, there's no observable difference either way |
2020-12-31 18:47:04 +0100 | <monochrom> | when you don't observe time and memory spent |
2020-12-31 18:48:13 +0100 | <ephemient> | in practice, if it's a CAF then GHC will probably float it up to be evaluated once, and if it's not then it probably won't, afaik |
2020-12-31 18:49:13 +0100 | afreak | (~wut@ec2-3-122-177-136.eu-central-1.compute.amazonaws.com) |
2020-12-31 18:49:49 +0100 | <Shiranai> | ok thanks |
2020-12-31 18:52:14 +0100 | <afreak> | https://kopy.io/e5lMS#rdTNNczDxdOEh5 how could i speed up this Text-building process ? it seems to be very slow, was faster when i did it with String actually |
2020-12-31 18:53:09 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) |
2020-12-31 18:53:16 +0100 | chang | (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: Textual IRC Client: www.textualapp.com) |
2020-12-31 18:55:45 +0100 | philopsos | (~caecilius@gateway/tor-sasl/caecilius) |
2020-12-31 18:58:03 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds) |
2020-12-31 18:58:21 +0100 | <monochrom> | The Haskell 2010 Report can be interpreted as suggesting one answer to a minimum syntax. For example, it explains guards in terms of if-then-else, and it explains if-then-else in terms of "case ... True-> ... False-> ...". But it does not commit itself to that, it just says "your compiler just has to be indistinguishable from this model". |
2020-12-31 18:58:39 +0100 | <monochrom> | (indistinguishable when as a black box) |
2020-12-31 18:59:59 +0100 | justsomeguy | (~justsomeg@2603:9000:960a:fc00:c4d2:5b73:c7b7:3a2b) |
2020-12-31 18:59:59 +0100 | justsomeguy | (~justsomeg@2603:9000:960a:fc00:c4d2:5b73:c7b7:3a2b) (Changing host) |
2020-12-31 18:59:59 +0100 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) |
2020-12-31 19:00:40 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2020-12-31 19:01:18 +0100 | chang | (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) |
2020-12-31 19:03:02 +0100 | hexreel | (~hr@2600:1700:28e2:14d0:cd7:6aae:18aa:4ec7) (Ping timeout: 260 seconds) |
2020-12-31 19:03:10 +0100 | <monochrom> | I find myself using "this is syntax sugar for that" as a pedagogic tool only, not as a this-is-the-truth tool. |
2020-12-31 19:04:01 +0100 | <monochrom> | For example, to explain to a student how and why [1,2,3] matches the pattern x:y:zs, I explain that [1,2,3] is syntax sugar for 1:2:3:[]. |
2020-12-31 19:05:16 +0100 | <monochrom> | This is a useful use of "syntax sugar" because a lot of students can't figure this one out on their own, they need me to spell out "it is secretly 1:2:3:[]". |
2020-12-31 19:06:10 +0100 | <dolio> | Turning definitions with guards into some other form can be quie complex, though. |
2020-12-31 19:06:28 +0100 | <Shiranai> | thanks, I hadn't seen it that way but I see now that the property of is-sugar-of is relative to the compiler |
2020-12-31 19:06:50 +0100 | ccqw | (~ccqw@pool-98-113-58-13.nycmny.fios.verizon.net) |
2020-12-31 19:06:52 +0100 | carsenal | (484d31da@static-72-77-49-218.pitbpa.fios.verizon.net) |
2020-12-31 19:08:03 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2020-12-31 19:08:40 +0100 | <carsenal> | does anyone know if there's any way to get a full arm build of ghc, cabal, and stack? |
2020-12-31 19:08:59 +0100 | <carsenal> | I'm about to bite the bullet and try to compile ghc from source, so I'd hate to hear there are binaries out there |
2020-12-31 19:09:08 +0100 | <dolio> | E.G. it is not as simple as saying, "guards turn into this," because guards interact with multi-clause pattern matching definitions. |
2020-12-31 19:09:15 +0100 | <monochrom> | I agree that since case's pattern matching, even the most basic version, is so general, may as well use it to cover if-then-else and guards. Whether you're theorizing semantics or writing a practical compiler. |
2020-12-31 19:09:49 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 264 seconds) |
2020-12-31 19:10:12 +0100 | <Shiranai> | yeah now I am curious if the four are equivalent, if-then-else, guards, pattern matching and case-of |
2020-12-31 19:10:22 +0100 | ccqw | (~ccqw@pool-98-113-58-13.nycmny.fios.verizon.net) (Changing host) |
2020-12-31 19:10:22 +0100 | ccqw | (~ccqw@unaffiliated/ccqw) |
2020-12-31 19:10:50 +0100 | <exarkun> | does https://hoogle.haskell.org/ seem particularly slow to anyone else |
2020-12-31 19:10:53 +0100 | <monochrom> | But in principle, you can always do the awkward, why-would-you-do-this thing of the reverse explaining or compiling pattern matching in terms of if-then-else, isJust isRight isLeft, and fromJust fromRight fromLeft. |
2020-12-31 19:11:19 +0100 | <monochrom> | Hell, I have seen academic papers doing that when theorizing ADT. (Annoyed me greatly.) |
2020-12-31 19:12:12 +0100 | <Shiranai> | exarkun: seems fast as always for me |
2020-12-31 19:12:26 +0100 | chang | (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-12-31 19:12:39 +0100 | <monochrom> | (All the more annoying because the paper is great otherwise.) |
2020-12-31 19:13:09 +0100 | <monochrom> | (And was written in this the 21st century of our lord.) |
2020-12-31 19:13:30 +0100 | <Shiranai> | haha yeah I can see how that works, idk I think of this constantly as my main interest is logic and there's a need for the "minimal" axioms. Maybe something like that for them? |
2020-12-31 19:13:42 +0100 | ADG1089__ | (~aditya@223.235.213.117) (Remote host closed the connection) |
2020-12-31 19:14:12 +0100 | <monochrom> | (I.e., a pre-1990 paper that explains ADT in terms of predicates and selectors would be normal, back then few people have heard of Haskell or even ML.) |
2020-12-31 19:15:34 +0100 | carthia | (~carthia@gateway/tor-sasl/carthia) |
2020-12-31 19:16:39 +0100 | <monochrom> | My http://www.vex.net/~trebla/haskell/crossroad.xhtml#philosophy explains why if you're from the logic angle, all the more reason to take case-of as fundamental, because it perfectly matches natural deduction. |
2020-12-31 19:17:37 +0100 | carsenal | (484d31da@static-72-77-49-218.pitbpa.fios.verizon.net) (Remote host closed the connection) |
2020-12-31 19:18:39 +0100 | hexreel | (~hr@2600:1700:28e2:14d0:c137:b60f:88b9:8eca) |
2020-12-31 19:19:08 +0100 | <exarkun> | Shiranai: ty |
2020-12-31 19:20:36 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2020-12-31 19:22:16 +0100 | knupfer | (~Thunderbi@200116b82c2ab400dccd36fffea3f260.dip.versatel-1u1.de) |
2020-12-31 19:22:41 +0100 | knupfer | (~Thunderbi@200116b82c2ab400dccd36fffea3f260.dip.versatel-1u1.de) (Remote host closed the connection) |
2020-12-31 19:22:54 +0100 | knupfer | (~Thunderbi@200116b82c2ab4001105248f2b33b984.dip.versatel-1u1.de) |
2020-12-31 19:23:47 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d) |
2020-12-31 19:30:23 +0100 | ccqw | (~ccqw@unaffiliated/ccqw) ("Just this.") |
2020-12-31 19:30:25 +0100 | ccqw | (~ccqw@unaffiliated/ccqw) |
2020-12-31 19:31:13 +0100 | Shiranai | (beed0d8f@gateway/web/cgi-irc/kiwiirc.com/ip.190.237.13.143) (Ping timeout: 246 seconds) |
2020-12-31 19:31:41 +0100 | ccqw | (~ccqw@unaffiliated/ccqw) (Quit: Just this.) |
2020-12-31 19:35:29 +0100 | <Squarism> | Im lookin at https://github.com/well-typed/optics . Im unfamiliar with the set of cabal.* files in the root. Im guessing this is some new feature in cabal 3 allowing multimodule compilation? |
2020-12-31 19:38:18 +0100 | dyeplexer | (~lol@unaffiliated/terpin) (Remote host closed the connection) |
2020-12-31 19:42:04 +0100 | sgibber2018 | (~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f) |
2020-12-31 19:43:41 +0100 | p-core | (~Thunderbi@koleje-wifi-0045.koleje.cuni.cz) |
2020-12-31 19:48:12 +0100 | orion | (~orion@unaffiliated/orion) (Ping timeout: 256 seconds) |
2020-12-31 19:49:57 +0100 | Lord_of_Life_ | (~Lord@unaffiliated/lord-of-life/x-0885362) |
2020-12-31 19:50:00 +0100 | <__monty__> | Multi-package I believe. Not sure how new it is. |
2020-12-31 19:50:03 +0100 | carthia | (~carthia@gateway/tor-sasl/carthia) (Ping timeout: 240 seconds) |
2020-12-31 19:50:06 +0100 | <sm[m]> | Just https://cabal.readthedocs.io/en/3.4/cabal-project.html files I think Squarism |
2020-12-31 19:50:24 +0100 | <sm[m]> | serving a similar role to stack.yaml (locking down versions & options) |
2020-12-31 19:50:42 +0100 | <Squarism> | thanks! |
2020-12-31 19:51:13 +0100 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 272 seconds) |
2020-12-31 19:51:17 +0100 | Lord_of_Life_ | Lord_of_Life |
2020-12-31 19:51:28 +0100 | <sm[m]> | ah, and in this case declaring all of the local packages' cabal |
2020-12-31 19:51:29 +0100 | <sm[m]> | files |
2020-12-31 19:52:20 +0100 | carthia | (~carthia@gateway/tor-sasl/carthia) |
2020-12-31 19:53:38 +0100 | frankdmartinez | (~frankdmar@5.181.234.188) (Quit: frankdmartinez) |
2020-12-31 19:54:56 +0100 | chang | (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) |
2020-12-31 19:56:10 +0100 | chang | (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Client Quit) |
2020-12-31 19:56:22 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-12-31 19:57:35 +0100 | kderme | (2eb0d7c7@ppp046176215199.access.hol.gr) |
2020-12-31 20:01:57 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2020-12-31 20:03:31 +0100 | berberman | (~berberman@unaffiliated/berberman) |
2020-12-31 20:03:32 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d) (Remote host closed the connection) |
2020-12-31 20:03:43 +0100 | <__monty__> | sm[m]: Aren't version constraints what *.cabal is for? |
2020-12-31 20:03:59 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
2020-12-31 20:04:14 +0100 | berberman_ | (~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds) |
2020-12-31 20:04:19 +0100 | <sm[m]> | yes, but usually it defines a range of versions |
2020-12-31 20:04:31 +0100 | carsenal | (~carsenal@static-72-77-49-218.pitbpa.fios.verizon.net) |
2020-12-31 20:04:54 +0100 | <sm[m]> | sometimes you want to remember or enforce a specific set of versions for everything |
2020-12-31 20:05:09 +0100 | <sm[m]> | possibly across multiple packages |
2020-12-31 20:05:51 +0100 | <sm[m]> | one .cabal file deals with only one package |
2020-12-31 20:06:02 +0100 | <__monty__> | Got it. |
2020-12-31 20:06:50 +0100 | carsenal | (~carsenal@static-72-77-49-218.pitbpa.fios.verizon.net) (Client Quit) |
2020-12-31 20:09:05 +0100 | knupfer | (~Thunderbi@200116b82c2ab4001105248f2b33b984.dip.versatel-1u1.de) (Ping timeout: 268 seconds) |
2020-12-31 20:09:36 +0100 | kritzefitz | (~kritzefit@212.86.56.80) (Ping timeout: 240 seconds) |
2020-12-31 20:10:05 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d) |
2020-12-31 20:10:08 +0100 | <tomsmeding> | like package.json vs package-lock.json in the NodeJS world, and Cargo.toml vs Cargo.lock in the Rust world |
2020-12-31 20:10:25 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
2020-12-31 20:10:25 +0100 | <tomsmeding> | kind of, because here the lock file is optional |
2020-12-31 20:11:00 +0100 | <sm[m]> | isn't there an additional "freeze" file, corresponding to lock files ? |
2020-12-31 20:12:03 +0100 | <sm[m]> | cabal.project.freeze, created by cabal freeze |
2020-12-31 20:12:47 +0100 | <tomsmeding> | ah right, that's true |
2020-12-31 20:13:06 +0100 | <tomsmeding> | but then cabal.project doesn't really have "locking down versions" in its role, does it? |
2020-12-31 20:13:11 +0100 | <sm[m]> | I forget why you need that as well.. I guess it's convenient to use cabal.project for different things |
2020-12-31 20:14:02 +0100 | Sheilong | (uid293653@gateway/web/irccloud.com/x-bcyqpaqbievullib) (Quit: Connection closed for inactivity) |
2020-12-31 20:14:11 +0100 | <tomsmeding> | "package.cabal is for everyone, cabal.project is for your local development setup"? |
2020-12-31 20:14:20 +0100 | <sm[m]> | I think cabal.project is one of the four "project files" which are combined, and probably it's usually not the one where you lock down versions |
2020-12-31 20:14:46 +0100 | <__monty__> | Yeah, cabal.project.local is for local changes. |
2020-12-31 20:15:01 +0100 | <__monty__> | cabal.project is still for everyone in a multi-package project I guess. |
2020-12-31 20:15:05 +0100 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) () |
2020-12-31 20:15:11 +0100 | <sm[m]> | the manual says cabal.project.freeze (the output of cabal v2-freeze) and cabal.project.local (the output of cabal v2-configure), which could be improved |
2020-12-31 20:15:16 +0100 | <__monty__> | The freeze file is probably separate because it's generated by cabal? |
2020-12-31 20:15:49 +0100 | <__monty__> | Didn't remember cabal.project.local is generated too though. |
2020-12-31 20:17:15 +0100 | texasmynsted | (~texasmyns@99.96.221.112) (Remote host closed the connection) |
2020-12-31 20:17:59 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 260 seconds) |
2020-12-31 20:18:10 +0100 | hnOsmium0001 | (uid453710@gateway/web/irccloud.com/x-kavyfortterppjsq) |
2020-12-31 20:21:05 +0100 | Jesin | (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) |
2020-12-31 20:22:44 +0100 | chenshen | (~chenshen@2620:10d:c090:400::5:27de) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
2020-12-31 20:23:58 +0100 | foobar2 | (89537310@137-83-115-16.starry-inc.net) |
2020-12-31 20:28:00 +0100 | geekosaur | (42d52137@66.213.33.55) (Ping timeout: 245 seconds) |
2020-12-31 20:31:53 +0100 | <monochrom> | "cabal configure" generates cabal.project.local. "cabal freeze" generates cabal.project.freeze. |
2020-12-31 20:32:12 +0100 | hexreel | (~hr@2600:1700:28e2:14d0:c137:b60f:88b9:8eca) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
2020-12-31 20:32:53 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-12-31 20:33:42 +0100 | <monochrom> | You are still free to edit them or roll your own. Just be aware that the next "configure" or "freeze" can overwrite them. But! In the case of "configure", a backup is made, you can recover. |
2020-12-31 20:39:42 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 256 seconds) |
2020-12-31 20:43:32 +0100 | hexreel | (~hr@2600:1700:28e2:14d0:c137:b60f:88b9:8eca) |
2020-12-31 20:44:13 +0100 | geekosaur | (42d52137@66.213.33.55) |
2020-12-31 20:45:12 +0100 | aplainze1akind | (~johndoe@captainludd.powered.by.lunarbnc.net) |
2020-12-31 20:45:32 +0100 | Vulfe_ | (~vulfe@2600:1702:31b0:34e0:25e9:81:81d6:bd54) |
2020-12-31 20:46:24 +0100 | jamm_ | (~jamm@unaffiliated/jamm) |
2020-12-31 20:47:27 +0100 | johs | (sid246410@gateway/web/irccloud.com/x-ngyseqelgtwcfjec) (Ping timeout: 260 seconds) |
2020-12-31 20:47:27 +0100 | ReinH__ | (sid179972@gateway/web/irccloud.com/x-gpfwmlgqwhiukqzi) (Ping timeout: 260 seconds) |
2020-12-31 20:48:02 +0100 | gluegadget | (sid22336@gateway/web/irccloud.com/x-mzkaypjsiixomsyk) (Ping timeout: 260 seconds) |
2020-12-31 20:48:02 +0100 | elvishjerricco | (sid237756@NixOS/user/ElvishJerricco) (Ping timeout: 260 seconds) |
2020-12-31 20:48:06 +0100 | kini | (~kini@unaffiliated/kini) (Read error: Connection reset by peer) |
2020-12-31 20:48:16 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) |
2020-12-31 20:48:37 +0100 | jamm | (~jamm@unaffiliated/jamm) (Ping timeout: 260 seconds) |
2020-12-31 20:48:37 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:25e9:81:81d6:bd54) (Ping timeout: 260 seconds) |
2020-12-31 20:48:37 +0100 | sw1nn | (~sw1nn@2a00:23c6:2385:3a00:535:b5d7:a67c:1f0) (Ping timeout: 260 seconds) |
2020-12-31 20:48:37 +0100 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) (Ping timeout: 260 seconds) |
2020-12-31 20:48:37 +0100 | joel135 | (sid136450@gateway/web/irccloud.com/x-jrkdlopfrcmkshuh) (Ping timeout: 260 seconds) |
2020-12-31 20:48:37 +0100 | d0liver | (sid363046@gateway/web/irccloud.com/x-jbrqqdcqtnzurjyt) (Ping timeout: 260 seconds) |
2020-12-31 20:48:38 +0100 | aplainze1akind | aplainzetakind |
2020-12-31 20:49:00 +0100 | elvishjerricco | (sid237756@NixOS/user/ElvishJerricco) |
2020-12-31 20:49:00 +0100 | johs | (sid246410@gateway/web/irccloud.com/x-tafdqtulgzplanux) |
2020-12-31 20:49:07 +0100 | ReinH__ | (sid179972@gateway/web/irccloud.com/x-ooppghpllredfipz) |
2020-12-31 20:49:12 +0100 | Alleria_ | (~AllahuAkb@2603-7000-3040-0000-a876-e3dc-1017-f48b.res6.spectrum.com) (Ping timeout: 260 seconds) |
2020-12-31 20:49:12 +0100 | natim87 | (sid286962@gateway/web/irccloud.com/x-dhthcfdaholuyfwt) (Ping timeout: 260 seconds) |
2020-12-31 20:49:17 +0100 | jess | (jess@freenode/staff/jess) (Quit: Leaving) |
2020-12-31 20:49:20 +0100 | jess | (jess@freenode/staff/jess) |
2020-12-31 20:49:24 +0100 | kini | (~kini@unaffiliated/kini) |
2020-12-31 20:49:29 +0100 | natim87 | (sid286962@gateway/web/irccloud.com/x-nksbbmqvaevagztw) |
2020-12-31 20:49:58 +0100 | sw1nn | (~sw1nn@2a00:23c6:2385:3a00:535:b5d7:a67c:1f0) |
2020-12-31 20:50:00 +0100 | gluegadget | (sid22336@gateway/web/irccloud.com/x-msgsyimkpfzfdplm) |
2020-12-31 20:50:18 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
2020-12-31 20:50:25 +0100 | d0liver | (sid363046@gateway/web/irccloud.com/x-aesspnxmupkvbzzz) |
2020-12-31 20:50:26 +0100 | texasmynsted | (~texasmyns@99.96.221.112) |
2020-12-31 20:50:33 +0100 | Alleria_ | (~AllahuAkb@2603-7000-3040-0000-6148-1689-ef18-302b.res6.spectrum.com) |
2020-12-31 20:50:33 +0100 | joel135 | (sid136450@gateway/web/irccloud.com/x-ejidscycomljbwvk) |
2020-12-31 20:53:01 +0100 | <Squarism> | im testing out Optics library here. Im missing "preview :: Traversal' s a -> (Maybe a)". Closest thing in Optics seems to be toListOf ? |
2020-12-31 20:53:15 +0100 | hexreel | (~hr@2600:1700:28e2:14d0:c137:b60f:88b9:8eca) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
2020-12-31 20:54:02 +0100 | texasmynsted | (~texasmyns@99.96.221.112) (Remote host closed the connection) |
2020-12-31 20:54:09 +0100 | pera | (~pera@unaffiliated/pera) (Ping timeout: 260 seconds) |
2020-12-31 20:54:45 +0100 | usr25 | (~usr25@unaffiliated/usr25) |
2020-12-31 20:57:11 +0100 | jneira | (5127adb4@gateway/web/cgi-irc/kiwiirc.com/ip.81.39.173.180) (Ping timeout: 268 seconds) |
2020-12-31 21:01:04 +0100 | brettgilio | (~brettgili@brettgilio.com) (Quit: Long live IRC! <https://brettgilio.com/irc.html>) |
2020-12-31 21:04:08 +0100 | <Squarism> | Like with lens i could write : preview ( someFld . _Just . ix 0) which would return a Maybe x. How would one do this with Optics? |
2020-12-31 21:04:11 +0100 | texasmynsted | (~texasmyns@99.96.221.112) |
2020-12-31 21:05:38 +0100 | frankdmartinez | (~frankdmar@5.181.234.188) |
2020-12-31 21:05:44 +0100 | chenshen | (~chenshen@2620:10d:c090:400::5:4a42) |
2020-12-31 21:06:46 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2020-12-31 21:07:19 +0100 | chenshen | (~chenshen@2620:10d:c090:400::5:4a42) (Client Quit) |
2020-12-31 21:07:48 +0100 | jamm_ | (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
2020-12-31 21:08:48 +0100 | jamm | (~jamm@unaffiliated/jamm) |
2020-12-31 21:09:21 +0100 | aveltras | (uid364989@gateway/web/irccloud.com/x-qrhrdryutllrlcmf) (Quit: Connection closed for inactivity) |
2020-12-31 21:09:36 +0100 | jamm | (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
2020-12-31 21:11:39 +0100 | brettgilio | (~brettgili@brettgilio.com) |
2020-12-31 21:12:37 +0100 | brown121407 | (~brown1214@fsf/member/brown121407) (Quit: ZNC 1.8.2 - https://znc.in) |
2020-12-31 21:12:54 +0100 | brown121407 | (~brown1214@121407.xyz) |
2020-12-31 21:12:54 +0100 | brown121407 | (~brown1214@121407.xyz) (Changing host) |
2020-12-31 21:12:54 +0100 | brown121407 | (~brown1214@fsf/member/brown121407) |
2020-12-31 21:14:18 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) |
2020-12-31 21:14:54 +0100 | krisfris | (uid479465@gateway/web/irccloud.com/x-exroizldsqhfnehu) (Quit: Connection closed for inactivity) |
2020-12-31 21:15:23 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-12-31 21:15:34 +0100 | <frankdmartinez> | Is there a way in GHCI to “call up” the definition of a class/instance? |
2020-12-31 21:16:11 +0100 | <monochrom> | class yes, ":info Num" for example. |
2020-12-31 21:17:07 +0100 | andreas303 | (~andreas@gateway/tor-sasl/andreas303) (Quit: andreas303) |
2020-12-31 21:17:12 +0100 | <monochrom> | :info on a class name or type name also tells you who is an instance of whom. But no implementation, just "yes X is an instance of Y". |
2020-12-31 21:17:22 +0100 | Lycurgus | (~niemand@cpe-45-46-139-165.buffalo.res.rr.com) |
2020-12-31 21:17:26 +0100 | brown121407 | (~brown1214@fsf/member/brown121407) (Client Quit) |
2020-12-31 21:18:03 +0100 | andreas303 | (~andreas@gateway/tor-sasl/andreas303) |
2020-12-31 21:18:28 +0100 | DataComputist | (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Ping timeout: 256 seconds) |
2020-12-31 21:19:29 +0100 | chenshen | (~chenshen@2620:10d:c090:400::5:4a42) |
2020-12-31 21:21:07 +0100 | chenshen | (~chenshen@2620:10d:c090:400::5:4a42) (Client Quit) |
2020-12-31 21:23:18 +0100 | Torro | (Torro@gateway/vpn/protonvpn/torro) |
2020-12-31 21:24:32 +0100 | DataComputist | (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) |
2020-12-31 21:30:14 +0100 | o1lo01ol_ | (~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Remote host closed the connection) |
2020-12-31 21:31:26 +0100 | orion | (~orion@c-76-19-238-5.hsd1.ma.comcast.net) |
2020-12-31 21:31:26 +0100 | orion | (~orion@c-76-19-238-5.hsd1.ma.comcast.net) (Changing host) |
2020-12-31 21:31:26 +0100 | orion | (~orion@unaffiliated/orion) |
2020-12-31 21:32:59 +0100 | danish | (~kvirc@109.58.42.178.mobile.3.dk) |
2020-12-31 21:33:19 +0100 | Sheilong | (uid293653@gateway/web/irccloud.com/x-rgbhauuevaaekwgg) |
2020-12-31 21:33:39 +0100 | chenshen | (~chenshen@2620:10d:c090:400::5:4a42) |
2020-12-31 21:34:51 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-12-31 21:35:19 +0100 | brown121407 | (~brown1214@121407.xyz) |
2020-12-31 21:35:19 +0100 | brown121407 | (~brown1214@121407.xyz) (Changing host) |
2020-12-31 21:35:19 +0100 | brown121407 | (~brown1214@fsf/member/brown121407) |
2020-12-31 21:36:29 +0100 | <frankdmartinez> | monochrom: Thanks; though I think it is a bit off in some spots. For example, `:info Applicative Maybe` gives this text which is not very informative => “instance Applicative Maybe -- Defined in ‘GHC.Base’” |
2020-12-31 21:37:09 +0100 | <frankdmartinez> | So, I guess that is in keeping with the `But no implementation, just "yes X is an instance of Y”` you mentioned, right? |
2020-12-31 21:40:16 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2020-12-31 21:41:56 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) |
2020-12-31 21:43:14 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 264 seconds) |
2020-12-31 21:43:33 +0100 | <idnar> | @hoogle Bifunctor f => (a -> b) -> f a a -> f b b |
2020-12-31 21:43:34 +0100 | <lambdabot> | Relude.Extra.Bifunctor bimapBoth :: Bifunctor f => (a -> b) -> f a a -> f b b |
2020-12-31 21:43:58 +0100 | chenshen | (~chenshen@2620:10d:c090:400::5:4a42) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
2020-12-31 21:47:27 +0100 | sgibber2018 | (~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f) (Quit: WeeChat 3.0) |
2020-12-31 21:50:05 +0100 | kupi | (uid212005@gateway/web/irccloud.com/x-pwwljkdtgciejnte) |
2020-12-31 21:50:44 +0100 | notzmv | (~user@unaffiliated/zmv) (Remote host closed the connection) |
2020-12-31 21:52:39 +0100 | chang | (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) |
2020-12-31 21:54:21 +0100 | chang | (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Client Quit) |
2020-12-31 21:54:30 +0100 | Guest38620 | (~textual@zrcout.mskcc.org) (Ping timeout: 256 seconds) |
2020-12-31 21:56:02 +0100 | notzmv | (~user@unaffiliated/zmv) |
2020-12-31 22:01:30 +0100 | <glguy> | Squarism, toListOf :: Is k A_Fold => Optic' k is s a -> s -> [a] |
2020-12-31 22:01:55 +0100 | <glguy> | Squarism, it was exported by Optics |
2020-12-31 22:02:01 +0100 | <glguy> | but it was defined in Optics.Fold |
2020-12-31 22:04:20 +0100 | <foobar2> | I have what's likely a very dumb configuration/setup problem I'd like help debugging. I'm on OSX. I've used the instructions suggested at https://www.haskell.org/ghcup/, and pulled stack down via homebrew. I've added .cabal/bin and .ghcup/bin to my path. |
2020-12-31 22:05:06 +0100 | <foobar2> | When I run `stack build` I get simply `The Haskell Tool Stack`. No matter what arguments I put after that, I seem to always get only that output. |
2020-12-31 22:05:32 +0100 | <monochrom> | stack would not be using anything you got by ghcup. |
2020-12-31 22:05:46 +0100 | <glguy> | foobar2, I don't use stack, but the .cabal ghcup and .ghcup stuff you said won't be related. stack lives in its own world |
2020-12-31 22:05:53 +0100 | <Squarism> | glguy, i realised the composition is done using "%" instead of "." |
2020-12-31 22:05:54 +0100 | <monochrom> | And anything you got from ghcup would not be using stack or anything you got from stack, conversely. |
2020-12-31 22:06:04 +0100 | <Squarism> | But I have one question though |
2020-12-31 22:06:05 +0100 | <foobar2> | Ah. Okay. Terrific. That cuts out a lot of my problem. |
2020-12-31 22:06:08 +0100 | Kaivo | (~Kaivo@104-200-86-99.mc.derytele.com) (Quit: WeeChat 2.9) |
2020-12-31 22:06:12 +0100 | <foobar2> | problem-space. |
2020-12-31 22:06:34 +0100 | <monochrom> | At this point first you choose which one you want to focus on, ghcup or stack? Then you troubleshoot just one. |
2020-12-31 22:06:43 +0100 | <Squarism> | by composing i can create AffineTraversal'. But with just a single Lens, how do I convert that to an AffineTraversal? |
2020-12-31 22:06:47 +0100 | <foobar2> | stack. |
2020-12-31 22:07:17 +0100 | <foobar2> | monochrom I'm in my directory with my stack.yaml and stack.yaml.lock files. I guess I was expecting `stack build` to visibly *output* something. |
2020-12-31 22:07:19 +0100 | <monochrom> | OK then you have to wait for another stack user. I don't know stack. |
2020-12-31 22:07:31 +0100 | <Squarism> | glguy, do you happen to know that? |
2020-12-31 22:08:11 +0100 | <zzz> | happy new year everyone! |
2020-12-31 22:08:18 +0100 | <foobar2> | zzz !!! |
2020-12-31 22:08:23 +0100 | <glguy> | Squarism: I'll have to look; I haven't used this library |
2020-12-31 22:09:24 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-12-31 22:11:17 +0100 | o1lo01ol1o | (~o1lo01ol1@bl11-140-216.dsl.telepac.pt) |
2020-12-31 22:11:37 +0100 | Juviee | (2ebf899a@46.191.137.154) (Remote host closed the connection) |
2020-12-31 22:12:00 +0100 | <zzz> | happy new year everyone |
2020-12-31 22:12:23 +0100 | boxscape | (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) |
2020-12-31 22:12:55 +0100 | <koz_> | zzz: Same to you! |
2020-12-31 22:13:07 +0100 | <glguy> | Squarism, what are you trying to do with this AffineTraversal'? I'd have expected you to be able to use a lens somewhere that needed on |
2020-12-31 22:13:09 +0100 | <glguy> | one* |
2020-12-31 22:14:02 +0100 | Ariakenom | (~Ariakenom@2001:9b1:efb:fc00:9853:f638:e207:b1cf) |
2020-12-31 22:14:03 +0100 | Alleria | (~textual@2603-7000-3040-0000-f863-b1d6-d130-6615.res6.spectrum.com) |
2020-12-31 22:14:14 +0100 | <Squarism> | when composint prism and lens (using (%)) you get an AffineTraversal. So thats what i need to throw around as i rely on both |
2020-12-31 22:14:19 +0100 | <Squarism> | glguy, ^ |
2020-12-31 22:14:26 +0100 | <glguy> | castOptic :: forall destKind srcKind is s t a b. Is srcKind destKind => Optic srcKind is s t a b -> Optic destKind is s t a b |
2020-12-31 22:14:27 +0100 | Alleria | Guest40492 |
2020-12-31 22:14:28 +0100 | <glguy> | Does that help? |
2020-12-31 22:15:05 +0100 | hiroaki_ | (~hiroaki@ip4d16fa3b.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds) |
2020-12-31 22:15:19 +0100 | <glguy> | I'd think you'd only need to do that if you were storing one, though; otherwise you'd rely on the typeclass machinery |
2020-12-31 22:15:43 +0100 | <tomsmeding> | foobar2: what is the out of 'which stack', 'file $(which stack)', 'stack --version' ? |
2020-12-31 22:15:56 +0100 | o1lo01ol1o | (~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Ping timeout: 240 seconds) |
2020-12-31 22:16:18 +0100 | <Squarism> | glguy, just found it too. Yeah, that does the trick |
2020-12-31 22:17:39 +0100 | <foobar2> | tomsmeding those are, respectively `16:16:08$ which stack``/Users/me/Library/Haskell/bin/stack``16:16:13$ file $(which stack)``/Users/me/Library/Haskell/bin/stack: Mach-O 64-bit executable x86_64``16:16:19$ stack --version``The Haskell Tool Stack` |
2020-12-31 22:18:09 +0100 | <sm[m]> | hehe |
2020-12-31 22:18:20 +0100 | <tomsmeding> | lol |
2020-12-31 22:18:28 +0100 | <sm[m]> | maerwald played a trick ? |
2020-12-31 22:18:58 +0100 | <tomsmeding> | foobar2: ls -sh $(which stack) |
2020-12-31 22:19:03 +0100 | <tomsmeding> | that is to say, how large is the file :p |
2020-12-31 22:19:45 +0100 | <tomsmeding> | because that's not the expected --version output |
2020-12-31 22:19:48 +0100 | <sm[m]> | just kidding. foobar2's stack executable seems very strange |
2020-12-31 22:20:01 +0100 | <foobar2> | `1984 /Users/jhemann/Library/Haskell/bin/stack` |
2020-12-31 22:20:26 +0100 | <foobar2> | No, anything I give it as input, it comes back "The Haskell Tool Stack" |
2020-12-31 22:20:49 +0100 | hiroaki_ | (~hiroaki@ip4d16fa3b.dynamic.kabel-deutschland.de) |
2020-12-31 22:20:50 +0100 | <tomsmeding> | ... okay I apparently don't know the right flags for BSD ls. Can you look at the file in whatever way you want and tell me how large it is? is that 1.984 MB? |
2020-12-31 22:20:55 +0100 | geekosaur | (42d52137@66.213.33.55) (Ping timeout: 245 seconds) |
2020-12-31 22:21:16 +0100 | <tomsmeding> | because mine is 60MB, and while linux != mac, the difference in file size won't be _that_ large |
2020-12-31 22:21:22 +0100 | <sm[m]> | the real stack is about 33Mb on mac, foobar2 |
2020-12-31 22:21:27 +0100 | <__monty__> | `du -h $(which stack)` |
2020-12-31 22:21:51 +0100 | <sm[m]> | (or, 60Mb for the brew-installed one) |
2020-12-31 22:22:56 +0100 | <tomsmeding> | foobar2: please try reinstalling stack :p |
2020-12-31 22:22:57 +0100 | <sm[m]> | foobar2: also, brew doesn't usually install stack there. Did you install some cask ? |
2020-12-31 22:23:01 +0100 | theDon | (~td@94.134.91.182) (Ping timeout: 264 seconds) |
2020-12-31 22:23:30 +0100 | <tomsmeding> | hm, wait that Library/Haskell path makes me think it's a Haskell Platform install |
2020-12-31 22:23:33 +0100 | madjestic | (~Android@86-88-72-244.fixed.kpn.net) (Quit: -a- Connection Timed Out) |
2020-12-31 22:23:39 +0100 | <sm[m]> | or, that's an old executable that's shadowing brew's stack |
2020-12-31 22:23:44 +0100 | <tomsmeding> | from my mac days |
2020-12-31 22:23:46 +0100 | <foobar2> | it's 992K |
2020-12-31 22:23:47 +0100 | madjestic | (~Android@86-88-72-244.fixed.kpn.net) |
2020-12-31 22:23:50 +0100 | <boxscape> | hm listening to a Chris Allen Haskell talk about how static types aren't bad and can't tell whether he said "Taekwondo" or "Typekwondo" |
2020-12-31 22:24:34 +0100 | <dmj`> | boxscape: probably a deep fake |
2020-12-31 22:24:46 +0100 | <boxscape> | could be! |
2020-12-31 22:24:57 +0100 | <tomsmeding> | foobar2: IIRC brew can show the list of files in a package, perhaps via some flag on 'brew info'? Try to find out that way where brew think it's stored the stack executable |
2020-12-31 22:25:03 +0100 | <tomsmeding> | it's probably not in Library/Haskell |
2020-12-31 22:25:03 +0100 | <foobar2> | sm[m] no I got a warning from brew specifically, `Warning: Treating stack as a formula. For the cask, use homebrew/cask/stack` |
2020-12-31 22:25:25 +0100 | <sm[m]> | it'll be in /usr/local/bin/stack, tomsmeding |
2020-12-31 22:25:36 +0100 | <tomsmeding> | fair point |
2020-12-31 22:25:47 +0100 | <sm[m]> | foobar2: what does "type -a stack" show |
2020-12-31 22:26:01 +0100 | shinobi | (~shinobi@c-24-147-48-162.hsd1.ma.comcast.net) |
2020-12-31 22:26:11 +0100 | tomsmeding | TIL type -a, thanks sm[m] |
2020-12-31 22:26:12 +0100 | <shinobi> | what is <*> called? |
2020-12-31 22:26:23 +0100 | <foobar2> | stack is /Users/me/Library/Haskell/bin/stackstack is /usr/local/bin/stack |
2020-12-31 22:26:25 +0100 | <travv0> | tie fighter |
2020-12-31 22:26:39 +0100 | <shinobi> | +1 |
2020-12-31 22:26:54 +0100 | <tomsmeding> | foobar2: I think the first one is a remnant from a Haskell Platform installation, is that possible? |
2020-12-31 22:27:10 +0100 | <sm[m]> | foobar2: probably the fix is "rm -rf /Users/me/Library/Haskell". You didn't show the dates on that one I think |
2020-12-31 22:27:14 +0100 | <foobar2> | tomsmeding yes, that is quite likely. It was in a bad state; I had hoped this would blow it away |
2020-12-31 22:27:32 +0100 | <tomsmeding> | do sm[m]'s suggestion, but perhaps move it to a backup location first |
2020-12-31 22:28:12 +0100 | <foobar2> | oh. Well, it's gone now. |
2020-12-31 22:28:16 +0100 | <tomsmeding> | :D |
2020-12-31 22:28:23 +0100 | <sm[m]> | it's the end of the year, be bold! >:) |
2020-12-31 22:28:24 +0100 | <tomsmeding> | ghcup and brew are a better way anyway |
2020-12-31 22:28:34 +0100 | <sm[m]> | now: "hash stack" |
2020-12-31 22:28:39 +0100 | <sm[m]> | and all should be well |
2020-12-31 22:28:45 +0100 | <foobar2> | YOLO. |
2020-12-31 22:29:16 +0100 | <tomsmeding> | sm[m]: is that 'hash' necessary? |
2020-12-31 22:29:20 +0100 | theorbtwo | (~theorb@cpc81822-swin19-2-0-cust3.3-1.cable.virginm.net) |
2020-12-31 22:29:24 +0100 | <foobar2> | I don't know what `hash stack` should output, if anything. But `stack --version` now says something useful |
2020-12-31 22:29:27 +0100 | <tomsmeding> | foobar2: you may want to remove that Library/Haskell/bin folder from your PATH |
2020-12-31 22:29:29 +0100 | <foobar2> | and `stack build` starts to build |
2020-12-31 22:29:45 +0100 | <sm[m]> | tomsmeding: I often find it so, after removing something in $PATH. I use bash, though |
2020-12-31 22:29:58 +0100 | <sm[m]> | it frequently trips up beginners |
2020-12-31 22:30:06 +0100 | <tomsmeding> | foobar2: 'hash stack' updates your shell's cache of where that executable is located, saving it from searching the PATH each time |
2020-12-31 22:30:22 +0100 | <foobar2> | that's another worthwhile bit to know. |
2020-12-31 22:30:29 +0100 | <tomsmeding> | but you should only need to run it if you ran it in the previous configuration already, because otherwise it won't cache it at all AFAIK |
2020-12-31 22:30:34 +0100 | <foobar2> | thank you all; it seems like I'm in much better shape. |
2020-12-31 22:30:45 +0100 | <tomsmeding> | just in time for the new year :) |
2020-12-31 22:30:57 +0100 | theDon | (~td@94.134.91.248) |
2020-12-31 22:30:58 +0100 | <sm[m]> | high fives all round |
2020-12-31 22:31:53 +0100 | tomsmeding | wonders what even was that other stack executable |
2020-12-31 22:31:57 +0100 | geekosaur | (42d52137@66.213.33.55) |
2020-12-31 22:32:33 +0100 | <tomsmeding> | int main() { printf("The Haskell Tool Stack\n"); } certainly compiles to something smaller than 1 MB |
2020-12-31 22:33:02 +0100 | <sm[m]> | foobar2: we're going to have to ask you to restore from backups so we can do forensics |
2020-12-31 22:33:23 +0100 | <sm[m]> | (not really) |
2020-12-31 22:33:28 +0100 | <tomsmeding> | hah 'putStrLn "The Haskell Tool Stack"' becomes 2.7 MB here |
2020-12-31 22:33:41 +0100 | <foobar2> | Yeah, it was definitely the Haskell Tool Stack. |
2020-12-31 22:33:46 +0100 | <foobar2> | If there's one thing I was able to deduce. |
2020-12-31 22:33:53 +0100 | <tomsmeding> | X doubt |
2020-12-31 22:34:05 +0100 | <sm[m]> | it was a hell of a tool, anyway :) |
2020-12-31 22:34:28 +0100 | <gentauro> | tomsmeding: why so big? It's not a self-contained executable right? |
2020-12-31 22:34:29 +0100 | <sm[m]> | You always knew what it would do. |
2020-12-31 22:35:14 +0100 | sm[m] | thinks: a WIP placeholder in old Haskell Platform |
2020-12-31 22:35:33 +0100 | <tomsmeding> | gentauro: '$ printf 'main :: IO ()\nmain = putStrLn "The Haskell Tool Stack"\n' >a.hs; ghc -O2 a.hs -o a; ls -sh a' gives 2.7M here :p |
2020-12-31 22:35:57 +0100 | tomsmeding | thinks sm[m] is correct |
2020-12-31 22:35:59 +0100 | <sm[m]> | gentauro: the runtime system, I guess |
2020-12-31 22:36:11 +0100 | <geekosaur> | base and rts are linked stattically by default |
2020-12-31 22:36:47 +0100 | <geekosaur> | plus what those drag in which will include ghc-prim, integer-gmp, etc. |
2020-12-31 22:37:11 +0100 | <gentauro> | geekosaur: if I write a huge lib, but only point to a few independent `modules` in my .cabal file |
2020-12-31 22:37:15 +0100 | <gentauro> | will GHC strip the rest? |
2020-12-31 22:38:09 +0100 | <monochrom> | Yes. |
2020-12-31 22:38:13 +0100 | <gentauro> | iirc from using `packages.yaml` all are automatically added |
2020-12-31 22:38:19 +0100 | <geekosaur> | if linked statically the linker will strip the rest, yes, but there are hard references to e.g. integer-gmp in the runtime |
2020-12-31 22:38:29 +0100 | <gentauro> | but since I moved to `cabal` files, I have to state them myself |
2020-12-31 22:40:19 +0100 | <gentauro> | geekosaur: I remembered this blog post from Athas https://futhark-lang.org/blog/2020-04-13-statically-linking-the-futhark-compiler.html |
2020-12-31 22:40:56 +0100 | <gentauro> | tomsmeding: have you tried `ldd` on your executable? |
2020-12-31 22:41:02 +0100 | <gentauro> | just to see how much stuff is linked? |
2020-12-31 22:41:24 +0100 | p-core | (~Thunderbi@koleje-wifi-0045.koleje.cuni.cz) (Remote host closed the connection) |
2020-12-31 22:42:01 +0100 | <tomsmeding> | gentauro: linux-vdso, lib{m, ncursesw, rt, util, dl, pthread, gmp, c}, and the loader |
2020-12-31 22:42:02 +0100 | <geekosaur> | ldd only shows dynamic stuff, which will all be small |
2020-12-31 22:42:08 +0100 | <tomsmeding> | but yes what geekosaur says |
2020-12-31 22:42:45 +0100 | tomsmeding | wonders what even libutil is, that sounds even worse than an exported Util module from a haskell package |
2020-12-31 22:43:49 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2020-12-31 22:44:01 +0100 | hiroaki_ | (~hiroaki@ip4d16fa3b.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds) |
2020-12-31 22:44:33 +0100 | geekosaur | (42d52137@66.213.33.55) (Remote host closed the connection) |
2020-12-31 22:46:40 +0100 | <ephemient> | libutil is part of glibc, it contains forkpty & friends |
2020-12-31 22:47:00 +0100 | <ephemient> | yeah it's a pretty bad name |
2020-12-31 22:47:57 +0100 | <tomsmeding> | I found that out using objdump indeed, interesting thing |
2020-12-31 22:49:19 +0100 | madjestic | (~Android@86-88-72-244.fixed.kpn.net) (Ping timeout: 246 seconds) |
2020-12-31 22:49:54 +0100 | <gentauro> | tomsmeding: are you trying to reduce the size of Haskell executables? |
2020-12-31 22:49:55 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) |
2020-12-31 22:52:07 +0100 | <tomsmeding> | no I'm not, we were wondering about a weird stack-impostor foobar2 had, found out it was 1MB; I saw that a putStrLn-only haskell executable becomes 2.8MB for me, and I was puzzled what that weird executable even was |
2020-12-31 22:52:14 +0100 | <monochrom> | The RTS is 2.6MB |
2020-12-31 22:52:39 +0100 | <tomsmeding> | gentauro: conversation starts here: https://ircbrowse.tomsmeding.com/browse/haskell?id=228683×tamp=1609448660#t1609448660 |
2020-12-31 22:53:05 +0100 | <tomsmeding> | monochrom: well that makes sense then :) |
2020-12-31 22:53:25 +0100 | <monochrom> | e.g., look for <prefix>/lib/ghc-8.8.4/rts/libHSrts-ghc8.8.4.so |
2020-12-31 22:54:12 +0100 | madjestic | (~Android@86-88-72-244.fixed.kpn.net) |
2020-12-31 22:54:43 +0100 | <monochrom> | I use the *.so file size as my proxy measure because the alternative is libHSrts.a which is 7.7MB which doesn't make empirical sense. :) |
2020-12-31 22:55:03 +0100 | mp___ | (mp@hell.cx) |
2020-12-31 22:55:09 +0100 | <tomsmeding> | 2.5MB for me, but yes |
2020-12-31 22:55:18 +0100 | <monochrom> | So I guess the *.a format contains much stuff that doesn't make it to the exe. |
2020-12-31 22:55:46 +0100 | <tomsmeding> | or perhaps objects that are discarded when linking because they're unused? (guessing) |
2020-12-31 22:56:40 +0100 | hiroaki_ | (~hiroaki@ip4d168e73.dynamic.kabel-deutschland.de) |
2020-12-31 22:57:24 +0100 | <monochrom> | A basic, very likely premise is that actual code in the *.a and actual code in the *.so should be more or less equivalent. |
2020-12-31 22:58:03 +0100 | <monochrom> | So if they have more or less equivalent code but vastly different file sizes, I would go with the smaller size just for Shannon information theory sake. |
2020-12-31 22:59:36 +0100 | <ephemient> | the *.a contains a separate *.o for each compilation unit (e.g. each rts/*.c file) while the *.so merges everything together |
2020-12-31 23:00:09 +0100 | <ephemient> | in theory a statically linked executable can discard unused sections while a dynamically linked executable can't, but I don't know if that even makes sense in the RTS |
2020-12-31 23:00:15 +0100 | <tomsmeding> | monochrom: my .a is 7.7M and gzip's to 2.2M, whereas my .so is 2.5M and gzip's to 1.0M |
2020-12-31 23:02:39 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d) (Remote host closed the connection) |
2020-12-31 23:03:48 +0100 | Shiranai | (beed0d8f@gateway/web/cgi-irc/kiwiirc.com/ip.190.237.13.143) |
2020-12-31 23:04:39 +0100 | <gentauro> | 22:52 < tomsmeding> no I'm not, we were wondering about a weird stack-impostor foobar2 had, found out it was 1MB; |
2020-12-31 23:04:44 +0100 | <gentauro> | but he is on a mac right? |
2020-12-31 23:04:49 +0100 | <gentauro> | so maybe that's the diff? |
2020-12-31 23:04:50 +0100 | <foobar2> | Yes. |
2020-12-31 23:04:58 +0100 | <foobar2> | To the mac question. |
2020-12-31 23:05:27 +0100 | <gentauro> | maybe OSX handles stuff different? I recall the implemenation of POSIX is not the same as the one in Linux |
2020-12-31 23:05:32 +0100 | <tomsmeding> | I'd be surprised if the RTS is more than twice as small on mac than on linux, but sure that could explain the difference |
2020-12-31 23:05:34 +0100 | <gentauro> | so maybe other stuff is not the same? |
2020-12-31 23:05:37 +0100 | <tomsmeding> | oh fair |
2020-12-31 23:05:58 +0100 | <tomsmeding> | but the real stack is not 1MB ;) |
2020-12-31 23:06:02 +0100 | <tomsmeding> | on no platfor |
2020-12-31 23:06:02 +0100 | <tomsmeding> | m |
2020-12-31 23:06:06 +0100 | <gentauro> | hmmm |
2020-12-31 23:06:15 +0100 | <gentauro> | foobar2: did you download it from the NSA website? :) |
2020-12-31 23:06:20 +0100 | kderme | (2eb0d7c7@ppp046176215199.access.hol.gr) (Ping timeout: 245 seconds) |
2020-12-31 23:06:24 +0100 | <gentauro> | muhahahaa |
2020-12-31 23:06:35 +0100 | <Shiranai> | Hello, I'm revisiting haskell from the category point of view and I'm having doubts with respect to the `Functor` typesclass. To make a concrete point, is `[]` really a functor? I think I am not understanding correctly the source and target categories. What's the preimage of [1,2] for example? |
2020-12-31 23:06:49 +0100 | <tomsmeding> | I'd at least expect them to be competent enough to make the executable _work_ under normal usage :P |
2020-12-31 23:08:20 +0100 | <gentauro> | tomsmeding: I think it's kind of funny that Okasaki teaches at West Point |
2020-12-31 23:08:35 +0100 | <koz_> | gentauro: Purely functional missiles. |
2020-12-31 23:08:46 +0100 | <gentauro> | how many (army) cadetes are absolute beasts at Haskell? |
2020-12-31 23:08:55 +0100 | <monochrom> | [] is really a functor. The source and the target categories are the same, objects are Haskell types, morphisms are Haskell functions. |
2020-12-31 23:08:56 +0100 | <gentauro> | I wonder how much stuff is coded for the army in Haskell :) |
2020-12-31 23:09:24 +0100 | jathan | (~jathan@69.61.93.38) (Quit: WeeChat 2.3) |
2020-12-31 23:09:48 +0100 | <koz_> | monochrom: Something something Functor is an endofunctor on Hask something? |
2020-12-31 23:09:53 +0100 | <foobar2> | gentauro at least one! https://www.cambridge.org/core/journals/journal-of-functional-programming/article/abs/theoretical-… |
2020-12-31 23:09:54 +0100 | <monochrom> | yes |
2020-12-31 23:09:58 +0100 | <koz_> | s/Functor/any instance of Functor/ I guess |
2020-12-31 23:10:01 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2020-12-31 23:10:12 +0100 | <koz_> | I am not smart at the category theory. |
2020-12-31 23:10:25 +0100 | <koz_> | I can merely ape those which are like GPT-2. |
2020-12-31 23:10:31 +0100 | <Shiranai> | I see, I was thinking of each type as a category, the whole haskell type as a category makes more sense, thanks |
2020-12-31 23:10:36 +0100 | <gentauro> | foobar2: that's Okasaki. He is a profesor at West Point :) |
2020-12-31 23:10:43 +0100 | <gentauro> | that's what I'm saying ;) |
2020-12-31 23:11:01 +0100 | <koz_> | I now have a theory for the origin of 'launch missiles' as an example of an irreversible IO action. :P |
2020-12-31 23:11:26 +0100 | <gentauro> | Shiranai: normally ski is really helpfull with these kind of questions ;) |
2020-12-31 23:11:42 +0100 | <foobar2> | gentauro I meant that the cadet he describes in that paper is also a beast at haskell |
2020-12-31 23:12:08 +0100 | <koz_> | I actually stumbled across something by Okasaki I genuinely did not know he ever dealt with recently. |
2020-12-31 23:12:56 +0100 | <gentauro> | foobar2: Cadet K xD |
2020-12-31 23:13:45 +0100 | <monochrom> | Yes, that's the one in which he showed off how to define "push", "pop" "1", "2", "3", maybe also "begin" and "end" I forgot, such that "begin push 1 push 2 push 3 pop end" gives you 3 intuitively. |
2020-12-31 23:14:06 +0100 | <koz_> | Also, monochrom, I have a vaguely-relevant CT question: Bartosz states that morphisms in the skeleton F of FinSet correspond to functions between finite sets. He then states that there is a unique morphism from 0 to n (aka the empty set is the initial object). I assume that 0 -> n corresponds to functions from the empty set to a finite set of cardinality n - but how can any such function exist? |
2020-12-31 23:14:21 +0100 | <monochrom> | and which demonstrates how to get type inference to take exponential time. |
2020-12-31 23:15:07 +0100 | <koz_> | monochrom: Wait, this was from 'Techniques for Embedding Postfix Languages in Haskell' right? |
2020-12-31 23:15:19 +0100 | <tomsmeding> | koz_: 'absurd' is such a function, right? |
2020-12-31 23:15:28 +0100 | <tomsmeding> | (I know no CT, just answering your last sentence :p) |
2020-12-31 23:15:28 +0100 | <koz_> | tomsmeding: Void -> a, sure. |
2020-12-31 23:15:36 +0100 | <koz_> | Yeah, now that I think about it, I get it now. |
2020-12-31 23:15:37 +0100 | <b4er> | Why would such a function not exist? |
2020-12-31 23:15:50 +0100 | <monochrom> | I think no, because "begin push 1 push 2 pop etc" isn't postfix. |
2020-12-31 23:15:51 +0100 | <koz_> | If we take the combinatorial view of functions, a function from the empty set to anything would be... the empty set. |
2020-12-31 23:15:58 +0100 | <koz_> | Never mind, answered my own question, rofl. |
2020-12-31 23:16:41 +0100 | <koz_> | I'm reading Bartosz's thing on Lawvere theories. |
2020-12-31 23:16:54 +0100 | <koz_> | https://bartoszmilewski.com/2017/08/26/lawvere-theories/ for anyone who wants to read along. |
2020-12-31 23:17:02 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-12-31 23:18:03 +0100 | sakirious | (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) (Quit: The Lounge - https://thelounge.chat) |
2020-12-31 23:18:14 +0100 | jathan | (~jathan@69.61.93.38) |
2020-12-31 23:21:50 +0100 | <Shiranai> | koz_: have you read all the book up to there? |
2020-12-31 23:22:21 +0100 | <koz_> | Shiranai: What book are you referring to? |
2020-12-31 23:22:34 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2020-12-31 23:22:55 +0100 | <Shiranai> | Bartosz made a book out of his blogposts, it's called "Category Theory for Programmers" |
2020-12-31 23:23:10 +0100 | <Shiranai> | the blogpost you mentioned is the before-last chapter |
2020-12-31 23:24:04 +0100 | hiroaki_ | (~hiroaki@ip4d168e73.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds) |
2020-12-31 23:24:09 +0100 | <koz_> | Shiranai: I... didn't notice that. I've read some of it a while back, but definitely not the whole thing. |
2020-12-31 23:24:47 +0100 | Tesseraction | (~Tesseract@unaffiliated/tesseraction) (Read error: Connection reset by peer) |
2020-12-31 23:25:51 +0100 | Lycurgus | (~niemand@cpe-45-46-139-165.buffalo.res.rr.com) (Quit: Exeunt) |
2020-12-31 23:26:17 +0100 | <Shiranai> | I see, I've been wanting to read it for a while but I think I don't have enough math knowledge to fully appreciate it |
2020-12-31 23:26:37 +0100 | <koz_> | Shiranai: The early stuff requires basically no real 'math knowledge' of any sort. |
2020-12-31 23:26:47 +0100 | <koz_> | That's one of the nice parts of category theory in general. |
2020-12-31 23:27:10 +0100 | <koz_> | If you write Haskell, a lot of it will feel _very_ familiar. |
2020-12-31 23:29:44 +0100 | <monochrom> | It is a two-edged sword to require no real knowledge, especially when because it stays so broadly general. |
2020-12-31 23:30:22 +0100 | <koz_> | Yes, exactly. |
2020-12-31 23:30:30 +0100 | <koz_> | Category theory is _pedantically_ general. |
2020-12-31 23:30:37 +0100 | <Shiranai> | I know the basics of cat theory, up to yonneda's lemma from a math perspective, but those other cool stuff like topoi, comonads, etc seem to have some convoluted math meaning |
2020-12-31 23:30:57 +0100 | <koz_> | At least how Bartosz presents it, it's all 'hey, Set has this cool thing, but it's specific to set, can we generalize away?'. |
2020-12-31 23:31:06 +0100 | <koz_> | Shiranai: They can be _interpreted_ to have such a meaning. |
2020-12-31 23:31:18 +0100 | <koz_> | But that's the whole point - category theory is designed to be the ultimate generalization. |
2020-12-31 23:31:29 +0100 | <b4er> | You kind of need to know set theory and abstract algebra knowledge, otherwise you'll quickly loose track I imagine |
2020-12-31 23:32:00 +0100 | <monochrom> | I think we haven't used topoi in this community. |
2020-12-31 23:32:04 +0100 | <koz_> | b4er: At least from what I've read, set theory isn't necessary beyond like, really simple stuff. |
2020-12-31 23:32:24 +0100 | <koz_> | At least in my view, if you say 'set theory' we're talking at least ultrafilters. |
2020-12-31 23:32:54 +0100 | <koz_> | Can't speak for abstract algebra because unsurprisingly, I don't know it. |
2020-12-31 23:33:11 +0100 | <koz_> | (because my maths education can be politely described as 'patchwork', and impolitely described as 'woefully incomplete') |
2020-12-31 23:34:02 +0100 | <Shiranai> | hmm may I ask how do you know ultrafilters but not abstract algebra? The places I learned ultrafilters always were looking at the algebraic side |
2020-12-31 23:34:24 +0100 | <koz_> | Shiranai: It's called 'I picked up random concepts in random places because I didn't come to computing from a maths or science pathway'. |
2020-12-31 23:34:27 +0100 | <koz_> | I'm a historian by training. |
2020-12-31 23:34:35 +0100 | <exarkun> | "encountered an exception while trying to report an exception." :/ |
2020-12-31 23:34:40 +0100 | <Shiranai> | oh that's really interesting haha |
2020-12-31 23:34:54 +0100 | <Shiranai> | I'm an economist, so yeah missing a lot of stuff too |
2020-12-31 23:35:20 +0100 | Franciman | (~francesco@host-95-250-152-231.retail.telecomitalia.it) (Quit: Leaving) |
2020-12-31 23:35:29 +0100 | <koz_> | It was kinda... survival theory basically. I picked up the parts I needed, only to the extent needed, frequently absent the context I didn't need at that very moment. |
2020-12-31 23:35:40 +0100 | <koz_> | Basically, if you ask me to deal with _anything_ continuous, my brain explodes. |
2020-12-31 23:35:54 +0100 | <koz_> | I barely understand _limits_, just to give you some idea of how bad the situation is. |
2020-12-31 23:36:10 +0100 | <koz_> | (and I basically only got that far when I reframed them into logic) |
2020-12-31 23:36:16 +0100 | <boxscape> | you just need to have the right definition of "continuous". I.e. the definition where continuous == computable |
2020-12-31 23:36:27 +0100 | <monochrom> | Here is a bomb for you. The identity function is continuous. |
2020-12-31 23:36:35 +0100 | <b4er> | Maybe you don't need set theory by your definition then, yeah. But as an example that article you cited mentions things like empty set, power set, isomorphisms etc. in the first few paragraphs. Kind of helps to know math imo |
2020-12-31 23:37:40 +0100 | <koz_> | b4er: I mean... yeah, in the most literal sense, sure. But empty and power set are just definitions (helped by the fact that set theory is also super general), and isomorphism is actually a category theory notion (or rather, it's given its best treatment there). |
2020-12-31 23:37:57 +0100 | <b4er> | I don't think I ever read something on category theory that didn't mention Set. |
2020-12-31 23:38:12 +0100 | <koz_> | b4er: Set is just used as a source of things we wanna generalize. |
2020-12-31 23:38:23 +0100 | <boxscape> | (hm, actually, while all computable functions are continuous, maybe not all continuous functions are computable) |
2020-12-31 23:38:42 +0100 | <koz_> | boxscape and monochrom: I meant 'continuous' in the sense of 'not discrete'. |
2020-12-31 23:38:55 +0100 | <boxscape> | it's really the same thing if you look at it in the right light |
2020-12-31 23:39:00 +0100 | <Shiranai> | not all continuous functions are computable in the calculus sense, mainly because there an uncountable number of them |
2020-12-31 23:39:29 +0100 | <koz_> | boxscape: I welcome anyone who can make me understand things involving 'anything beyond limits'. Many folks have tried, and I just lack any mental machinery to go into anything. |
2020-12-31 23:39:38 +0100 | <koz_> | Heck, differentiation and integration make my head explode. |
2020-12-31 23:39:49 +0100 | <koz_> | Anything _built_ on those? Zero hope in my case. |
2020-12-31 23:40:00 +0100 | <boxscape> | Shiranai that makes sense, yeah |
2020-12-31 23:40:29 +0100 | <Shiranai> | koz_: maybe you just need some non standard analysis |
2020-12-31 23:40:32 +0100 | <Shiranai> | :) |
2020-12-31 23:40:40 +0100 | <koz_> | Shiranai: Suggestions very welcome, seriously. |
2020-12-31 23:40:46 +0100 | <koz_> | I have tried every damn take on calculus there is. |
2020-12-31 23:40:47 +0100 | <b4er> | You might want to look at the topological definition in terms of neighbourhoods. |
2020-12-31 23:40:50 +0100 | <koz_> | None of them sit in my head. |
2020-12-31 23:41:07 +0100 | <boxscape> | koz_ have you read about how the derivative of a regular type is its type of one-hole contexts? |
2020-12-31 23:41:09 +0100 | <Shiranai> | seriously though then, have you tried non standard analysis? |
2020-12-31 23:41:10 +0100 | <koz_> | My only attempt to resolve any problem is 'reduce it to logic and hope that works'. |
2020-12-31 23:41:12 +0100 | hiroaki_ | (~hiroaki@ip4d16fa3b.dynamic.kabel-deutschland.de) |
2020-12-31 23:41:26 +0100 | <koz_> | Shiranai: Again, suggestions of sources I can learn this from? |
2020-12-31 23:41:44 +0100 | <koz_> | boxscape: I have heard, yes. I have no intuition for derivatives, so this might as well be gibberish. |
2020-12-31 23:42:14 +0100 | <boxscape> | hmm |
2020-12-31 23:42:23 +0100 | Tesseraction | (~Tesseract@unaffiliated/tesseraction) |
2020-12-31 23:42:51 +0100 | <boxscape> | to be fair even for someone who knows a lot about derivatives I think at least the title sounds like gibberish at first |
2020-12-31 23:42:52 +0100 | <Shiranai> | koz_: it's basically calculus without limits, by using infinitesimals. May be easier to wrap your head around for some people http://www.math.wisc.edu/~keisler/calc.html |
2020-12-31 23:44:18 +0100 | <koz_> | boxscape: The fact is, I am aware of this construction, and I'm aware that it relates to derivatives... somehow. But it's basically a special snowflake - knowing this gives me nothing. |
2020-12-31 23:44:27 +0100 | chang | (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) |
2020-12-31 23:44:27 +0100 | <boxscape> | that's fair |
2020-12-31 23:44:33 +0100 | <koz_> | I'm sure I could make more sense of it, but I've never gotten anywhere. |
2020-12-31 23:44:38 +0100 | <koz_> | Shiranai: Thank you! Will read. |
2020-12-31 23:44:42 +0100 | <Shiranai> | in the 50s and 60s, I believe, a group of mathematicians wanted to change the epsilon-delta to this but noone really wanted. There were no proven pedagogical benefits so it was ignored pretty much other than for researchers |
2020-12-31 23:44:50 +0100 | <b4er> | Shiranai, it looks the same just with different notation? |
2020-12-31 23:44:53 +0100 | <Shiranai> | you're welcome |
2020-12-31 23:44:59 +0100 | <Shiranai> | b4er: no! |
2020-12-31 23:45:05 +0100 | <Shiranai> | the semantics are completely distinct |
2020-12-31 23:45:27 +0100 | <Shiranai> | for example, in the derivative definition you are actually computing a fraction |
2020-12-31 23:45:37 +0100 | <Shiranai> | with terms having infinitesimals |
2020-12-31 23:45:45 +0100 | <Shiranai> | not computing a limit of a fraction |
2020-12-31 23:45:45 +0100 | <koz_> | Yeah, whereas with limits, you play this fun game of getting rid of h on the bottom. |
2020-12-31 23:46:00 +0100 | <koz_> | Because we can't divide by actual zero. |
2020-12-31 23:46:26 +0100 | <Shiranai> | yup, can't divide by zero but can divide by infinitesimals because magic |
2020-12-31 23:46:36 +0100 | <koz_> | Because infinitesimals are not technically zero! |
2020-12-31 23:46:47 +0100 | <koz_> | (or rather, are technically not zero) |
2020-12-31 23:47:04 +0100 | <ephemient> | well, limit h→0 is not zero either |
2020-12-31 23:47:19 +0100 | <Shiranai> | ^^ |
2020-12-31 23:47:43 +0100 | <koz_> | ephemient: Yeah, indeed, because limits 'don't really exist'. |
2020-12-31 23:47:57 +0100 | <koz_> | It just says 'we can get as close as we like to it by picking the right argument'. |
2020-12-31 23:48:05 +0100 | <koz_> | (that's essentially epsilon-delta in a nutshell) |
2020-12-31 23:48:16 +0100 | <b4er> | But The example with x^3 and the derivation of st(dy/dx) is basically computing the limit? |
2020-12-31 23:48:18 +0100 | <Shiranai> | Personally I prefer thinking about limits, infinitesimals just seem weird. Values smaller than any real number but not 0 just is too weird |
2020-12-31 23:48:22 +0100 | _ashbreeze_ | (~mark@64.85.214.234.reverse.socket.net) (Read error: Connection reset by peer) |
2020-12-31 23:48:24 +0100 | <b4er> | I fail to see the difference :S |
2020-12-31 23:48:39 +0100 | <koz_> | Shiranai: I have zero problems with weirdness. |
2020-12-31 23:48:44 +0100 | <ephemient> | as far as I'm concerned, they're equivalent in power |
2020-12-31 23:48:56 +0100 | <koz_> | If it makes sense in my head and gives me a model I can work with and prove things from, bring on the weirdness I say. |
2020-12-31 23:48:57 +0100 | <ephemient> | weirdness is ok as long as it's justified and consistent |
2020-12-31 23:49:05 +0100 | <Shiranai> | b4er: I'd say it's kind of a syntactic difference? It is in fact a theorem that both calculus with limits and with infinitesimals are equivalent |
2020-12-31 23:49:16 +0100 | <Shiranai> | so yeah some stuff will end looking the same |
2020-12-31 23:49:33 +0100 | <Shiranai> | but not every stuff (can't give an example of what's not alike of the top of my head) |
2020-12-31 23:49:51 +0100 | _ashbreeze_ | (~mark@64.85.214.234.reverse.socket.net) |
2020-12-31 23:50:16 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) (Ping timeout: 240 seconds) |
2020-12-31 23:50:28 +0100 | <koz_> | And frankly, the real line is full of so much weirdness anyway, what's one more thing? |
2020-12-31 23:50:41 +0100 | kderme | (2eb0d7c7@ppp046176215199.access.hol.gr) |
2020-12-31 23:50:42 +0100 | <koz_> | (any interval of the real line for example, is more infinite than the rationals) |
2020-12-31 23:50:48 +0100 | <koz_> | (thanks, Cantor's diagonal argument) |
2020-12-31 23:51:10 +0100 | <koz_> | (ok, any non-empty interval, fine) |
2020-12-31 23:51:17 +0100 | <tomsmeding> | koz_: what's your working definition of R? |
2020-12-31 23:51:47 +0100 | <monochrom> | One reason to switch is if it saves work. (But I think this one doesn't.) Another reason to switch is if it is more compatible with your personality, e.g., some people are more happy with "for all e>0 there exists d>0", some other are more happy with "just do algebra and use (dx)^2=0, shoot upon sight, shoot to kill". |
2020-12-31 23:51:51 +0100 | <koz_> | tomsmeding: I... basically don't really have one? If you put a gun to my head, I'd go with Dedekind cuts, but it's not a 'working definition' in the sense that I couldn't prove much from it. |
2020-12-31 23:51:56 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-12-31 23:52:05 +0100 | <tomsmeding> | (really I shouldn't enter this discussion because my understanding of math is firmly in the conventional framework) |
2020-12-31 23:52:28 +0100 | <ephemient> | well reals based on dedekind cuts aren't too super useful directly, although it is useful that limits are kind of built in |
2020-12-31 23:52:46 +0100 | <ephemient> | but you just have to prove that everything real-like is isomorphic and then you're good |
2020-12-31 23:54:04 +0100 | boxscape | (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Ping timeout: 246 seconds) |
2020-12-31 23:54:05 +0100 | <tomsmeding> | I found it fairly enlightening when I got how R can be defined as the limits of Cauchy (""convergent"") sequences of elements of Q |
2020-12-31 23:54:23 +0100 | usr25 | (~usr25@unaffiliated/usr25) (Quit: Leaving) |
2020-12-31 23:54:32 +0100 | <tomsmeding> | but then, that's the firmly conventional view which you've probably already discarded :p |
2020-12-31 23:54:52 +0100 | <koz_> | tomsmeding: Cauchy sequences is something I definitely encountered (curiously enough in a _theory of computation_ class of all places). |
2020-12-31 23:54:59 +0100 | <monochrom> | Next controversy for you all: The Banach-Tarski Theorem (yes, theorem, not paradox) shows which one of the following two to be the actually weird one? Axiom of choice; continuity of R^3. |
2020-12-31 23:55:17 +0100 | <koz_> | monochrom: Maybe I'm just weird, but AC doesn't bother me. |
2020-12-31 23:55:29 +0100 | <koz_> | I excuse it by saying 'infinity is weird and ahuman, just deal'. |
2020-12-31 23:55:45 +0100 | <monochrom> | Then either the continuity of R^3 bothers you, or Banach-Tarski doesn't bother you :) |
2020-12-31 23:55:48 +0100 | usr25 | (~usr25@unaffiliated/usr25) |
2020-12-31 23:55:59 +0100 | <koz_> | I don't really consider the reals particularly 'real'. |
2020-12-31 23:56:05 +0100 | <monochrom> | \∩/ |
2020-12-31 23:56:08 +0100 | <ephemient> | I'm fine with either AC or ¬AC |
2020-12-31 23:56:20 +0100 | <koz_> | ephemient: Yes, I too agree with ZFC on this. :P |
2020-12-31 23:56:25 +0100 | <Shiranai> | I don't like AC because it generates a lot of non constructive proofs |
2020-12-31 23:56:36 +0100 | <Shiranai> | if fact it implies LEM |
2020-12-31 23:56:46 +0100 | <monochrom> | See? I think the real weirdness is in R, even though continuity is so bloody convenient. |
2020-12-31 23:56:53 +0100 | <koz_> | Shiranai: I mean, sure? However, mathematics is mostly non-constructive anyway. |
2020-12-31 23:57:06 +0100 | <koz_> | So the way I see it is this: everyone is LEMming it up with their ZFC, so I just gotta deal. |
2020-12-31 23:57:21 +0100 | <koz_> | I would _prefer_ if everything were constructive, but I'm a computer person, so of course. |
2020-12-31 23:57:31 +0100 | <Shiranai> | yup sadly haha, I just prefer the constructive side of it but I agree half of my knowledge disappears if you take away AC |
2020-12-31 23:57:55 +0100 | <koz_> | monochrom: Yes, R is weird. |
2020-12-31 23:58:03 +0100 | <koz_> | And I think that's probably where my mental block lies. |
2020-12-31 23:58:13 +0100 | <koz_> | I simply _can't_ use the same tools I can use for Q, or Z, or N, in it. |
2020-12-31 23:58:34 +0100 | <koz_> | Basically, the cardinality of my mental universe stops at aleph-null. :P |
2020-12-31 23:58:47 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d) |
2020-12-31 23:59:10 +0100 | mp___ | (mp@hell.cx) (Ping timeout: 256 seconds) |
2020-12-31 23:59:30 +0100 | o1lo01ol1o | (~o1lo01ol1@bl11-140-216.dsl.telepac.pt) |