Logs on 2021-01-26 (freenode/#haskell)
| 00:01:15 | × | carlomagno quits (~cararell@148.87.23.5) (Remote host closed the connection) |
| 00:01:22 | → | carlomagno1 joins (~cararell@148.87.23.5) |
| 00:01:45 | × | deviantfero quits (~deviantfe@190.150.27.58) (Ping timeout: 246 seconds) |
| 00:01:54 | × | DavidEichmann quits (~david@234.109.45.217.dyn.plus.net) (Ping timeout: 240 seconds) |
| 00:03:00 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 00:04:07 | → | vappend joins (~ezrakilty@75-172-109-5.tukw.qwest.net) |
| 00:06:17 | → | teardown joins (~user@gateway/tor-sasl/mrush) |
| 00:06:21 | × | joaj quits (~joaj@2001:818:e326:8200:5273:55b7:3a86:e6ca) (Quit: WeeChat 3.0) |
| 00:08:23 | × | vappend quits (~ezrakilty@75-172-109-5.tukw.qwest.net) (Ping timeout: 240 seconds) |
| 00:10:32 | × | teardown_ quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
| 00:10:50 | × | teardown quits (~user@gateway/tor-sasl/mrush) (Remote host closed the connection) |
| 00:11:25 | → | teardown joins (~user@gateway/tor-sasl/mrush) |
| 00:12:54 | × | forgottenone quits (~forgotten@176.42.20.27) (Quit: Konversation terminated!) |
| 00:13:04 | × | knupfer quits (~Thunderbi@200116b82cb5de00b8530b9ff2c8fc98.dip.versatel-1u1.de) (Remote host closed the connection) |
| 00:13:12 | → | knupfer joins (~Thunderbi@200116b82cb5de0034b1fc93289b63eb.dip.versatel-1u1.de) |
| 00:20:13 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 00:20:35 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) |
| 00:23:06 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 00:23:27 | → | deviantfero joins (~deviantfe@190.150.27.58) |
| 00:23:45 | → | teardown_ joins (~user@gateway/tor-sasl/mrush) |
| 00:24:33 | × | Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
| 00:25:54 | <Squarism> | im planning on using Data.Either.Validation (an Applicative Functor) to do a bunch of expressions. I feel i need if-then-else possibilities so I feel i need to unbox my expression results. Not seeing how that could be done wo some box / pattern match trickery. |
| 00:26:00 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 00:27:46 | × | geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 265 seconds) |
| 00:27:49 | × | teardown quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
| 00:29:54 | × | deviantfero quits (~deviantfe@190.150.27.58) (Ping timeout: 260 seconds) |
| 00:30:40 | × | carlomagno1 quits (~cararell@148.87.23.5) (Ping timeout: 265 seconds) |
| 00:32:12 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 00:33:38 | × | thc202 quits (~thc202@unaffiliated/thc202) (Ping timeout: 244 seconds) |
| 00:35:25 | × | elliott_ quits (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
| 00:35:41 | → | elliott_ joins (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) |
| 00:36:50 | → | teardown joins (~user@gateway/tor-sasl/mrush) |
| 00:37:43 | <Athas> | ij: in my case it was because it was very fast to load and write to files, compared to indexing and processing element-by-element. |
| 00:40:09 | × | teardown_ quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
| 00:40:31 | → | Kaiepi joins (~Kaiepi@47.54.252.148) |
| 00:40:42 | × | Tops2 quits (~Tobias@dyndsl-095-033-021-044.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
| 00:42:41 | → | teardown_ joins (~user@gateway/tor-sasl/mrush) |
| 00:45:07 | × | cafce25 quits (~jona@ipbcc3009d.dynamic.kabel-deutschland.de) (Quit: Lost terminal) |
| 00:45:23 | → | cafce25 joins (~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de) |
| 00:46:55 | → | niekvandepas joins (~niekvande@dhcp-077-249-088-250.chello.nl) |
| 00:46:57 | × | teardown quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
| 00:47:29 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 00:51:45 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 00:54:17 | → | MarcelineVQ joins (~anja@198.254.199.42) |
| 00:55:06 | → | Lycurgus joins (~niemand@cpe-45-46-139-165.buffalo.res.rr.com) |
| 00:57:42 | × | jumper149 quits (~jumper149@ip185225.wh.uni-hannover.de) (Quit: WeeChat 3.0) |
| 00:57:56 | × | niklasb_ quits (~niklasb@unaffiliated/codeslay0r) (Ping timeout: 240 seconds) |
| 01:00:14 | × | bogdanp quits (~bogdanp@188.24.80.165) (Ping timeout: 260 seconds) |
| 01:00:16 | → | niklasb_ joins (~niklasb@unaffiliated/codeslay0r) |
| 01:00:30 | → | teardown joins (~user@gateway/tor-sasl/mrush) |
| 01:03:23 | × | niekvandepas quits (~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 246 seconds) |
| 01:03:38 | × | carrera quits (~Carrera@109.162.211.145) (Quit: Leaving) |
| 01:03:54 | × | cafce25 quits (~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de) (Quit: leaving) |
| 01:04:03 | → | cafce25 joins (~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de) |
| 01:04:12 | × | teardown_ quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
| 01:05:18 | → | chirpsalot joins (~Chirps@pool-98-115-239-235.phlapa.fios.verizon.net) |
| 01:05:23 | → | Chobbes joins (~Chobbes@pool-98-115-239-235.phlapa.fios.verizon.net) |
| 01:07:13 | × | dftxbs3e_ quits (~dftxbs3e@unaffiliated/dftxbs3e) (Ping timeout: 260 seconds) |
| 01:07:49 | → | threestrikes joins (~haskell@cpe-24-243-229-2.hot.res.rr.com) |
| 01:09:19 | → | dftxbs3e joins (~dftxbs3e@unaffiliated/dftxbs3e) |
| 01:11:00 | × | srk quits (~sorki@gateway/tor-sasl/sorki) (Ping timeout: 268 seconds) |
| 01:11:00 | × | hexo quits (~hexo@gateway/tor-sasl/hexo) (Ping timeout: 268 seconds) |
| 01:11:23 | → | srk joins (~sorki@gateway/tor-sasl/sorki) |
| 01:11:24 | → | hexo joins (~hexo@gateway/tor-sasl/hexo) |
| 01:11:24 | × | Lycurgus quits (~niemand@cpe-45-46-139-165.buffalo.res.rr.com) (Quit: Exeunt) |
| 01:11:25 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 01:11:47 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 01:12:00 | → | conal joins (~conal@64.71.133.70) |
| 01:14:50 | JJ15_ | is now known as JJ15 |
| 01:14:52 | → | deviantfero joins (~deviantfe@190.150.27.58) |
| 01:15:31 | × | dddddd quits (~dddddd@unaffiliated/dddddd) (Ping timeout: 256 seconds) |
| 01:16:34 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds) |
| 01:20:13 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 01:20:35 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) |
| 01:21:22 | <whataday> | null of Java is like Nothing of Haskell? |
| 01:21:44 | <whataday> | what 1/0 will produce? |
| 01:22:19 | <whataday> | a failure computation? |
| 01:23:08 | <whataday> | IO could produce failure computation? |
| 01:24:12 | × | oisdk quits (~oisdk@2001:bb6:3329:d100:7037:1951:b856:5dfd) (Quit: oisdk) |
| 01:24:17 | → | rajivr joins (uid269651@gateway/web/irccloud.com/x-xfgarcdyypwphfai) |
| 01:24:22 | <koz_> | whataday: Nothing is a bit more specific than null. |
| 01:24:27 | <koz_> | 1/0 actually throws an error. |
| 01:24:38 | <koz_> | A good example of where Nothing is used: |
| 01:24:44 | <koz_> | % :t lookup |
| 01:24:44 | <yahb> | koz_: Eq a => a -> [(a, b)] -> Maybe b |
| 01:24:59 | <koz_> | So the idea is that if it gives back 'Nothing', it means 'I didn't find what you were asking for'. |
| 01:25:34 | <koz_> | Slightly off-topic perhaps, but in cabal.project, if I need a lot of 'packages' entries, how do I split them over multiple lines? |
| 01:25:44 | <koz_> | Do I do it 'line below, one per line, indented'? |
| 01:25:50 | × | m0rphism1 quits (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 264 seconds) |
| 01:25:51 | <koz_> | Or does it have to be one big line? |
| 01:25:59 | <c_wraith> | I put a newline after each comma, align the package names |
| 01:26:35 | <c_wraith> | wait, I misread what you were asking. But that's still what I'd try :) |
| 01:26:44 | <c_wraith> | (I just might be wrong about it working) |
| 01:27:14 | <koz_> | c_wraith: Those aren't normally comma-separated as far as I can tell from the cabal docs. |
| 01:27:27 | <koz_> | That's why I'm asking really. |
| 01:27:58 | <c_wraith> | you can comma-separate it, though |
| 01:27:59 | <ski> | whataday : "null of Java is like Nothing of Haskell?" -- sort of, kind of, not really |
| 01:28:24 | × | borne quits (~fritjof@2a06:8782:ffbb:1337:4776:3f69:8716:3bce) (Ping timeout: 240 seconds) |
| 01:28:29 | <koz_> | Null in Java does about ten different things. |
| 01:28:45 | <ski> | every object type in Java includes a `null' value |
| 01:28:49 | <koz_> | Including 'lets Java weenies yell at you that Java is nothing like C despite the fact that objects are pointers in the most literal sense imaginable'. |
| 01:29:01 | <ski> | only `Maybe T' (for whatever `T' you like) in Haskell includes `Nothing' |
| 01:29:06 | <koz_> | (no jokes, I've had people damn-near punch me for making such a claim despite it being 100% true) |
| 01:29:14 | <whataday> | 1/0 is a failure computation? |
| 01:29:16 | <ski> | you can't implicitly convert from `T' to `Maybe T', or vice versa |
| 01:29:21 | <whataday> | or just an errort |
| 01:29:25 | <ski> | > 1/0 |
| 01:29:27 | <lambdabot> | Infinity |
| 01:29:27 | <koz_> | whataday: It's just an error. |
| 01:29:35 | <koz_> | (or should be) |
| 01:29:37 | <c_wraith> | > 1 `div` 0 |
| 01:29:39 | <lambdabot> | *Exception: divide by zero |
| 01:29:40 | <koz_> | > (1 :: Int) / 0 |
| 01:29:42 | <lambdabot> | error: |
| 01:29:42 | <lambdabot> | • No instance for (Fractional Int) arising from a use of ‘/’ |
| 01:29:42 | <lambdabot> | • In the expression: (1 :: Int) / 0 |
| 01:29:45 | <koz_> | LOL |
| 01:29:47 | <ski> | it's floating-point infinity, if you use a floating-point type |
| 01:29:49 | <whataday> | and Nothing is a failure computation not error? |
| 01:29:51 | <ski> | > 1 / 0 :: Rational |
| 01:29:53 | <lambdabot> | *Exception: Ratio has zero denominator |
| 01:30:13 | <koz_> | whataday: Nothing specifically says 'in the context where we _expect_ we might not get an answer, a non-answer'. |
| 01:30:14 | <ski> | whataday : `Nothing' is just a value, which is often used to *represent* failure |
| 01:30:20 | <koz_> | See my example with 'lookup' above. |
| 01:30:38 | <koz_> | When we do a lookup in a dictionary, we should _expect_ the possibility that we don't find anything. |
| 01:30:49 | × | ystael quits (~ystael@209.6.50.55) (Ping timeout: 256 seconds) |
| 01:30:49 | <koz_> | Having the return be 'Maybe b' basically forces us to deal with this fact. |
| 01:31:03 | <ski> | whataday : you can think of a value of type `Maybe T' as a container that can hold at most one value of type `T'. then `Nothing' is an empty container, and `Just x' is a filled one, containing a value `x' |
| 01:31:05 | × | jackk_ quits (~jackk@205.178.111.134) (Quit: Going offline, see ya! (www.adiirc.com)) |
| 01:31:09 | <ski> | (of type `T') |
| 01:31:50 | <ski> | `Maybe' is just a regular data-type, defined in the language |
| 01:32:15 | <whataday> | in Java it may read null from socket, what Haskell read from socket? |
| 01:32:24 | <ski> | treating `Nothing' as ("anonymous") failure, and `Just x' as success is an interpretation one can put of its values |
| 01:32:54 | <koz_> | whataday: Reading from a socket in Haskell is in IO. |
| 01:33:01 | <koz_> | Which can basically do whatever it damn well feels like. |
| 01:33:34 | → | dddddd joins (~dddddd@unaffiliated/dddddd) |
| 01:33:50 | <koz_> | Also, c_wraith: It seems 'new lines, indented' was the correct answer. |
| 01:33:54 | <koz_> | TIL I guess. |
| 01:35:22 | → | natechan joins (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
| 01:35:35 | × | cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 246 seconds) |
| 01:35:44 | <whataday> | could it read null ? |
| 01:36:16 | <koz_> | There is no 'null' in Haskell, so I don't understand the question. |
| 01:36:32 | <koz_> | You can't just one-for-one translate Java into Haskell. They're different languages, with different ways of doing things. |
| 01:36:41 | <koz_> | It's like asking 'how do i object in haskal'. |
| 01:36:57 | <koz_> | The answer is 'I dunno, there's no such concept, what are you trying to do?'. |
| 01:39:31 | → | Wuzzy joins (~Wuzzy@p549c95a3.dip0.t-ipconnect.de) |
| 01:40:31 | <ski> | <https://hackage.haskell.org/package/network-3.1.2.1/docs/Network-Socket-ByteString.html#g:3> is for reading a `ByteString' (up to a given length) from a socket |
| 01:41:56 | <ski> | (there is no `null' `ByteString'. a `ByteString' can be empty (contain no/zero bytes) though, of course) |
| 01:43:11 | <ski> | whataday : because there is no `null' value inhabiting most or all types, there is no need to keep checking whether some value is `null' (and so no way to forget checking that by mistake) |
| 01:43:28 | → | YellowOnion joins (~YellowOni@222-152-181-96-fibre.sparkbb.co.nz) |
| 01:44:04 | <ski> | if you want to allow for the possibility of absence of a value, you must use `Maybe' (or perhaps some other means of indicating absense, like maybe an empty list, or whatever seems appropriate) |
| 01:44:23 | <ski> | @type M.lookup |
| 01:44:24 | <lambdabot> | Ord k => k -> M.Map k a -> Maybe a |
| 01:44:58 | <ski> | is for looking up a key in a finite map, maybe getting back a corresponding value (wrapped in `Just'), or else `Nothing', if the key wasn't found |
| 01:45:11 | <koz_> | "At the moment, it’s not possible to set with-compiler on a per-package basis, but eventually we plan on relaxing this restriction. If this is something you need, give us a shout." |
| 01:45:19 | <koz_> | Who do I need to give a shout for this to become a reality? |
| 01:45:47 | <ski> | > M.lookup 3 (M.fromList [(2,"two"),(3,"three"),(5,"five"),(7,"seven")]) |
| 01:45:49 | <lambdabot> | Just "three" |
| 01:45:54 | <ski> | > M.lookup 4 (M.fromList [(2,"two"),(3,"three"),(5,"five"),(7,"seven")]) |
| 01:45:56 | <lambdabot> | Nothing |
| 01:47:50 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 01:48:35 | → | knupfer1 joins (~Thunderbi@200116b82cf5ad00d1848027e4ca07e4.dip.versatel-1u1.de) |
| 01:49:36 | <monochrom> | Relatedly, I had a student who pressed the question "Does my function have to handle null?" in the context that the homework was to write a function that took an ADT value as input parameter. (I defined the ADT for them.) |
| 01:50:05 | × | dddddd quits (~dddddd@unaffiliated/dddddd) (Ping timeout: 256 seconds) |
| 01:50:08 | → | mirrorbird joins (~psutcliff@2a00:801:42b:aff3:74af:2f22:932d:eac0) |
| 01:50:11 | → | niekvandepas joins (~niekvande@dhcp-077-249-088-250.chello.nl) |
| 01:50:15 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 01:50:18 | × | niekvandepas quits (~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection) |
| 01:50:23 | × | knupfer quits (~Thunderbi@200116b82cb5de0034b1fc93289b63eb.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
| 01:50:23 | knupfer1 | is now known as knupfer |
| 01:50:32 | <monochrom> | So I pressed back with "WTF is this 'null' you're talking about? Is it from the standard library? Or is it your invention?" |
| 01:51:30 | <monochrom> | The student was never able to make more sense than perhaps "null pointer" (but then you know I could simply press back "WTH is 'null pointer' in Haskell?") |
| 01:51:58 | <ski> | (and you did ?) |
| 01:52:00 | → | niekvandepas joins (~niekvande@dhcp-077-249-088-250.chello.nl) |
| 01:52:04 | × | niekvandepas quits (~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection) |
| 01:52:05 | → | vappend joins (~ezrakilty@75-172-109-5.tukw.qwest.net) |
| 01:52:05 | <monochrom> | Not surprisingly, that student was a very weak student, and dropped the course very soon. |
| 01:52:36 | <monochrom> | I forgot whether they replied "null pointer" actually. If they did, then I did. |
| 01:52:39 | → | niekvandepas joins (~niekvande@dhcp-077-249-088-250.chello.nl) |
| 01:52:53 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds) |
| 01:52:56 | <hololeap> | monochrom: did you make it clear that haskell is different from what they are used to? |
| 01:53:24 | <monochrom> | But generally, weak minds are just going to assume that a notion applies to Haskell just because it applies to their favourite language. |
| 01:53:37 | × | niekvandepas quits (~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection) |
| 01:53:51 | → | niekvandepas joins (~niekvande@dhcp-077-249-088-250.chello.nl) |
| 01:53:53 | × | niekvandepas quits (~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection) |
| 01:54:23 | <koz_> | I have a view pattern like this: (DataConstructor -> helperFunctionTakingInnards -> Just x) |
| 01:54:25 | → | niekvandepas joins (~niekvande@dhcp-077-249-088-250.chello.nl) |
| 01:54:27 | <monochrom> | No. I think it's better for them to discover it themselves, under my guiding question "is it a reserved word? is it from the standard library? or is it your fiction?" |
| 01:54:47 | <koz_> | GHC insists that helperFunctionTakingInnards :: WrapperType -> Maybe Result |
| 01:54:56 | × | niekvandepas quits (~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection) |
| 01:55:07 | <koz_> | How would I write it so that it types as 'WrappedType -> Maybe Result'? |
| 01:55:26 | <ski> | use `unDataConstructor' ? |
| 01:55:29 | <koz_> | (given 'newtype WrapperType = DataConstructor WrappedType') |
| 01:55:40 | <koz_> | Oh wait, is that it? |
| 01:55:42 | <ski> | or `DataConstructor (helperFunctionTakingInnards -> Just x)' ? |
| 01:55:51 | × | Feuermagier quits (~Feuermagi@213.178.26.41) (Quit: Leaving) |
| 01:56:03 | <koz_> | Oh, excellent, thank you! |
| 01:56:13 | <koz_> | I guess my view pattern game is still a bit weak. |
| 01:56:16 | → | Feuermagier joins (~Feuermagi@213.178.26.41) |
| 01:56:18 | × | Feuermagier quits (~Feuermagi@213.178.26.41) (Remote host closed the connection) |
| 01:56:34 | → | Feuermagier joins (~Feuermagi@213.178.26.41) |
| 01:56:51 | <ski> | (fwiw, `unDataConstructor -> helperFunctionTakingInnards -> Just x' would be equal to `helperFunctionTakingInnards . unDataConstructor -> Just x') |
| 01:56:53 | × | vappend quits (~ezrakilty@75-172-109-5.tukw.qwest.net) (Ping timeout: 256 seconds) |
| 01:57:25 | <koz_> | Also, if I have two patterns, either of which is sufficient for 'coverage of all cases in a pattern match', would having two COMPLETE pragmata do what I expect? |
| 01:58:23 | <nshepperd> | your answer was for the student to prove the absence of it by exhaustively exploring compiler documentation? |
| 01:58:25 | <ski> | monochrom : being forced to scrutinize the (lack of) support for one's misconception can sure help dispell it, yea |
| 01:58:52 | <ski> | koz_ : i think so |
| 02:00:09 | <whataday> | how we escape 1/0? |
| 02:00:40 | <monochrom> | nshepperd, I also asked "show me actual code that passes 'null' to this function". |
| 02:00:41 | → | dddddd joins (~dddddd@unaffiliated/dddddd) |
| 02:00:42 | <ski> | (occasionally i realize that i've conflated two things, and i can't fathom how i could've conflated them, since as soon as i thought of both at the same time, it was obvious they were not the same thing) |
| 02:00:43 | <koz_> | whataday: What do you mean 'escape'? |
| 02:00:55 | <ski> | whataday : don't divide by zero ? |
| 02:02:35 | <monochrom> | My course web page had a link to the Haskell 2010 Report. It was fair to ask "is 'null' a reserved word?", they could look there. |
| 02:02:57 | × | chele quits (~chele@ip5b40237d.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 02:03:39 | <monochrom> | The course web page also had a link to Prelude doc. It was also fair to ask "is 'null' from the standard library", and they would found 'null' there, and also that it totally means something else. |
| 02:04:29 | <whataday> | I'm confused about error, null, failure computation |
| 02:04:41 | <nshepperd> | if you're at the level of Haskell ability where you're not sure whether null exists, not being able to come up with code that creates it is not very strong evidence |
| 02:04:51 | <monochrom> | On the question "show me actual code that makes what you call 'null'", they could also reply to me "I can't for now, but I still suspect it could be done", you know? And they didn't. |
| 02:04:51 | <whataday> | 1/0 would case an error, right? |
| 02:04:59 | <ski> | depends on the type |
| 02:05:07 | <ski> | for floating-point types, no |
| 02:05:13 | <ski> | for `Rational', yes |
| 02:05:16 | <monochrom> | nshepperd, I do guiding questions, I don't do straight answers. |
| 02:05:56 | <monochrom> | At the very least, you could say "I don't know how" and I would know how to move forward the conversation. |
| 02:06:09 | <ski> | `error' is a way to plug a hole in the program, when you don't know what to do. if your program ever gets to that point, it'll abort |
| 02:06:16 | <monochrom> | What the student did was to evade all my guiding questions. |
| 02:07:24 | <monochrom> | Also, the student was not at the level of not sure. The student was at the level of so-sure. |
| 02:07:25 | <ski> | you should normally only use `error' either when there's a bug in your program (perhaps a violated invariant or postcondition), or else when some precondition is violated (so, whoever called you has a bug) |
| 02:07:58 | → | bitmapper joins (uid464869@gateway/web/irccloud.com/x-pohbnfozrhmuhvuq) |
| 02:08:23 | × | tinwood quits (~tinwood@general.default.akavanagh.uk0.bigv.io) (Remote host closed the connection) |
| 02:09:02 | <ski> | whataday : another example of an erronous computation would be trying to take the first element (or the element at any index, say) of an empty list |
| 02:09:05 | <ski> | > head [] |
| 02:09:06 | × | Deide quits (~Deide@217.155.19.23) (Quit: Seeee yaaaa) |
| 02:09:07 | <lambdabot> | *Exception: Prelude.head: empty list |
| 02:09:32 | × | tsandstr quits (~user@cpe-74-74-192-114.rochester.res.rr.com) (Ping timeout: 272 seconds) |
| 02:09:49 | → | harshkell joins (465fa714@cpe-70-95-167-20.san.res.rr.com) |
| 02:10:41 | <ski> | whataday : what do you mean by a "failure computation" ? (where did you get the term from ?) |
| 02:10:53 | <whataday> | ski, so we check that list if it's empty before head? if it's empty we can return Nothing? |
| 02:11:20 | <whataday> | ski I forgot where I saw that term |
| 02:11:32 | <whataday> | <|>? |
| 02:11:33 | → | tinwood joins (~tinwood@general.default.akavanagh.uk0.bigv.io) |
| 02:11:40 | <whataday> | related to <|>? |
| 02:11:44 | <ski> | `head' can't return `Nothing', in case of an empty list. but your code could possibly, if you check the list before using `head' |
| 02:12:09 | <ski> | usually, it's better to not use `head' and `tail', but rather e.g. pattern-match (and then handle the empty list case explicitly) |
| 02:12:44 | <ski> | `(<|>)' is a type class method .. it's unclear whether talking about it here would be of any help |
| 02:14:41 | × | justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) (Quit: WeeChat 2.9) |
| 02:14:43 | <monochrom> | There is also a whole mile of cognitive difference between "is null a possible input?" and "what if the input is null?", as a student question. I would gladly reply "no" directly for the former. |
| 02:14:44 | <ski> | @let scaleByFirst :: Integer -> [Integer] -> Maybe [Integer]; scaleByFirst [] = Nothing; scaleByFirst (x:ys) = Just [x * y | y <- ys] |
| 02:14:44 | <hololeap> | :t listToMaybe |
| 02:14:45 | <lambdabot> | .L.hs:161:14: error: |
| 02:14:45 | <lambdabot> | • Couldn't match expected type ‘Integer’ with actual type ‘[a0]’ |
| 02:14:45 | <lambdabot> | • In the pattern: [] |
| 02:14:46 | <lambdabot> | [a] -> Maybe a |
| 02:14:54 | <hololeap> | % :t listToMaybe |
| 02:14:55 | <yahb> | hololeap: [a] -> Maybe a |
| 02:14:56 | <ski> | @let scaleByFirst :: [Integer] -> Maybe [Integer]; scaleByFirst [] = Nothing; scaleByFirst (x:ys) = Just [x * y | y <- ys] |
| 02:14:58 | <lambdabot> | Defined. |
| 02:15:06 | <ski> | > scaleByFirst [2,3,5,7] |
| 02:15:10 | <lambdabot> | Just [6,10,14] |
| 02:15:10 | <whataday> | main = (gerLine >>= print) <|> (print "interrupted ") |
| 02:15:11 | <ski> | > scaleByFirst [2] |
| 02:15:14 | <lambdabot> | Just [] |
| 02:15:15 | <ski> | > scaleByFirst [] |
| 02:15:17 | <lambdabot> | Nothing |
| 02:15:21 | <whataday> | then you press C-c |
| 02:15:22 | × | finn_elija quits (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Quit: finn_elija) |
| 02:15:25 | <monochrom> | But the latter, since you are so sure it would happen, let's see some actual code. I call you bluff. (I now remember I said that, too.) |
| 02:16:07 | → | Tario joins (~Tario@201.192.165.173) |
| 02:16:23 | <ski> | whataday : `scaleByFirst' is an example of a function that gives `Nothing', if given an empty list. otherwise, it uses the first number to multiply the remaining numbers with (wrapping the resulting list in a `Just', because otherwise the types won't fit) |
| 02:16:56 | → | gnumonic joins (~gnumonic@c-73-170-91-210.hsd1.ca.comcast.net) |
| 02:18:34 | <ski> | whataday : `main',`getLine',`print x' are all `IO'-actions (not functions). I/O (Input/Output) actions have a notion of failure (exceptions). `<|>' will in this case catch exceptions encountered during execution of its left operand, and in that case switch to executing its right operand |
| 02:18:49 | → | reaverb joins (~reaverb@071-008-105-088.res.spectrum.com) |
| 02:19:50 | <ski> | (although, `print' itself is a function. a function that takes some `Show'able value, and computes an I/O action for you .. that, when (later, maybe never) executed, will print a corresponding `String' on standard output ..) |
| 02:20:13 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 02:20:35 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) |
| 02:20:53 | × | harshkell quits (465fa714@cpe-70-95-167-20.san.res.rr.com) (Quit: Connection closed) |
| 02:21:20 | → | geyaeb_ joins (~geyaeb@gateway/tor-sasl/geyaeb) |
| 02:21:42 | <whataday> | functions can be failed computation? |
| 02:21:59 | × | stevenxl quits (uid133530@gateway/web/irccloud.com/x-smbmognhpdzvkoox) (Quit: Connection closed for inactivity) |
| 02:22:32 | × | geyaeb quits (~geyaeb@gateway/tor-sasl/geyaeb) (Ping timeout: 268 seconds) |
| 02:23:33 | <koz_> | whataday: If you're asking 'is Maybe (a -> b) a thing?', then yes absolutely. |
| 02:23:41 | <koz_> | Imagine a dictionary whose values are functions, for example. |
| 02:23:51 | <koz_> | (some might even call this an 'object' rofl) |
| 02:24:01 | <ski> | <ski> whataday : what do you mean by a "failure computation" ? (where did you get the term from ?) |
| 02:25:14 | <whataday> | as I said I forgot where I saw that, you can think that's something I made up, ok? |
| 02:25:28 | → | perdent joins (~perdent@101.175.77.209) |
| 02:25:35 | <ski> | mhm |
| 02:26:16 | <monochrom> | whataday, you're in for a shock because in Haskell, we draw a line between trying to divide by zero (I/O, aka interacting with the outside world, is not involved) and trying to open a file that the OS doesn't let you (I/O is involved, in fact the root cause of the failure). |
| 02:26:19 | <ski> | `Maybe' is one way to represent failure. but there's other things one could mean by "failure" as well, so it's not clear what "functions can be failed computation?" is asking about |
| 02:26:26 | <whataday> | anything produce an error, I call it a failure computation, ok? |
| 02:26:48 | <ski> | koz_ was talking about "maybe we get a function, or maybe that fails, and we have no function" |
| 02:27:16 | <ski> | however, perhaps you were thinking about "maybe the function produces a result, or maybe it fails to produce a result, when called on some input" |
| 02:27:29 | × | dddddd quits (~dddddd@unaffiliated/dddddd) (Ping timeout: 256 seconds) |
| 02:27:33 | <monochrom> | In fact we draw that same line between non-I/O and yes-I/O for all computations, too, and that's why we draw the same line between the two kinds of failures. |
| 02:27:34 | <whataday> | Nothing is not a failure |
| 02:27:37 | <ski> | "error" is similarly vague, as a general term |
| 02:28:33 | <ski> | `Nothing' can be used to represent failure |
| 02:28:59 | <ski> | but `Nothing' is a legitimate value. it doesn't magically cause a computation to abort |
| 02:29:30 | <ski> | see e.g. `M.lookup' from above, which uses `Nothing' to represent failure to find a corresponding value for a key, in a finite map |
| 02:30:05 | × | SevenK quits (~sevenk@64.85.149.202) (Ping timeout: 264 seconds) |
| 02:30:09 | <ski> | for your convenience : |
| 02:30:13 | <ski> | @type M.lookup |
| 02:30:15 | <lambdabot> | Ord k => k -> M.Map k a -> Maybe a |
| 02:31:58 | <ski> | (.. otoh, the function `error' is not vague, of course. it definitely causes the computation to abort, rather than produce a value for you. perhaps by "failure computation", you meant any computation that ends up calling `error', and thus aborting ?) |
| 02:33:06 | → | Sonderblade joins (~helloman@94.191.137.103.mobile.tre.se) |
| 02:33:41 | × | nineonin_ quits (~nineonine@50.216.62.2) (Ping timeout: 264 seconds) |
| 02:34:02 | × | deviantfero quits (~deviantfe@190.150.27.58) (Ping timeout: 246 seconds) |
| 02:35:07 | × | Sonderblade quits (~helloman@94.191.137.103.mobile.tre.se) (Read error: Connection reset by peer) |
| 02:35:24 | → | Sonderblade joins (~helloman@94.191.137.103.mobile.tre.se) |
| 02:35:31 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 02:36:34 | → | conal joins (~conal@64.71.133.70) |
| 02:37:41 | → | dddddd joins (~dddddd@unaffiliated/dddddd) |
| 02:38:26 | × | YellowOnion quits (~YellowOni@222-152-181-96-fibre.sparkbb.co.nz) (Read error: Connection reset by peer) |
| 02:39:20 | × | conal quits (~conal@64.71.133.70) (Client Quit) |
| 02:40:33 | × | xff0x quits (~xff0x@2001:1a81:5363:7e00:cb6f:f3:b273:90be) (Ping timeout: 260 seconds) |
| 02:41:09 | × | threestrikes quits (~haskell@cpe-24-243-229-2.hot.res.rr.com) (Quit: WeeChat 2.9) |
| 02:42:23 | → | xff0x joins (~xff0x@2001:1a81:53a3:2a00:5e6d:d66d:350c:80ac) |
| 02:44:36 | → | conal joins (~conal@64.71.133.70) |
| 02:46:16 | × | viluon quits (uid453725@gateway/web/irccloud.com/x-qwufrlkefmuaynwu) (Quit: Connection closed for inactivity) |
| 02:47:44 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 02:52:14 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 02:52:58 | × | LKoen quits (~LKoen@19.175.9.109.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”) |
| 02:54:22 | <whataday> | yes, abort computation I think it's called failure computation |
| 02:54:42 | × | catt quits (~r@31.124.181.226) (Ping timeout: 265 seconds) |
| 02:55:01 | × | alx741 quits (~alx741@181.196.68.167) (Quit: alx741) |
| 02:55:11 | × | brisbin quits (~patrick@pool-173-49-158-4.phlapa.fios.verizon.net) (Ping timeout: 265 seconds) |
| 02:55:37 | → | bogdanp joins (~bogdanp@188.24.80.165) |
| 02:58:04 | <ski> | ok |
| 02:58:14 | <ski> | @src head |
| 02:58:14 | <lambdabot> | head (x:_) = x |
| 02:58:14 | <lambdabot> | head [] = error "Prelude.head: empty list" |
| 02:58:29 | <ski> | see, `head' calls `error', in case of empty-list |
| 03:00:30 | × | bogdanp quits (~bogdanp@188.24.80.165) (Ping timeout: 265 seconds) |
| 03:00:44 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 03:00:57 | → | Tario joins (~Tario@201.192.165.173) |
| 03:02:02 | → | j3r3my joins (~jeremym@68-73-116-155.lightspeed.rlghnc.sbcglobal.net) |
| 03:02:50 | krkini | is now known as kini |
| 03:03:14 | × | jchia__ quits (~jchia@58.32.38.49) (Quit: Leaving.) |
| 03:03:41 | → | jchia__ joins (~jchia@jungle.jchia.net) |
| 03:04:31 | → | Saukk joins (~Saukk@83-148-239-3.dynamic.lounea.fi) |
| 03:05:27 | → | soft-warm joins (4408f588@ip68-8-245-136.sd.sd.cox.net) |
| 03:05:35 | × | urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna) |
| 03:07:54 | × | jchia__ quits (~jchia@jungle.jchia.net) (Remote host closed the connection) |
| 03:08:36 | → | jchia__ joins (~jchia@jungle.jchia.net) |
| 03:09:25 | × | dddddd quits (~dddddd@unaffiliated/dddddd) (Ping timeout: 256 seconds) |
| 03:10:05 | ← | vikid parts (~vikid@94.206.199.164) ("Leaving") |
| 03:10:41 | → | vikid joins (~vikid@94.206.199.164) |
| 03:11:12 | × | MidAutumnHotaru quits (~MidAutumn@unaffiliated/midautumnhotaru) (Quit: Quit 啾) |
| 03:11:50 | → | MidAutumnHotaru joins (~MidAutumn@unaffiliated/midautumnhotaru) |
| 03:12:03 | → | bogdanp joins (~bogdanp@188.24.80.165) |
| 03:16:47 | × | bogdanp quits (~bogdanp@188.24.80.165) (Ping timeout: 256 seconds) |
| 03:18:08 | × | shailangsa quits (~shailangs@host86-162-150-221.range86-162.btcentralplus.com) (Ping timeout: 246 seconds) |
| 03:19:40 | × | Feuermagier quits (~Feuermagi@213.178.26.41) (Remote host closed the connection) |
| 03:19:42 | → | dddddd joins (~dddddd@unaffiliated/dddddd) |
| 03:19:59 | → | jackk_ joins (~jackk@205.178.111.134) |
| 03:20:13 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 03:20:34 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) |
| 03:22:54 | × | jchia__ quits (~jchia@jungle.jchia.net) (Remote host closed the connection) |
| 03:23:31 | → | jchia__ joins (~jchia@58.32.38.49) |
| 03:23:43 | × | j3r3my quits (~jeremym@68-73-116-155.lightspeed.rlghnc.sbcglobal.net) (Ping timeout: 260 seconds) |
| 03:24:48 | × | soft-warm quits (4408f588@ip68-8-245-136.sd.sd.cox.net) (Quit: Connection closed) |
| 03:25:13 | × | benb quits (52456307@82-69-99-7.dsl.in-addr.zen.co.uk) (Quit: Ping timeout (120 seconds)) |
| 03:25:34 | → | plutoniix joins (~q@184.82.219.212) |
| 03:25:43 | × | plutoniix quits (~q@184.82.219.212) (Max SendQ exceeded) |
| 03:25:44 | → | nineonine joins (~nineonine@50.216.62.2) |
| 03:26:09 | → | plutoniix joins (~q@184.82.219.212) |
| 03:30:21 | → | vappend joins (~ezrakilty@75-172-109-5.tukw.qwest.net) |
| 03:31:35 | × | theDon quits (~td@muedsl-82-207-238-131.citykom.de) (Ping timeout: 256 seconds) |
| 03:31:40 | <siraben> | @src error |
| 03:31:40 | <lambdabot> | error s = throw (ErrorCall s) |
| 03:33:23 | → | theDon joins (~td@94.134.91.108) |
| 03:33:53 | → | sucre joins (bab702c7@186.183.2.199) |
| 03:34:19 | × | Wamanuz2 quits (~wamanuz@78-70-34-81-no84.tbcn.telia.com) (Quit: Konversation terminated!) |
| 03:39:19 | × | Deewiant quits (~deewiant@de1.ut.deewiant.iki.fi) (Ping timeout: 256 seconds) |
| 03:39:35 | × | cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving) |
| 03:39:37 | → | Deewiant joins (~deewiant@de1.ut.deewiant.iki.fi) |
| 03:40:36 | → | notzmv joins (~user@unaffiliated/zmv) |
| 03:42:05 | × | conal quits (~conal@64.71.133.70) (Ping timeout: 240 seconds) |
| 03:43:01 | → | conal joins (~conal@64.71.133.70) |
| 03:43:24 | ← | sucre parts (bab702c7@186.183.2.199) () |
| 03:44:54 | × | conal quits (~conal@64.71.133.70) (Client Quit) |
| 03:45:30 | → | xirhtogal joins (~lagothrix@unaffiliated/lagothrix) |
| 03:45:30 | × | lagothrix quits (~lagothrix@unaffiliated/lagothrix) (Killed (barjavel.freenode.net (Nickname regained by services))) |
| 03:45:30 | xirhtogal | is now known as lagothrix |
| 03:46:57 | → | sucre joins (bab702c7@186.183.2.199) |
| 03:48:21 | ← | sucre parts (bab702c7@186.183.2.199) () |
| 03:48:42 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 03:48:46 | → | f-a joins (~f-a@151.68.4.77) |
| 03:50:45 | → | shailangsa joins (~shailangs@host86-162-150-221.range86-162.btcentralplus.com) |
| 03:52:20 | → | deviantfero joins (~deviantfe@190.150.27.58) |
| 03:53:41 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds) |
| 03:56:01 | → | edrx joins (~Eduardo@2804:56c:d2ec:c100:b9cf:4552:2518:d38c) |
| 03:57:18 | × | zaquest quits (~notzaques@5.128.210.178) (Quit: Leaving) |
| 03:58:32 | → | bogdanp joins (~bogdanp@188.24.80.165) |
| 03:59:47 | <edrx> | hi... where can I find the reference documentation on how "where" works? I think that I stumbled on a case in which writing one of the equations (is this the right term?) as "foo bar = plic" works, but writing it as "foo = \ bar -> plic" doesn't... |
| 04:00:49 | <edrx> | I have the source for ghc here and I am running "make html" in its tree right now - so hints like "grep for bla bla blah" are fine |
| 04:01:26 | → | Stanley00 joins (~stanley00@unaffiliated/stanley00) |
| 04:01:38 | ← | f-a parts (~f-a@151.68.4.77) () |
| 04:01:58 | <ephemient> | that sounds more like MonomorphismRestriction than an issue with where |
| 04:02:10 | <edrx> | can be |
| 04:03:05 | × | bogdanp quits (~bogdanp@188.24.80.165) (Ping timeout: 264 seconds) |
| 04:03:38 | → | zaquest joins (~notzaques@5.128.210.178) |
| 04:04:16 | → | Rudd0 joins (~Rudd0@185.189.115.108) |
| 04:04:52 | <edrx> | https://wiki.haskell.org/Monomorphism_restriction |
| 04:07:03 | → | bogdanp joins (~bogdanp@188.24.80.165) |
| 04:09:45 | → | dandart joins (~Thunderbi@home.dandart.co.uk) |
| 04:11:15 | × | shinobi__ quits (~shinobi@c-24-147-48-162.hsd1.ma.comcast.net) (Read error: Connection reset by peer) |
| 04:11:15 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 04:11:39 | → | shinobi__ joins (~shinobi@c-24-147-48-162.hsd1.ma.comcast.net) |
| 04:12:15 | × | reaverb quits (~reaverb@071-008-105-088.res.spectrum.com) (Quit: Leaving) |
| 04:12:17 | × | shinobi__ quits (~shinobi@c-24-147-48-162.hsd1.ma.comcast.net) (Read error: Connection reset by peer) |
| 04:12:25 | × | fiQ2 quits (~fiQ@mirkk.ninja) (Quit: ZNC - https://znc.in) |
| 04:12:35 | → | fiQ- joins (~fiQ@mirkk.ninja) |
| 04:12:39 | × | jrm quits (~jrm@freebsd/developer/jrm) (Quit: ciao) |
| 04:12:44 | → | shinobi__ joins (~shinobi@c-24-147-48-162.hsd1.ma.comcast.net) |
| 04:12:58 | → | jrm joins (~jrm@freebsd/developer/jrm) |
| 04:13:54 | × | bogdanp quits (~bogdanp@188.24.80.165) (Ping timeout: 260 seconds) |
| 04:14:53 | <koz_> | :t ($>) |
| 04:14:54 | <lambdabot> | error: |
| 04:14:54 | <lambdabot> | • Variable not in scope: $> |
| 04:14:54 | <lambdabot> | • Perhaps you meant one of these: |
| 04:14:59 | <koz_> | :t (<$) |
| 04:15:00 | <lambdabot> | Functor f => a -> f b -> f a |
| 04:15:11 | <koz_> | > 1 <$ Nothing |
| 04:15:13 | <lambdabot> | Nothing |
| 04:15:17 | <koz_> | :D |
| 04:16:21 | → | HiRE_ joins (~HiRE@104.128.237.40) |
| 04:16:22 | <jle`> | @let import Data.Functor |
| 04:16:23 | <lambdabot> | Defined. |
| 04:16:28 | <jle`> | :t ($>) |
| 04:16:29 | <lambdabot> | Functor f => f a -> b -> f b |
| 04:16:43 | × | elliott_ quits (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 272 seconds) |
| 04:19:44 | × | HiRE quits (~HiRE@104.128.237.40) (Ping timeout: 260 seconds) |
| 04:20:13 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 04:20:18 | → | elliott_ joins (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) |
| 04:20:32 | × | pjb quits (~t@2a01cb04063ec500dc318125de0674a0.ipv6.abo.wanadoo.fr) (Remote host closed the connection) |
| 04:20:35 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) |
| 04:21:22 | <koz_> | @pl \x -> guard (x == Foo) $> Bar (x + 3) |
| 04:21:22 | <lambdabot> | ap (($>) . guard . (Foo ==)) (Bar . (3 +)) |
| 04:21:40 | <koz_> | Shockingly it could be more APLy. |
| 04:22:00 | <koz_> | (($>) . guard . (Foo ==)) <$> (Bar . (3 +)) |
| 04:22:07 | <koz_> | (and then all your colleagues want to murder you) |
| 04:23:13 | → | pjb joins (~t@2a01cb04063ec50061b948e81b7ea004.ipv6.abo.wanadoo.fr) |
| 04:26:09 | × | howdoi quits (uid224@gateway/web/irccloud.com/x-atttjcsneckauiyy) (Quit: Connection closed for inactivity) |
| 04:29:36 | × | quinn quits (~quinn@c-73-223-224-163.hsd1.ca.comcast.net) (Quit: ZNC 1.8.1 - https://znc.in) |
| 04:30:44 | × | polyphem quits (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Ping timeout: 240 seconds) |
| 04:31:25 | × | dandart quits (~Thunderbi@home.dandart.co.uk) (Ping timeout: 240 seconds) |
| 04:33:44 | × | vappend quits (~ezrakilty@75-172-109-5.tukw.qwest.net) (Ping timeout: 260 seconds) |
| 04:34:58 | → | dandart joins (~Thunderbi@home.dandart.co.uk) |
| 04:35:37 | × | Aquazi quits (uid312403@gateway/web/irccloud.com/x-okhfxjstomyzycod) (Quit: Connection closed for inactivity) |
| 04:36:26 | → | elliott__ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) |
| 04:37:39 | → | soft-warm joins (4408f588@ip68-8-245-136.sd.sd.cox.net) |
| 04:38:47 | → | syd joins (~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net) |
| 04:43:40 | → | vicfred joins (vicfred@gateway/vpn/mullvad/vicfred) |
| 04:45:15 | × | Sheilong quits (uid293653@gateway/web/irccloud.com/x-hmlvzlbwqsspjwdw) () |
| 04:45:48 | × | Wuzzy quits (~Wuzzy@p549c95a3.dip0.t-ipconnect.de) (Quit: Wuzzy) |
| 04:47:10 | → | shoojii joins (99f23802@p699003-ipoe.ipoe.ocn.ne.jp) |
| 04:48:03 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 04:48:41 | × | dandart quits (~Thunderbi@home.dandart.co.uk) (Ping timeout: 264 seconds) |
| 04:49:40 | × | knupfer quits (~Thunderbi@200116b82cf5ad00d1848027e4ca07e4.dip.versatel-1u1.de) (Remote host closed the connection) |
| 04:49:52 | → | knupfer joins (~Thunderbi@200116b82cf5ad00396a310140ae67fd.dip.versatel-1u1.de) |
| 04:50:39 | → | catt joins (~r@31.124.181.226) |
| 04:51:33 | → | Glyde_ joins (~glyde@90.221.74.173) |
| 04:52:08 | → | jamm joins (~jamm@unaffiliated/jamm) |
| 04:52:24 | × | glyde quits (~glyde@90.221.74.173) (Ping timeout: 260 seconds) |
| 04:52:59 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 04:54:02 | ← | rowbee parts (~augh@theguntretort.com) ("WeeChat 3.0") |
| 04:58:14 | × | xacktm quits (xacktm@gateway/shell/panicbnc/x-jvtlirfmskjbwohd) (Ping timeout: 264 seconds) |
| 04:59:45 | × | soft-warm quits (4408f588@ip68-8-245-136.sd.sd.cox.net) (Ping timeout: 248 seconds) |
| 05:00:02 | × | Klumben quits (Nsaiswatch@gateway/shell/panicbnc/x-fomxhgfovyvqanep) (Ping timeout: 264 seconds) |
| 05:00:12 | × | SolarAquarion quits (SolarAquar@gateway/shell/panicbnc/x-vaxxzctuxkewousu) (Ping timeout: 258 seconds) |
| 05:00:40 | × | Saukk quits (~Saukk@83-148-239-3.dynamic.lounea.fi) (Remote host closed the connection) |
| 05:01:45 | × | shinobi__ quits (~shinobi@c-24-147-48-162.hsd1.ma.comcast.net) (Read error: Connection reset by peer) |
| 05:02:10 | → | shinobi__ joins (~shinobi@c-24-147-48-162.hsd1.ma.comcast.net) |
| 05:02:47 | × | shinobi__ quits (~shinobi@c-24-147-48-162.hsd1.ma.comcast.net) (Read error: Connection reset by peer) |
| 05:03:14 | → | shinobi__ joins (~shinobi@c-24-147-48-162.hsd1.ma.comcast.net) |
| 05:04:38 | → | bogdanp joins (~bogdanp@188.24.80.165) |
| 05:06:06 | → | vappend joins (~ezrakilty@75-172-109-5.tukw.qwest.net) |
| 05:06:06 | × | ep1ctetus quits (~epictetus@ip184-187-162-163.sb.sd.cox.net) (Read error: Connection reset by peer) |
| 05:06:14 | → | ep1ctetus joins (~epictetus@ip184-187-162-163.sb.sd.cox.net) |
| 05:09:33 | × | bogdanp quits (~bogdanp@188.24.80.165) (Ping timeout: 265 seconds) |
| 05:10:29 | × | vappend quits (~ezrakilty@75-172-109-5.tukw.qwest.net) (Ping timeout: 260 seconds) |
| 05:13:12 | × | sakirious quits (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) (Quit: Ping timeout (120 seconds)) |
| 05:13:31 | → | sakirious joins (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) |
| 05:16:56 | <zebrag> | `data FreeA f a where Return :: a -> FreeA f a; (:$:) :: forall b . f (b -> a) -> FreeA f b -> FreeA f a` "not in scope f" |
| 05:17:18 | <zebrag> | It must be some kind of syntax error, but I cant find which |
| 05:17:30 | <zebrag> | {-# LANGUAGE GADTs, RankNTypes, DeriveFunctor #-} |
| 05:17:46 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 05:18:00 | <\2E0KNO> | i hope you find an answer mate |
| 05:18:18 | <\2E0KNO> | tell me what its doing in peices? |
| 05:20:05 | → | epicte7us joins (~epictetus@ip184-187-162-163.sb.sd.cox.net) |
| 05:20:13 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 05:20:16 | <glguy> | data FreeA f a where Return :: a -> FreeA f a; (:$:) :: f (b -> a) -> FreeA f b -> FreeA f a |
| 05:20:34 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) |
| 05:20:38 | <\2E0KNO> | lol |
| 05:20:43 | <glguy> | or: data FreeA f a where Return :: a -> FreeA f a; (:$:) :: forall f a b. f (b -> a) -> FreeA f b -> FreeA f a |
| 05:21:53 | <glguy> | Keep in mind in "data FreeA f a where" those f and a are NOT in scope in the constructors |
| 05:22:08 | <glguy> | the GADT syntax is a bit garbage , and the fix is to turn on KindSignatures |
| 05:22:20 | <zebrag> | (reading) |
| 05:22:33 | <glguy> | data FreeA :: (* -> *) -> * -> * where Return :: a -> FreeA f a; (:$:) :: f (b -> a) -> FreeA f b -> FreeA f a |
| 05:22:38 | × | ep1ctetus quits (~epictetus@ip184-187-162-163.sb.sd.cox.net) (Ping timeout: 256 seconds) |
| 05:25:33 | <zebrag> | glguy: isn't the `a` in the scope of the constructor there? https://en.wikibooks.org/wiki/Haskell/GADT#GADTs |
| 05:26:21 | <glguy> | data FreeA un related where Return :: a -> FreeA f a; (:$:) :: f (b -> a) -> FreeA f b -> FreeA f a |
| 05:27:09 | <zebrag> | (weird) |
| 05:27:35 | <zebrag> | Where can I find information about that? |
| 05:27:48 | <zebrag> | I wouldn't even know how to describe it |
| 05:28:46 | <glguy> | There's this https://downloads.haskell.org/ghc/latest/docs/html/users_guide/glasgow_exts.html#generalised-algebraic-data-types-gadts |
| 05:29:15 | → | rdivyanshu joins (uid322626@gateway/web/irccloud.com/x-loxocsvrmbkkjpqg) |
| 05:33:47 | <zebrag> | glguy: in the following expression, `a` is available, but not `f`?! `data FreeA f a where Return :: a -> FreeA f a; (:$:) :: forall b. f (b -> a) -> FreeA f b -> FreeA f a` |
| 05:34:07 | <zebrag> | if `f` is not available, why then is `a`? |
| 05:34:13 | <glguy> | which a? |
| 05:34:31 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 05:34:37 | <zebrag> | `Return :: a -> FreeA f a` |
| 05:34:57 | <zebrag> | it doesn't say `not in scope ` for this one |
| 05:35:13 | <zebrag> | and even `f` is available in that place |
| 05:35:15 | <glguy> | because you didn't write 'forall' on that constructor |
| 05:35:31 | <zebrag> | ok, dort of |
| 05:35:36 | <zebrag> | sort* |
| 05:35:44 | <glguy> | it's like a normal type signature as if you'd written: mymap :: (a -> b) -> [a] -> [b] |
| 05:35:46 | × | JJ15 quits (~JJ@2a00:23a8:4382:a900:3dfb:7375:916f:d8c3) (Read error: Connection reset by peer) |
| 05:36:04 | <zebrag> | right |
| 05:36:46 | <zebrag> | I think I understand |
| 05:37:07 | winny | is now known as wInNy |
| 05:37:10 | <glguy> | but once you toss a 'forall' in then you have to actually introduce all your variables |
| 05:37:13 | <glguy> | no more free lunch |
| 05:37:25 | <glguy> | (:$:) :: forall f a b. f (b -> a) -> FreeA f b -> FreeA f a |
| 05:37:34 | <glguy> | gotta mention f and a there if you're going to mention forall b |
| 05:37:40 | × | jamm quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 05:38:01 | × | elliott__ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Quit: WeeChat 3.0) |
| 05:38:30 | → | raym joins (~ray@45.64.220.55) |
| 05:38:58 | <zebrag> | What about "Notice that GADT-style syntax generalises existential type" (https://downloads.haskell.org/~ghc/7.4.2/docs/html/users_guide/data-type-extensions.html) |
| 05:38:59 | <monochrom> | I don't think you're supposed to use forall for existential purposes in GADTs. |
| 05:39:36 | → | elliott__ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) |
| 05:40:23 | <monochrom> | Yes, notice that there is no "forall" in the examples. |
| 05:40:51 | → | ixaxaar joins (~ixaxaar@49.207.210.215) |
| 05:40:51 | <monochrom> | Unless you're fixated on "data Foo = forall a. MkFoo a (a -> Bool)" which is neither GADTs nor GADT-syntax. |
| 05:41:12 | <monochrom> | Also why are you looking at version 7.4.2? |
| 05:41:56 | <zebrag> | (not really looking a 7.4, it's google fault) |
| 05:42:54 | <zebrag> | error: parse error on input ‘{’ |
| 05:43:25 | <zebrag> | `{ (:$:) :: f (b -> a) -> FreeA f b -> FreeA f b }` |
| 05:43:50 | <zebrag> | `data FreeA f a where { (:$:) :: f (b -> a) -> FreeA f b -> FreeA f b }` |
| 05:43:52 | <monochrom> | % data FreeA f a where Return :: a -> FreeA f a; (:$:) :: f (b -> a) -> FreeA f b -> FreeA f a |
| 05:43:52 | <yahb> | monochrom: |
| 05:43:59 | <monochrom> | worksforyahb |
| 05:44:40 | <zebrag> | monochrom: thanks |
| 05:44:49 | <zebrag> | I missed that permutation |
| 05:45:37 | → | nineonin_ joins (~nineonine@50.216.62.2) |
| 05:46:11 | × | nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 246 seconds) |
| 05:46:11 | <monochrom> | s/permutation/deletion/ |
| 05:46:24 | <zebrag> | ;) |
| 05:46:32 | <monochrom> | Like glguy, I simply deleted "forall b." from your code. |
| 05:47:27 | <zebrag> | yeah, but there were `data FreeA :: (* -> *) -> * -> * where`, so I missed the deletion point |
| 05:47:30 | → | conal joins (~conal@209.58.139.237) |
| 05:47:49 | <zebrag> | Probably missed plenty of other things |
| 05:48:21 | <zebrag> | glguy: much appreciated |
| 05:49:35 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 05:50:43 | <zebrag> | (I can now go back to why free applicatives in the first place) |
| 05:51:58 | ← | edrx parts (~Eduardo@2804:56c:d2ec:c100:b9cf:4552:2518:d38c) ("Killed buffer") |
| 05:53:04 | → | dnlkrgr joins (~dnlkrgr@HSI-KBW-046-005-005-235.hsi8.kabel-badenwuerttemberg.de) |
| 05:54:14 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds) |
| 05:58:25 | × | vikid quits (~vikid@94.206.199.164) (Remote host closed the connection) |
| 05:59:29 | × | elliott__ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 264 seconds) |
| 06:00:01 | × | shoojii quits (99f23802@p699003-ipoe.ipoe.ocn.ne.jp) (Ping timeout: 248 seconds) |
| 06:02:00 | → | seneca joins (~epictetus@ip184-187-162-163.sb.sd.cox.net) |
| 06:03:32 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 06:03:55 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 06:04:04 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) |
| 06:05:05 | × | epicte7us quits (~epictetus@ip184-187-162-163.sb.sd.cox.net) (Ping timeout: 246 seconds) |
| 06:07:17 | × | nineonin_ quits (~nineonine@50.216.62.2) (Ping timeout: 264 seconds) |
| 06:08:22 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) (Remote host closed the connection) |
| 06:10:24 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) |
| 06:12:09 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 06:14:38 | × | conal quits (~conal@209.58.139.237) (Ping timeout: 260 seconds) |
| 06:15:09 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) (Ping timeout: 272 seconds) |
| 06:19:36 | → | conal joins (~conal@209.58.139.237) |
| 06:22:54 | × | catt quits (~r@31.124.181.226) (Remote host closed the connection) |
| 06:26:14 | × | mirrorbird quits (~psutcliff@2a00:801:42b:aff3:74af:2f22:932d:eac0) (Quit: Leaving) |
| 06:27:32 | × | conal quits (~conal@209.58.139.237) (Remote host closed the connection) |
| 06:28:30 | × | Beetstra quits (~Beetstra@185.244.214.217) () |
| 06:30:38 | × | syd quits (~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net) (Ping timeout: 246 seconds) |
| 06:30:39 | → | conal joins (~conal@209.58.139.237) |
| 06:31:52 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 06:36:49 | × | mrchampion quits (~mrchampio@38.18.109.23) (Remote host closed the connection) |
| 06:37:36 | → | bogdanp joins (~bogdanp@188.24.80.165) |
| 06:37:50 | × | plutoniix quits (~q@184.82.219.212) (Read error: Connection reset by peer) |
| 06:39:32 | → | waskell_ joins (~quassel@d66-183-230-153.bchsia.telus.net) |
| 06:41:50 | × | bogdanp quits (~bogdanp@188.24.80.165) (Ping timeout: 246 seconds) |
| 06:43:46 | × | waskell quits (~quassel@d172-218-41-115.bchsia.telus.net) (Ping timeout: 272 seconds) |
| 06:45:08 | → | syd joins (~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net) |
| 06:46:45 | × | seneca quits (~epictetus@ip184-187-162-163.sb.sd.cox.net) (Read error: Connection reset by peer) |
| 06:48:20 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 06:51:16 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) |
| 06:52:59 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
| 06:54:11 | → | vappend joins (~ezrakilty@75-172-109-5.tukw.qwest.net) |
| 06:55:19 | → | bogdanp joins (~bogdanp@188.24.80.165) |
| 06:56:29 | × | banjiewen__ quits (sid115913@gateway/web/irccloud.com/x-wejejmvcskdsoppk) (Ping timeout: 264 seconds) |
| 06:56:29 | × | dwt quits (~dwt@c-98-200-58-177.hsd1.tx.comcast.net) (Ping timeout: 264 seconds) |
| 06:56:32 | × | bcmiller quits (~bm3719@66.42.95.185) (Ping timeout: 246 seconds) |
| 06:56:53 | × | fissureman_ quits (~quassel@c-73-163-84-25.hsd1.dc.comcast.net) (Ping timeout: 246 seconds) |
| 06:57:05 | × | orhan89 quits (~orhan89@151.91.188.35.bc.googleusercontent.com) (Ping timeout: 264 seconds) |
| 06:57:06 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) (Remote host closed the connection) |
| 06:57:19 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) |
| 06:57:23 | → | banjiewen__ joins (sid115913@gateway/web/irccloud.com/x-dghcdnstvrjlfegj) |
| 06:58:26 | → | fissureman joins (~quassel@c-73-163-84-25.hsd1.dc.comcast.net) |
| 06:58:41 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) (Remote host closed the connection) |
| 06:58:56 | → | orhan89 joins (~orhan89@151.91.188.35.bc.googleusercontent.com) |
| 06:58:59 | × | vappend quits (~ezrakilty@75-172-109-5.tukw.qwest.net) (Ping timeout: 260 seconds) |
| 07:00:01 | → | dwt joins (~dwt@c-98-200-58-177.hsd1.tx.comcast.net) |
| 07:00:01 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) |
| 07:00:14 | × | bogdanp quits (~bogdanp@188.24.80.165) (Ping timeout: 265 seconds) |
| 07:01:38 | → | bcmiller joins (~bm3719@66.42.95.185) |
| 07:02:15 | → | plutoniix joins (~q@184.82.219.212) |
| 07:04:48 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) (Ping timeout: 260 seconds) |
| 07:08:28 | → | coot joins (~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl) |
| 07:11:48 | × | dnlkrgr quits (~dnlkrgr@HSI-KBW-046-005-005-235.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 260 seconds) |
| 07:13:00 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 07:15:10 | → | rayyyy joins (~nanoz@gateway/tor-sasl/nanoz) |
| 07:15:30 | → | cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
| 07:15:56 | <dminuoso> | @tell geeokosaur Mmm. Fair enough, I guess the consistency makes somewhat sense, I was just surprise because I didn't see this documented anywhere. And it's mildly annoying that cabal appears to look in a super directory for a cabal.project, which means I cant just zoom into a vendored package and modify its constraints freely. |
| 07:15:56 | <lambdabot> | Consider it noted. |
| 07:18:45 | × | Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
| 07:19:00 | → | Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net) |
| 07:21:01 | × | machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 265 seconds) |
| 07:22:01 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 07:24:29 | × | Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
| 07:25:40 | → | Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net) |
| 07:28:07 | → | tsaka__ joins (~torstein@athedsl-258913.home.otenet.gr) |
| 07:29:26 | × | hiroaki quits (~hiroaki@ip4d167562.dynamic.kabel-deutschland.de) (Ping timeout: 246 seconds) |
| 07:29:32 | → | jamm joins (~jamm@unaffiliated/jamm) |
| 07:29:34 | → | cfricke joins (cfricke@gateway/vpn/mullvad/cfricke) |
| 07:30:14 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 07:30:38 | × | knupfer quits (~Thunderbi@200116b82cf5ad00396a310140ae67fd.dip.versatel-1u1.de) (Remote host closed the connection) |
| 07:30:46 | → | knupfer joins (~Thunderbi@200116b82cf5ad00ed5db529763d9f59.dip.versatel-1u1.de) |
| 07:31:59 | → | _ht joins (~quassel@82-169-194-8.biz.kpn.net) |
| 07:32:20 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 07:32:40 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 07:34:14 | × | jamm quits (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds) |
| 07:34:41 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
| 07:37:44 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) |
| 07:38:37 | × | gaussian quits (uid482612@gateway/web/irccloud.com/x-zrgzbdjjyrntrmry) (Quit: Connection closed for inactivity) |
| 07:42:59 | × | Deewiant quits (~deewiant@de1.ut.deewiant.iki.fi) (Ping timeout: 256 seconds) |
| 07:43:23 | → | Deewiant joins (~deewiant@de1.ut.deewiant.iki.fi) |
| 07:44:16 | × | Rudd0 quits (~Rudd0@185.189.115.108) (Ping timeout: 240 seconds) |
| 07:46:44 | → | paolo|out joins (~paolo|out@s91904426.blix.com) |
| 07:46:48 | <ij> | is there some code to insert into list without changing the sort order? |
| 07:47:07 | <koz_> | ij: Like a sorted insert? |
| 07:47:30 | <dminuoso> | What does "changing the sort order" mean to you? |
| 07:47:33 | <koz_> | Do you have duplicates or something? |
| 07:48:33 | <ij> | I have very few new elements and my solver is constantly sorting next choices according to how good they are |
| 07:48:56 | → | forgottenone joins (~forgotten@176.42.20.27) |
| 07:49:39 | <ij> | dminuoso, so that (sort $ more ++ existing) would be the same as insertSorted more existing |
| 07:50:24 | <Uniaika> | ij: like an ordered set? |
| 07:50:34 | <ij> | dminuoso, how should I call it? |
| 07:50:41 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 07:50:49 | <koz_> | I was also going to ask why you're not using Set. |
| 07:50:59 | <koz_> | Hence my 'do you have possible duplicates' question. |
| 07:51:35 | <ij> | I'm not quite sure what that has to do with duplicates, though I do have some |
| 07:52:05 | <koz_> | ij: Set is automagically sorted for you, and allows rapid removal of smallest/largest items. |
| 07:52:15 | <koz_> | However, if you have 2 identical things, they'll coalesce into 1 thing. |
| 07:52:39 | × | conal quits (~conal@209.58.139.237) (Ping timeout: 260 seconds) |
| 07:54:14 | <ij> | I looked and I didn't find deleteFindMin the previous time |
| 07:55:25 | <ij> | I could supply my own Ord and Eq then and might be able to get rid of duplicates |
| 07:55:53 | × | tsaka__ quits (~torstein@athedsl-258913.home.otenet.gr) (Ping timeout: 264 seconds) |
| 07:55:58 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 272 seconds) |
| 07:56:01 | → | ADG1089__ joins (~aditya@223.226.145.125) |
| 07:56:38 | <koz_> | General rule: if you don't care about duplicates and need sorted insertion/finding/deletion, Set is probably the _first_ place to look. |
| 07:56:45 | <koz_> | (possibly Map as well depending on your data) |
| 07:56:51 | <ij> | I did have Set, but I didn't see Min/Max, somehow |
| 07:57:24 | <koz_> | Another general rule: containers, unordered-containers and vector hide _many_ treasures amid their APIs. :D |
| 07:57:32 | <ij> | one question: how much memory, comparatively, should it cost to insert another element into a Set of size N? |
| 07:57:37 | <ij> | koz_, :) |
| 07:57:49 | <ij> | I even wrote my own Set pop >_< |
| 07:58:03 | <koz_> | ij: Set is a red-black tree underneath, so it's logarithmic copying. |
| 07:58:21 | <koz_> | (well, it's the _immutable_ red-black tree I should say) |
| 07:58:23 | <ij> | log_2? |
| 07:58:26 | <koz_> | Yes. |
| 07:58:37 | <ij> | that shouldn't be that bad |
| 07:58:41 | <koz_> | (up to constant factors) |
| 07:58:49 | <koz_> | It's about as good as it gets in the general case for immutable structures. |
| 07:59:01 | <koz_> | (you can do better sometimes under specific conditions, but not generally as a rule) |
| 07:59:09 | <ij> | yeah, sounds pretty good |
| 07:59:22 | <xsperry> | ij, see S.elemAt. min should be first, and max last element |
| 08:00:21 | → | mananamenos joins (~mananamen@84.122.202.215.dyn.user.ono.com) |
| 08:01:20 | × | mananamenos quits (~mananamen@84.122.202.215.dyn.user.ono.com) (Client Quit) |
| 08:03:35 | × | plutoniix quits (~q@184.82.219.212) (Read error: Connection reset by peer) |
| 08:04:29 | → | plutoniix joins (~q@184.82.219.212) |
| 08:07:01 | <ij> | thankfully choice between duplicates (of same score) doesn't seem to change the iteration count |
| 08:07:08 | → | conal joins (~conal@209.58.139.237) |
| 08:07:45 | <ij> | I'm just really surprising that putting minimal element as first, leaving rest unsorted didn't work out |
| 08:12:42 | → | bogdanp joins (~bogdanp@188.24.80.165) |
| 08:14:33 | → | p7lpa1ugixavugu joins (~atomic@host160.186-111-133.telecom.net.ar) |
| 08:14:49 | × | p7lpa1ugixavugu quits (~atomic@host160.186-111-133.telecom.net.ar) (Client Quit) |
| 08:18:17 | × | Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
| 08:18:29 | → | Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net) |
| 08:19:44 | → | pera joins (~pera@unaffiliated/pera) |
| 08:22:33 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 08:22:33 | × | Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
| 08:23:23 | → | Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net) |
| 08:26:16 | → | Graf_Blutwurst joins (~grafblutw@2001:171b:226e:adc0:ccb1:a006:be48:6a3e) |
| 08:27:14 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds) |
| 08:27:24 | → | m0rphism1 joins (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) |
| 08:29:15 | → | Franciman joins (~francesco@host-95-235-155-82.retail.telecomitalia.it) |
| 08:29:58 | → | jamm joins (~jamm@unaffiliated/jamm) |
| 08:31:47 | → | dhouthoo joins (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) |
| 08:39:49 | × | cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 244 seconds) |
| 08:41:00 | → | kritzefitz joins (~kritzefit@fw-front.credativ.com) |
| 08:41:05 | × | rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Remote host closed the connection) |
| 08:44:45 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
| 08:47:22 | × | coot quits (~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 08:47:28 | × | petersen quits (~petersen@redhat/juhp) (Ping timeout: 246 seconds) |
| 08:47:59 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 08:49:00 | → | niekvandepas joins (~niekvande@dhcp-077-249-088-250.chello.nl) |
| 08:49:59 | <ij> | but inserting without changing the order might still be even simpler |
| 08:50:13 | → | borne joins (~fritjof@2a06:8782:ffbb:1337:4776:3f69:8716:3bce) |
| 08:50:18 | <ij> | I will always have only < 3 elements being inserted |
| 08:52:52 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 08:53:11 | → | frozenErebus joins (~frozenEre@94.128.80.70) |
| 08:53:28 | × | niekvandepas quits (~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 264 seconds) |
| 08:54:26 | × | borne quits (~fritjof@2a06:8782:ffbb:1337:4776:3f69:8716:3bce) (Ping timeout: 240 seconds) |
| 08:55:50 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) (Ping timeout: 264 seconds) |
| 09:00:04 | × | bogdanp quits (~bogdanp@188.24.80.165) (Ping timeout: 264 seconds) |
| 09:00:07 | × | agentofuser quits (agentofuse@gateway/shell/matrix.org/x-ggyzyeajezksfxkt) (Quit: Idle for 30+ days) |
| 09:01:14 | × | ADG1089__ quits (~aditya@223.226.145.125) (Remote host closed the connection) |
| 09:01:16 | × | jamm quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 09:01:49 | → | borne joins (~fritjof@2a06:8782:ffbb:1337:4776:3f69:8716:3bce) |
| 09:01:52 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 09:03:49 | × | Sgeo quits (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer) |
| 09:05:01 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 09:06:43 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
| 09:07:31 | → | bogdanp joins (~bogdanp@188.24.80.165) |
| 09:09:57 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
| 09:11:16 | × | pera quits (~pera@unaffiliated/pera) (Ping timeout: 246 seconds) |
| 09:12:40 | × | bogdanp quits (~bogdanp@188.24.80.165) (Ping timeout: 264 seconds) |
| 09:12:52 | → | chele joins (~chele@91.64.35.125) |
| 09:15:58 | → | Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
| 09:16:07 | → | _linker_ joins (~linker@2a02:a31a:a045:3500:edc4:9fc5:d992:6c7e) |
| 09:17:09 | → | niekvandepas joins (~niekvande@dhcp-077-249-088-250.chello.nl) |
| 09:17:14 | → | Tario joins (~Tario@201.192.165.173) |
| 09:17:24 | <ij> | well, there's https://hackage.haskell.org/package/sorted-list-0.2.1.0/docs/Data-SortedList.html |
| 09:17:24 | → | bogdanp joins (~bogdanp@188.24.80.165) |
| 09:18:54 | <ij> | but the again, maybe Set will be a better choice |
| 09:18:57 | × | xff0x quits (~xff0x@2001:1a81:53a3:2a00:5e6d:d66d:350c:80ac) (Ping timeout: 260 seconds) |
| 09:19:29 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 09:19:33 | → | xff0x joins (~xff0x@2001:1a81:53a3:2a00:42d:e27b:531:11da) |
| 09:21:28 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 09:21:30 | × | Tario quits (~Tario@201.192.165.173) (Ping timeout: 246 seconds) |
| 09:24:18 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds) |
| 09:24:21 | × | niekvandepas quits (~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection) |
| 09:24:37 | → | niekvandepas joins (~niekvande@dhcp-077-249-088-250.chello.nl) |
| 09:25:17 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 09:25:48 | → | pera joins (~pera@unaffiliated/pera) |
| 09:26:35 | → | hastronauta joins (~hastronau@ip-103-85-38-61.syd.xi.com.au) |
| 09:27:47 | → | livvy joins (~livvy@gateway/tor-sasl/livvy) |
| 09:27:56 | × | frozenErebus quits (~frozenEre@94.128.80.70) (Ping timeout: 240 seconds) |
| 09:30:01 | × | livvy quits (~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection) |
| 09:30:12 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
| 09:31:36 | → | ubert joins (~Thunderbi@p200300ecdf25d943ca5b76fffe29f233.dip0.t-ipconnect.de) |
| 09:32:27 | → | coot joins (~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl) |
| 09:35:08 | → | __monty__ joins (~toonn@unaffiliated/toonn) |
| 09:36:16 | → | jamm joins (~jamm@unaffiliated/jamm) |
| 09:37:29 | × | hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-cbzowztxbjyvafew) (Quit: Connection closed for inactivity) |
| 09:37:55 | <hastronauta> | hi folks, I am trying to understand the comparison between 2 functions to sort a list (in a naive way) but I don't understand what the author of the book I'm reading means with "recursive function calls on the conditional part of guards" |
| 09:38:38 | <hastronauta> | the function that is worse in regards of performance is the one using this recursive function calls on the conditional part of guards |
| 09:38:59 | <hastronauta> | but to me, it seems that the best approach isn't that different |
| 09:39:25 | <hastronauta> | isn't the otherwise part of guards, also conditional part of guards? |
| 09:40:38 | <idnar> | is there a way to be able to access a Map through two different keys |
| 09:41:42 | → | livvy joins (~livvy@gateway/tor-sasl/livvy) |
| 09:42:53 | × | Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
| 09:43:03 | → | Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net) |
| 09:44:42 | <idnar> | (well, something like a Map) |
| 09:44:42 | × | Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
| 09:45:06 | <maerwald> | @hackage ixset-typed |
| 09:45:06 | <lambdabot> | https://hackage.haskell.org/package/ixset-typed |
| 09:45:08 | × | ph88 quits (~ph88@2a02:8109:9e00:7e5c:1d75:c689:b002:7cb) (Ping timeout: 260 seconds) |
| 09:45:55 | × | denisse quits (~spaceCat@gateway/tor-sasl/alephzer0) (Ping timeout: 268 seconds) |
| 09:46:04 | → | denisse_ joins (~spaceCat@gateway/tor-sasl/alephzer0) |
| 09:46:34 | <merijn> | hastronauta: tbh, I don't understand that description/question without a code example |
| 09:46:46 | <merijn> | idnar: "have two maps"? :p |
| 09:46:59 | × | borne quits (~fritjof@2a06:8782:ffbb:1337:4776:3f69:8716:3bce) (Ping timeout: 244 seconds) |
| 09:47:33 | → | Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net) |
| 09:47:44 | <idnar> | maerwald: oooh thanks |
| 09:48:02 | × | jamm quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 09:48:23 | × | rdivyanshu quits (uid322626@gateway/web/irccloud.com/x-loxocsvrmbkkjpqg) (Quit: Connection closed for inactivity) |
| 09:49:43 | <idnar> | merijn: how do I synchronize them? to clarify, I need update as well as ordered fold |
| 09:51:48 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 09:52:14 | × | Guest32940 quits (~textual@2603-7000-3040-0000-f8ed-9f7e-bb1f-615b.res6.spectrum.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 09:54:15 | → | vikid joins (~vikid@bba428846.alshamil.net.ae) |
| 09:55:19 | <merijn> | idnar: I meant, like, having a newtype/datatype that just has two maps inside and exposes a unified API that access either and updates them simultaneously |
| 09:55:37 | <merijn> | although I don't really know what you wanna use this for |
| 09:56:18 | <maerwald> | with ixset-typed you can have as many indices as you want |
| 09:56:28 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds) |
| 09:56:39 | <maerwald> | but at that point, you might want to consider a database |
| 09:57:10 | <merijn> | Yeah, any type I looked at ixset it just seemed "SQLite, but bad" :p |
| 09:57:53 | <merijn> | I think people like using it with acid-state, but I can't recommend that since I discovered the "acid" in it's name is more...aspirational, rather than an indication of robustness >.> |
| 09:58:19 | <maerwald> | ixset-typed is definitely used in production |
| 09:58:32 | → | niekvand_ joins (~niekvande@89.205.132.51) |
| 09:58:40 | <merijn> | I mean, that's not really any indication of quality |
| 09:58:52 | <merijn> | I've worked as a sysadmin, I've *seen* the shit people deploy to production |
| 09:59:13 | <maerwald> | it works ok |
| 09:59:38 | <maerwald> | but I'd not recommend it for large datasets |
| 10:00:01 | <maerwald> | the re-indexing is sometimes inefficient afair |
| 10:00:02 | → | Alleria joins (~textual@2603-7000-3040-0000-f8ed-9f7e-bb1f-615b.res6.spectrum.com) |
| 10:00:26 | Alleria | is now known as Guest21252 |
| 10:00:31 | <maerwald> | and you don't have the same safety guarantees as with real sql |
| 10:00:49 | <idnar> | currently I'm using Data.Map with the index I'm updating by, then toList + sort to access, but since I only use the top 10 elems this is fairly wasteful |
| 10:00:58 | → | Rudd0 joins (~Rudd0@185.189.115.103) |
| 10:01:25 | <merijn> | idnar: Sounds like a usecase for sqlite :p |
| 10:01:26 | × | niekvandepas quits (~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 240 seconds) |
| 10:01:46 | <merijn> | Then again, I'm increasingly convinced that a solid 80% of problems sound like a usecase of sqlite |
| 10:02:55 | <idnar> | I don't think the latency of SQLite will be acceptable |
| 10:03:08 | <merijn> | What latency do you need? |
| 10:03:22 | → | tsaka__ joins (~torstein@athedsl-258913.home.otenet.gr) |
| 10:03:45 | <merijn> | I'm confused why you'd think "toList + sort" would be better for latency than SQLite |
| 10:04:04 | <merijn> | Unless your dataset is tiny, in which case there's no reason to switch anyway |
| 10:04:04 | → | danza joins (~francesco@151.53.68.90) |
| 10:04:50 | × | Guest21252 quits (~textual@2603-7000-3040-0000-f8ed-9f7e-bb1f-615b.res6.spectrum.com) (Ping timeout: 264 seconds) |
| 10:05:37 | <idnar> | it's thousands of elements, probably |
| 10:05:46 | <maerwald> | that's tiny |
| 10:05:52 | <idnar> | yup |
| 10:06:14 | <merijn> | And even then I'm skeptical about performance problems with SQLite |
| 10:06:22 | <hastronauta> | merijn I just pushed the two sort functions that I'm talking about to my gist: https://gist.github.com/adolfoweloy/8f73f5ebd42363bb3e9a9f6b418ba979 |
| 10:06:32 | <idnar> | it'll also mean forcing a lot of unforced thunks |
| 10:07:14 | <maerwald> | give ixset-typed a try, there's also a fork with some improvements: https://github.com/capital-match/ixset-typed |
| 10:07:56 | → | hekkaidekapus_ joins (~tchouri@gateway/tor-sasl/hekkaidekapus) |
| 10:10:34 | × | hekkaidekapus quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds) |
| 10:11:19 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Quit: jpds) |
| 10:13:18 | → | ph88 joins (~ph88@2a02:8109:9e00:7e5c:1d75:c689:b002:7cb) |
| 10:13:31 | <hastronauta> | sorry merijn I just figured it out. The first and worse piece of code recursivelly calls the same function actually within the condition expression and these expressions will be always evaluated. That's why the first approach is a bad strategy |
| 10:14:29 | <__monty__> | hastronauta: The only bad part is remove_smaller. There's barely any difference otherwise. |
| 10:14:51 | <__monty__> | This looks to me like pretty terrible code to illustrate anything tbh. |
| 10:15:36 | × | tsaka__ quits (~torstein@athedsl-258913.home.otenet.gr) (Ping timeout: 240 seconds) |
| 10:15:44 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 10:15:52 | × | nehsou^ quits (nehsou@ip98-184-89-2.mc.at.cox.net) () |
| 10:17:25 | <hastronauta> | __monty__ the function smaller also calls itself while evaluating the guard `| a < (smaller c)` |
| 10:17:56 | <hastronauta> | when operating on n elements, for each condition evaluated I will have more n recursive calls |
| 10:18:26 | <hastronauta> | so smaller as a whole would have an average amount of calls as (n*(n-1))/2 |
| 10:18:50 | × | MarcelineVQ quits (~anja@198.254.199.42) (Read error: Connection reset by peer) |
| 10:18:54 | <hastronauta> | on the second strategy, as I don't have recursive calls on the conditions, it reduces the complexity to O(N) |
| 10:19:26 | → | Lord_of_Life_ joins (~Lord@unaffiliated/lord-of-life/x-0885362) |
| 10:19:32 | → | MarcelineVQ joins (~anja@198.254.199.42) |
| 10:19:56 | → | dandart joins (~Thunderbi@home.dandart.co.uk) |
| 10:20:14 | <hastronauta> | also you are right about the example. It's actually a contrived example but the idea of the author is just to show operations on lists. There will be a chapter with proper implementation of sort algorithms (mergesort, quicksort to name a few) |
| 10:21:16 | × | Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 240 seconds) |
| 10:21:16 | Lord_of_Life_ | is now known as Lord_of_Life |
| 10:21:52 | <maerwald> | I'd be surprised if the quicksort example is correct |
| 10:22:16 | → | thc202 joins (~thc202@unaffiliated/thc202) |
| 10:24:13 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 10:24:52 | → | ph88^ joins (~ph88@ip5f5af71a.dynamic.kabel-deutschland.de) |
| 10:26:44 | → | gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh) |
| 10:27:55 | <__monty__> | hastronauta: Ok, you're right for the *worst* case. But only because it's written without sharing. `let smal = smaller c in if a < small = a else small` wouldn't be quadratic. So it doesn't really have anything to do with function calls in the guards imo. |
| 10:27:59 | → | fendor joins (~fendor@178.165.131.27.wireless.dyn.drei.com) |
| 10:28:52 | × | perdent quits (~perdent@101.175.77.209) (Ping timeout: 264 seconds) |
| 10:29:02 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds) |
| 10:29:07 | × | ph88 quits (~ph88@2a02:8109:9e00:7e5c:1d75:c689:b002:7cb) (Ping timeout: 272 seconds) |
| 10:32:33 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 256 seconds) |
| 10:33:02 | → | son0p joins (~son0p@181.58.39.182) |
| 10:33:32 | × | livvy quits (~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection) |
| 10:39:56 | × | xff0x quits (~xff0x@2001:1a81:53a3:2a00:42d:e27b:531:11da) (Ping timeout: 240 seconds) |
| 10:41:46 | → | xff0x joins (xff0x@gateway/vpn/mullvad/xff0x) |
| 10:42:15 | → | tsrt^ joins (tsrt@ip98-184-89-2.mc.at.cox.net) |
| 10:43:52 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 10:44:41 | → | livvy joins (~livvy@gateway/tor-sasl/livvy) |
| 10:47:04 | × | xff0x quits (xff0x@gateway/vpn/mullvad/xff0x) (Ping timeout: 260 seconds) |
| 10:47:19 | → | Alleria__ joins (~textual@mskresolve-a.mskcc.org) |
| 10:48:02 | × | dandart quits (~Thunderbi@home.dandart.co.uk) (Quit: dandart) |
| 10:48:57 | → | xff0x joins (~xff0x@2001:1a81:53a3:2a00:42d:e27b:531:11da) |
| 10:49:23 | × | Widget quits (~widget@2a04:ee41:6:7207:540b:3b8:842a:e218) (Ping timeout: 272 seconds) |
| 10:51:27 | × | livvy quits (~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection) |
| 10:55:14 | × | xff0x quits (~xff0x@2001:1a81:53a3:2a00:42d:e27b:531:11da) (Quit: xff0x) |
| 10:55:15 | → | borne joins (~fritjof@2001:638:708:30da:bf60:e341:502c:8f25) |
| 10:56:40 | → | LKoen joins (~LKoen@19.175.9.109.rev.sfr.net) |
| 10:57:14 | → | frozenErebus joins (~frozenEre@94.128.80.70) |
| 10:57:58 | → | livvy joins (~livvy@gateway/tor-sasl/livvy) |
| 10:58:14 | × | Codaraxis_ quits (Codaraxis@gateway/vpn/mullvad/codaraxis) (Read error: Connection reset by peer) |
| 10:58:22 | → | Codaraxis__ joins (Codaraxis@gateway/vpn/mullvad/codaraxis) |
| 10:59:37 | → | kuribas joins (~user@ptr-25vy0i7k6wy863qxr1f.18120a2.ip6.access.telenet.be) |
| 11:03:24 | → | AakashYadav joins (67f0ee02@103.240.238.2) |
| 11:04:52 | × | AakashYadav quits (67f0ee02@103.240.238.2) (Client Quit) |
| 11:05:05 | × | Stanley00 quits (~stanley00@unaffiliated/stanley00) () |
| 11:05:14 | → | AakashYadav joins (67f0ee02@103.240.238.2) |
| 11:06:42 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) |
| 11:07:10 | → | Widget joins (~widget@2a04:ee41:6:7207:2113:b8a0:61a4:72c7) |
| 11:07:53 | × | AakashYadav quits (67f0ee02@103.240.238.2) (Client Quit) |
| 11:08:35 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 11:09:55 | → | turion joins (~turion@2a02:810d:8abf:c4a8:51be:4205:5174:1cd0) |
| 11:13:27 | × | Mr_Cue quits (~Mr._Cue@pengyuzhou.com) (Remote host closed the connection) |
| 11:13:36 | → | Mr_Cue joins (~Mr._Cue@pengyuzhou.com) |
| 11:19:41 | × | berberman[T] quits (berberma4@gateway/shell/matrix.org/x-wboyhejwnhmrrzsk) (Quit: Bridge terminating on SIGTERM) |
| 11:19:41 | × | fgaz quits (fgazmatrix@gateway/shell/matrix.org/x-erioxuklbyevzyfa) (Quit: Bridge terminating on SIGTERM) |
| 11:19:41 | × | domenkozar[m] quits (domenkozar@NixOS/user/domenkozar) (Quit: Bridge terminating on SIGTERM) |
| 11:19:41 | × | Ericson2314 quits (ericson231@gateway/shell/matrix.org/x-qqjbagbwnixhuagj) (Quit: Bridge terminating on SIGTERM) |
| 11:19:41 | × | sajith[m] quits (sajithmatr@gateway/shell/matrix.org/x-tzagtgtauouklmud) (Quit: Bridge terminating on SIGTERM) |
| 11:19:41 | × | maralorn quits (maralornma@gateway/shell/matrix.org/x-ccwyimxyipipxott) (Quit: Bridge terminating on SIGTERM) |
| 11:19:41 | × | johnnyboy[m] quits (gifumatrix@gateway/shell/matrix.org/x-ppaxyyarqdmborcj) (Quit: Bridge terminating on SIGTERM) |
| 11:19:41 | × | psamim quits (samimpmatr@gateway/shell/matrix.org/x-hmcuinycqtxqonvf) (Quit: Bridge terminating on SIGTERM) |
| 11:19:42 | × | SlackIntegration quits (slackbotma@gateway/shell/matrix.org/x-ibsgyezzjxunhilp) (Quit: Bridge terminating on SIGTERM) |
| 11:19:42 | × | sm[m] quits (simonmicma@gateway/shell/matrix.org/x-cruwxmqhnqtnfubj) (Quit: Bridge terminating on SIGTERM) |
| 11:19:42 | × | psydruid quits (psydruidma@gateway/shell/matrix.org/x-fxgmtntgcwdkuqcz) (Quit: Bridge terminating on SIGTERM) |
| 11:19:42 | × | rednaZ[m] quits (r3dnazmatr@gateway/shell/matrix.org/x-poqwudtpjwrggild) (Quit: Bridge terminating on SIGTERM) |
| 11:19:42 | × | jtojnar quits (jtojnarmat@gateway/shell/matrix.org/x-vyzjwthzutoaikeu) (Quit: Bridge terminating on SIGTERM) |
| 11:19:42 | × | Hatsue[m] quits (berbermanm@gateway/shell/matrix.org/x-ectisystfrreelxj) (Quit: Bridge terminating on SIGTERM) |
| 11:19:42 | × | lambdaclan quits (lambdaclan@gateway/shell/matrix.org/x-tjjalgckilcqtkmd) (Quit: Bridge terminating on SIGTERM) |
| 11:19:42 | × | srid quits (sridmatrix@gateway/shell/matrix.org/x-inhuutdnxqdpopdo) (Quit: Bridge terminating on SIGTERM) |
| 11:19:42 | × | jesser[m] quits (jessermatr@gateway/shell/matrix.org/x-srqnhhbvqfdsyemz) (Quit: Bridge terminating on SIGTERM) |
| 11:19:42 | × | noIOBeforeBedtim quits (dissatisfi@gateway/shell/matrix.org/x-lnslivqcvcehdsfj) (Quit: Bridge terminating on SIGTERM) |
| 11:19:42 | × | siraben quits (sirabenmat@gateway/shell/matrix.org/x-vshhzbemomocaeeu) (Quit: Bridge terminating on SIGTERM) |
| 11:19:42 | × | metamod[m] quits (metamodmat@gateway/shell/matrix.org/x-sxmfwvmmnwryhory) (Quit: Bridge terminating on SIGTERM) |
| 11:19:42 | × | ThaEwat quits (thaewraptm@gateway/shell/matrix.org/x-gbznnmkcjmqvxbxy) (Quit: Bridge terminating on SIGTERM) |
| 11:19:43 | × | immae quits (immaematri@gateway/shell/matrix.org/x-dkrlbqbvjibkkbju) (Quit: Bridge terminating on SIGTERM) |
| 11:19:43 | × | kadoban quits (kadobanmat@gateway/shell/matrix.org/x-bezqkfeaojhralis) (Quit: Bridge terminating on SIGTERM) |
| 11:19:43 | × | PotatoHatsue quits (berbermanp@gateway/shell/matrix.org/x-dnpxuvpjeaoflzep) (Quit: Bridge terminating on SIGTERM) |
| 11:19:43 | × | unclechu quits (unclechuma@gateway/shell/matrix.org/x-omzmjwbzkozodzzi) (Quit: Bridge terminating on SIGTERM) |
| 11:19:43 | × | lnxw37d4 quits (lnxw37d4ma@gateway/shell/matrix.org/x-ayuqsvefripndnee) (Quit: Bridge terminating on SIGTERM) |
| 11:19:43 | × | michaelpj quits (michaelpjm@gateway/shell/matrix.org/x-nwhnsnsuwqaixwkn) (Quit: Bridge terminating on SIGTERM) |
| 11:19:44 | × | DamienCassou quits (damiencass@gateway/shell/matrix.org/x-qtejztrrfkbzhyxa) (Quit: Bridge terminating on SIGTERM) |
| 11:19:44 | × | bitonic quits (bitonicmat@gateway/shell/matrix.org/x-izldntyefnqmmayg) (Quit: Bridge terminating on SIGTERM) |
| 11:19:44 | × | bsima[m] quits (bensimatim@gateway/shell/matrix.org/x-fzaguuzoesdluffp) (Quit: Bridge terminating on SIGTERM) |
| 11:19:45 | × | VarikValefor[m] quits (varikvalef@gateway/shell/matrix.org/x-ctmjkdnzgqsjtani) (Quit: Bridge terminating on SIGTERM) |
| 11:19:45 | × | lierdakil[m] quits (lierdakilm@gateway/shell/matrix.org/x-eeuxsijgzkfksifa) (Quit: Bridge terminating on SIGTERM) |
| 11:19:45 | × | shutendoji[m] quits (shutendoji@gateway/shell/matrix.org/x-nrvdlftgadvhjfvm) (Quit: Bridge terminating on SIGTERM) |
| 11:19:46 | × | rab24ack[m] quits (rab24ackma@gateway/shell/matrix.org/x-wcltiphggarhrfns) (Quit: Bridge terminating on SIGTERM) |
| 11:19:46 | × | svc0[m] quits (svc0matrix@gateway/shell/matrix.org/x-askcybmyzohsngft) (Quit: Bridge terminating on SIGTERM) |
| 11:19:46 | × | Noughtmare[m] quits (naughtmare@gateway/shell/matrix.org/x-nafwkykzttetzvfv) (Quit: Bridge terminating on SIGTERM) |
| 11:19:47 | × | ManofLetters[m] quits (manoflette@gateway/shell/matrix.org/x-yinlcqowagvydijh) (Quit: Bridge terminating on SIGTERM) |
| 11:19:47 | × | alexfmpe quits (alexfmpema@gateway/shell/matrix.org/x-zesrxqjkddyfeatl) (Quit: Bridge terminating on SIGTERM) |
| 11:19:47 | × | sawmon-and-natal quits (sawmon-and@gateway/shell/matrix.org/x-dndrhkihzbqovlmw) (Quit: Bridge terminating on SIGTERM) |
| 11:19:47 | × | tomsen[m] quits (tfbiomatri@gateway/shell/matrix.org/x-luejkvdbwddoecid) (Quit: Bridge terminating on SIGTERM) |
| 11:19:47 | × | itai33[m] quits (itai33matr@gateway/shell/matrix.org/x-qumypgvhpxfpeofl) (Quit: Bridge terminating on SIGTERM) |
| 11:19:47 | × | ichor[m] quits (hakonmatri@gateway/shell/matrix.org/x-xrkebsocverrqdpa) (Quit: Bridge terminating on SIGTERM) |
| 11:19:47 | × | meckse[m] quits (mecksematr@gateway/shell/matrix.org/x-ywskaitxgtetdrma) (Quit: Bridge terminating on SIGTERM) |
| 11:19:47 | × | joshualit140[m] quits (joshualit1@gateway/shell/matrix.org/x-bxgihovyyteqkrke) (Quit: Bridge terminating on SIGTERM) |
| 11:19:48 | × | jamesfielder[m] quits (jamesfield@gateway/shell/matrix.org/x-oqksgxbgfcqxxzsx) (Quit: Bridge terminating on SIGTERM) |
| 11:19:48 | × | ciderpunx[m] quits (ciderpunxm@gateway/shell/matrix.org/x-iwhlrvomzhfrmvun) (Quit: Bridge terminating on SIGTERM) |
| 11:19:48 | × | Vanilla[m] quits (danielm14@gateway/shell/matrix.org/x-iclzzboaitsvqoij) (Quit: Bridge terminating on SIGTERM) |
| 11:19:48 | × | peterstorm[m] quits (peterstorm@gateway/shell/matrix.org/x-ehcczugpqfhgrcec) (Quit: Bridge terminating on SIGTERM) |
| 11:19:48 | × | pedrorubster[m] quits (pedrorubst@gateway/shell/matrix.org/x-umdxltgranshpsvy) (Quit: Bridge terminating on SIGTERM) |
| 11:19:48 | × | sigmacool[m] quits (sigmacoolm@gateway/shell/matrix.org/x-cdzslubatisxyxll) (Quit: Bridge terminating on SIGTERM) |
| 11:19:48 | × | MrMuffles[m] quits (mrmufflesm@gateway/shell/matrix.org/x-cffceolgaibiqsjv) (Quit: Bridge terminating on SIGTERM) |
| 11:19:49 | × | pythag76[m] quits (pythag76ma@gateway/shell/matrix.org/x-nqoqwjpmazlcibsv) (Quit: Bridge terminating on SIGTERM) |
| 11:19:49 | × | materialfuture[m quits (materialfu@gateway/shell/matrix.org/x-btgqgvtxrhzyyhhq) (Quit: Bridge terminating on SIGTERM) |
| 11:19:49 | × | Lurkki[m]1 quits (lurkkifene@gateway/shell/matrix.org/x-adyiczqhehhbgzyo) (Quit: Bridge terminating on SIGTERM) |
| 11:19:50 | × | Wraul[m] quits (wraulmatri@gateway/shell/matrix.org/x-hvxhhucngddotwlw) (Quit: Bridge terminating on SIGTERM) |
| 11:19:51 | × | Poscat[m] quits (poscatmatr@gateway/shell/matrix.org/x-wkwjcgotvlsdgkxc) (Quit: Bridge terminating on SIGTERM) |
| 11:19:52 | × | plumenator[m] quits (plumenator@gateway/shell/matrix.org/x-wddgljrrirfsqanf) (Quit: Bridge terminating on SIGTERM) |
| 11:19:52 | × | pqwy[m] quits (pqwymatrix@gateway/shell/matrix.org/x-lzlhtwhlfzajbeaz) (Quit: Bridge terminating on SIGTERM) |
| 11:19:52 | × | Lurkki[m] quits (lurkkipriv@gateway/shell/matrix.org/x-sisndylvdaopfdec) (Quit: Bridge terminating on SIGTERM) |
| 11:19:52 | × | phittacus quits (bklmatrixo@gateway/shell/matrix.org/x-hhimzwizefxkoire) (Quit: Bridge terminating on SIGTERM) |
| 11:19:52 | × | freeman42x[m] quits (freeman42x@gateway/shell/matrix.org/x-rpnozwbuibjuytqu) (Quit: Bridge terminating on SIGTERM) |
| 11:19:53 | × | xosdy[m]1 quits (xosdyaleth@gateway/shell/matrix.org/x-ovojdgglgmvnarni) (Quit: Bridge terminating on SIGTERM) |
| 11:19:55 | × | hsiktas[m] quits (hsiktasmat@gateway/shell/matrix.org/x-wieotahuivyfales) (Quit: Bridge terminating on SIGTERM) |
| 11:19:55 | × | cnmne[m] quits (cnmnematri@gateway/shell/matrix.org/x-qvxmprftwpuespcw) (Quit: Bridge terminating on SIGTERM) |
| 11:19:55 | × | tomferon[m] quits (tomferonmo@gateway/shell/matrix.org/x-pakzypimmvvdmzsu) (Quit: Bridge terminating on SIGTERM) |
| 11:19:55 | × | doct0rhu[m] quits (doct0rhumo@gateway/shell/matrix.org/x-qgqckihwphobyqnp) (Quit: Bridge terminating on SIGTERM) |
| 11:19:56 | × | AmitLevy[m] quits (amitmostly@gateway/shell/matrix.org/x-leuuyxhgckvvgiry) (Quit: Bridge terminating on SIGTERM) |
| 11:19:56 | × | falling-edge[m] quits (falling-ed@gateway/shell/matrix.org/x-wwccpmkdjdbnhgdw) (Quit: Bridge terminating on SIGTERM) |
| 11:20:14 | × | boistordu quits (boistordum@gateway/shell/matrix.org/x-zrckddvacurpkhaf) (Quit: Bridge terminating on SIGTERM) |
| 11:20:14 | × | alvinsj[m] quits (alvinsjmat@gateway/shell/matrix.org/x-enkqzdniyvtgfppk) (Quit: Bridge terminating on SIGTERM) |
| 11:20:14 | × | jeffcasavant[m] quits (jeffcasava@gateway/shell/matrix.org/x-clfilslbehuictox) (Quit: Bridge terminating on SIGTERM) |
| 11:20:14 | × | dyniec[m] quits (dyniecmatr@gateway/shell/matrix.org/x-pleykzjzkzayglon) (Quit: Bridge terminating on SIGTERM) |
| 11:20:14 | × | Hanma[m] quits (hanmamatri@gateway/shell/matrix.org/x-oawexhhctjfbiwqz) (Quit: Bridge terminating on SIGTERM) |
| 11:20:15 | × | jkaye[m] quits (jkayematri@gateway/shell/matrix.org/x-bgmgpmnisxsypztt) (Quit: Bridge terminating on SIGTERM) |
| 11:20:15 | × | speakerspivakeem quits (speakerdea@gateway/shell/matrix.org/x-toxtysqenwxqnkty) (Quit: Bridge terminating on SIGTERM) |
| 11:20:15 | × | bram[m]1 quits (bramvdbnet@gateway/shell/matrix.org/x-ivgrjcqhxwxhnknr) (Quit: Bridge terminating on SIGTERM) |
| 11:21:49 | × | conal quits (~conal@209.58.139.237) (Ping timeout: 245 seconds) |
| 11:21:55 | → | mly[m] joins (mlydisenco@gateway/shell/matrix.org/x-mebwepyglgvvpmzb) |
| 11:21:56 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) (Ping timeout: 265 seconds) |
| 11:25:12 | × | livvy quits (~livvy@gateway/tor-sasl/livvy) (Ping timeout: 268 seconds) |
| 11:25:26 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 11:26:53 | → | bitmagie joins (~Thunderbi@200116b806facd00d0d7127d7911c11a.dip.versatel-1u1.de) |
| 11:27:04 | → | DavidEichmann joins (~david@234.109.45.217.dyn.plus.net) |
| 11:27:36 | → | conal joins (~conal@209.58.139.237) |
| 11:29:01 | → | niekvandepas joins (~niekvande@dhcp-077-249-088-250.chello.nl) |
| 11:29:01 | × | niekvand_ quits (~niekvande@89.205.132.51) (Read error: Connection reset by peer) |
| 11:29:40 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
| 11:30:08 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
| 11:30:49 | × | hastronauta quits (~hastronau@ip-103-85-38-61.syd.xi.com.au) (Ping timeout: 258 seconds) |
| 11:30:53 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 11:30:56 | → | xff0x joins (~xff0x@2001:1a81:53a3:2a00:11b1:198b:f2c6:97cd) |
| 11:31:10 | → | joshualit140[m] joins (joshualit1@gateway/shell/matrix.org/x-rvnsgfgpwjtkzpgq) |
| 11:32:24 | × | DTZUZU quits (~DTZUZU@205.ip-149-56-132.net) (Read error: Connection reset by peer) |
| 11:32:30 | → | DTZUZU_ joins (~DTZUZU@205.ip-149-56-132.net) |
| 11:33:16 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds) |
| 11:36:11 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
| 11:36:38 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 11:36:57 | → | hastronauta joins (~hastronau@ip-103-85-38-61.syd.xi.com.au) |
| 11:37:01 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 11:41:56 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 11:42:28 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 11:45:23 | × | bogdanp quits (~bogdanp@188.24.80.165) (Ping timeout: 258 seconds) |
| 11:46:35 | → | Aquazi joins (uid312403@gateway/web/irccloud.com/x-pdeauzqtzbyjklyl) |
| 11:47:28 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds) |
| 11:48:32 | → | jamm joins (~jamm@unaffiliated/jamm) |
| 11:52:12 | → | mouseghost joins (~draco@wikipedia/desperek) |
| 11:52:20 | → | lnxw37d4 joins (lnxw37d4ma@gateway/shell/matrix.org/x-svydbisbbanoiqnb) |
| 11:52:20 | → | srid joins (sridmatrix@gateway/shell/matrix.org/x-wybkacjomlvhmhep) |
| 11:52:20 | → | Noughtmare[m] joins (naughtmare@gateway/shell/matrix.org/x-grnqieitxhaltrhd) |
| 11:52:20 | → | pqwy[m] joins (pqwymatrix@gateway/shell/matrix.org/x-mhknjrvluwjnndnv) |
| 11:52:20 | → | rednaZ[m] joins (r3dnazmatr@gateway/shell/matrix.org/x-xxoijqgskmviruli) |
| 11:52:20 | → | Ericson2314 joins (ericson231@gateway/shell/matrix.org/x-xthspoakrpftlnep) |
| 11:52:20 | → | freeman42x[m] joins (freeman42x@gateway/shell/matrix.org/x-jwjegsrnkpqjuedy) |
| 11:52:20 | → | Hatsue[m] joins (berbermanm@gateway/shell/matrix.org/x-egksqudvykogopex) |
| 11:52:20 | → | johnnyboy[m] joins (gifumatrix@gateway/shell/matrix.org/x-cgvmuuzunazrkwqa) |
| 11:52:21 | → | PotatoHatsue joins (berbermanp@gateway/shell/matrix.org/x-fxplenydhghvqfud) |
| 11:52:21 | → | alvinsj[m] joins (alvinsjmat@gateway/shell/matrix.org/x-scbhmacnhtaahjvl) |
| 11:52:21 | → | dyniec[m] joins (dyniecmatr@gateway/shell/matrix.org/x-imzjrhaeqamvjnpm) |
| 11:52:21 | → | domenkozar[m] joins (domenkozar@NixOS/user/domenkozar) |
| 11:52:21 | → | berberman[T] joins (berberma4@gateway/shell/matrix.org/x-kykkodkydikhaoso) |
| 11:52:21 | → | DamienCassou joins (damiencass@gateway/shell/matrix.org/x-hgyskvlfmnnbjqqg) |
| 11:52:21 | → | bitonic joins (bitonicmat@gateway/shell/matrix.org/x-gycivwdjxapldsrb) |
| 11:52:21 | → | xosdy[m] joins (xosdyaleth@gateway/shell/matrix.org/x-slrtkdsrssunucrv) |
| 11:52:21 | → | psamim joins (samimpmatr@gateway/shell/matrix.org/x-toflizfrhzgrrvgo) |
| 11:52:21 | → | rab24ack[m] joins (rab24ackma@gateway/shell/matrix.org/x-ltlugmpozzsdocqy) |
| 11:52:21 | → | jkaye[m] joins (jkayematri@gateway/shell/matrix.org/x-xhnltlzoccoukkax) |
| 11:52:21 | → | shutendoji[m] joins (shutendoji@gateway/shell/matrix.org/x-zdconxksxigpjvlq) |
| 11:52:21 | → | falling-edge[m] joins (falling-ed@gateway/shell/matrix.org/x-bmqfekqfidosfzkb) |
| 11:52:22 | → | fgaz joins (fgazmatrix@gateway/shell/matrix.org/x-lwklqfukjicenddd) |
| 11:52:22 | → | kadoban joins (kadobanmat@gateway/shell/matrix.org/x-xxiahydccaxwjydt) |
| 11:52:22 | → | plumenator[m] joins (plumenator@gateway/shell/matrix.org/x-mprhlxtouacwgnfj) |
| 11:52:22 | → | SlackIntegration joins (slackbotma@gateway/shell/matrix.org/x-blvfwjgjibanjfug) |
| 11:52:22 | → | lierdakil[m] joins (lierdakilm@gateway/shell/matrix.org/x-wxkqeectrhaxulep) |
| 11:52:22 | → | boistordu joins (boistordum@gateway/shell/matrix.org/x-fvliptsrotihqqii) |
| 11:52:22 | → | psydruid joins (psydruidma@gateway/shell/matrix.org/x-pvrfkocvnvsjhcpf) |
| 11:52:22 | → | metamod[m] joins (metamodmat@gateway/shell/matrix.org/x-jlrazuivzgxfhjsz) |
| 11:52:22 | → | alexfmpe joins (alexfmpema@gateway/shell/matrix.org/x-ptykqhwmxrxjxtso) |
| 11:52:22 | → | Lurkki[m] joins (lurkkipriv@gateway/shell/matrix.org/x-gmmphzgcuicxkmso) |
| 11:52:22 | → | lambdaclan joins (lambdaclan@gateway/shell/matrix.org/x-qqxzhumcgwqvmtom) |
| 11:52:22 | → | sm[m] joins (simonmicma@gateway/shell/matrix.org/x-fdjebgfbtxmweyff) |
| 11:52:22 | → | jtojnar joins (jtojnarmat@gateway/shell/matrix.org/x-axagyhlilqixfxpn) |
| 11:52:22 | → | Poscat[m] joins (poscatmatr@gateway/shell/matrix.org/x-brhkoifvfpycykgg) |
| 11:52:22 | → | ThaEwat joins (thaewraptm@gateway/shell/matrix.org/x-pkuhbjyzjismlmbf) |
| 11:52:22 | → | tomferon[m] joins (tomferonmo@gateway/shell/matrix.org/x-gtfkedtbnyxjujpm) |
| 11:52:22 | → | jesser[m] joins (jessermatr@gateway/shell/matrix.org/x-smvyzlrgvurabfeg) |
| 11:52:23 | → | siraben joins (sirabenmat@gateway/shell/matrix.org/x-cionylmbkjxcauue) |
| 11:52:23 | → | pythag76[m] joins (pythag76ma@gateway/shell/matrix.org/x-twqotglipymwxtge) |
| 11:52:23 | → | doct0rhu[m] joins (doct0rhumo@gateway/shell/matrix.org/x-gqhrzgusqtdmolib) |
| 11:52:23 | → | jeffcasavant[m] joins (jeffcasava@gateway/shell/matrix.org/x-adgeihqhlrrfgtvn) |
| 11:52:23 | → | Hanma[m] joins (hanmamatri@gateway/shell/matrix.org/x-lkesxilepgwfnbtc) |
| 11:52:23 | → | tomsen[m] joins (tfbiomatri@gateway/shell/matrix.org/x-nnhgmibleesprsdo) |
| 11:52:23 | → | hsiktas[m] joins (hsiktasmat@gateway/shell/matrix.org/x-rsetqhyodtnutfmu) |
| 11:52:23 | → | noIOBeforeBedtim joins (dissatisfi@gateway/shell/matrix.org/x-xnujhcnzeqxwkxsl) |
| 11:52:23 | → | sajith[m] joins (sajithmatr@gateway/shell/matrix.org/x-snjgycuexgykrnsk) |
| 11:52:24 | → | immae joins (immaematri@gateway/shell/matrix.org/x-wkunwohucmwdkpfx) |
| 11:52:24 | → | ichor[m] joins (hakonmatri@gateway/shell/matrix.org/x-dxkvjuoidfoxqcgp) |
| 11:52:24 | → | michaelpj joins (michaelpjm@gateway/shell/matrix.org/x-caqdqtdktwyfnezj) |
| 11:52:24 | → | svc0[m] joins (svc0matrix@gateway/shell/matrix.org/x-caompvataepmaobl) |
| 11:52:24 | → | unclechu joins (unclechuma@gateway/shell/matrix.org/x-xumekjrwbrxbusqa) |
| 11:52:24 | → | VarikValefor[m] joins (varikvalef@gateway/shell/matrix.org/x-lrmbrmwxobqiwzne) |
| 11:52:24 | → | maralorn joins (maralornma@gateway/shell/matrix.org/x-dwcdnhqdavrlyqse) |
| 11:52:24 | → | cnmne[m] joins (cnmnematri@gateway/shell/matrix.org/x-vbfrtiykiqwuxvdo) |
| 11:52:26 | → | MrMuffles[m] joins (mrmufflesm@gateway/shell/matrix.org/x-tywvsihrwcwllwjt) |
| 11:52:26 | → | Wraul[m] joins (wraulmatri@gateway/shell/matrix.org/x-bwwvgdnfglqthamt) |
| 11:52:26 | → | ciderpunx[m] joins (ciderpunxm@gateway/shell/matrix.org/x-kusesqbejmfxgbyz) |
| 11:52:27 | → | ManofLetters[m] joins (manoflette@gateway/shell/matrix.org/x-jymnpfjxdpvmnsgv) |
| 11:52:27 | → | sawmon-and-natal joins (sawmon-and@gateway/shell/matrix.org/x-cscjypogcezlgmfd) |
| 11:52:27 | → | sigmacool[m] joins (sigmacoolm@gateway/shell/matrix.org/x-xyicnfygipeqcibh) |
| 11:52:27 | → | itai33[m] joins (itai33matr@gateway/shell/matrix.org/x-fgufxklaqllxzsct) |
| 11:52:27 | → | bram[m]1 joins (bramvdbnet@gateway/shell/matrix.org/x-seupfpxurapwgndl) |
| 11:52:27 | → | phittacus joins (bklmatrixo@gateway/shell/matrix.org/x-wexpwavgpadvdewf) |
| 11:52:27 | → | bsima[m] joins (bensimatim@gateway/shell/matrix.org/x-ufjetevsqtlsokqi) |
| 11:52:28 | → | speakerspivakeem joins (speakerdea@gateway/shell/matrix.org/x-ovnnhanylbxmvbgs) |
| 11:52:28 | → | Vanilla[m] joins (danielm14@gateway/shell/matrix.org/x-zqwoyuugjawliavy) |
| 11:52:28 | → | meckse[m] joins (mecksematr@gateway/shell/matrix.org/x-jrshlopxonixnfxl) |
| 11:52:29 | → | jamesfielder[m] joins (jamesfield@gateway/shell/matrix.org/x-xkmfkbfyeckadssc) |
| 11:52:29 | → | peterstorm[m] joins (peterstorm@gateway/shell/matrix.org/x-kqzznbrmnkquyykd) |
| 11:52:29 | → | AmitLevy[m] joins (amitmostly@gateway/shell/matrix.org/x-plqcnvarzmrefmiq) |
| 11:52:30 | → | Lurkki[m]1 joins (lurkkifene@gateway/shell/matrix.org/x-daxqomnczybnfzav) |
| 11:52:30 | → | pedrorubster[m] joins (pedrorubst@gateway/shell/matrix.org/x-yjwoxjqzjuopvomf) |
| 11:52:30 | → | materialfuture[m joins (materialfu@gateway/shell/matrix.org/x-elhtmafbmxwlxiqx) |
| 11:52:41 | → | finn_elija joins (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) |
| 11:53:03 | × | jamm quits (~jamm@unaffiliated/jamm) (Ping timeout: 244 seconds) |
| 11:56:25 | → | bogdanp joins (~bogdanp@188.24.80.165) |
| 11:57:00 | → | isBEKaml joins (~isBEKaml@unaffiliated/isbekaml) |
| 11:58:12 | → | Tario joins (~Tario@201.192.165.173) |
| 11:58:13 | <ph88^> | could anyone tell me what this lambda is doing ? https://youtu.be/Lxl8EmUQM70?t=524 |
| 12:03:46 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 12:06:21 | <kuribas> | that's \. 2 |
| 12:06:45 | <kuribas> | since \. n (\. m) == n * m if n is a church encoded numeral |
| 12:07:43 | <idnar> | @hoogle Monad m => Bool -> m () -> m () |
| 12:07:44 | <lambdabot> | XMonad.Util.PureX when' :: (Monad m, Monoid a) => Bool -> m a -> m a |
| 12:07:44 | <lambdabot> | Control.Conditional when :: (ToBool bool, Monad m) => bool -> m () -> m () |
| 12:07:44 | <lambdabot> | Control.Monad when :: Applicative f => Bool -> f () -> f () |
| 12:09:09 | → | jamm joins (~jamm@unaffiliated/jamm) |
| 12:09:40 | <idnar> | @hoogle (Monad m, Monad m') => Bool -> m (m' ()) -> m (m' ()) |
| 12:09:41 | <lambdabot> | No results found |
| 12:09:54 | × | _linker_ quits (~linker@2a02:a31a:a045:3500:edc4:9fc5:d992:6c7e) (Remote host closed the connection) |
| 12:09:56 | → | oisdk joins (~oisdk@2001:bb6:3329:d100:7037:1951:b856:5dfd) |
| 12:10:03 | × | perrier-jouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Ping timeout: 265 seconds) |
| 12:11:30 | <kuribas> | ph88^: sorry, forget that. It looks like the numbers here are the the bruyn indexes |
| 12:12:15 | <ph88^> | im already forgetting :P |
| 12:12:21 | <ph88^> | thanks for trying though |
| 12:12:41 | <ph88^> | just a bit tough to understand de bruijn indices when i dont even understand the lambda |
| 12:12:49 | <kuribas> | ph88^: I think this lambda expression is just to explain the bruin indices... |
| 12:13:03 | <ph88^> | ya ok but what does it do ? |
| 12:13:17 | <kuribas> | I don't know? Try to reduce it... |
| 12:13:32 | <merijn> | ph88^: Define "do" |
| 12:13:53 | <ph88^> | its a function right ... functions do stuff ? |
| 12:14:08 | <kuribas> | ph88^: no they don't |
| 12:14:27 | <kuribas> | ph88^: functions represent relations. |
| 12:14:34 | <ph88^> | what relation |
| 12:14:50 | <merijn> | I mean, what does "\x -> \y -> z (x y) x (y x)" do? |
| 12:14:52 | <merijn> | It just is |
| 12:14:54 | → | neiluj joins (~jco@91-167-203-101.subs.proxad.net) |
| 12:15:14 | <kuribas> | ph88^: depends on the function |
| 12:15:26 | <ph88^> | this function https://youtu.be/Lxl8EmUQM70?t=524 |
| 12:15:26 | → | perrier-jouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
| 12:15:39 | <merijn> | ph88^: It's just some randomly made up function |
| 12:16:07 | <merijn> | it doesn't have a purpose beyond being an example |
| 12:16:14 | <ph88^> | i dont understand this function |
| 12:16:29 | → | neiluj_ joins (~jco@91-167-203-101.subs.proxad.net) |
| 12:16:29 | <merijn> | What don't you understand about it? |
| 12:16:31 | <kuribas> | ph88^: there is nothing to understand |
| 12:16:33 | × | turion quits (~turion@2a02:810d:8abf:c4a8:51be:4205:5174:1cd0) (Ping timeout: 265 seconds) |
| 12:16:45 | <ph88^> | -__- |
| 12:16:52 | <kuribas> | ph88^: lambda calculus is meaningless playing with symbols |
| 12:17:12 | <ph88^> | why is it on his presentation slides then if there is nothing to understand ?? |
| 12:17:29 | <merijn> | ph88^: It's explaining De Bruijn indices |
| 12:17:32 | <kuribas> | ph88^: because you need to understand the rules for manipulating the symbols |
| 12:17:42 | <ph88^> | i dont know these rules |
| 12:17:53 | <kuribas> | then you have to watch the video :) |
| 12:18:15 | → | aveltras joins (uid364989@gateway/web/irccloud.com/x-bkzrcfsztuusppij) |
| 12:18:18 | <merijn> | ph88^: What does "a*10 + b = 2*b - c" mean? |
| 12:18:20 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 12:18:59 | <ph88^> | that you can express a b and c in relation to each other |
| 12:19:34 | <ph88^> | or if you plot it as two geometric shapes that you can see some figures |
| 12:19:57 | <merijn> | I was gonna go with "it doesn't mean anything, it's just a definition that can get meaning depending on context" |
| 12:20:43 | <merijn> | I mean, you can come up with arbitrary lambda functions without them meaning anything the same way you can come up with arbitrary meaningless equations |
| 12:21:01 | <idnar> | for `newtype Box = MkBox Blah` is there any advantage in using `coerce :: Blah -> Box` in place of `MkBox`? |
| 12:21:01 | <merijn> | The goal isn't to understand the equation, the goal is to understand how you can manipulate it |
| 12:21:12 | <merijn> | idnar: No |
| 12:21:15 | <kuribas> | math itself has no meaning, the meaning comes when you observe that the patterns in math match patterns in reality. |
| 12:21:23 | <merijn> | idnar: Or rather "it depends" :p |
| 12:21:45 | <merijn> | idnar: "coerce" instead of "map coerce"/"map MkBox" is (obviously) more efficient |
| 12:22:05 | <merijn> | idnar: Which is why coerce was invented |
| 12:22:24 | <kuribas> | I would be surprised if MkBox is not just a specialized coerce... |
| 12:22:45 | <kuribas> | I think the language standard garantuees it... |
| 12:22:50 | <merijn> | kuribas: newtype constructors don't exist at runtime, so... |
| 12:23:40 | <merijn> | idnar: Basically the wrapping/unwrapping of applying constructors/pattern matching are no-ops at runtime |
| 12:24:05 | <idnar> | merijn: *nod* |
| 12:25:04 | × | gnumonic quits (~gnumonic@c-73-170-91-210.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
| 12:25:41 | → | fendor_ joins (~fendor@178.165.129.60.wireless.dyn.drei.com) |
| 12:26:05 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 12:27:56 | × | fendor quits (~fendor@178.165.131.27.wireless.dyn.drei.com) (Ping timeout: 240 seconds) |
| 12:30:13 | <kuribas> | ph88^: in fact, the very same expression is on the wikipedia page: https://en.wikipedia.org/wiki/De_Bruijn_index |
| 12:30:25 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds) |
| 12:31:06 | <ph88^> | so wikipedia can explain it |
| 12:31:08 | <ph88^> | thanks |
| 12:31:25 | <merijn> | Almost certainly not :p |
| 12:31:41 | <ph88^> | :P |
| 12:31:49 | <ph88^> | i had high hopes haha |
| 12:31:56 | × | MrMobius quits (~MrMobius@208.58.206.154) (Ping timeout: 240 seconds) |
| 12:32:00 | <idnar> | this subexpression is of type `STM (IO ())` which is not a type I would have expected to want (I check if a thing already happened, if so `pure ()`, if not `atomically (takeTMVar anewvar)`) |
| 12:32:31 | × | plutoniix quits (~q@184.82.219.212) (Quit: Leaving) |
| 12:38:05 | × | cfricke quits (cfricke@gateway/vpn/mullvad/cfricke) (Ping timeout: 265 seconds) |
| 12:40:03 | × | LKoen quits (~LKoen@19.175.9.109.rev.sfr.net) (Remote host closed the connection) |
| 12:41:25 | × | jamm quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 12:42:27 | → | LKoen joins (~LKoen@19.175.9.109.rev.sfr.net) |
| 12:42:27 | → | MrMobius joins (~MrMobius@208.58.206.154) |
| 12:43:37 | × | hastronauta quits (~hastronau@ip-103-85-38-61.syd.xi.com.au) (Ping timeout: 265 seconds) |
| 12:44:52 | → | jedws joins (~jedws@2001:8003:c44f:4601:2919:11d9:4e81:3c90) |
| 12:46:12 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 12:46:36 | → | philopsos joins (~caecilius@gateway/tor-sasl/caecilius) |
| 12:48:52 | × | mouseghost quits (~draco@wikipedia/desperek) (Quit: mew wew) |
| 12:50:20 | → | Sheilong joins (uid293653@gateway/web/irccloud.com/x-wsemnvfqnkpogxix) |
| 12:50:35 | → | ADG1089__ joins (~aditya@223.226.145.125) |
| 12:50:36 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
| 12:52:06 | × | troydm quits (~troydm@unaffiliated/troydm) (Ping timeout: 265 seconds) |
| 12:53:29 | → | troydm joins (~troydm@unaffiliated/troydm) |
| 12:56:52 | × | stef204 quits (~stef204@unaffiliated/stef-204/x-384198) (Quit: WeeChat 3.0) |
| 12:59:16 | → | turion joins (~turion@2a02:810d:8abf:c4a8:51be:4205:5174:1cd0) |
| 12:59:47 | <ADG1089__> | I have had lot of troubles with using ghc tooling for past couple of years. Currently I use ghcup to install cabal and ghc then cabal for any library. But in cases where I have to use stack what should I use? |
| 12:59:59 | <ADG1089__> | should I use cabal or stack official method or pacman? |
| 13:00:49 | → | alx741 joins (~alx741@181.196.68.167) |
| 13:00:51 | → | urodna joins (~urodna@unaffiliated/urodna) |
| 13:01:06 | <__monty__> | Definitely not pacman. |
| 13:01:12 | <yushyin> | use the prebuild binary from the stack website or don't use it at all |
| 13:01:35 | <__monty__> | You could either use stack or hpack to create a cabal file and then cabal. |
| 13:02:01 | <__monty__> | I'm not a fan of "cabal install"ing stuff though, especially libraries. |
| 13:06:04 | → | mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) |
| 13:06:49 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 13:11:47 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
| 13:18:11 | × | jedws quits (~jedws@2001:8003:c44f:4601:2919:11d9:4e81:3c90) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 13:18:55 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) |
| 13:19:25 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds) |
| 13:20:20 | → | jedws joins (~jedws@2001:8003:c44f:4601:2919:11d9:4e81:3c90) |
| 13:20:53 | → | geekosaur joins (82650c7c@130.101.12.124) |
| 13:21:35 | → | geowiesnot joins (~user@87-89-181-157.abo.bbox.fr) |
| 13:21:37 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 13:22:30 | × | son0p quits (~son0p@181.58.39.182) (Quit: leaving) |
| 13:24:38 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) (Ping timeout: 264 seconds) |
| 13:25:11 | × | neiluj_ quits (~jco@91-167-203-101.subs.proxad.net) (Quit: leaving) |
| 13:25:16 | → | brisbin joins (~patrick@pool-173-49-158-4.phlapa.fios.verizon.net) |
| 13:25:55 | × | gxt quits (~gxt@gateway/tor-sasl/gxt) (Quit: WeeChat 3.0) |
| 13:26:54 | × | geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 265 seconds) |
| 13:27:59 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 13:28:12 | × | niekvandepas quits (~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection) |
| 13:28:45 | → | niekvandepas joins (~niekvande@dhcp-077-249-088-250.chello.nl) |
| 13:28:49 | <maerwald> | Try both, they're all free |
| 13:30:28 | × | Mr_Cue quits (~Mr._Cue@pengyuzhou.com) (Remote host closed the connection) |
| 13:30:38 | <maerwald> | free of charge not free of bugs |
| 13:30:41 | → | Mr_Cue joins (~Mr._Cue@pengyuzhou.com) |
| 13:30:59 | → | hyperisco joins (~hyperisco@104-195-141-253.cpe.teksavvy.com) |
| 13:32:26 | <merijn> | maerwald: Free as in puppies! |
| 13:32:42 | × | frozenErebus quits (~frozenEre@94.128.80.70) (Ping timeout: 265 seconds) |
| 13:32:48 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
| 13:33:05 | × | jedws quits (~jedws@2001:8003:c44f:4601:2919:11d9:4e81:3c90) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 13:33:19 | × | niekvandepas quits (~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 256 seconds) |
| 13:33:25 | <merijn> | maerwald: Free to pick up, but you'll have to pay to get it fixed ;) |
| 13:34:47 | <MarcelineVQ> | ADG1089__: I get cabal and ghc via ghcup these days but if I wanted stack I would install it via pacman, 'stack upgrade' via cli to get the latest stack in ~/.local/bin, add ~/.local/bin to my path (in its absolute form), and remove the pacman stack afterwards. |
| 13:37:45 | → | nect joins (~nect@pool-108-11-28-155.atclnj.fios.verizon.net) |
| 13:38:51 | → | jedws joins (~jedws@2001:8003:c44f:4601:2919:11d9:4e81:3c90) |
| 13:39:17 | × | motherfsck quits (~motherfsc@unaffiliated/motherfsck) (Quit: quit) |
| 13:41:28 | × | jiribenes quits (~jiribenes@rosa.jiribenes.com) (Ping timeout: 260 seconds) |
| 13:48:30 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 13:49:24 | → | nly joins (~user@unaffiliated/nly) |
| 13:50:13 | → | son0p joins (~son0p@181.136.122.143) |
| 13:50:37 | ← | smerdyakov0 parts (~dan@5.146.195.145) ("Leaving") |
| 13:51:09 | → | smerdyakov joins (~dan@5.146.195.145) |
| 13:53:01 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds) |
| 13:53:27 | × | paolo|out quits (~paolo|out@s91904426.blix.com) (Remote host closed the connection) |
| 13:55:20 | → | puke joins (~vroom@217.138.252.167) |
| 13:55:35 | → | niekvandepas joins (~niekvande@dhcp-077-249-088-250.chello.nl) |
| 13:57:05 | → | urodna_ joins (~urodna@unaffiliated/urodna) |
| 13:57:31 | × | turion quits (~turion@2a02:810d:8abf:c4a8:51be:4205:5174:1cd0) (Quit: Leaving.) |
| 13:57:49 | × | elliott_ quits (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
| 13:58:56 | × | urodna quits (~urodna@unaffiliated/urodna) (Ping timeout: 240 seconds) |
| 13:59:27 | → | elliott_ joins (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) |
| 14:00:01 | × | niekvandepas quits (~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 246 seconds) |
| 14:01:48 | → | retroj joins (~retroj@217.146.82.202) |
| 14:02:16 | → | j3r3my joins (~jeremym@68-73-116-155.lightspeed.rlghnc.sbcglobal.net) |
| 14:02:38 | → | niekvandepas joins (~niekvande@dhcp-077-249-088-250.chello.nl) |
| 14:02:43 | → | Tops2 joins (~Tobias@dyndsl-095-033-093-253.ewe-ip-backbone.de) |
| 14:03:04 | × | coot quits (~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 14:04:41 | → | berberman_ joins (~berberman@unaffiliated/berberman) |
| 14:05:26 | × | berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds) |
| 14:07:25 | → | jiribenes joins (~jiribenes@rosa.jiribenes.com) |
| 14:08:37 | <maerwald> | I think ghcup is also in AUR |
| 14:08:54 | <maerwald> | but check the hash first... |
| 14:09:24 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 14:12:51 | <maerwald> | https://aur.archlinux.org/packages/ghcup-hs-bin/ the maintainer seems legit |
| 14:13:51 | → | frozenErebus joins (~frozenEre@94.128.80.70) |
| 14:14:07 | → | gaussian joins (uid482612@gateway/web/irccloud.com/x-nimvwshqdwcnlciq) |
| 14:14:09 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
| 14:14:35 | × | rotaerk quits (rotaerk@2600:3c02::f03c:91ff:fe70:4a45) (Ping timeout: 272 seconds) |
| 14:18:37 | → | mouseghost joins (~draco@87-206-9-185.dynamic.chello.pl) |
| 14:18:37 | × | mouseghost quits (~draco@87-206-9-185.dynamic.chello.pl) (Changing host) |
| 14:18:37 | → | mouseghost joins (~draco@wikipedia/desperek) |
| 14:19:23 | × | ubert quits (~Thunderbi@p200300ecdf25d943ca5b76fffe29f233.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 14:19:45 | → | ubert joins (~Thunderbi@p200300ecdf25d943e6b318fffe838f33.dip0.t-ipconnect.de) |
| 14:20:34 | <ADG1089__> | getting this error (https://pastebin.com/KQKrs08R) while building bloodhound examples (https://github.com/bitemyapp/bloodhound/tree/master/examples) which passes on their travisCI |
| 14:25:17 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) |
| 14:27:28 | × | finn_elija quits (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Quit: finn_elija) |
| 14:27:42 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 14:28:31 | → | finn_elija joins (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) |
| 14:29:00 | → | cfricke joins (cfricke@gateway/vpn/mullvad/cfricke) |
| 14:29:19 | × | shailangsa quits (~shailangs@host86-162-150-221.range86-162.btcentralplus.com) (Ping timeout: 260 seconds) |
| 14:29:22 | → | JadedImpression joins (~rubenpiet@d51A484F8.access.telenet.be) |
| 14:29:54 | → | Wuzzy joins (~Wuzzy@p549c95a3.dip0.t-ipconnect.de) |
| 14:30:16 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 14:31:53 | → | metreo joins (Thunderbir@gateway/vpn/mullvad/metreo) |
| 14:32:38 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds) |
| 14:34:36 | → | superstar64 joins (6ccefa7c@108-206-250-124.lightspeed.miamfl.sbcglobal.net) |
| 14:35:09 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
| 14:35:11 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) |
| 14:36:07 | <superstar64> | does `Free (Yoneda f) a` mean anything? https://gist.github.com/Superstar64/9226e1a2b670ff7805a1b8b7ce857d02 |
| 14:36:08 | <superstar64> | i'm not entirely sure what this does |
| 14:38:28 | <JadedImpression> | are you confused about the Yoneda part in particular, or the Free Yoneda construction as a whole? |
| 14:38:36 | <superstar64> | both |
| 14:39:26 | × | ADG1089__ quits (~aditya@223.226.145.125) (Remote host closed the connection) |
| 14:40:00 | × | geekosaur quits (82650c7c@130.101.12.124) (Quit: Connection closed) |
| 14:40:03 | × | raym quits (~ray@45.64.220.55) (Quit: leaving) |
| 14:41:58 | → | jamm joins (~jamm@unaffiliated/jamm) |
| 14:44:18 | <JadedImpression> | So, Free is a data structure that transforms a functor into a monad freely. In practice this can be used for representing an abstract set of operations using a functor and then obtain a data type which can represent syntax trees utilizing these abstract operations. |
| 14:44:32 | × | knupfer quits (~Thunderbi@200116b82cf5ad00ed5db529763d9f59.dip.versatel-1u1.de) (Remote host closed the connection) |
| 14:44:41 | → | knupfer joins (~Thunderbi@200116b82cf5ad00d5c5795f8615d409.dip.versatel-1u1.de) |
| 14:44:43 | <JadedImpression> | Yoneda can be used to transform a type constructor into a functor |
| 14:45:17 | → | rotaerk joins (~rotaerk@ender.afternet.org) |
| 14:45:46 | <superstar64> | is this the same thing as the `Freer` monad? is it different? |
| 14:46:13 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) (Ping timeout: 260 seconds) |
| 14:46:22 | → | raym joins (~ray@45.64.220.55) |
| 14:46:50 | × | jamm quits (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds) |
| 14:47:30 | <lyxia> | yes that's it |
| 14:47:47 | × | jedws quits (~jedws@2001:8003:c44f:4601:2919:11d9:4e81:3c90) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 14:48:38 | <lyxia> | oh wait no actually, Freer is Free (Coyoneda f) |
| 14:48:50 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 14:49:12 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 14:49:33 | → | cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
| 14:49:58 | <superstar64> | so what is this exactly? what can you do with it? |
| 14:51:06 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 14:51:43 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 14:53:01 | → | ystael joins (~ystael@209.6.50.55) |
| 14:53:14 | → | shinobi_ joins (~shinobi@c-24-147-48-162.hsd1.ma.comcast.net) |
| 14:53:51 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds) |
| 14:55:40 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds) |
| 14:56:00 | <merijn> | superstar64: Coyoneda = generalised DList :p |
| 14:57:14 | × | shinobi__ quits (~shinobi@c-24-147-48-162.hsd1.ma.comcast.net) (Ping timeout: 256 seconds) |
| 14:58:10 | → | shailangsa joins (~shailangs@host86-162-150-221.range86-162.btcentralplus.com) |
| 15:00:56 | → | shieru[m] joins (shierualet@gateway/shell/matrix.org/x-mmnahmoiniexbost) |
| 15:02:36 | → | geowiesnot joins (~user@87-89-181-157.abo.bbox.fr) |
| 15:02:47 | × | shinobi_ quits (~shinobi@c-24-147-48-162.hsd1.ma.comcast.net) (Read error: Connection reset by peer) |
| 15:03:11 | → | shinobi_ joins (~shinobi@c-24-147-48-162.hsd1.ma.comcast.net) |
| 15:05:15 | × | matryoshka quits (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Ping timeout: 272 seconds) |
| 15:08:22 | → | earldouglas joins (~james@unaffiliated/jamestastic) |
| 15:11:56 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 15:14:50 | <ph88^> | is there any way to extract the grammar from a parser implementation ? |
| 15:14:51 | → | mrchampion joins (~mrchampio@38.18.109.23) |
| 15:16:25 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
| 15:16:40 | <ski> | for a monadic parser ? |
| 15:17:58 | → | CaptainYukinoshi joins (captain-yu@gateway/shell/matrix.org/x-xdwwxdmbypnirhgv) |
| 15:20:36 | → | machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca) |
| 15:22:23 | → | coot joins (~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl) |
| 15:22:59 | × | mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 260 seconds) |
| 15:26:44 | → | Sarievo[m] joins (sarievoale@gateway/shell/matrix.org/x-ajvjnddetyqkqfac) |
| 15:32:49 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 15:35:34 | × | Franciman quits (~francesco@host-95-235-155-82.retail.telecomitalia.it) (Quit: Leaving) |
| 15:36:09 | × | pavonia quits (~user@unaffiliated/siracusa) (Quit: Bye!) |
| 15:36:40 | × | syd quits (~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net) (Ping timeout: 264 seconds) |
| 15:37:50 | × | danza quits (~francesco@151.53.68.90) (Ping timeout: 264 seconds) |
| 15:37:52 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds) |
| 15:38:07 | <dolio> | merijn: You ever get a segfault/bus error using blobs in sqlite-simple? |
| 15:38:34 | <merijn> | dolio: I (sadly) don't use sqlite-simple >.> |
| 15:38:41 | <dolio> | Oh, okay. :) |
| 15:39:23 | <kuribas> | the <db>-simple libraries are pretty braindead |
| 15:39:36 | <kuribas> | not better than jdbc in java... |
| 15:40:28 | <merijn> | kuribas: That's why they're good |
| 15:40:38 | <merijn> | all the non-braindead ones have dysfunctional brains |
| 15:40:47 | <kuribas> | merijn: until you want to compose queries |
| 15:40:56 | <kuribas> | or do something mildy complicated |
| 15:41:23 | → | Sgeo joins (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
| 15:41:25 | <merijn> | Simple solution |
| 15:41:28 | <merijn> | Stop wanting that |
| 15:41:40 | <kuribas> | composing queries is very useful |
| 15:41:52 | <kuribas> | for adding custom filters, etc... |
| 15:43:18 | → | hiroaki joins (~hiroaki@ip4d167562.dynamic.kabel-deutschland.de) |
| 15:43:29 | <kuribas> | or programmatically generating queries, like for graphql |
| 15:44:57 | × | raym quits (~ray@45.64.220.55) (Remote host closed the connection) |
| 15:45:17 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 15:45:38 | <dolio> | Yeah, but a lot of people just want to use SQL as a data store with a known, relatively fixed schema. |
| 15:45:55 | <kuribas> | dolio: I didn't imply the schema isn't known :) |
| 15:46:14 | fendor_ | is now known as fendor |
| 15:48:19 | → | elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
| 15:48:40 | × | Glyde_ quits (~glyde@90.221.74.173) (Ping timeout: 264 seconds) |
| 15:48:52 | × | frozenErebus quits (~frozenEre@94.128.80.70) (Ping timeout: 246 seconds) |
| 15:49:19 | → | shinobi__ joins (~shinobi@c-24-147-48-162.hsd1.ma.comcast.net) |
| 15:50:42 | <carbolymer> | I'm building a list with a lot of appends - I guess I would get better performance using DList rather than regular [] list, right? |
| 15:50:44 | <kuribas> | dolio: how would you write a query if your schema isn't known? |
| 15:50:53 | <kuribas> | carbolymer: yes |
| 15:51:08 | carbolymer | get back to rewriting [] into DList |
| 15:51:11 | → | ep1ctetus joins (~epictetus@ip184-187-162-163.sb.sd.cox.net) |
| 15:51:24 | <dolio> | What I mean is that they don't need to be dynamically generating arbitrary queries. They just need to write relatively fixed quries to access the data. |
| 15:51:42 | <ski> | carbolymer : assuming they're left-associated |
| 15:52:26 | <kuribas> | dolio: if you have a rest api with many options, dynamic queries are pretty useful. |
| 15:52:46 | <ph88^> | ski, yes for monadic parser |
| 15:52:52 | × | shinobi_ quits (~shinobi@c-24-147-48-162.hsd1.ma.comcast.net) (Ping timeout: 264 seconds) |
| 15:52:53 | <oats> | this just in, DLists are communist! |
| 15:52:55 | <kuribas> | dolio: different search criteria, etc... I cannot imagine why people wouldn't use them. |
| 15:53:07 | <oats> | sorry, dumb joke lol |
| 15:53:08 | <carbolymer> | ski, so building those lists [] using foldr should be fine too? |
| 15:53:25 | <carbolymer> | ski, I mean, foldr on original collection then prepending to the [] |
| 15:53:33 | <kuribas> | carbolymer: yes |
| 15:53:47 | <kuribas> | carbolymer: that is, if you do it in one go. |
| 15:53:55 | <carbolymer> | yeah, that's the plan |
| 15:54:00 | carbolymer | mashes U in vim |
| 15:54:27 | <dolio> | I worked on implementing a language that was exactly what you're talking about, because we had the idea that people would be writing their own custom queries in our 'simplified' composable language. But then that never happened, and probably was impossible, because I (or maybe two other people) had to be rewriting the queries our own team wrote, because I knew how the compiler worked well enough to write the right composable query to actually be comp |
| 15:54:27 | <dolio> | iled to fast-enough SQL. |
| 15:55:18 | <ski> | ph88^ : i think not, since what parser you decide to apply later may depend on what values you parsed, earlier |
| 15:55:47 | <ski> | (maybe could work for idiomatic parser. although reifying the recursion would be a problem) |
| 15:55:51 | → | raym joins (~ray@45.64.220.55) |
| 15:55:55 | <kuribas> | dolio: yeah, I was thinking about such a language, but the thing I came up with just resembled SQL :-) |
| 15:56:03 | <zebrag> | ph88^: I think I know the answer to that one, and that'd be: no, for many reasons. Like what do you call a grammar |
| 15:56:20 | <superstar64> | if i recall, applicative parsers correspond to context free grammers and monadic parsers corrispond to context dependent |
| 15:56:24 | <merijn> | dolio: I did a quick scan and sqlite-simple/direct-sqlite don't seem to do anything dumb, so sounds like user error ;) |
| 15:56:29 | <kuribas> | dolio: unless your database schema is so clean and regular you can abstract it a way. |
| 15:56:32 | <ph88^> | ski .. zebrag ok understood |
| 15:56:42 | <ski> | carbolymer : yes, assuming you mean something like `foldr (\x ys -> ..x.. ++ ys)' |
| 15:57:10 | <dolio> | merijn: Yeah, I looked too and didn't see anything obvious. I was more curious if you had encountered something weird before, since I'd seen you recommend the library. |
| 15:57:22 | <kuribas> | dolio: for example, a filter in the REST API would just become an extra where clause. |
| 15:57:49 | <kuribas> | dolio: and a sort param another SORT BY clauses. |
| 15:58:09 | <ph88^> | does someone know of a library that can help to analyze the flow of data ? specifcially it would be interesting if it can proof if a data transform function is reversible or not (and when it is give the inverse function) |
| 15:58:17 | <merijn> | dolio: tbh, it's mostly me recommending sqlite and people seem to 1) like sqlite-simple, 2) it seems a fairly straightforward wrapper :p |
| 15:58:17 | <kuribas> | dolio: but we do have an abstraction on top of it to do pagination in a consisten way. |
| 15:58:19 | <ski> | something looking more like predicate logic would be nicer, over SQL |
| 15:59:17 | <kuribas> | dolio: that "abstraction" consistem simply of rewriting the query, nothing more. |
| 16:00:37 | <kuribas> | dolio: it works pretty fine for us. But it is clojure code :-( |
| 16:00:52 | × | knupfer quits (~Thunderbi@200116b82cf5ad00d5c5795f8615d409.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
| 16:01:27 | × | finn_elija quits (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 268 seconds) |
| 16:01:33 | <kuribas> | if you pass something wrong to it, it has no problem generating a complete nonsense query. So I set out of porting the ideas of this library (honeysql) to haskell. |
| 16:03:16 | <kuribas> | dolio: I evaluated quite a few database libraries, but none of them were both expressive, composable, and simple. |
| 16:03:19 | → | finn_elija joins (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) |
| 16:07:35 | <zebrag> | ph88^: Developing a pretty-printer mirroring the parser, with an ast in the middle to make things more tidy. If the results match then it is likely reversible. Many time a context free grammar is not reversible, though. |
| 16:07:49 | × | oisdk quits (~oisdk@2001:bb6:3329:d100:7037:1951:b856:5dfd) (Quit: oisdk) |
| 16:07:52 | → | Junotrix joins (~Junotrix@90.221.74.173) |
| 16:08:00 | → | plutoniix joins (~q@node-uml.pool-125-24.dynamic.totinternet.net) |
| 16:08:02 | × | niekvandepas quits (~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection) |
| 16:08:17 | <ph88^> | zebrag, that was a separate question about dataflow and parsing |
| 16:08:38 | → | niekvandepas joins (~niekvande@dhcp-077-249-088-250.chello.nl) |
| 16:08:44 | <ph88^> | i found this now https://www.reddit.com/r/haskell/comments/25ujqk/is_there_any_implementation_for_this_paper_about/ |
| 16:09:24 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 16:09:50 | <zebrag> | nice |
| 16:13:48 | × | JadedImpression quits (~rubenpiet@d51A484F8.access.telenet.be) (Quit: Lost terminal) |
| 16:14:05 | × | Mr_Cue quits (~Mr._Cue@pengyuzhou.com) (Ping timeout: 240 seconds) |
| 16:14:08 | × | niekvandepas quits (~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 265 seconds) |
| 16:14:19 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds) |
| 16:14:55 | → | writenix joins (~quassel@89-180-204-230.net.novis.pt) |
| 16:15:05 | <zebrag> | Really nice. I'm spending a heck lot of time reading something likely far less difficult than Amr Sabry ;) (https://legacy.cs.indiana.edu/~sabry/papers/rational.pdf) |
| 16:15:16 | → | soft-warm joins (4408f588@ip68-8-245-136.sd.sd.cox.net) |
| 16:15:41 | → | matryoshka joins (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) |
| 16:16:06 | × | writenix quits (~quassel@89-180-204-230.net.novis.pt) (Client Quit) |
| 16:22:38 | × | shailangsa quits (~shailangs@host86-162-150-221.range86-162.btcentralplus.com) (Ping timeout: 272 seconds) |
| 16:23:39 | × | kuribas quits (~user@ptr-25vy0i7k6wy863qxr1f.18120a2.ip6.access.telenet.be) (Remote host closed the connection) |
| 16:27:12 | → | livvy joins (~livvy@gateway/tor-sasl/livvy) |
| 16:27:48 | × | coot quits (~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 16:28:18 | → | coot joins (~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl) |
| 16:29:58 | → | polyphem joins (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) |
| 16:30:41 | → | frozenErebus joins (~frozenEre@94.128.80.70) |
| 16:32:37 | × | coot quits (~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 246 seconds) |
| 16:33:07 | × | zar quits (~zar@fw1.ciirc.cvut.cz) (Quit: Leaving) |
| 16:34:03 | → | syd joins (~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net) |
| 16:35:10 | × | kritzefitz quits (~kritzefit@fw-front.credativ.com) (Remote host closed the connection) |
| 16:38:02 | → | Skyds joins (~Skyds@host-187-73-245-9.consoftmg.com.br) |
| 16:38:28 | × | hyperisco quits (~hyperisco@104-195-141-253.cpe.teksavvy.com) (Read error: Connection reset by peer) |
| 16:39:00 | × | Skyds quits (~Skyds@host-187-73-245-9.consoftmg.com.br) (Client Quit) |
| 16:39:31 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
| 16:41:09 | × | son0p quits (~son0p@181.136.122.143) (Ping timeout: 260 seconds) |
| 16:42:54 | → | rayyyy joins (~nanoz@gateway/tor-sasl/nanoz) |
| 16:43:03 | → | son0p joins (~son0p@181.136.122.143) |
| 16:43:59 | × | isBEKaml quits (~isBEKaml@unaffiliated/isbekaml) (Quit: leaving) |
| 16:46:26 | → | shailangsa joins (~shailangs@host86-162-150-221.range86-162.btcentralplus.com) |
| 16:47:14 | → | Boomerang joins (~Boomerang@2a05:f6c7:2179:0:5976:80b4:6657:63a8) |
| 16:47:27 | → | Boomerang_ joins (~Boomerang@xd520f68c.cust.hiper.dk) |
| 16:47:54 | → | mananamenos joins (~mananamen@84.122.202.215.dyn.user.ono.com) |
| 16:48:43 | × | mnrmnaugh quits (~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 260 seconds) |
| 16:48:59 | → | oisdk joins (~oisdk@2001:bb6:3329:d100:7037:1951:b856:5dfd) |
| 16:49:04 | × | mouseghost quits (~draco@wikipedia/desperek) (Quit: mew wew) |
| 16:49:23 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
| 16:51:26 | → | geyaeb joins (~geyaeb@gateway/tor-sasl/geyaeb) |
| 16:52:18 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 16:52:39 | × | geyaeb_ quits (~geyaeb@gateway/tor-sasl/geyaeb) (Ping timeout: 268 seconds) |
| 16:54:59 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: jksvkjsd) |
| 16:58:59 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 17:01:08 | → | nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
| 17:01:54 | → | geekosaur joins (82650c7c@130.101.12.124) |
| 17:02:51 | → | hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-omgbgaryvteqjbfy) |
| 17:03:26 | → | howdoi joins (uid224@gateway/web/irccloud.com/x-mfmeefvgugjfkaha) |
| 17:03:31 | × | LKoen quits (~LKoen@19.175.9.109.rev.sfr.net) (Remote host closed the connection) |
| 17:05:13 | × | bitmagie quits (~Thunderbi@200116b806facd00d0d7127d7911c11a.dip.versatel-1u1.de) (Quit: bitmagie) |
| 17:05:24 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 17:05:50 | × | conal quits (~conal@209.58.139.237) (Quit: Computer has gone to sleep.) |
| 17:06:36 | → | conal joins (~conal@209.58.139.237) |
| 17:06:59 | → | Deide joins (~Deide@217.155.19.23) |
| 17:07:14 | → | Boom_Rang joins (~Boomerang@2a05:f6c7:2179:0:c036:de39:661c:4d95) |
| 17:07:14 | → | niekvandepas joins (~niekvande@dhcp-077-249-088-250.chello.nl) |
| 17:09:18 | × | livvy quits (~livvy@gateway/tor-sasl/livvy) (Ping timeout: 268 seconds) |
| 17:10:13 | → | mnrmnaugh joins (~mnrmnaugh@unaffiliated/mnrmnaugh) |
| 17:10:16 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds) |
| 17:13:55 | × | frozenErebus quits (~frozenEre@94.128.80.70) (Ping timeout: 246 seconds) |
| 17:15:51 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) |
| 17:16:28 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) (Remote host closed the connection) |
| 17:16:44 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) |
| 17:18:55 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) (Remote host closed the connection) |
| 17:19:34 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) |
| 17:22:07 | × | cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye) |
| 17:22:22 | → | Jbreezy joins (9c1a2d12@156.26.45.18) |
| 17:23:51 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 17:24:01 | × | Deewiant quits (~deewiant@de1.ut.deewiant.iki.fi) (Quit: WeeChat 2.3) |
| 17:24:02 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) (Ping timeout: 264 seconds) |
| 17:24:06 | → | cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
| 17:24:33 | <ep1ctetus> | Is there a way to go through all the fields of a record, and run a function on all the ones that are a certain type? (In my case, Double) |
| 17:25:46 | × | conal quits (~conal@209.58.139.237) (Quit: Computer has gone to sleep.) |
| 17:25:53 | <glguy> | ep1ctetus: you could do that with the syb package (Data.Generics) |
| 17:26:14 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 17:26:16 | <glguy> | doing things based on the types of fields doesn't make for good programming, but in a pinch it can be convenient |
| 17:26:34 | → | Franciman joins (~francesco@host-95-235-155-82.retail.telecomitalia.it) |
| 17:27:42 | × | borne quits (~fritjof@2001:638:708:30da:bf60:e341:502c:8f25) (Ping timeout: 258 seconds) |
| 17:28:03 | <ep1ctetus> | glguy, thank you. Our use case is that we have a record with a few fields and a lot of Doubles, and we want to round all the Doubles |
| 17:29:25 | <glguy> | that's fine for some throw-away code, but it's trouble if you later add an extra double field to the record that shouldn't have been rounded and it won't be obvious at the definition site that someone might be doing something so careless |
| 17:29:31 | → | Wamanuz joins (~wamanuz@78-70-34-81-no84.tbcn.telia.com) |
| 17:29:41 | <ski> | you could define a traversal |
| 17:30:20 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) |
| 17:30:40 | <ski> | traverseMyDoubles :: Applicative f => (Double -> f Double) -> MyRecord -> f MyRecord |
| 17:30:41 | <ep1ctetus> | glguy: that makes sense. It's just tedious to enumerate every field. And we'll have to add to the enumeration each time we add a field |
| 17:31:08 | × | Jbreezy quits (9c1a2d12@156.26.45.18) (Quit: Connection closed) |
| 17:31:16 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds) |
| 17:31:17 | <ski> | that's the price you'd have to pay, for not automatically having every (including future) `Double's picked up |
| 17:31:46 | <ep1ctetus> | ski: I assume we would also have to enumerate all of them to define traverseMyDoubles |
| 17:31:52 | × | raym quits (~ray@45.64.220.55) (Ping timeout: 264 seconds) |
| 17:32:32 | <ski> | that's how i interpreted "enumerate every field", namely by defining `traverseMyDoubles' |
| 17:32:53 | <ski> | (would you need to enumerate them, anywhere else, too ?) |
| 17:34:25 | <ep1ctetus> | ski: right now we have a function that calls `round` on each field, it sounds like we would replace that with a call to `traverseMyDoubles` and pass the `round` function |
| 17:35:00 | <ski> | yes |
| 17:38:59 | <ep1ctetus> | ok, for now we just have a single use for this, but if we need to run more than one function on all the double's we'll do that |
| 17:39:27 | <ep1ctetus> | I'm curious, why do you have it wrapped in an Applicative? |
| 17:40:47 | <ep1ctetus> | why not: traverseMyDoubles :: (Double -> Double) -> MyRecord -> MyRecord ? |
| 17:42:12 | <ski> | to be able to do lensy stuff, e.g. like computing the sum of all the (traversed) `Double's in `MyRecord', &c. |
| 17:43:06 | <ski> | your version is just like a monomorphic version of `fmap' (for the particular "collection" and "element" type). the one i suggested is like a monomorphic version of `traverse' |
| 17:43:27 | <ski> | note that if you set `f = Identity', you get back your version |
| 17:44:00 | → | stef204 joins (~stef204@unaffiliated/stef-204/x-384198) |
| 17:44:09 | <ep1ctetus> | I see, thanks |
| 17:44:24 | <ski> | but you can use other `f's, like `Const (Sum Double)' (to just compute a sum, not reconstructing a new `MyRecord', &c. |
| 17:44:58 | <ski> | (there are lens combinators that does this specializing to different useful `f's for you, so you don't have to think much about that) |
| 17:45:24 | → | conal joins (~conal@64.71.133.70) |
| 17:47:05 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 17:50:11 | <ski> | (if you decide to also use other lens stuff, by using the above form, you can then compose your traversal with them easily. e.g. to access all your selected `Double's within the odd-indexed elements of lists, being values in some `Map', or whatever) |
| 17:50:45 | × | ukari quits (~ukari@unaffiliated/ukari) (Remote host closed the connection) |
| 17:51:17 | → | ukari joins (~ukari@unaffiliated/ukari) |
| 17:51:43 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds) |
| 17:52:16 | <ski> | myRecord & traverseMyDoubles %~ round -- would call `round' on each `Double' |
| 17:53:47 | × | neiluj quits (~jco@91-167-203-101.subs.proxad.net) (Remote host closed the connection) |
| 17:55:16 | × | geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds) |
| 17:55:24 | × | cfricke quits (cfricke@gateway/vpn/mullvad/cfricke) (Quit: WeeChat 3.0) |
| 17:55:56 | × | xff0x quits (~xff0x@2001:1a81:53a3:2a00:11b1:198b:f2c6:97cd) (Ping timeout: 240 seconds) |
| 17:56:25 | → | metro joins (~Thunderbi@unaffiliated/metreo) |
| 17:56:56 | → | Deewiant joins (~deewiant@de1.ut.deewiant.iki.fi) |
| 17:57:09 | → | cfricke joins (cfricke@gateway/vpn/mullvad/cfricke) |
| 17:57:10 | → | frozenErebus joins (~frozenEre@94.128.80.70) |
| 17:57:12 | → | xff0x joins (~xff0x@2001:1a81:53a3:2a00:2952:f390:3ed9:c90f) |
| 17:57:34 | × | metreo quits (Thunderbir@gateway/vpn/mullvad/metreo) (Ping timeout: 260 seconds) |
| 17:57:36 | metro | is now known as metreo |
| 17:58:43 | → | tsaka__ joins (~torstein@athedsl-258913.home.otenet.gr) |
| 17:59:02 | × | metreo quits (~Thunderbi@unaffiliated/metreo) (Client Quit) |
| 17:59:16 | → | metreo joins (~Thunderbi@unaffiliated/metreo) |
| 17:59:29 | × | soft-warm quits (4408f588@ip68-8-245-136.sd.sd.cox.net) (Ping timeout: 248 seconds) |
| 18:00:47 | × | nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds) |
| 18:01:10 | → | nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
| 18:04:30 | → | d3od joins (~nickmeno3@78-0-101-252.adsl.net.t-com.hr) |
| 18:05:22 | × | tsaka__ quits (~torstein@athedsl-258913.home.otenet.gr) (Ping timeout: 246 seconds) |
| 18:05:56 | × | niekvandepas quits (~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection) |
| 18:06:28 | → | soft-warm joins (4408f588@ip68-8-245-136.sd.sd.cox.net) |
| 18:06:29 | → | niekvandepas joins (~niekvande@dhcp-077-249-088-250.chello.nl) |
| 18:06:30 | × | elliott_ quits (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 272 seconds) |
| 18:07:28 | × | nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds) |
| 18:07:34 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 18:10:31 | → | elliott_ joins (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) |
| 18:10:39 | → | nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
| 18:11:24 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
| 18:11:28 | × | niekvandepas quits (~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 264 seconds) |
| 18:12:45 | × | rajivr quits (uid269651@gateway/web/irccloud.com/x-xfgarcdyypwphfai) (Quit: Connection closed for inactivity) |
| 18:12:47 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 18:12:50 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds) |
| 18:15:02 | × | d3od quits (~nickmeno3@78-0-101-252.adsl.net.t-com.hr) (Remote host closed the connection) |
| 18:15:39 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 18:18:21 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
| 18:18:42 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 18:19:08 | × | ubert quits (~Thunderbi@p200300ecdf25d943e6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 18:19:08 | → | neiluj joins (~jco@91-167-203-101.subs.proxad.net) |
| 18:19:08 | × | neiluj quits (~jco@91-167-203-101.subs.proxad.net) (Changing host) |
| 18:19:08 | → | neiluj joins (~jco@unaffiliated/neiluj) |
| 18:21:09 | → | ubert joins (~Thunderbi@p200300ecdf25d943e6b318fffe838f33.dip0.t-ipconnect.de) |
| 18:24:09 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
| 18:24:48 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 18:27:46 | × | Graf_Blutwurst quits (~grafblutw@2001:171b:226e:adc0:ccb1:a006:be48:6a3e) (Quit: WeeChat 3.0) |
| 18:28:28 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 18:30:35 | → | raym joins (~ray@45.64.220.55) |
| 18:31:53 | <hololeap> | i'm looking for a way to change this cabal file so that `data-files` can be toggled with a flag: https://hackage.haskell.org/package/fourmolu-0.3.0.0/fourmolu.cabal |
| 18:32:09 | → | darccc-aster joins (~darccc-as@ool-18bcd822.dyn.optonline.net) |
| 18:32:16 | <darccc-aster> | hello |
| 18:32:36 | × | darccc-aster quits (~darccc-as@ool-18bcd822.dyn.optonline.net) (Client Quit) |
| 18:32:48 | <merijn> | hololeap: eh...why? |
| 18:33:01 | <glguy> | hololeap: I wouldn't expect to be able to change the data files with a flag since because sdist needs to know all the files in a package independent of flags |
| 18:33:07 | <koz_> | I'm trying to come up with 'Foo p a b' such that: Foo p is a Profunctor and Category irrespective of p, and 'Foo p a' is a Functor and Applicative, again irrespective of p. |
| 18:33:19 | <koz_> | I can't quite find the thing I need anywhere, but whenever I try to write it, I trip. |
| 18:33:22 | <glguy> | but maybe sdist just takes the union of all of them or something (I'm just guessing) |
| 18:33:32 | <koz_> | A naive representation is fine - I don't need a final encoding or anything like that. |
| 18:33:40 | <merijn> | glguy: I don't think you can use flags at the top level |
| 18:33:42 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 18:33:43 | <koz_> | Can someone help? Do you happen to know dolio? |
| 18:33:51 | <merijn> | glguy: And that's a change I can already tell you will never go in :p |
| 18:33:54 | <monochrom> | Then again, maybe the flag just has to control which data files are installed upon "cabal install" |
| 18:34:10 | <hololeap> | i'm packaging it for gentoo, and i'd like to be able to make those examples optional with a flag |
| 18:34:14 | <merijn> | monochrom: Those already exist in Cabal/Setup.hs |
| 18:34:45 | <hololeap> | i could patch the cabal file to remove those lines, but i'd like a solution using cabal |
| 18:34:53 | × | ubert quits (~Thunderbi@p200300ecdf25d943e6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 18:35:14 | <hololeap> | merijn: which flags are you talking about? |
| 18:35:27 | <merijn> | hololeap: --datadir |
| 18:35:47 | <merijn> | hololeap: Not installing data files is not an option and I wouldn't hold my breathe for it if I were you |
| 18:35:51 | <monochrom> | That only controls which directory. |
| 18:35:52 | → | shatriff joins (~vitaliish@176-52-216-242.irishtelecom.com) |
| 18:36:06 | <merijn> | hololeap: This seems trivially solved by "not including the datadir in the gentoo package" |
| 18:36:09 | <merijn> | monochrom: Sure |
| 18:36:22 | <merijn> | monochrom: As it should be |
| 18:36:44 | <merijn> | Not including them in an OS package is trivial |
| 18:37:11 | <merijn> | monochrom: "runghc Setup.hs --datadir=foo/ && rm -r foo && continue packaging" |
| 18:37:43 | <monochrom> | Interesting trick. |
| 18:38:11 | <merijn> | To be argued "Real Soon (TM)" in my blogpost series called "Cabal is right and you are wrong, stop bitching and trying to make CABAL worse because you are lazy" >.> |
| 18:38:53 | <merijn> | Other highlights to include: wildcard/autogenerated module lists, 90% of all uses of flags on Hackage, and not writing down upperbounds |
| 18:39:20 | <monochrom> | I just think you could have said the part about "rm -r" earlier. |
| 18:39:31 | <merijn> | monochrom: That seems fairly obvious, though? |
| 18:39:36 | <monochrom> | No. |
| 18:39:40 | <dolio> | koz_: Well, there's always a formulaic way to try if you don't mind relying on type class 'convention'. |
| 18:39:45 | → | viluon joins (uid453725@gateway/web/irccloud.com/x-nehqwnpkvzlvoyom) |
| 18:39:50 | <koz_> | dolio: Explain? |
| 18:39:56 | → | darccc-aster joins (~darccc-as@ool-18bcd822.dyn.optonline.net) |
| 18:40:12 | <merijn> | monochrom: "I don't wanna include files X?" 'So, remove them before finishing your packaging...' is not obvious? |
| 18:40:36 | <monochrom> | counterstrike: From how I responded to you back then, it seemed very obvious to you that your suggestion was not obvious to me, ja? |
| 18:41:12 | <dolio> | data Foo p a b = Foo (forall r. (Profunctor r, Category r, Applicative (r a)) => (forall x y. p x y -> r x y) -> r a b) |
| 18:41:23 | merijn | shrugs |
| 18:41:24 | <koz_> | dolio: Yeah, that's a final encoding right? |
| 18:41:40 | <hololeap> | <merijn> hololeap: This seems trivially solved by "not including the datadir in the gentoo package" -- yes, that's the other option besides patching, but it's also ~1100 files that cabal copies over by default, which then need to be removed |
| 18:41:54 | <koz_> | It's similar to the ones for Alt and Ap in free, with .Final module names. |
| 18:42:06 | <merijn> | hololeap: That sounds like a reason to open a PR to the package author to "not do that" then? |
| 18:42:07 | <hololeap> | not a huge deal, but it merited looking for another alternative |
| 18:42:34 | <merijn> | hololeap: If the author is including 1100 data files that seems...dumb |
| 18:42:40 | <dolio> | It is using a formula for right Kan extensions. There should be an analogous left one, too. |
| 18:42:43 | × | nly quits (~user@unaffiliated/nly) (Remote host closed the connection) |
| 18:42:56 | → | s00pcan joins (~chris@075-133-056-178.res.spectrum.com) |
| 18:43:06 | <hololeap> | merijn: what would you suggest to them instead? |
| 18:43:21 | <geekosaur> | separate package |
| 18:43:30 | <dolio> | Basically you want `forall (r:Special). r^(p ~> r)` |
| 18:43:38 | <geekosaur> | foo-examples packages aren't that uncommon |
| 18:43:50 | <merijn> | hololeap: "Don't include so many examples in a package"? :p |
| 18:43:52 | × | nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds) |
| 18:44:03 | × | superstar64 quits (6ccefa7c@108-206-250-124.lightspeed.miamfl.sbcglobal.net) (Quit: Connection closed) |
| 18:44:30 | <merijn> | OTOH, I'm torn, because I'm wholly in favour of anything that makes packaging auto-formatters harder :p |
| 18:44:58 | <merijn> | "auto-formatters are bad" is the controversial and unpopular hill I will die on! |
| 18:45:03 | → | nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
| 18:45:03 | → | juuandyy joins (~juuandyy@90.106.228.121) |
| 18:45:23 | <monochrom> | In the case of examples, I would take the stance of unconditionally including them in the distro package. |
| 18:45:46 | → | pavonia joins (~user@unaffiliated/siracusa) |
| 18:45:53 | → | niekvandepas joins (~niekvande@dhcp-077-249-088-250.chello.nl) |
| 18:45:54 | <merijn> | hololeap: tbh, I'm not even sure what the point of those examples is? Is it what source will look like after formatting? Why is that in the package? Maybe it's tests? |
| 18:45:59 | × | elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 260 seconds) |
| 18:46:32 | <merijn> | monochrom: In principle yes, but I can't even figure out what these "examples" are examples off... |
| 18:46:45 | <dolio> | The other one is `exists (r:Special). (r ~> p) * r` |
| 18:47:35 | → | Major_Biscuit joins (~Major_Bis@82-169-100-198.biz.kpn.net) |
| 18:48:10 | <monochrom> | I think you would be amicable to the idea of making any auto-formatter package look like bloatware. :) |
| 18:48:36 | <merijn> | monochrom: Well, yes, that's what I said above in my "I'm torn" comment ;) |
| 18:48:57 | → | LKoen joins (~LKoen@19.175.9.109.rev.sfr.net) |
| 18:49:13 | <koz_> | dolio: r:Special is a constraint? |
| 18:49:15 | <dolio> | And the point is that `Special` means you constrain `r`, and the construction works point-wise. So like, since `Foo p = forall r. r^(p ~> r) :: * -> * -> *` in this case, we do: `Foo p a b = forall r. (p ~> r) -> r a b`. |
| 18:49:22 | <koz_> | Ah. |
| 18:49:59 | <dolio> | Special is like, "I want the category of things that are Profunctors, Categories, and Applicative wrt. to their second argument." |
| 18:50:11 | × | fendor quits (~fendor@178.165.129.60.wireless.dyn.drei.com) (Remote host closed the connection) |
| 18:50:23 | <dolio> | Instead of just * -> * -> *. |
| 18:50:31 | <koz_> | Ah, right. |
| 18:50:56 | <dolio> | So you are quantifying only over those. |
| 18:51:14 | <koz_> | So what that is basically saying 'if you can NT p into _anything_ in that Special category, I can give you the same structure, but over that thing in the Special category.'? |
| 18:51:57 | → | fendor joins (~fendor@178.165.129.60.wireless.dyn.drei.com) |
| 18:51:58 | <dolio> | Yeah. |
| 18:52:05 | <koz_> | (I am probably getting the vocabulary wrong, so apologies if so) |
| 18:52:17 | <koz_> | (my knowledge of category theory anything fits on a postage stamp) |
| 18:52:42 | <koz_> | But then what about the 'naive' encodings, like naive Free, or Ap, or Alt? |
| 18:52:51 | <koz_> | I assume there's no 'systemic' way to roll those? |
| 18:52:57 | <dolio> | Which ones are naive? |
| 18:53:31 | <dolio> | If you want some more explicit construction, you need to figure it out and prove it equivalent to the formula, basically. |
| 18:53:46 | <koz_> | Say, this one: http://hackage.haskell.org/package/free-5.1.6/docs/Control-Applicative-Free.html |
| 18:53:56 | <koz_> | As opposed to: http://hackage.haskell.org/package/free-5.1.6/docs/Control-Applicative-Free-Final.html |
| 18:54:01 | <koz_> | (which uses the method you talked about) |
| 18:54:34 | <dolio> | Yeah. I don't know of a formula for figuring that out. |
| 18:54:44 | × | nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 260 seconds) |
| 18:54:45 | <koz_> | dolio: OK, thanks. |
| 18:54:51 | <koz_> | I'll have a think and see. |
| 18:55:03 | <dolio> | For monads it's a recognition that you are composing F with itself arbitrarily many times. |
| 18:55:17 | <dolio> | For applicatives it is placing many Fs beside one another in a list. |
| 18:55:23 | <koz_> | And for Alternatives, it's a list of Applicative 'choices'? |
| 18:55:34 | <koz_> | (which can be empty) |
| 18:56:11 | darccc-aster | is now known as C4ladbolg |
| 18:56:54 | × | niekvandepas quits (~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection) |
| 18:57:03 | × | C4ladbolg quits (~darccc-as@ool-18bcd822.dyn.optonline.net) (Quit: C4ladbolg) |
| 18:57:05 | × | soft-warm quits (4408f588@ip68-8-245-136.sd.sd.cox.net) (Quit: Connection closed) |
| 18:57:20 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 18:57:31 | → | niekvandepas joins (~niekvande@dhcp-077-249-088-250.chello.nl) |
| 18:57:42 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 18:57:52 | × | aveltras quits (uid364989@gateway/web/irccloud.com/x-bkzrcfsztuusppij) (Quit: Connection closed for inactivity) |
| 18:57:58 | → | soft-warm joins (4408f588@ip68-8-245-136.sd.sd.cox.net) |
| 18:58:12 | → | darccc-aster joins (~darccc-as@ool-18bcd822.dyn.optonline.net) |
| 18:58:19 | ← | darccc-aster parts (~darccc-as@ool-18bcd822.dyn.optonline.net) () |
| 18:58:23 | <dolio> | When you combine something like Category and Applicative, it's not immediately clear what kind of structure to keep track of. |
| 18:58:53 | <koz_> | Yeah. It's not helped by the fact that Category wants Type -> Type -> Type, but Applicative Type -> Type. |
| 18:59:09 | <koz_> | Something that's freely Profunctor and Category is fairly straightforward. |
| 18:59:16 | <dolio> | It's two different sorts of putting things next to each other in order. |
| 19:00:04 | × | ph88^ quits (~ph88@ip5f5af71a.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds) |
| 19:01:43 | × | frozenErebus quits (~frozenEre@94.128.80.70) (Ping timeout: 246 seconds) |
| 19:01:45 | × | niekvandepas quits (~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 240 seconds) |
| 19:02:23 | <hololeap> | monochrom: unfortunately it is an optional dependency of haskell-language-server, so i have to make a package for it |
| 19:02:25 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds) |
| 19:02:45 | → | C4ladbolg joins (~darccc-as@ool-18bcd822.dyn.optonline.net) |
| 19:03:03 | <merijn> | Clearly I have a very different interpretation of "optional" :p |
| 19:03:08 | <monochrom> | Yeah, but I don't think it's worth your time making the example files optional. |
| 19:03:14 | → | dddddd_ joins (~dddddd@unaffiliated/dddddd) |
| 19:03:34 | → | berberman joins (~berberman@unaffiliated/berberman) |
| 19:03:36 | × | dhouthoo quits (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) (Quit: WeeChat 3.0) |
| 19:04:05 | → | wonko7 joins (~wonko7@2a01:e34:ec7b:7040:7096:fa79:315b:1372) |
| 19:04:14 | × | berberman_ quits (~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds) |
| 19:04:22 | <monochrom> | 1. How many people actually care? 0. I believe in "put your money where your mouth is". So, by "care", I mean would they pay you on Patreon if you did it? |
| 19:05:11 | <merijn> | monochrom: oh, you'd like this essay I read years ago :) |
| 19:05:11 | <monochrom> | To be fair, I don't have any understanding of gentoo user logic. So meh. |
| 19:05:15 | <hololeap> | i created a patch for the cabal file, which is toggled with a gentoo flag. this seems to be the best option |
| 19:05:41 | <merijn> | monochrom: It was titled "Money is the universal unit of caring" :) |
| 19:06:31 | × | dddddd quits (~dddddd@unaffiliated/dddddd) (Ping timeout: 256 seconds) |
| 19:07:47 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 19:08:12 | → | conal joins (~conal@64.71.133.70) |
| 19:08:15 | <monochrom> | In my case, I developed that attitude over a long time gradually from various inputs. But two highlights. |
| 19:08:30 | × | conal quits (~conal@64.71.133.70) (Client Quit) |
| 19:08:44 | <merijn> | My appreciation/internalising of that topic are more "lowlights" than highlights :p |
| 19:09:00 | × | Boomerang_ quits (~Boomerang@xd520f68c.cust.hiper.dk) (Quit: Leaving) |
| 19:09:17 | × | Boom_Rang quits (~Boomerang@2a05:f6c7:2179:0:c036:de39:661c:4d95) (Quit: AndroIRC - Android IRC Client ( http://www.androirc.com )) |
| 19:09:29 | <monochrom> | The ObHaskell one is seeing Windows GHC users whining "GHC is not ready for prime time", and upon detailed reading of their messages, they mean (and sometimes they wrote explicitly) "this is blocking me from making money". |
| 19:09:38 | → | mouseghost joins (~draco@wikipedia/desperek) |
| 19:09:41 | <monochrom> | Heh |
| 19:09:42 | × | geekosaur quits (82650c7c@130.101.12.124) (Quit: Connection closed) |
| 19:10:01 | <merijn> | Which essentially boil down to "we should do something about the mental health situation of our phds! any suggestions?" 'well, here's a short list of fairly simple things' "oh, lol, we meant without actually spending money and ideally something we can blame on phds/tenure trackers for not doing" |
| 19:10:09 | → | dnlkrgr joins (~dnlkrgr@HSI-KBW-046-005-005-235.hsi8.kabel-badenwuerttemberg.de) |
| 19:10:28 | × | jespada quits (~jespada@90.254.242.138) (Ping timeout: 272 seconds) |
| 19:10:36 | → | ph88^ joins (~ph88@2a02:8109:9e00:7e5c:6c28:450f:9830:3db8) |
| 19:11:03 | <monochrom> | The humorous one is https://xkcd.com/1132/ |
| 19:11:20 | → | conal joins (~conal@64.71.133.70) |
| 19:11:25 | <merijn> | But hey! Who gives a shit of tenure trackers are all burning out and phds have clinical depression and burnout at twice the rate of the average populace! \o/ |
| 19:11:36 | × | conal quits (~conal@64.71.133.70) (Client Quit) |
| 19:12:14 | → | jespada joins (~jespada@90.254.242.138) |
| 19:12:30 | → | conal joins (~conal@64.71.133.70) |
| 19:12:46 | <merijn> | We should just ban academia under the Geneva convention >.> |
| 19:12:54 | → | nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
| 19:13:21 | <Uniaika> | merijn: when is your thesis jury? |
| 19:13:40 | <merijn> | Uniaika: Have they not heard of trigger warnings where you live? :( |
| 19:13:46 | <monochrom> | Ugh, friends don't ask friends that question :) |
| 19:13:54 | <pjb> | merijn: I fail to see the justification? Is academia torture? |
| 19:13:58 | → | niekvandepas joins (~niekvande@dhcp-077-249-088-250.chello.nl) |
| 19:14:01 | <merijn> | pjb: Yes |
| 19:14:46 | <merijn> | I'm honestly not even joking when I say that academia is just abusive relationships distilled and perfected to an art form |
| 19:16:17 | <aldum> | sounds about right |
| 19:17:08 | <merijn> | aldum: I might have said that was just the finishing up part of your thesis, but my copromotor was a tenure tracker and I wouldn't wish that upon my enemies >.> |
| 19:17:16 | × | nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
| 19:17:58 | <monochrom> | OK, I'm just as guilty, but it's time to remind us of #haskell-offtopic |
| 19:18:26 | × | stree_ quits (~stree@50-108-110-177.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception) |
| 19:18:26 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection) |
| 19:18:40 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 19:18:45 | → | stree joins (~stree@50-108-110-177.adr01.mskg.mi.frontiernet.net) |
| 19:19:12 | <Uniaika> | merijn: oops sorry :( |
| 19:19:30 | <Uniaika> | I thought the hard limit was "don't ask a new doctoral student their thesis subject" |
| 19:20:47 | × | juuandyy quits (~juuandyy@90.106.228.121) (Quit: Konversation terminated!) |
| 19:21:47 | × | Sonderblade quits (~helloman@94.191.137.103.mobile.tre.se) (Read error: Connection reset by peer) |
| 19:22:04 | → | Sonderblade joins (~helloman@94.191.137.103.mobile.tre.se) |
| 19:27:23 | → | nak_cuthill[m] joins (nakcuthill@gateway/shell/matrix.org/x-cabzdeunviavraxd) |
| 19:27:36 | → | tzh joins (~xax@c-24-21-73-154.hsd1.or.comcast.net) |
| 19:28:02 | → | nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
| 19:28:28 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood) |
| 19:29:43 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 19:29:46 | → | geekosaur joins (82650c7c@130.101.12.124) |
| 19:29:58 | × | shatriff quits (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection) |
| 19:30:28 | → | elfets joins (~elfets@2002:25c9:1760:0:f1f5:a00b:b4e:bbc1) |
| 19:30:41 | ← | nak_cuthill[m] parts (nakcuthill@gateway/shell/matrix.org/x-cabzdeunviavraxd) ("User left") |
| 19:32:25 | × | nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
| 19:33:17 | → | Klumben joins (Nsaiswatch@gateway/shell/panicbnc/x-fknfgxuqgasbqquy) |
| 19:33:42 | × | cafce25 quits (~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de) (Quit: Lost terminal) |
| 19:33:47 | <geekosaur> | in this channel (and #ghc for that matter) the thesis subject is often on topic, so I'd expect other limitations (—with only half a smiley) |
| 19:34:16 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 19:35:20 | → | SolarAquarion joins (SolarAquar@gateway/shell/panicbnc/x-ewqhcftneclrtzod) |
| 19:35:27 | × | rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 268 seconds) |
| 19:35:45 | × | Sonderblade quits (~helloman@94.191.137.103.mobile.tre.se) (Ping timeout: 240 seconds) |
| 19:36:52 | → | cafce25 joins (~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de) |
| 19:37:10 | → | borne joins (~fritjof@200116b8649a410007ed1b620c579d22.dip.versatel-1u1.de) |
| 19:39:04 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
| 19:39:24 | → | nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
| 19:39:50 | × | Franciman quits (~francesco@host-95-235-155-82.retail.telecomitalia.it) (Quit: Leaving) |
| 19:41:21 | <ph88^> | what are superclasses ? |
| 19:42:30 | <ski> | restrictions/constraints that the parameters of a class has to obey, in order for one to be able to declare an instance of the type class, with some particular parameters |
| 19:44:07 | <ski> | e.g. `Ord a' has `Eq a' as super-class constraint. this means (a) for every type `T' for which you declare an instance `Ord T', there must also be an instance `Eq T' declared; and (b) when you have both an `Ord a' and an `Eq a' constraint on an overloaded operation, you can omit the `Eq a', since it follows from the `Ord a' one |
| 19:44:19 | × | nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 260 seconds) |
| 19:45:05 | <ski> | in the case of `Ord', `Eq' is a superclass since being able to compare values for ordering implies being able to compare them for equality. if you can check order, you can already check equality |
| 19:45:36 | <texasmynsted> | Okay. Any refactoring advice before I simply jump in? |
| 19:46:02 | <ph88^> | thanks ski :) |
| 19:46:10 | <ski> | (and so, there's no point in not requiring `Eq', since you can always make such an instance, if you can make an `Ord' instance .. and doing so will cut down on how many constraints you have to type in signatures of overloaded operations, which helps brevity) |
| 19:46:12 | <texasmynsted> | I have some code where one module is almost 600 lines. I can clearly be divided into many smaller modules |
| 19:46:15 | <ski> | @src Ord |
| 19:46:15 | <lambdabot> | class (Eq a) => Ord a where |
| 19:46:16 | <lambdabot> | compare :: a -> a -> Ordering |
| 19:46:16 | <lambdabot> | (<), (<=), (>), (>=) :: a -> a -> Bool |
| 19:46:16 | <lambdabot> | max, min :: a -> a -> a |
| 19:46:24 | <texasmynsted> | s/I/It/ |
| 19:46:37 | → | ADG1089__ joins (~aditya@223.226.145.125) |
| 19:46:44 | <ski> | texasmynsted : perhaps put common types in a `Blah.Types' module ? |
| 19:47:09 | → | boristheblade joins (~boristheb@87-95-28-43.bb.dnainternet.fi) |
| 19:47:26 | × | wonko7 quits (~wonko7@2a01:e34:ec7b:7040:7096:fa79:315b:1372) (Ping timeout: 264 seconds) |
| 19:47:29 | <texasmynsted> | yes. I think I will try to divide into modules then try to golf down the code... |
| 19:47:58 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 19:48:04 | × | Major_Biscuit quits (~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 264 seconds) |
| 19:48:16 | <texasmynsted> | I suppose if I over module it, I can always consolidate again later. |
| 19:49:42 | <ski> | texasmynsted : often, it can help making helper operations more polymorphic than what you actually need. the extra polymorphism will (by parametricity) ensure that the implementation of the operation can't reach into innards you don't want it to be able to. sometimes, in order to do this, one can abstract out some particular concrete part (which was preventing the operation from being polymorphic), making it |
| 19:49:42 | → | Major_Biscuit joins (~Major_Bis@82-169-100-198.biz.kpn.net) |
| 19:49:48 | <ski> | a parameter instead |
| 19:50:55 | <texasmynsted> | Okay I will think in those terms |
| 19:50:57 | → | coot joins (~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl) |
| 19:51:17 | <merijn> | texasmynsted: 600 doesn't sound so bad |
| 19:52:14 | <texasmynsted> | It is not the number of lines. It is that I know there is duplication and disorder. It is difficult to see at the moment. |
| 19:52:26 | <texasmynsted> | Moving to other files does not exactly make it easier to see. |
| 19:52:32 | × | stef204 quits (~stef204@unaffiliated/stef-204/x-384198) (Quit: WeeChat 3.0) |
| 19:52:44 | <merijn> | texasmynsted: My advice for refactoring is: newtypes are a great idea, do more of those! |
| 19:53:05 | <texasmynsted> | Yes. Love newtype. I will see what I can do |
| 19:53:22 | → | catt joins (~r@31.124.181.226) |
| 19:54:24 | → | nineonin_ joins (~nineonine@50.216.62.2) |
| 19:54:35 | × | LKoen quits (~LKoen@19.175.9.109.rev.sfr.net) (Remote host closed the connection) |
| 19:55:45 | <mananamenos> | hi, in an example where there is a vector of actions (IOs is haskell) which one traverses then to execute those actions. Is there any advantage of this, I mean being able to have action in a type IO and be able to accumulate them in a vector and map over, traverse etc). versus wraping the actions in simple anonymous functions in a language like javascript? |
| 19:57:32 | × | Jesin quits (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving) |
| 19:57:41 | → | xacktm joins (xacktm@gateway/shell/panicbnc/x-wuwjorqmtuodwktb) |
| 19:57:43 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) (Ping timeout: 260 seconds) |
| 19:58:35 | <merijn> | mananamenos: In what sense? |
| 19:59:00 | <merijn> | mananamenos: I mean, in Haskell you obviously can't do that, because you can't do side-effects outside of IO |
| 20:02:46 | <mananamenos> | merijn, i dont know, just thinking :) I remember reading about how nice it is that you can use actions, IOs as data, put them in a vector, map them, etc. in haskell. But actually this is nothing special right? In javascript you wrap actions in annonomyous functions and you achieve the same. You can put those anonymous functions in vector too. Or am I missing/misunderstanding something? |
| 20:03:19 | <geekosaur> | many times those actions are pure and you don't need IO |
| 20:03:30 | <merijn> | mananamenos: Right, but in JS you can't tell the different between "a vector of functions that don't do IO" and "a vector of function that *do* do IO" |
| 20:03:53 | <mananamenos> | merijn, yes, that advantage i do understand |
| 20:04:02 | <merijn> | mananamenos: So can you do "more things" this way? No. Well, maybe, you can make a distinction that you otherwise can't |
| 20:04:25 | <mananamenos> | thank you! |
| 20:04:37 | → | quinn joins (~quinn@c-73-223-224-163.hsd1.ca.comcast.net) |
| 20:04:37 | → | wonko7 joins (~wonko7@78.199.183.4) |
| 20:04:49 | → | Jesin joins (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) |
| 20:05:33 | → | LKoen joins (~LKoen@19.175.9.109.rev.sfr.net) |
| 20:06:02 | × | borne quits (~fritjof@200116b8649a410007ed1b620c579d22.dip.versatel-1u1.de) (Ping timeout: 264 seconds) |
| 20:06:45 | × | andrei quits (~user@c-66-31-23-28.hsd1.ma.comcast.net) (Ping timeout: 240 seconds) |
| 20:07:13 | → | petersen joins (~petersen@redhat/juhp) |
| 20:07:31 | × | Major_Biscuit quits (~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 246 seconds) |
| 20:07:38 | × | ixaxaar quits (~ixaxaar@49.207.210.215) (Ping timeout: 260 seconds) |
| 20:08:15 | → | nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
| 20:10:04 | × | cafce25 quits (~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de) (Quit: leaving) |
| 20:10:31 | → | cafce25 joins (~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de) |
| 20:12:31 | <ukari> | any refactor tool recommand for do some renaming work? |
| 20:12:51 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 20:13:10 | × | nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds) |
| 20:13:11 | × | cfricke quits (cfricke@gateway/vpn/mullvad/cfricke) (Quit: WeeChat 3.0) |
| 20:13:18 | <ukari> | I fount hare but it seems not active |
| 20:13:26 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 20:13:46 | × | wpcarro_ quits (sid397589@gateway/web/irccloud.com/x-zzhkvsrdvhwinnhy) (Read error: Connection reset by peer) |
| 20:13:47 | <ski> | mananamenos : one advantage is to be able to use equational reasoning, when refactoring ? |
| 20:14:06 | → | wpcarro_ joins (sid397589@gateway/web/irccloud.com/x-zgqajpsrxalumqef) |
| 20:14:19 | × | natim87 quits (sid286962@gateway/web/irccloud.com/x-odydcenqlgwctmgx) (Ping timeout: 272 seconds) |
| 20:14:19 | × | jared-w quits (uid405292@gateway/web/irccloud.com/x-govctxymqrkyayxh) (Ping timeout: 272 seconds) |
| 20:14:19 | × | davetapley quits (sid666@gateway/web/irccloud.com/x-jurdyklfaflvzitt) (Ping timeout: 272 seconds) |
| 20:14:19 | × | Kronic quits (sid480486@gateway/web/irccloud.com/x-almohcvmnnoykmog) (Ping timeout: 272 seconds) |
| 20:14:26 | × | banjiewen__ quits (sid115913@gateway/web/irccloud.com/x-dghcdnstvrjlfegj) (Ping timeout: 264 seconds) |
| 20:14:26 | × | gOOgler quits (uid125351@gateway/web/irccloud.com/x-riiuuixzxrygbcpq) (Ping timeout: 264 seconds) |
| 20:14:39 | × | d0liver quits (sid363046@gateway/web/irccloud.com/x-omtscczkwsswnebs) (Ping timeout: 260 seconds) |
| 20:14:43 | → | nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
| 20:15:03 | × | hazard-pointer quits (sid331723@gateway/web/irccloud.com/x-qdevggjfcrxqfirm) (Ping timeout: 265 seconds) |
| 20:15:16 | → | natim87 joins (sid286962@gateway/web/irccloud.com/x-keqjykwadnvnrzdp) |
| 20:15:29 | → | banjiewen__ joins (sid115913@gateway/web/irccloud.com/x-swyinzaexfseazpo) |
| 20:15:35 | × | liquorice quits (sid267884@gateway/web/irccloud.com/x-rnqbjsuaamxzrxpj) (Ping timeout: 272 seconds) |
| 20:15:38 | × | ryjm quits (sid383513@gateway/web/irccloud.com/x-jzsjrhnsjcknljvk) (Ping timeout: 264 seconds) |
| 20:15:46 | → | davetapley joins (sid666@gateway/web/irccloud.com/x-uljdakpxqusbmkrn) |
| 20:15:55 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 20:16:01 | × | benwr____ quits (sid372383@gateway/web/irccloud.com/x-slmnyhhliphrhekz) (Ping timeout: 265 seconds) |
| 20:16:01 | → | hazard-pointer joins (sid331723@gateway/web/irccloud.com/x-jexlyihounqhstao) |
| 20:16:03 | → | liquorice joins (sid267884@gateway/web/irccloud.com/x-iprmunndccrrjvmh) |
| 20:16:17 | → | Kronic joins (sid480486@gateway/web/irccloud.com/x-hcjtgntdllwzeidr) |
| 20:16:19 | → | d0liver joins (sid363046@gateway/web/irccloud.com/x-arwegohpxpzewdwu) |
| 20:16:21 | → | jared-w joins (uid405292@gateway/web/irccloud.com/x-pxkkfiwciuetexio) |
| 20:16:48 | → | ryjm joins (sid383513@gateway/web/irccloud.com/x-ttpidntygpyuywtj) |
| 20:17:04 | → | gOOgler joins (uid125351@gateway/web/irccloud.com/x-gfilmilvhpkykezo) |
| 20:18:13 | → | benwr____ joins (sid372383@gateway/web/irccloud.com/x-wzdnlzkwvgrcsrfa) |
| 20:18:13 | × | son0p quits (~son0p@181.136.122.143) (Quit: Lost terminal) |
| 20:19:03 | <merijn> | ukari: Eh, your favourite editor? >.> |
| 20:19:16 | × | nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
| 20:19:29 | <merijn> | tbh, I'm just a luddite who just manually searches+replaces in various files |
| 20:19:55 | <ukari> | merjin: emacs |
| 20:20:12 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 20:20:14 | <ukari> | fix merjin -> merijn |
| 20:20:32 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) |
| 20:20:39 | <merijn> | ukari: No, I meant that as answer to "what tool" ;) |
| 20:21:13 | <ski> | > fix merjin |
| 20:21:15 | <lambdabot> | merijn |
| 20:21:23 | × | catt quits (~r@31.124.181.226) (Remote host closed the connection) |
| 20:21:41 | <ukari> | why lambdabot could do this right |
| 20:22:36 | <ski> | lambdabot has some kind of edit-distance spelling correct/guess thing |
| 20:22:44 | <ski> | @tyep length |
| 20:22:45 | <lambdabot> | Foldable t => t a -> Int |
| 20:23:24 | × | coot quits (~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 20:24:19 | → | Guest_47 joins (5204811b@cpc1-nott20-2-0-cust282.12-2.cable.virginm.net) |
| 20:24:24 | <hololeap> | +1 to guess thing |
| 20:24:56 | × | Guest_47 quits (5204811b@cpc1-nott20-2-0-cust282.12-2.cable.virginm.net) (Client Quit) |
| 20:25:11 | <merijn> | Pretty sure some sneaky @define happened in the background :p |
| 20:25:13 | <merijn> | :t merjin |
| 20:25:15 | <lambdabot> | error: Variable not in scope: merjin |
| 20:25:18 | <merijn> | :t fix |
| 20:25:20 | <lambdabot> | (a -> a) -> a |
| 20:25:29 | ski | glances sideways |
| 20:25:33 | merijn | smells hijinx |
| 20:25:53 | <ukari> | merijn, I don't understand 'what tool' means. my favourite editor is emacs, and I want to find a tool integrated with emacs which could do some haskell refactor works like rename a variable or a data declaration. maybe I should use HaRe |
| 20:26:17 | → | fresheyeball joins (~isaac@c-71-237-105-37.hsd1.co.comcast.net) |
| 20:26:29 | <merijn> | ukari: I was implying "using emacs' search&replace" was my recommended tool :p |
| 20:26:41 | <fresheyeball> | I am looking to run a series of IO actions |
| 20:26:48 | <fresheyeball> | only one is likely to succeed |
| 20:26:54 | <fresheyeball> | the others will fail |
| 20:26:58 | <fresheyeball> | each has the same type |
| 20:26:59 | <merijn> | fail how? |
| 20:27:04 | → | nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
| 20:27:04 | <merijn> | exception? |
| 20:27:06 | <fresheyeball> | I expect an exception |
| 20:27:08 | <fresheyeball> | yes |
| 20:27:27 | <fresheyeball> | I need to write an IO that gets the project's git hash |
| 20:27:31 | <merijn> | I think the Alternative instance of IO already does that? |
| 20:28:11 | <ukari> | :) |
| 20:28:22 | × | ADG1089__ quits (~aditya@223.226.145.125) (Remote host closed the connection) |
| 20:28:23 | × | niekvandepas quits (~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection) |
| 20:28:36 | <ski> | @type asum :: [IO a] -> IO a |
| 20:28:37 | <lambdabot> | [IO a] -> IO a |
| 20:28:52 | <merijn> | % throwIO (ErrorCall "test") <|> return True |
| 20:28:53 | <yahb> | merijn: *** Exception: test |
| 20:28:56 | <merijn> | hmm |
| 20:28:58 | → | niekvandepas joins (~niekvande@dhcp-077-249-088-250.chello.nl) |
| 20:29:00 | <merijn> | Apparently not? |
| 20:29:11 | <fresheyeball> | merijn: hmm |
| 20:29:15 | × | niekvandepas quits (~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection) |
| 20:29:17 | <opqdonut> | % guard False <> return True |
| 20:29:17 | <yahb> | opqdonut: ; <interactive>:45:16: error:; * Couldn't match type `Bool' with `()'; Expected type: f (); Actual type: f Bool; * In the second argument of `(<>)', namely `return True'; In the expression: guard False <> return True; In an equation for `it': it = guard False <> return True |
| 20:29:20 | <fresheyeball> | so it works but in reverse order |
| 20:29:28 | <opqdonut> | oh well |
| 20:29:30 | → | niekvandepas joins (~niekvande@dhcp-077-249-088-250.chello.nl) |
| 20:29:31 | × | niekvandepas quits (~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection) |
| 20:30:14 | → | niekvandepas joins (~niekvande@dhcp-077-249-088-250.chello.nl) |
| 20:30:52 | <monochrom> | Sorry, how does "reverse order" explain that? |
| 20:30:52 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 20:31:09 | → | Major_Biscuit joins (~Major_Bis@82-169-100-198.biz.kpn.net) |
| 20:31:15 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 20:31:17 | <opqdonut> | % guard False <|> return True --that's what I meant |
| 20:31:18 | <yahb> | opqdonut: ; <interactive>:46:17: error:; * Couldn't match type `Bool' with `()'; Expected type: f (); Actual type: f Bool; * In the second argument of `(<|>)', namely `return True'; In the expression: guard False <|> return True; In an equation for `it': it = guard False <|> return True |
| 20:31:45 | <opqdonut> | % guard False <|> return () --argh |
| 20:31:45 | <yahb> | opqdonut: |
| 20:31:54 | <opqdonut> | as opposed to |
| 20:32:01 | <opqdonut> | % guard False <|> guard False |
| 20:32:01 | <yahb> | opqdonut: *** Exception: user error (mzero) |
| 20:32:02 | ← | soft-warm parts (4408f588@ip68-8-245-136.sd.sd.cox.net) () |
| 20:32:16 | <opqdonut> | so at least that type of error is handled by the Alternative instance |
| 20:33:07 | <opqdonut> | https://hackage.haskell.org/package/base-4.14.1.0/docs/src/GHC.IO.html#mplusIO the implementation is via catchException |
| 20:34:40 | × | elfets quits (~elfets@2002:25c9:1760:0:f1f5:a00b:b4e:bbc1) (Quit: Leaving) |
| 20:35:52 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds) |
| 20:36:24 | <ski> | % readIO "Flase" <|> pure True |
| 20:36:25 | <yahb> | ski: True |
| 20:37:26 | × | fendor quits (~fendor@178.165.129.60.wireless.dyn.drei.com) (Remote host closed the connection) |
| 20:38:03 | <hololeap> | % :i readIO |
| 20:38:04 | <yahb> | hololeap: readIO :: Read a => String -> IO a -- Defined in `System.IO' |
| 20:38:33 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 20:39:05 | <geekosaur> | throws a synchronous IO exception with throwIO instead of using error, I think |
| 20:39:40 | × | Rudd0 quits (~Rudd0@185.189.115.103) (Ping timeout: 264 seconds) |
| 20:42:42 | → | kobaam joins (~manjaro-u@2601:285:c000:a6c0::4713) |
| 20:42:56 | × | Major_Biscuit quits (~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 240 seconds) |
| 20:42:58 | × | niekvandepas quits (~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection) |
| 20:43:16 | <kobaam> | How might I get an object out of a key value pair like so: pesuedo code:get f from |
| 20:43:23 | <kobaam> | sorry, hit enter too soon |
| 20:43:33 | → | niekvandepas joins (~niekvande@dhcp-077-249-088-250.chello.nl) |
| 20:44:25 | <kobaam> | `get f from [('a',22),('b',33),('f',81)]` would return 81 |
| 20:44:48 | <geekosaur> | :t Data.List.lookup |
| 20:44:49 | <lambdabot> | Eq a => a -> [(a, b)] -> Maybe b |
| 20:45:35 | <merijn> | kobaam: Although you probably want Map from containers rather than lookup |
| 20:45:41 | <merijn> | @hackage containers |
| 20:45:41 | <lambdabot> | https://hackage.haskell.org/package/containers |
| 20:47:19 | → | shatriff joins (~vitaliish@176-52-216-242.irishtelecom.com) |
| 20:47:36 | × | niekvandepas quits (~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 240 seconds) |
| 20:48:16 | × | deviantfero quits (~deviantfe@190.150.27.58) (Ping timeout: 240 seconds) |
| 20:48:47 | <koz_> | Yeah, don't use assoc lists, they're not great dictionaries. |
| 20:50:41 | × | shatriff quits (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection) |
| 20:50:53 | → | usr25 joins (~usr25@unaffiliated/usr25) |
| 20:52:06 | <kobaam> | It's a really simple static use case, but if I ever need something more dynamic, I'll look into it |
| 20:52:18 | <kobaam> | really it's just about keeping a namespace clean |
| 20:53:22 | <geekosaur> | it's not so much about static, as about how much it'll suck with more than about 5 entries in it |
| 20:53:44 | <kobaam> | noted |
| 20:55:29 | <merijn> | kobaam: Basically, Map is a proper dictionary type like you'd see in other languages, whereas "list of tuples" is just a terrible O(n) complexity nightmare :p |
| 20:56:14 | <monochrom> | On the bright side, a list takes less space than a binary tree. |
| 20:56:46 | <ij> | if I have a small Map that is used for lookups very often, but isn't referenced by gc roots, then will it be constantly created because of use / deleted by gc back and forth? |
| 20:56:46 | → | geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
| 20:57:12 | <merijn> | ij: Anyway, as I said in -offtopic |
| 20:57:16 | merijn | presses X to doubt |
| 20:57:29 | <merijn> | You cannot use things that aren't referenced by gc roots |
| 20:57:31 | <monochrom> | How do you know it isn't referenced by GC roots? |
| 20:57:42 | <ij> | merijn, re X: haha |
| 20:57:54 | <ij> | well, it is my undeveloped understanding of gc roots that says so |
| 20:58:05 | <geekosaur> | I was wondring that one as well (about gc roots) |
| 20:58:16 | <merijn> | ij: anything *transitively* referenced from a GC root is part of that root |
| 20:58:28 | × | _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
| 20:58:33 | <merijn> | ij: If you have a name/reference to something it is, by definition referenced from a GC root |
| 20:58:40 | <ij> | it is never referenced in the data, it's only used to compute something to be stored |
| 20:58:51 | <monochrom> | I was hoping that you would explain, step by step, no grossing over, and then you would see your error. |
| 20:59:27 | <monochrom> | Instead, using "it's my undeveloped understanding" for grossing over is counterproductive. |
| 20:59:35 | <ij> | monochrom, :) I was just making sure I discredit myself as a noob first |
| 20:59:37 | <geekosaur> | if it's not reachable from a gc root, it's not reachable at all and will be garbage collected. if you mean you are repeatedly creating a map inside some function (that s, foo x = let bar = M.fromList whatever … in …), then you want to find some way to make it persistent |
| 20:59:55 | <ij> | monochrom, data. it won't be in the data, it will only be in the code |
| 21:00:11 | <geekosaur> | unless it's small in which case it may not be worth persisting it |
| 21:01:02 | <merijn> | ij: Anything referenced by code/the stack is referenced, because the code *is* a GC root |
| 21:01:14 | <kobaam> | another thing, if I'm certain that something will return a Maybe value, but need for it to return a non maybe answer. How would I do so? I've tried using Just, but that didn't do the trick |
| 21:01:27 | <monochrom> | You can use Debug.Trace stuff to observe re-computation. |
| 21:01:43 | <ij> | monochrom, forgot about trying that |
| 21:01:46 | <fresheyeball> | merijn: ok so <|> just doesn't work for this |
| 21:01:53 | <ij> | geekosaur, ah, but it is defined in top level |
| 21:02:05 | <monochrom> | If something isn't re-computed despite multiple runtime uses, then you know it's retained. |
| 21:02:06 | <merijn> | ij: The top level is *also* a GC root |
| 21:02:10 | <geekosaur> | then it's a gc root |
| 21:02:38 | <ij> | so even if I don't use it, it's going to be evaluated in this case? |
| 21:02:48 | <merijn> | what? |
| 21:02:55 | <geekosaur> | evaluation is unrelated to gc roots |
| 21:02:57 | <fresheyeball> | I really just want Haskell to keep trying IO's until we get to the end |
| 21:03:29 | → | niekvandepas joins (~niekvande@dhcp-077-249-088-250.chello.nl) |
| 21:03:29 | <fresheyeball> | (putStrLn "foo" >> error "oof") <|> return "bar" |
| 21:03:35 | <fresheyeball> | does try the first Monad |
| 21:03:37 | <ij> | merijn, if you don't create it, there's no need to collect it |
| 21:03:41 | <fresheyeball> | but it never trys the second |
| 21:03:52 | <fresheyeball> | in this case, I am looking to get "bar" |
| 21:04:07 | <ij> | but I guess that doesn't make sense |
| 21:04:24 | <monochrom> | Perhaps you should look into which exceptions <|> catches and which others <|> looks the other way. |
| 21:04:36 | <geekosaur> | ij, you still have a thunk that can be garbage collected |
| 21:04:53 | <fresheyeball> | monochrom: it just appears to not continue |
| 21:04:59 | <fresheyeball> | when it hits an error, it's an error |
| 21:05:09 | <ij> | geekosaur, but it still wouldn't, because it's top level... |
| 21:05:14 | <ij> | *at the |
| 21:05:15 | <fresheyeball> | which makes sense with my intuition from the Maybe instance of <|> |
| 21:05:21 | <geekosaur> | except that here it's a top level CAF so won't be, it'll just be a thunk that sits around |
| 21:05:22 | <merijn> | ij: Why wouldn't top level things be able to be GCed? |
| 21:05:24 | → | elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
| 21:05:30 | <dolio> | fresheyeball: That's not a thrown exception. It's an undefined IO value. |
| 21:05:33 | <monochrom> | Then how do you explain ski's readIO example? |
| 21:05:39 | <monochrom> | <ski> % readIO "Flase" <|> pure True |
| 21:05:39 | <monochrom> | <yahb> ski: True |
| 21:05:42 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: Lost terminal) |
| 21:05:51 | <ij> | merijn, able to, but you/geekosaur said that it's a GC root |
| 21:05:59 | <fresheyeball> | dolio: I don't understand, ghci says it's an exception |
| 21:06:18 | <ij> | still collectable, though. wasn't saying that :) |
| 21:06:26 | <merijn> | ij: GC roots can disappear |
| 21:06:31 | → | kaboom joins (~manjaro-u@2601:285:c000:a6c0::4713) |
| 21:06:32 | <merijn> | They're not fixed forever |
| 21:06:43 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 21:06:56 | → | coot joins (~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl) |
| 21:07:02 | <ij> | how? when? |
| 21:07:02 | <merijn> | When GC is triggered you identify the roots and anything (transitively) referenced from the roots is alive |
| 21:07:04 | <dolio> | fresheyeball: What you wrote is like saying _what_ to do is undefined. It's not saying that what to do is throw an exception. |
| 21:07:11 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 21:07:15 | <geekosaur> | in the example I gave earlier, bar was a gc root but it went away when an activation of foo went away |
| 21:07:39 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 21:07:50 | <geekosaur> | moer precisely it went away when the value of the second … was fully evaluated with respect to bar |
| 21:07:56 | <ij> | geekosaur, missed that message, I'll read it now |
| 21:08:03 | <ij> | got lost amidst other |
| 21:08:15 | <dolio> | (<|>) recovers from throwing exceptions as well-defined IO actions, not from undefined IO actions. |
| 21:08:26 | <ij> | or at least the code I didn't notice |
| 21:08:52 | <geekosaur> | it just defined a list inside a function, such that it only exists while the function is being evaluated. which is a bit more complicated than it sounds in the face of lazy evaluation, but it's still only a temporary gc root |
| 21:09:04 | × | mananamenos quits (~mananamen@84.122.202.215.dyn.user.ono.com) (Ping timeout: 264 seconds) |
| 21:09:08 | <geekosaur> | well, a map |
| 21:09:47 | <fresheyeball> | dolio: you are right! |
| 21:09:56 | <fresheyeball> | what a subtle little distinction |
| 21:10:07 | <fresheyeball> | readFile "bad" <|> return "foo" |
| 21:10:13 | <fresheyeball> | does provide "foo" |
| 21:10:18 | × | coot quits (~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl) (Client Quit) |
| 21:10:25 | <geekosaur> | actually it's not a gc root, come to think of it, since it's reachable via the expression |
| 21:10:26 | × | kobaam quits (~manjaro-u@2601:285:c000:a6c0::4713) (Ping timeout: 240 seconds) |
| 21:10:59 | <geekosaur> | roots are how the whole thing gets started, else no data would ever be gc-d |
| 21:11:39 | <fresheyeball> | dolio:++ |
| 21:11:48 | <ij> | geekosaur, so, if I have f x = g x; main = mapM (\x -> print $ if odd x then f x else 0) [1..] |
| 21:12:25 | <ij> | sometimes the GC could be started when evaluation of print was when x is even, so g wouldn't be accessible |
| 21:12:36 | <ij> | would g then be picked up, if it's a function that uses a Map? |
| 21:12:44 | <ij> | I mean the map that's used in g |
| 21:13:27 | × | oisdk quits (~oisdk@2001:bb6:3329:d100:7037:1951:b856:5dfd) (Quit: oisdk) |
| 21:13:27 | → | Major_Biscuit joins (~Major_Bis@82-169-100-198.biz.kpn.net) |
| 21:13:45 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 21:14:04 | × | zaquest quits (~notzaques@5.128.210.178) (Quit: Leaving) |
| 21:14:15 | <geekosaur> | g wouldn't exist in the even case. the odd case, it would exist until printed (presuming nothing else forced its evaluation) and then the next gc would collect the map because it was unreferenced from a root |
| 21:14:20 | <merijn> | ij: tbh, I don't think you have sufficient understanding how GC and evaluation works to get anything useful from reasoning about this |
| 21:15:02 | → | deviantfero joins (~deviantfe@190.150.27.58) |
| 21:15:18 | <geekosaur> | and possibly not enough about the difference between (thunks vs. evaluate values) and gc |
| 21:15:24 | <geekosaur> | *evaluated |
| 21:15:37 | → | zaquest joins (~notzaques@5.128.210.178) |
| 21:15:50 | <nshepperd> | things are never GCd then created again |
| 21:16:19 | <nshepperd> | but sometimes functions create a second thing which is different from the first thing |
| 21:16:48 | <geekosaur> | even if it has the same value as you'd think of it |
| 21:17:01 | <ph88^> | hi fresheyeball |
| 21:17:09 | <fresheyeball> | hi! |
| 21:18:34 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds) |
| 21:18:51 | × | Boomerang quits (~Boomerang@2a05:f6c7:2179:0:5976:80b4:6657:63a8) (Ping timeout: 265 seconds) |
| 21:19:37 | → | joseph joins (~joseph@cpe-65-31-18-174.insight.res.rr.com) |
| 21:19:47 | × | retroj quits (~retroj@217.146.82.202) (Remote host closed the connection) |
| 21:19:52 | joseph | is now known as Guest64710 |
| 21:20:14 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 21:20:28 | × | plutoniix quits (~q@node-uml.pool-125-24.dynamic.totinternet.net) (Ping timeout: 264 seconds) |
| 21:20:33 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) |
| 21:21:21 | <Guest64710> | / |
| 21:21:40 | × | Major_Biscuit quits (~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 264 seconds) |
| 21:21:40 | ← | Guest64710 parts (~joseph@cpe-65-31-18-174.insight.res.rr.com) () |
| 21:23:56 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 21:24:07 | → | Major_Biscuit joins (~Major_Bis@82-169-100-198.biz.kpn.net) |
| 21:24:41 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 21:24:51 | → | mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) |
| 21:25:09 | → | plutoniix joins (~q@node-uml.pool-125-24.dynamic.totinternet.net) |
| 21:25:26 | × | mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Client Quit) |
| 21:25:28 | <ezzieyguywuf> | hm, I want to take a bash script, and read it into haskell, and then get information about it, i.e. "Is there a variable FOO? what is its value? How about a function bar()? what are its contents" |
| 21:25:44 | <ezzieyguywuf> | I see the language-bash package - is this my best bet? |
| 21:25:57 | <ezzieyguywuf> | or are there other options? or is this a silly endeavour? |
| 21:26:44 | → | jedi1 joins (~jedi@185.204.1.185) |
| 21:27:00 | <geekosaur> | checking for a variable FOO is probably doable. getting its contents would worst-case require reimplementing bash in Haskell, which seems unlikely |
| 21:27:20 | → | SwarmCollective joins (~joseph@cpe-65-31-18-174.insight.res.rr.com) |
| 21:27:37 | <ezzieyguywuf> | yikes, I thought that might be the case |
| 21:28:24 | <ezzieyguywuf> | hrm, maybe I just execute bash on the file then, i.e. I think `env` command gives me info about the environment. |
| 21:28:43 | × | Alleria_ quits (~AllahuAkb@2603-7000-3040-0000-a4c2-7b90-773e-683c.res6.spectrum.com) (Ping timeout: 260 seconds) |
| 21:28:52 | × | fresheyeball quits (~isaac@c-71-237-105-37.hsd1.co.comcast.net) (Ping timeout: 264 seconds) |
| 21:29:01 | <geekosaur> | not all variables end up in the environment |
| 21:29:19 | <pjb> | ezzieyguywuf: bash is a scripting language. It means that to learn anything about a script, you must execute it. In a given environment. |
| 21:29:26 | <geekosaur> | and, well, it'll run stuff. you may want to be careful about that :) |
| 21:29:45 | <pjb> | and I don't mean setenv, but the whole world accessible to bash, including the network. |
| 21:29:58 | × | neiluj quits (~jco@unaffiliated/neiluj) (Remote host closed the connection) |
| 21:30:02 | → | zdenal__ joins (uid235212@gateway/web/irccloud.com/x-oxlfvkqxdkwnotwq) |
| 21:30:04 | <ezzieyguywuf> | geekosaur: lol indeed. |
| 21:30:11 | <pjb> | ezzieyguywuf: the first problem you'll have with variables, and others, is that bash has an eval command. |
| 21:30:18 | <ezzieyguywuf> | hm |
| 21:30:30 | → | fresheyeball joins (~isaac@ec2-35-155-97-88.us-west-2.compute.amazonaws.com) |
| 21:30:50 | <pjb> | ezzieyguywuf: variables are defined dynamically, by running the script, but they may even not appear in the script source, but being generated at run-time! |
| 21:30:51 | <nshepperd> | the 'set' command prints all variables |
| 21:31:05 | <pjb> | IF you ran the script and you run the set command. |
| 21:31:13 | → | Alleria_ joins (~AllahuAkb@2603-7000-3040-0000-8467-207c-08dd-9d84.res6.spectrum.com) |
| 21:32:06 | × | vicfred quits (vicfred@gateway/vpn/mullvad/vicfred) (Quit: Leaving) |
| 21:32:08 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 21:32:14 | <pjb> | ezzieyguywuf: so you can do an half assed job for "static" scripts that are "well behavied" (actually that use a subset of bash), but if your specification is just what you wrote, unless you re-implement bash in haskell, forget it. Just use bash to extract dynamically the info you need. |
| 21:33:44 | <pjb> | Note: you have the same problem with other system, eg. make. To extract information from a makefile, the best way is just to run make. Of course, you may want to avoid running the command (there are options), but this is also quite unsatisfactory. Sometimes you have to duplicate an environment (with sources, etc) and run make with some stubbed stuff to help you collect the information you want, and then re-run make in the or |
| 21:33:44 | <pjb> | environment using the info you collected. |
| 21:33:55 | <pjb> | This is what we call "usines à gas"… |
| 21:34:05 | <pjb> | But there's no better way. |
| 21:34:13 | → | conal joins (~conal@64.71.133.70) |
| 21:34:44 | <pjb> | The correct solution would be to forget bash, and to design a functionnal "scripting" language. |
| 21:35:42 | × | denisse_ quits (~spaceCat@gateway/tor-sasl/alephzer0) (Ping timeout: 268 seconds) |
| 21:35:55 | <geekosaur> | well, until you wamnt to analyze someone else's script and they will only use bash |
| 21:35:55 | → | borne joins (~fritjof@200116b8649a410007ed1b620c579d22.dip.versatel-1u1.de) |
| 21:36:11 | <pjb> | Scripting is perticular, fundamentally, what it means is that the semantics of the program can be altered at run-time. You cannot compile a script. If you could compile a script, it wouldn't be a script, it would be a program (and indeed, some bash scripts can be compiled, they're not scripts, they're programs written in bash). Obviously, it'd be silly to write programs in bash, better use lisp, smalltalk or haskell. |
| 21:36:31 | × | notzmv quits (~user@unaffiliated/zmv) (Ping timeout: 265 seconds) |
| 21:36:54 | <ezzieyguywuf> | pjb: I think "static" and "well behaved" are fair assumptions actually, I'm trying to read gentoo ebuild files which use a subset of bash |
| 21:37:06 | <pjb> | geekosaur: now of course, you can also apply NLP and AI to code… It's possible to learn something. But not formally, not without accepting the same misinterpretations and bug you get with a human programmer. |
| 21:37:18 | <pjb> | ezzieyguywuf: indeed. |
| 21:37:32 | <pjb> | You can restrict yourself to those kinds of files. |
| 21:38:06 | <merijn> | I'd say a better idea is just "insert some printf" :p |
| 21:38:15 | <ezzieyguywuf> | the guys in #bash sugessted shfmt, which can output to json |
| 21:38:49 | → | vicfred joins (vicfred@gateway/vpn/mullvad/vicfred) |
| 21:40:09 | → | kritzefitz joins (~kritzefit@fw-front.credativ.com) |
| 21:40:15 | × | kritzefitz quits (~kritzefit@fw-front.credativ.com) (Client Quit) |
| 21:40:38 | → | denisse joins (~spaceCat@gateway/tor-sasl/alephzer0) |
| 21:40:45 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 21:40:52 | × | denisse quits (~spaceCat@gateway/tor-sasl/alephzer0) (Remote host closed the connection) |
| 21:41:08 | → | denisse joins (~spaceCat@gateway/tor-sasl/alephzer0) |
| 21:42:22 | × | geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds) |
| 21:43:17 | × | ukari quits (~ukari@unaffiliated/ukari) (Remote host closed the connection) |
| 21:43:47 | → | ukari joins (~ukari@unaffiliated/ukari) |
| 21:44:25 | × | niekvandepas quits (~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection) |
| 21:44:27 | <pjb> | ezzieyguywuf: for example, if you consider this bash JSON parser library: https://github.com/informatimago/bash-tidbits/blob/main/ios/json.bash |
| 21:45:32 | <ezzieyguywuf> | hrm, perhaps a better approach would be to simply write a parser for https://dev.gentoo.org/~ulm/pms/head/pms.html |
| 21:45:38 | <pjb> | ezzieyguywuf: you will notice eg. https://github.com/informatimago/bash-tidbits/blob/main/ios/json.bash#L290 that it creates array variables named cell${something} dynamically. |
| 21:45:59 | <pjb> | ezzieyguywuf: you cannot know what variables are created unless you run the code. |
| 21:46:31 | × | cafce25 quits (~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de) (Quit: leaving) |
| 21:46:48 | <pjb> | on the other hand, indeed, often static files use the bash variable setting syntax, so they can easily be processed by bash by just sourcing them and getting thus the variables loaded and defined in bash. |
| 21:46:52 | <ezzieyguywuf> | maybe another approach is to simply run the script in a sandbox |
| 21:46:57 | <pjb> | It would be abusive to call them bash files. |
| 21:47:09 | <pjb> | It's just files with a syntax that bash can source. |
| 21:47:35 | <pjb> | ezzieyguywuf: in general yes, run the scriptin a sandbox, and use bash itself to extract the info you want. |
| 21:47:58 | → | lambda-11235 joins (~lambda-11@2600:1700:7c70:4600:6b54:95a3:2572:ac11) |
| 21:48:44 | → | hyperisco joins (~hyperisco@104-195-141-253.cpe.teksavvy.com) |
| 21:53:02 | × | geekosaur quits (82650c7c@130.101.12.124) (Quit: Connection closed) |
| 21:53:13 | × | Major_Biscuit quits (~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 246 seconds) |
| 21:58:47 | → | cafce25 joins (~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de) |
| 22:01:23 | × | lambda-11235 quits (~lambda-11@2600:1700:7c70:4600:6b54:95a3:2572:ac11) (Ping timeout: 265 seconds) |
| 22:02:19 | → | boristhe1lade joins (~boristheb@87-95-88-1.bb.dnainternet.fi) |
| 22:02:25 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 22:03:28 | × | Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
| 22:03:59 | → | conal joins (~conal@64.71.133.70) |
| 22:04:52 | × | boristheblade quits (~boristheb@87-95-28-43.bb.dnainternet.fi) (Ping timeout: 264 seconds) |
| 22:06:55 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 22:07:40 | → | Guest_56 joins (5afef702@90.254.247.2) |
| 22:09:30 | → | oisdk joins (~oisdk@2001:bb6:3329:d100:200f:d320:3f34:cf24) |
| 22:10:25 | → | tmciver joins (~tmciver@cpe-172-101-40-226.maine.res.rr.com) |
| 22:11:39 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 22:12:00 | → | olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
| 22:13:26 | → | lambda-11235 joins (~lambda-11@2600:1700:7c70:4600:d5c7:b208:461b:d132) |
| 22:13:50 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 22:13:52 | × | dnlkrgr quits (~dnlkrgr@HSI-KBW-046-005-005-235.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 264 seconds) |
| 22:15:34 | × | LKoen quits (~LKoen@19.175.9.109.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”) |
| 22:15:48 | → | Rudd0 joins (~Rudd0@185.189.115.108) |
| 22:17:48 | → | conal joins (~conal@64.71.133.70) |
| 22:18:47 | × | lambda-11235 quits (~lambda-11@2600:1700:7c70:4600:d5c7:b208:461b:d132) (Ping timeout: 265 seconds) |
| 22:19:31 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection) |
| 22:19:48 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 22:20:12 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 22:20:32 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-83-215.w86-212.abo.wanadoo.fr) |
| 22:22:09 | → | niekvandepas joins (~niekvande@dhcp-077-249-088-250.chello.nl) |
| 22:22:36 | × | hyperisco quits (~hyperisco@104-195-141-253.cpe.teksavvy.com) (Ping timeout: 240 seconds) |
| 22:24:05 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 22:24:27 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 22:25:50 | <koz_> | :t foldM |
| 22:25:52 | <lambdabot> | (Foldable t, Monad m) => (b -> a -> m b) -> b -> t a -> m b |
| 22:26:29 | × | niekvandepas quits (~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 260 seconds) |
| 22:28:42 | → | aidecoe joins (~aidecoe@unaffiliated/aidecoe) |
| 22:29:37 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood) |
| 22:30:08 | → | niekvandepas joins (~niekvande@dhcp-077-249-088-250.chello.nl) |
| 22:30:16 | × | niekvandepas quits (~niekvande@dhcp-077-249-088-250.chello.nl) (Read error: Connection reset by peer) |
| 22:30:25 | → | lambda-11235 joins (~lambda-11@2600:1700:7c70:4600:d456:e802:34bc:cee) |
| 22:30:53 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 22:31:41 | × | pera quits (~pera@unaffiliated/pera) (Ping timeout: 258 seconds) |
| 22:32:26 | × | kaboom quits (~manjaro-u@2601:285:c000:a6c0::4713) (Ping timeout: 264 seconds) |
| 22:32:54 | × | nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 260 seconds) |
| 22:33:04 | → | niekvandepas joins (~niekvande@dhcp-077-249-088-250.chello.nl) |
| 22:33:09 | × | niekvandepas quits (~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection) |
| 22:33:45 | → | niekvandepas joins (~niekvande@dhcp-077-249-088-250.chello.nl) |
| 22:33:54 | ← | C4ladbolg parts (~darccc-as@ool-18bcd822.dyn.optonline.net) () |
| 22:34:36 | → | nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
| 22:35:00 | → | mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) |
| 22:35:13 | → | mananamenos joins (~mananamen@84.122.202.215.dyn.user.ono.com) |
| 22:38:01 | × | niekvandepas quits (~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 246 seconds) |
| 22:38:57 | × | cafce25 quits (~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 22:39:09 | × | hololeap quits (~hololeap@unaffiliated/hololeap) (Quit: KVIrc 5.0.1 Aria http://www.kvirc.net/) |
| 22:39:29 | → | hololeap joins (~hololeap@unaffiliated/hololeap) |
| 22:39:45 | → | Mr_Cue joins (~Mr._Cue@pengyuzhou.com) |
| 22:40:09 | × | nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds) |
| 22:42:00 | → | cafce25 joins (~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de) |
| 22:44:35 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 22:44:46 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 22:47:28 | → | ADG1089__ joins (~aditya@223.226.145.125) |
| 22:48:28 | <koz_> | @unmtl MaybeT (Either e) a |
| 22:48:29 | <lambdabot> | Either e (Maybe a) |
| 22:48:32 | <koz_> | :D |
| 22:48:39 | <koz_> | Finally I get a use for that transformer. |
| 22:48:41 | × | forgottenone quits (~forgotten@176.42.20.27) (Remote host closed the connection) |
| 22:49:19 | × | gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving) |
| 22:51:12 | → | forgottenone joins (~forgotten@176.42.20.27) |
| 22:52:26 | → | conal joins (~conal@64.71.133.70) |
| 22:53:41 | × | gaussian quits (uid482612@gateway/web/irccloud.com/x-nimvwshqdwcnlciq) (Quit: Connection closed for inactivity) |
| 22:57:49 | → | nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
| 22:57:59 | × | cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 260 seconds) |
| 22:59:33 | × | dustinm quits (~dustinm@static.38.6.217.95.clients.your-server.de) (Quit: Leaving) |
| 23:03:12 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 23:03:20 | × | chele quits (~chele@91.64.35.125) (Remote host closed the connection) |
| 23:07:30 | → | niekvandepas joins (~niekvande@dhcp-077-249-088-250.chello.nl) |
| 23:07:50 | → | conal_ joins (~conal@64.71.133.70) |
| 23:07:54 | × | nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 260 seconds) |
| 23:08:28 | × | justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 260 seconds) |
| 23:09:02 | → | electricityZZZZ joins (~electrici@108-216-157-17.lightspeed.sntcca.sbcglobal.net) |
| 23:09:48 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds) |
| 23:10:19 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 23:11:56 | → | nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
| 23:13:16 | × | niekvandepas quits (~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 264 seconds) |
| 23:13:39 | × | __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving) |
| 23:14:40 | → | elliott__ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) |
| 23:14:52 | → | reaverb joins (~reaverb@071-008-105-088.res.spectrum.com) |
| 23:16:18 | × | lambda-11235 quits (~lambda-11@2600:1700:7c70:4600:d456:e802:34bc:cee) (Ping timeout: 265 seconds) |
| 23:18:40 | × | denisse quits (~spaceCat@gateway/tor-sasl/alephzer0) (Ping timeout: 268 seconds) |
| 23:18:44 | × | bogdanp quits (~bogdanp@188.24.80.165) (Ping timeout: 240 seconds) |
| 23:19:04 | → | dustinm joins (~dustinm@static.38.6.217.95.clients.your-server.de) |
| 23:19:04 | → | z0 joins (~z0@188.251.76.20) |
| 23:19:33 | × | z0 quits (~z0@188.251.76.20) (Client Quit) |
| 23:19:53 | <texasmynsted> | I should be able to force strict/eager evaluation with seq right? |
| 23:20:04 | <merijn> | "maybe" |
| 23:20:08 | → | denisse joins (~spaceCat@gateway/tor-sasl/alephzer0) |
| 23:20:25 | × | conal_ quits (~conal@64.71.133.70) (Ping timeout: 240 seconds) |
| 23:20:51 | <merijn> | If you know what you're doing, but I've seen many people misuse it :) |
| 23:20:56 | × | Junotrix quits (~Junotrix@90.221.74.173) (Ping timeout: 240 seconds) |
| 23:21:32 | <texasmynsted> | I have some code that takes a type, say P. If I construct a P and assign it to a symbol like x, then all is well. If I have a function construct a P and assign it to x it does not work. |
| 23:21:44 | × | ADG1089__ quits (~aditya@223.226.145.125) (Remote host closed the connection) |
| 23:21:49 | <texasmynsted> | I am trying to determine what is going on. |
| 23:21:53 | <merijn> | What is "it"? |
| 23:22:01 | <texasmynsted> | it? |
| 23:22:08 | <texasmynsted> | oh the type? |
| 23:22:10 | <merijn> | "it does not work" |
| 23:22:16 | <texasmynsted> | heh |
| 23:22:19 | <texasmynsted> | okay good question |
| 23:23:03 | <texasmynsted> | okay that is where I need to go next. I need to debug this and see if the values are actually the same |
| 23:23:21 | → | gedda joins (~gedda@185.195.233.164) |
| 23:24:37 | <monochrom> | A litmus test of your understanding of seq is "const () (seq x x)". |
| 23:25:08 | <monochrom> | Actually make it "const () (seq undefined 5)" for example. |
| 23:25:08 | <merijn> | monochrom: hell, just "seq x x" |
| 23:25:11 | → | kaboom joins (~manjaro-u@2601:285:c000:a6c0::4713) |
| 23:25:14 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds) |
| 23:25:21 | <merijn> | I've seen people write that so many times |
| 23:28:18 | → | lambda-11235 joins (~lambda-11@2600:1700:7c70:4600::3f) |
| 23:28:46 | → | mbomba joins (~mbomba@bras-base-toroon2719w-grc-53-142-114-5-26.dsl.bell.ca) |
| 23:30:23 | × | philopsos quits (~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 268 seconds) |
| 23:34:38 | × | Guest_56 quits (5afef702@90.254.247.2) (Quit: Connection closed) |
| 23:36:04 | × | nineonin_ quits (~nineonine@50.216.62.2) (Ping timeout: 264 seconds) |
| 23:37:04 | × | forgottenone quits (~forgotten@176.42.20.27) (Ping timeout: 260 seconds) |
| 23:37:15 | → | adamwespiser joins (~adamwespi@209.6.43.158) |
| 23:37:15 | × | adamwespiser quits (~adamwespi@209.6.43.158) (Client Quit) |
| 23:38:25 | <texasmynsted> | hmm. I do not think it is lazy/eagerness |
| 23:38:34 | <texasmynsted> | (the issue I mean) |
| 23:38:41 | <texasmynsted> | I was using seq correctly |
| 23:38:49 | <texasmynsted> | something else is broken |
| 23:39:48 | × | zdenal__ quits (uid235212@gateway/web/irccloud.com/x-oxlfvkqxdkwnotwq) (Quit: Connection closed for inactivity) |
| 23:40:49 | × | mbomba quits (~mbomba@bras-base-toroon2719w-grc-53-142-114-5-26.dsl.bell.ca) (Quit: WeeChat 3.0) |
| 23:47:16 | × | cods quits (~fred@82-65-232-44.subs.proxad.net) (Ping timeout: 240 seconds) |
| 23:49:06 | → | cods joins (~fred@82-65-232-44.subs.proxad.net) |
| 23:49:39 | × | borne quits (~fritjof@200116b8649a410007ed1b620c579d22.dip.versatel-1u1.de) (Ping timeout: 265 seconds) |
| 23:50:03 | × | elliott__ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Quit: WeeChat 3.0) |
| 23:51:18 | <gedda> | has lookupValueName changed from template haskell 2.15 -> 2.16? since upgrading to 2.16 and GHC 8.10 from GHC 8.8, lookupValueName returns Nothing at compile time |
| 23:51:31 | <gedda> | checked the changelog but didn't see anything related |
| 23:51:38 | × | mouseghost quits (~draco@wikipedia/desperek) (Quit: mew wew) |
| 23:51:40 | → | elliott__ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) |
| 23:51:49 | → | epicte7us joins (~epictetus@ip184-187-162-163.sb.sd.cox.net) |
| 23:52:49 | <gedda> | i've just gotten started with using template haskell so not sure if its my wrong doings causing this or not |
| 23:52:53 | <glguy> | gedda: make sure you're looking up a name that's from a previous stage |
| 23:53:33 | <glguy> | or toss some code on a pastebin and share the link here |
| 23:53:52 | <gedda> | what does previous stage mean more precisely? |
| 23:54:18 | <gedda> | sure, give me a few. More precisely im trying to use TH to create a list of my advent of code solutions |
| 23:54:31 | <glguy> | Template Haskell runs in stages, you define things in one stage, and then you can use them in future stages. You can keep doing this |
| 23:54:40 | × | ep1ctetus quits (~epictetus@ip184-187-162-163.sb.sd.cox.net) (Ping timeout: 246 seconds) |
| 23:54:59 | → | johnw_ joins (~johnw@haskell/developer/johnw) |
| 23:55:21 | × | johnw quits (~johnw@haskell/developer/johnw) (Ping timeout: 272 seconds) |
| 23:59:26 | → | borne joins (~fritjof@200116b8649a410007ed1b620c579d22.dip.versatel-1u1.de) |
All times are in UTC on 2021-01-26.