Logs on 2020-09-29 (freenode/#haskell)
| 00:00:01 | × | omega8cc quits (~omega8cc@195.206.169.184) () |
| 00:00:25 | × | TooDifficult quits (~TooDiffic@139.59.59.230) (Ping timeout: 240 seconds) |
| 00:03:36 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 00:04:40 | × | mananamenos quits (~mananamen@84.122.202.215.dyn.user.ono.com) (Ping timeout: 256 seconds) |
| 00:06:38 | × | Tops2 quits (~Tobias@dyndsl-095-033-025-158.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
| 00:09:45 | → | Jeanne-Kamikaze joins (~Jeanne-Ka@static-198-54-131-156.cust.tzulo.com) |
| 00:12:47 | × | falafel quits (~falafel@2605:e000:1527:d491:f090:20fe:cddf:2a1a) (Ping timeout: 240 seconds) |
| 00:18:24 | → | filwisher joins (~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) |
| 00:18:57 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 00:20:19 | × | concept2 quits (~concept2@unaffiliated/tubo) (Quit: See ya later!) |
| 00:21:43 | → | sepi joins (49dc4892@c-73-220-72-146.hsd1.ca.comcast.net) |
| 00:22:17 | <sepi> | Can I have a helper function used and defined within 'if' bounds? |
| 00:22:22 | <sepi> | | |
| 00:22:43 | <Axman6> | wut |
| 00:23:30 | <ski> | with `let', yes |
| 00:23:52 | <ski> | but perhaps you mean guards, not `if' ? |
| 00:25:00 | <sepi> | ah yes guards |
| 00:25:42 | <ski> | you can put a `where' after the guards, and things defined inside the `where' will be in scope in the guard conditions, as well as the branches |
| 00:26:40 | → | mu_ joins (~mu@unaffiliated/mu) |
| 00:26:53 | → | acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
| 00:30:49 | × | ystael quits (~ystael@209.6.50.55) (Ping timeout: 264 seconds) |
| 00:31:49 | × | jespada quits (~jespada@90.254.241.6) (Read error: Connection reset by peer) |
| 00:32:36 | → | jespada joins (~jespada@90.254.241.6) |
| 00:33:21 | <sepi> | Besides possibly the d case, am I in the right area for doing this? https://dpaste.org/DbEh |
| 00:34:15 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 00:34:16 | × | filwisher quits (~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 260 seconds) |
| 00:34:47 | → | mu_ joins (~mu@unaffiliated/mu) |
| 00:35:55 | <Axman6> | well, you can't define equality on functions, so that d `elem` q is never going to work |
| 00:36:12 | <Axman6> | and sigma is a list, so you can't apply it to x and xs |
| 00:36:14 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 00:36:36 | <Axman6> | it also looks like this function can never do anything but return true |
| 00:36:56 | <monochrom> | "my heart is always true" :) |
| 00:37:10 | <Axman6> | "or I will never return" |
| 00:38:42 | <sepi> | I had the thought that because of elem, if s is never in qs then it'd come out false |
| 00:39:35 | <Axman6> | I have no idea what's going on with this code, it's quite a long way from being syntactically valid |
| 00:41:21 | <Axman6> | you might ant to look at functions like all, and, or, any, intersect. you might also find writing a function isSubsetOf :: Eq a => [a] -> [a] -> Bool is very useful |
| 00:42:08 | <Axman6> | isSubSetOf [] [1,2,3] -> True, isSubsetOf [4] [1,2,3] -> False, isSubSetOf [1,2] [1,2,3] -> True |
| 00:42:37 | <xsperry> | > isSubsetOf [1,3] [1,2,3] |
| 00:42:39 | <lambdabot> | error: |
| 00:42:39 | <lambdabot> | • Variable not in scope: isSubsetOf :: [a0] -> [a1] -> t |
| 00:42:40 | <lambdabot> | • Perhaps you meant one of these: |
| 00:42:50 | <xsperry> | huh, nm |
| 00:43:03 | <Axman6> | Data.List happens to already have isSubsequenceOf, which would work if your states were ordered |
| 00:44:31 | <Axman6> | > isSubsequenceOf "GHC" "The Glorious Haskell Compiler" |
| 00:44:31 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 00:44:34 | <lambdabot> | True |
| 00:44:52 | → | mu_ joins (~mu@unaffiliated/mu) |
| 00:45:48 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 00:45:49 | → | adam_wespiser joins (~adam_wesp@209.6.42.110) |
| 00:46:07 | × | josh quits (~josh@c-67-164-104-206.hsd1.ca.comcast.net) (Remote host closed the connection) |
| 00:46:23 | <Axman6> | sepi: what is let d xs ys = q <> (sigma (x)) : d q (sigma xs) supposed to be doing? |
| 00:48:28 | hackage | cabal-auto-expose 0.1.0.1 - Build time library that autodetects exposed modules https://hackage.haskell.org/package/cabal-auto-expose-0.1.0.1 (deech) |
| 00:48:49 | × | arahael quits (~arahael@203.158.32.156) (Ping timeout: 264 seconds) |
| 00:49:12 | <sepi> | was it at least a good idea to do q:s and f:fs for those variables. Supposedly can't use any modules |
| 00:49:57 | × | sarahzrf quits (~sarahzrf_@benzrf.com) (Quit: bye) |
| 00:50:38 | × | adam_wespiser quits (~adam_wesp@209.6.42.110) (Ping timeout: 256 seconds) |
| 00:50:49 | → | sarahzrf joins (~sarahzrf_@benzrf.com) |
| 00:51:26 | <Axman6> | I don';t understand the question |
| 00:53:11 | <Axman6> | I think you're trying to do too much at once - I would split the checks you need to do out in a where clause and check each thing individually |
| 00:54:17 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 00:54:45 | → | mu_ joins (~mu@unaffiliated/mu) |
| 00:54:50 | <Axman6> | like I said, start by defining a function which checks if all elements of one list are contained in another, then checks (2) and (3) are trivial |
| 00:54:57 | × | DataComputist quits (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Quit: Leaving...) |
| 00:55:49 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 00:56:06 | → | voet joins (~voet@84.39.117.57) |
| 00:56:54 | <ski> | the `let' is shadowing the `d' input with another locally defined function called `d' |
| 00:57:55 | → | DataComputist joins (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) |
| 00:59:18 | <ski> | it also seems to me like this is better written without guards |
| 00:59:31 | <Axman6> | absolutely |
| 00:59:53 | <sepi> | where x /= xs, test ( next elements in xs, s, fs, d) ? |
| 00:59:55 | <ski> | (but if you really want to, i guess you could use them .. but it'd be unidiomatic) |
| 01:00:05 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
| 01:00:35 | <ski> | sepi : what is that supposed to check ? |
| 01:01:42 | <sepi> | I want to check if the states in xs are all unique |
| 01:02:05 | <ski> | how about defining a separate function for checking that ? |
| 01:02:20 | → | filwisher joins (~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) |
| 01:02:36 | <ski> | it seems you're trying to do too many things at the same time, in `checkFSM', and confusing them up with each other |
| 01:03:11 | <sepi> | checkFSM call all the functions or functions would be defined inside? |
| 01:03:31 | <ski> | "wishful thinking" can be useful, when programming. imagine you had a function that could check whether a list had no duplicates. then you could use that function to check one of your conditions for `checkFSM' |
| 01:04:14 | × | jespada quits (~jespada@90.254.241.6) (Ping timeout: 256 seconds) |
| 01:04:16 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 01:04:21 | <ski> | you could either put off defining that function for later (after writing a bit of `checkFSM', perhaps all). or you could start by defining this helper function, and then come back to `checkFSM', to use it there |
| 01:04:46 | → | mu_ joins (~mu@unaffiliated/mu) |
| 01:04:59 | <ski> | you could either define such a helper function, inside a `where'-clause for `checkFSM'. or define it separately, in your module |
| 01:05:17 | <ski> | (with the latter option, you could test it out on its own, in the interactor) |
| 01:06:42 | <ski> | anyway, if you'd like to try this, you'd then have to do one of the harder things in programming .. namely invent some suitable name, for this helper function |
| 01:07:56 | <Axman6> | I already did some of that work, with isSubsetOf above |
| 01:08:04 | → | jespada joins (~jespada@90.254.241.6) |
| 01:09:28 | → | sagax joins (~sagax_nb@213.138.71.146) |
| 01:09:55 | × | nineonine quits (~nineonine@216.81.48.202) (Remote host closed the connection) |
| 01:11:37 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 01:13:50 | → | concept2 joins (~concept2@unaffiliated/tubo) |
| 01:13:52 | × | xerox_ quits (~xerox@unaffiliated/xerox) (Ping timeout: 256 seconds) |
| 01:14:42 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 01:14:47 | → | mu__ joins (~mu@unaffiliated/mu) |
| 01:15:30 | → | adam_wespiser joins (~adam_wesp@209.6.42.110) |
| 01:15:50 | → | falafel joins (~falafel@2605:e000:1527:d491:f090:20fe:cddf:2a1a) |
| 01:19:00 | <sepi> | https://dpaste.org/taJt#L1,3 |
| 01:19:05 | <sepi> | my mind still goes elem |
| 01:19:29 | <sepi> | except I should've put notelem |
| 01:20:09 | <ski> | what is the intent of `go' ? |
| 01:21:47 | × | adam_wespiser quits (~adam_wesp@209.6.42.110) (Ping timeout: 240 seconds) |
| 01:22:41 | <sepi> | use that to check my first case to see if qs has no duplicates is what I was thinking |
| 01:22:43 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 01:23:22 | <ski> | that doesn't explain specifically what behaviour `go' is intended to have |
| 01:24:43 | <ski> | perhaps if you'd have a suggestion for how you'd want to call `go' from `checkFSM', that might clarify it a bit ? |
| 01:24:44 | × | mu__ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 01:24:52 | → | mu_ joins (~mu@unaffiliated/mu) |
| 01:25:04 | × | ChaiTRex quits (~ChaiTRex@gateway/tor-sasl/chaitrex) (Remote host closed the connection) |
| 01:25:32 | <Axman6> | ski: go only checks if a single element is contained in another list, it is _exactly_ the same as elem |
| 01:25:37 | <Axman6> | uh, sepi |
| 01:25:43 | → | ChaiTRex joins (~ChaiTRex@gateway/tor-sasl/chaitrex) |
| 01:25:52 | <ski> | (or else, if you prefer, you could tell what `go' is supposed to check/compute, given inputs, without referring to how you might then use that in `checkFSM') |
| 01:26:17 | × | dansho quits (~dansho@ip68-108-167-185.lv.lv.cox.net) (Remote host closed the connection) |
| 01:26:33 | → | dansho joins (~dansho@ip68-108-167-185.lv.lv.cox.net) |
| 01:26:52 | ski | isn't bothering with the (current) implementation of `go', so far, at most taking the type signature of it into account |
| 01:27:38 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
| 01:29:07 | × | falafel quits (~falafel@2605:e000:1527:d491:f090:20fe:cddf:2a1a) (Ping timeout: 240 seconds) |
| 01:29:15 | <Axman6> | sepi: I've said a few times now you should try to write a function with the following type: Eq a => [a] -> [a] -> Bool, which returns true if all the elements in the first list are contained in the second list. what do you think the base case of this function should be? |
| 01:30:01 | × | catkiki quits (~catkiki@m90-134-157-227.cust.tele2.hr) (Remote host closed the connection) |
| 01:30:07 | × | revprez_anzio quits (~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) (Ping timeout: 246 seconds) |
| 01:32:17 | → | nineonine joins (~nineonine@216-19-190-182.dyn.novuscom.net) |
| 01:32:20 | → | revprez_anzio joins (~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) |
| 01:32:51 | × | nineonine quits (~nineonine@216-19-190-182.dyn.novuscom.net) (Remote host closed the connection) |
| 01:33:06 | → | nineonine joins (~nineonine@216-19-190-182.dyn.novuscom.net) |
| 01:33:13 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 01:34:41 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 01:34:47 | → | mu__ joins (~mu@unaffiliated/mu) |
| 01:35:13 | × | revprez_stg quits (~revprez_s@pool-108-49-213-40.bstnma.fios.verizon.net) (Ping timeout: 260 seconds) |
| 01:35:39 | → | revprez_stg joins (~revprez_s@pool-108-49-213-40.bstnma.fios.verizon.net) |
| 01:35:39 | → | adam_wespiser joins (~adam_wesp@209.6.42.110) |
| 01:35:53 | <Axman6> | sepi: do you understand that f ... | x = True | otherwise = False is the same as just f ... = x? "If x is true return true, otherwise x must be false so return false" |
| 01:36:01 | → | justanotheruser joins (~justanoth@unaffiliated/justanotheruser) |
| 01:37:07 | × | justan0theruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 240 seconds) |
| 01:37:25 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
| 01:37:28 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 01:37:36 | <sepi> | I suppose the base case would be if it were comparing list1to list2 which is empty it'd return false? |
| 01:37:47 | × | Wuzzy quits (~Wuzzy@p5b0df9fe.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 01:38:05 | <Axman6> | why false? |
| 01:38:27 | <Axman6> | the empty set is a subset of all sets isn't it? |
| 01:38:46 | <Axman6> | are all the elements of [] in [1,2,3]? |
| 01:40:16 | <sepi> | ah yes I was already thinking of it backwards are all elements of [1,2,3] in [] |
| 01:41:30 | → | jedws joins (~jedws@121.209.139.222) |
| 01:41:41 | × | mu__ quits (~mu@unaffiliated/mu) (Quit: mu__) |
| 01:41:56 | <sepi> | for the guards I was using them because it was the only way I thought of going through all the cases at once. But I doing if, elif, elif instead it looks like |
| 01:42:03 | → | snakemasterflex joins (~snakemast@213.100.206.23) |
| 01:42:51 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 01:43:35 | <Axman6> | sepi: have you tried to write the function I suggested? |
| 01:43:36 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 01:44:43 | <sepi> | could it work like, checkFSM (qs, [], [], []) = define func.....([], s, [], []) = define function |
| 01:44:46 | <sepi> | for seperation |
| 01:44:55 | <sepi> | I'll do the one you were talking about now |
| 01:45:17 | <Axman6> | sepi: look, if you want help, you need to listen to the help we give. if you're going to ignore it, then I'll go and do something else, it's not worth my time |
| 01:46:49 | <Axman6> | we're trying to steer you in the right direction, but you keep getting distracted. no, I don't think that will work, this isn;t something that makes sense to do by traversing the lists all at the same time. break the problem down into smaller problems like we've said, and then combine the results |
| 01:47:00 | × | snakemasterflex quits (~snakemast@213.100.206.23) (Ping timeout: 265 seconds) |
| 01:47:30 | × | CrazyPython quits (~crazypyth@71-135-5-88.lightspeed.rlghnc.sbcglobal.net) () |
| 01:47:58 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds) |
| 01:48:32 | <Axman6> | your final function will probably look something like: checkFSM (qs, s, fs d) = uniqueStates && startIsValid && finalsAreValid && transitionsAreValid where uniqueStates = ...; startsAreValid = ... |
| 01:50:34 | <ski> | sepi : have you used `&&' before ? do you know what it means ? |
| 01:50:54 | × | nek0 quits (~nek0@2a01:4f8:222:2b41::12) (Remote host closed the connection) |
| 01:51:59 | → | nek0 joins (~nek0@2a01:4f8:222:2b41::12) |
| 01:53:08 | × | xff0x quits (~fox@2001:1a81:537a:5700:d96:c29a:71ef:4f01) (Ping timeout: 246 seconds) |
| 01:53:36 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 01:54:28 | × | rcdilorenzo quits (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Ping timeout: 260 seconds) |
| 01:54:46 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
| 01:54:59 | × | ryansmccoy quits (~ryansmcco@68.235.48.108) (Ping timeout: 260 seconds) |
| 01:55:01 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 01:55:07 | → | xff0x joins (~fox@2001:1a81:53b0:3c00:19ba:3f05:ac4b:7fb3) |
| 01:55:38 | → | ryansmccoy joins (~ryansmcco@193.37.254.27) |
| 01:56:22 | × | DataComputist quits (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Ping timeout: 246 seconds) |
| 01:58:47 | <sepi> | Haskell doesn't speak to me too well which is why I take forever my bad |
| 01:59:13 | × | shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection) |
| 01:59:14 | <sepi> | Yes it would mean statement one and statement two both have to meet the condition |
| 01:59:32 | → | shatriff joins (~vitaliish@176.52.219.10) |
| 02:00:01 | × | shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection) |
| 02:00:20 | → | shatriff joins (~vitaliish@176.52.219.10) |
| 02:00:46 | <ski> | yes, `&&' expresses a logical "and". `foo && bar' means that both `foo' and `bar' have to be `True', in order for the result of the whole `foo && bar' to be `True'. if either (or both) of them are `False', then the whole will be `False' |
| 02:00:50 | × | shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection) |
| 02:02:46 | → | GuerrillaMonkey joins (~Jeanne-Ka@68.235.43.166) |
| 02:02:58 | <ski> | sepi : .. i'm still wondering what you wanted `go' to express |
| 02:03:34 | <ski> | or if you got any further, with the function that Axman6 suggested you could define |
| 02:05:09 | × | Jeanne-Kamikaze quits (~Jeanne-Ka@static-198-54-131-156.cust.tzulo.com) (Ping timeout: 258 seconds) |
| 02:05:09 | × | ddellacosta quits (~dd@86.106.121.168) (Ping timeout: 258 seconds) |
| 02:05:21 | → | drbean joins (~drbean@TC210-63-209-16.static.apol.com.tw) |
| 02:05:33 | × | miklcct quits (quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) |
| 02:06:15 | → | miklcct joins (quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7) |
| 02:06:27 | × | miklcct quits (quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7) (Client Quit) |
| 02:06:31 | × | dagnabbit quits (~thelounge@140.82.8.179) (Ping timeout: 272 seconds) |
| 02:06:43 | × | jdgr quits (601c428b@gateway/web/cgi-irc/kiwiirc.com/ip.96.28.66.139) (Quit: Connection closed) |
| 02:07:51 | × | cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye) |
| 02:08:01 | → | miklcct joins (quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7) |
| 02:08:07 | × | justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 240 seconds) |
| 02:08:16 | × | urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna) |
| 02:08:48 | → | cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
| 02:08:50 | × | Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 256 seconds) |
| 02:10:11 | → | justanotheruser joins (~justanoth@unaffiliated/justanotheruser) |
| 02:11:27 | × | GuerrillaMonkey quits (~Jeanne-Ka@68.235.43.166) (Quit: Leaving) |
| 02:11:36 | → | Jeanne-Kamikaze joins (~Jeanne-Ka@68.235.43.166) |
| 02:14:09 | × | spew quits (uid195861@gateway/web/irccloud.com/x-annkkxabwayrojjt) (Quit: Connection closed for inactivity) |
| 02:14:24 | <sepi> | Its looking like are elements in list a, are in the full set of b |
| 02:14:32 | → | dagnabbit joins (~thelounge@140.82.8.179) |
| 02:14:40 | → | DataComputist joins (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) |
| 02:14:51 | <ski> | what is `a' and `b' there ? |
| 02:15:34 | × | filwisher quits (~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 256 seconds) |
| 02:16:23 | <sepi> | https://dpaste.org/gje6#L1,3 |
| 02:16:28 | × | jedws quits (~jedws@121.209.139.222) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 02:16:36 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 02:16:46 | <sepi> | https://learnstack.in/assets/ppt/ppt_img/python-subset.jpg |
| 02:17:04 | <ski> | what is `test a b' supposed to compute/test/check ? |
| 02:17:06 | <sepi> | that function is doing this which is checking if a is in a subset b |
| 02:17:13 | → | jedws joins (~jedws@121.209.139.222) |
| 02:17:39 | <sepi> | *if 'a' is a subset of 'b' |
| 02:17:47 | → | ph88^ joins (~ph88@ip5f5af71a.dynamic.kabel-deutschland.de) |
| 02:18:00 | <ski> | the name `test' (nor the name `go') doesn't give much hint about what it's supposed to be testing |
| 02:18:06 | <ski> | ok |
| 02:18:14 | × | lorozic quits (~lorozic@wks-41-812.mpi-sws.org) (Remote host closed the connection) |
| 02:18:20 | × | solonarv quits (~solonarv@anancy-653-1-63-100.w109-217.abo.wanadoo.fr) (Ping timeout: 260 seconds) |
| 02:18:33 | → | lorozic joins (~lorozic@wks-41-812.mpi-sws.org) |
| 02:18:51 | <ski> | maybe you could invent some more descriptive name, for this function, giving some more hint about what it's supposed to do ? |
| 02:19:20 | <Axman6> | > all (const False) [] |
| 02:19:22 | <lambdabot> | True |
| 02:19:44 | → | toorevitimirp joins (~tooreviti@117.182.182.201) |
| 02:19:58 | × | Unode quits (~Unode@unaffiliated/unode) (Quit: Off it goes) |
| 02:20:04 | → | solonarv joins (~solonarv@astrasbourg-653-1-252-112.w92-161.abo.wanadoo.fr) |
| 02:20:05 | <Axman6> | sepi: Did you write that function yourself? can you explain to us how it works? |
| 02:20:10 | → | Unode joins (~Unode@unaffiliated/unode) |
| 02:21:22 | × | ph88 quits (~ph88@ip5f5af71a.dynamic.kabel-deutschland.de) (Ping timeout: 258 seconds) |
| 02:21:34 | × | jedws quits (~jedws@121.209.139.222) (Ping timeout: 246 seconds) |
| 02:21:53 | × | voet quits (~voet@84.39.117.57) (Ping timeout: 260 seconds) |
| 02:22:10 | <Axman6> | I'm asking because if I were your lecturer or tutor, and I saw checkFSM and test in the same file, I would be very suspicious that test was copied from somewhere because it shows a much better understanding of Haskell than checkFSM does |
| 02:25:10 | ski | idly wonders whether sepi has tested `test [1,2,3] []' |
| 02:26:04 | × | lagothrix quits (~lagothrix@unaffiliated/lagothrix) (Killed (hitchcock.freenode.net (Nickname regained by services))) |
| 02:26:10 | → | lagothrix joins (~lagothrix@unaffiliated/lagothrix) |
| 02:27:14 | <sepi> | it is now called isSubsetOf, with 'all' it'll return true if all items in list meet the condition. so its taking the condition (elem b) and applying it to the 'a' list |
| 02:27:23 | × | renzhi quits (~renzhi@modemcable070.17-177-173.mc.videotron.ca) (Ping timeout: 240 seconds) |
| 02:28:48 | × | nek0 quits (~nek0@2a01:4f8:222:2b41::12) (Remote host closed the connection) |
| 02:29:07 | <ski> | and what about `isSubsetOf [1,2,3] []' ? |
| 02:29:18 | × | roconnor quits (~roconnor@host-45-78-255-115.dyn.295.ca) (Ping timeout: 258 seconds) |
| 02:30:10 | <sepi> | I suppose it should be isSubsetOf [] b = True for first condition |
| 02:31:12 | → | jedws joins (~jedws@121.209.139.222) |
| 02:31:33 | <Axman6> | is [1,2,3] a subset of [] though? |
| 02:32:45 | → | nek0 joins (~nek0@mail.nek0.eu) |
| 02:32:45 | → | Guest18351 joins (~angvp@217.146.82.202) |
| 02:32:59 | <sepi> | no because nothing is in [], but [] is a subset of [1,2,3] because empty is in [1,2,3] |
| 02:33:18 | <ski> | what will all (`elem` b) [] evaluate to ? |
| 02:33:23 | <Axman6> | does your function agree with that? |
| 02:33:34 | <sshine> | if empty is in [1,2,3], what is empty? |
| 02:33:39 | <Axman6> | ski: I think this does actually work btw |
| 02:34:13 | <ski> | Axman6 : mm, i was on cleaning up |
| 02:34:24 | <Axman6> | > let isSubsetOf xs ys = all (`elem` ys) xs in isSubsetOf [1,2,3] [] |
| 02:34:27 | <lambdabot> | False |
| 02:34:35 | → | justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311) |
| 02:34:38 | <Axman6> | > let isSubsetOf xs ys = all (`elem` ys) xs in isSubsetOf [] [1,2,3] |
| 02:34:40 | <lambdabot> | True |
| 02:34:43 | <Axman6> | > let isSubsetOf xs ys = all (`elem` ys) xs in isSubsetOf [4] [1,2,3] |
| 02:34:45 | <lambdabot> | False |
| 02:35:41 | → | arahael joins (~arahael@125-209-151-226.tpgi.com.au) |
| 02:36:04 | × | raehik quits (~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net) (Ping timeout: 260 seconds) |
| 02:37:20 | <Axman6> | > let isSubsetOf xs ys = all (`elem` ys) xs in isSubsetOf [3,2] [1,2,3] -- probably the more important test |
| 02:37:22 | <lambdabot> | True |
| 02:39:06 | → | xerox_ joins (~xerox@unaffiliated/xerox) |
| 02:40:46 | × | TheScoop quits (~TheScoop@unaffiliated/tryte) (Quit: _) |
| 02:41:39 | <ski> | > let isSubsetOf xs ys = all (`elem` ys) xs in isSubsetOf [3,2,3] [1,2,3,2] |
| 02:41:41 | <lambdabot> | True |
| 02:43:04 | × | marek quits (~mmahut@209.250.249.245) (Ping timeout: 260 seconds) |
| 02:43:12 | × | jedws quits (~jedws@121.209.139.222) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 02:43:27 | × | thewormkill quits (~thewormki@unaffiliated/twk-) (Ping timeout: 260 seconds) |
| 02:44:32 | → | mirrorbird joins (~psutcliff@h85-8-41-6.cust.a3fiber.se) |
| 02:45:10 | → | TheScoop joins (~TheScoop@unaffiliated/tryte) |
| 02:47:02 | → | josh joins (~josh@c-67-164-104-206.hsd1.ca.comcast.net) |
| 02:50:32 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 02:51:04 | → | thewormkill joins (~thewormki@unaffiliated/twk-) |
| 02:51:07 | × | theDon quits (~td@94.134.91.183) (Ping timeout: 240 seconds) |
| 02:51:18 | → | filwisher joins (~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) |
| 02:51:24 | → | DirefulSalt joins (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) |
| 02:51:27 | × | josh quits (~josh@c-67-164-104-206.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
| 02:53:05 | → | theDon joins (~td@94.134.91.135) |
| 02:53:09 | × | drbean quits (~drbean@TC210-63-209-16.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin1 - https://znc.in) |
| 02:53:10 | × | DirefulSalt quits (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection) |
| 02:53:47 | × | acidjnk_new quits (~acidjnk@p200300d0c72378045c7b1a0a573f1493.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 02:53:53 | → | marek joins (~mmahut@209.250.249.245) |
| 02:54:02 | → | DirefulSalt joins (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) |
| 02:57:18 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds) |
| 02:57:26 | → | BalterNotz joins (ca420871@202.66.8.113) |
| 02:59:13 | × | machinedgod quits (~machinedg@d67-193-126-196.home3.cgocable.net) (Ping timeout: 260 seconds) |
| 03:00:01 | × | Guest18351 quits (~angvp@217.146.82.202) () |
| 03:02:55 | → | Lord_of_Life_ joins (~Lord@unaffiliated/lord-of-life/x-0885362) |
| 03:03:13 | × | Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 246 seconds) |
| 03:03:26 | <BalterNotz> | hi everyone, do you know about haskell language 2020 report release date? |
| 03:03:38 | <ornxka> | some time in 2020 |
| 03:04:09 | Lord_of_Life_ | is now known as Lord_of_Life |
| 03:08:04 | <monochrom> | Nothing |
| 03:09:41 | → | roconnor joins (~roconnor@host-45-78-198-49.dyn.295.ca) |
| 03:09:46 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 03:11:33 | × | bloodstalker quits (~bloodstal@46.166.187.178) (Remote host closed the connection) |
| 03:13:58 | <sepi> | I made a function that checks for uniqueness within a list, 2 and 3 could be checked by isSubsetOf, for transition function I think I need to take all the possible outputs of d with q <- qs and c <- sigma and then make sure all these outputs are a valid state |
| 03:14:32 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 258 seconds) |
| 03:15:24 | <ski> | sepi : sounds like a plan |
| 03:15:34 | <ski> | (show current code ?) |
| 03:19:20 | → | Omentiger joins (~Omentiger@cpe-24-25-246-129.hawaii.res.rr.com) |
| 03:19:25 | × | solonarv quits (~solonarv@astrasbourg-653-1-252-112.w92-161.abo.wanadoo.fr) (Ping timeout: 240 seconds) |
| 03:19:45 | → | whiteline_ joins (~whiteline@unaffiliated/whiteline) |
| 03:20:30 | → | Stanley00 joins (~stanley00@unaffiliated/stanley00) |
| 03:21:01 | × | whiteline quits (~whiteline@unaffiliated/whiteline) (Read error: Connection reset by peer) |
| 03:22:16 | → | falafel_ joins (~falafel@2605:e000:1527:d491:f090:20fe:cddf:2a1a) |
| 03:23:20 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 03:28:43 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
| 03:29:14 | × | jlamothe quits (~jlamothe@dev.jlamothe.net) (Ping timeout: 256 seconds) |
| 03:30:15 | → | snakemasterflex joins (~snakemast@213.100.206.23) |
| 03:30:27 | × | falafel_ quits (~falafel@2605:e000:1527:d491:f090:20fe:cddf:2a1a) (Ping timeout: 240 seconds) |
| 03:30:39 | → | jlamothe joins (~jlamothe@dev.jlamothe.net) |
| 03:30:50 | <sepi> | I'm not even sure that's correct explanation for transition, conceptually I think I could write out a chart but still need to learn more to apply it to Haskell. https://dpaste.org/FQog |
| 03:31:01 | × | mirrorbird quits (~psutcliff@h85-8-41-6.cust.a3fiber.se) (Ping timeout: 258 seconds) |
| 03:34:15 | <monochrom> | You have a syntax problem. You should write "isSubsetOf fs qs", not "isSubsetOf (fs qs)". |
| 03:34:49 | <monochrom> | You also have a type problem. You should write "isSubsetOf [s] qs", not "isSubsetOf s qs". |
| 03:34:58 | × | snakemasterflex quits (~snakemast@213.100.206.23) (Ping timeout: 256 seconds) |
| 03:35:14 | <Axman6> | sepi: why do you have the isSubsetOf a [] = True case? you're saying that all lists are a subset of the empty list, which seems wrong to me |
| 03:35:44 | × | DirefulSalt quits (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection) |
| 03:35:44 | <monochrom> | haha I didn't catch that. Semantic problems are the best problems. |
| 03:35:58 | <ski> | we already pointed that one out, before |
| 03:36:24 | <Axman6> | yeah I only just realised that's what you were referring to, since the code changed when I went to look at it again |
| 03:36:40 | <ski> | sepi : instead of using `if', could you reexpress that condition, using logical operators ? |
| 03:36:43 | <monochrom> | Transition validty is a matter of: for all elements q of qs, for all element c of sigma, is "d q c" is an element of qs? |
| 03:37:10 | <monochrom> | Since you have learned the "all" function, transition validity is a one-liner. |
| 03:37:13 | → | DirefulSalt joins (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) |
| 03:37:44 | <Axman6> | Everything's a one-liner if you're brave enough |
| 03:37:56 | <monochrom> | Nah. |
| 03:38:57 | <monochrom> | Everything is a one-liner if there are enough support functions, which in turn are one-liners in their own right, recursively down to the built-ins. |
| 03:39:14 | <monochrom> | Therefore, we have the very wise and deep tautology: |
| 03:39:27 | <monochrom> | Everything is a one-liner if everything is a one-liner. :) |
| 03:40:00 | × | jb55 quits (~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection) |
| 03:40:31 | × | Omentiger quits (~Omentiger@cpe-24-25-246-129.hawaii.res.rr.com) (Quit: Leaving) |
| 03:40:48 | <hololeap> | everything is a "do" block |
| 03:41:31 | <hololeap> | in the IO monad |
| 03:41:42 | <Axman6> | Nah |
| 03:45:23 | → | paintedindigo joins (~paintedin@2605:a000:1621:8576:21b5:3482:9f3c:3756) |
| 03:45:26 | × | evanjs quits (~evanjs@075-129-188-019.res.spectrum.com) (Ping timeout: 272 seconds) |
| 03:45:37 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 03:52:18 | → | evanjs joins (~evanjs@075-129-188-019.res.spectrum.com) |
| 03:54:08 | × | justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) () |
| 03:55:13 | → | xmj1 joins (~xmj@178.239.168.171) |
| 03:57:49 | × | filwisher quits (~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 264 seconds) |
| 03:58:16 | → | filwisher joins (~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) |
| 03:58:47 | × | polyphem quits (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Ping timeout: 246 seconds) |
| 03:58:58 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 04:02:19 | × | adam_wespiser quits (~adam_wesp@209.6.42.110) (Remote host closed the connection) |
| 04:03:11 | → | day_ joins (~Unknown@unaffiliated/day) |
| 04:04:33 | × | filwisher quits (~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 260 seconds) |
| 04:06:07 | × | day quits (~Unknown@unaffiliated/day) (Ping timeout: 240 seconds) |
| 04:06:07 | day_ | is now known as day |
| 04:06:31 | → | filwisher joins (~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) |
| 04:07:37 | → | adam_wespiser joins (~adam_wesp@209.6.42.110) |
| 04:08:44 | <sepi> | tValid :: Int -> Char -> Int -> BooltValid d q c = all (`elem` q) qs && all (`elem` c) sigma |
| 04:08:59 | <sepi> | monochrom would this be a decent start? |
| 04:09:37 | <sepi> | ski you mean other than guards correct? for the if statement |
| 04:12:13 | × | adam_wespiser quits (~adam_wesp@209.6.42.110) (Ping timeout: 264 seconds) |
| 04:12:29 | → | alp joins (~alp@2a01:e0a:58b:4920:3dd5:cbe7:ffdd:6e48) |
| 04:13:05 | × | dansho quits (~dansho@ip68-108-167-185.lv.lv.cox.net) (Quit: Leaving) |
| 04:13:27 | → | plutoniix joins (~q@175.176.222.7) |
| 04:15:06 | × | filwisher quits (~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 258 seconds) |
| 04:18:59 | × | elliott_ quits (~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
| 04:20:02 | → | elliott_ joins (~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) |
| 04:20:17 | → | filwisher joins (~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) |
| 04:22:10 | × | Sheilong quits (uid293653@gateway/web/irccloud.com/x-gvtsuqkvrqeloqyq) () |
| 04:23:37 | × | sepi quits (49dc4892@c-73-220-72-146.hsd1.ca.comcast.net) (Remote host closed the connection) |
| 04:24:32 | → | adam_wespiser joins (~adam_wesp@209.6.42.110) |
| 04:25:35 | → | benet8 joins (~lubuntu@179.176.72.238.dynamic.adsl.gvt.net.br) |
| 04:25:48 | → | sepi joins (49dc4892@c-73-220-72-146.hsd1.ca.comcast.net) |
| 04:26:48 | <benet8> | on |
| 04:27:25 | <sepi> | My bad got disconnected didn't realize. thanks for the assistance Haskell is a little clearer than when I woke this morning |
| 04:28:12 | × | Orbstheorem quits (~roosember@hellendaal.orbstheorem.ch) (Ping timeout: 260 seconds) |
| 04:30:03 | × | sepi quits (49dc4892@c-73-220-72-146.hsd1.ca.comcast.net) (Remote host closed the connection) |
| 04:32:25 | <benet8> | q |
| 04:32:29 | <sim590> | Is it possible to force building the package of my cabal project without downloading anythihng. I'm writing some CI script and I don't want any downloading since everything is being installed in my Docker image. |
| 04:33:45 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 04:35:08 | → | Clough joins (~Cain@210.185.68.138) |
| 04:38:28 | hackage | hls-plugin-api 0.4.1.0 - Haskell Language Server API for plugin communication https://hackage.haskell.org/package/hls-plugin-api-0.4.1.0 (jneira) |
| 04:39:13 | × | toorevitimirp quits (~tooreviti@117.182.182.201) (Ping timeout: 264 seconds) |
| 04:39:33 | <sim590> | new-build --offline just doesn't work. I still see "Downloading" lines. |
| 04:40:01 | × | mozzarella quits (~sam@unaffiliated/sam113101) (Remote host closed the connection) |
| 04:40:35 | × | argent0 quits (~argent0@168.227.96.4) (Remote host closed the connection) |
| 04:41:26 | → | mozzarella joins (~sam@unaffiliated/sam113101) |
| 04:43:19 | × | jneira quits (501e65ce@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.101.206) (Ping timeout: 246 seconds) |
| 04:45:23 | × | filwisher quits (~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 240 seconds) |
| 04:46:47 | × | xff0x quits (~fox@2001:1a81:53b0:3c00:19ba:3f05:ac4b:7fb3) (Ping timeout: 240 seconds) |
| 04:47:46 | → | filwisher joins (~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) |
| 04:47:56 | → | xff0x joins (~fox@2001:1a81:53b0:3c00:9889:b2f6:c747:1eec) |
| 04:51:01 | × | benet8 quits (~lubuntu@179.176.72.238.dynamic.adsl.gvt.net.br) (Remote host closed the connection) |
| 04:54:17 | → | polyrain joins (~polyrain@130.102.13.187) |
| 04:58:28 | → | TooDifficult joins (~TooDiffic@139.59.59.230) |
| 04:58:48 | × | filwisher quits (~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 258 seconds) |
| 04:59:12 | → | mmohammadi9812 joins (~mmohammad@188.210.120.20) |
| 04:59:32 | × | adam_wespiser quits (~adam_wesp@209.6.42.110) (Ping timeout: 272 seconds) |
| 05:00:28 | → | filwisher joins (~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) |
| 05:04:25 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 05:04:33 | → | josh___ joins (~josh@c-67-164-104-206.hsd1.ca.comcast.net) |
| 05:07:28 | × | polyrain quits (~polyrain@130.102.13.187) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 05:09:23 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 05:15:40 | × | filwisher quits (~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 260 seconds) |
| 05:16:29 | × | justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 246 seconds) |
| 05:16:46 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds) |
| 05:17:05 | × | xmj1 quits (~xmj@178.239.168.171) (Remote host closed the connection) |
| 05:17:53 | → | filwisher joins (~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) |
| 05:18:23 | → | snakemasterflex joins (~snakemast@213.100.206.23) |
| 05:20:03 | → | ishutin_ joins (~Ishutin@92-249-150-146.static.digikabel.hu) |
| 05:20:27 | → | Quarl joins (~Quarl@94.191.138.174.mobile.tre.se) |
| 05:22:03 | <hololeap> | what's a good way to combine functions that pattern match on a sum type, so that if the first function fails to match, it moves on to the next? |
| 05:22:52 | × | snakemasterflex quits (~snakemast@213.100.206.23) (Ping timeout: 246 seconds) |
| 05:23:37 | × | ishutin quits (~Ishutin@178-164-206-35.pool.digikabel.hu) (Ping timeout: 264 seconds) |
| 05:23:47 | <hololeap> | i think this could be made into a monoid somehow, where mempty is a function that never matches |
| 05:24:06 | <glguy> | Have the function return a Maybe result |
| 05:24:14 | <glguy> | Nothing for no match, Just result for a match |
| 05:24:57 | <glguy> | then you can take the first result that was a Just |
| 05:25:01 | <hololeap> | ah, or a Maybe (First a), which would fufill my monoid wishes |
| 05:25:25 | <glguy> | Instead of Monoid you can use Alternative |
| 05:25:44 | <glguy> | If you want to use First, just use First; you don't need the extra Maybe in that case |
| 05:26:40 | <hololeap> | what would i do if the entire thing returned a Nothing? ideally it would pass through the normal error about failing a pattern match |
| 05:27:19 | <glguy> | There's no failing pattern matches |
| 05:27:45 | <glguy> | You'll have all complete patterns; some will return Nothing |
| 05:28:28 | <hololeap> | in this case, the Maybe has to be discarded before it is passed along |
| 05:28:47 | → | coot joins (~coot@37.30.59.210.nat.umts.dynamic.t-mobile.pl) |
| 05:29:15 | <hololeap> | i'm looking at appHandleEvent from Brick.Main |
| 05:30:30 | <hololeap> | i would like to have a "default" where certain BrickEvent possibilities are handled, but the ability to pass in custom handlers which can handle more possibilites |
| 05:31:30 | × | xelxebar quits (~xelxebar@gateway/tor-sasl/xelxebar) (Remote host closed the connection) |
| 05:31:43 | <hololeap> | oh, i think i see the correct solution here |
| 05:31:49 | → | xelxebar joins (~xelxebar@gateway/tor-sasl/xelxebar) |
| 05:32:11 | → | snakemasterflex joins (~snakemast@213.100.206.23) |
| 05:33:22 | <hololeap> | if the inner function returns a Nothing, then it will pass through the original state |
| 05:36:05 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 05:36:39 | × | filwisher quits (~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 260 seconds) |
| 05:38:14 | → | filwisher joins (~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) |
| 05:38:23 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 05:39:58 | × | alp quits (~alp@2a01:e0a:58b:4920:3dd5:cbe7:ffdd:6e48) (Remote host closed the connection) |
| 05:40:20 | → | alp joins (~alp@2a01:e0a:58b:4920:8dc4:6663:c8fb:d2c0) |
| 05:48:13 | × | Jeanne-Kamikaze quits (~Jeanne-Ka@68.235.43.166) (Ping timeout: 264 seconds) |
| 05:51:05 | × | filwisher quits (~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 240 seconds) |
| 05:52:06 | → | mu_ joins (~mu@unaffiliated/mu) |
| 05:52:53 | → | jedws joins (~jedws@121.209.139.222) |
| 05:52:54 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 05:53:17 | → | mu_ joins (~mu@unaffiliated/mu) |
| 05:55:29 | → | polyrain joins (~polyrain@130.102.13.187) |
| 05:56:11 | × | plutoniix quits (~q@175.176.222.7) (Ping timeout: 240 seconds) |
| 05:56:28 | × | josh___ quits (~josh@c-67-164-104-206.hsd1.ca.comcast.net) (Remote host closed the connection) |
| 05:57:26 | → | plutoniix joins (~q@175.176.222.7) |
| 05:57:50 | → | filwisher joins (~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) |
| 05:59:01 | × | plutoniix quits (~q@175.176.222.7) (Max SendQ exceeded) |
| 06:00:18 | → | supercoven joins (~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi) |
| 06:01:38 | → | shatriff joins (~vitaliish@176.52.219.10) |
| 06:03:12 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 06:03:18 | → | mu__ joins (~mu@unaffiliated/mu) |
| 06:04:08 | × | filwisher quits (~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 272 seconds) |
| 06:06:53 | × | supercoven quits (~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi) (Max SendQ exceeded) |
| 06:07:08 | → | supercoven joins (~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi) |
| 06:09:15 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 06:09:47 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 06:11:11 | → | justanotheruser joins (~justanoth@unaffiliated/justanotheruser) |
| 06:12:19 | → | fog joins (a181460d@gateway/web/cgi-irc/kiwiirc.com/ip.161.129.70.13) |
| 06:12:31 | → | josh joins (~josh@c-67-164-104-206.hsd1.ca.comcast.net) |
| 06:12:56 | <fog> | do we have something like go in haskell? |
| 06:12:57 | × | mu__ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 06:13:17 | → | mu_ joins (~mu@unaffiliated/mu) |
| 06:13:38 | × | supercoven quits (~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi) (Max SendQ exceeded) |
| 06:13:56 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 258 seconds) |
| 06:13:56 | → | supercoven joins (~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi) |
| 06:14:08 | <fog> | i was watching a pretty cool talk about how it made its way into "kotlin" https://www.youtube.com/watch?v=Mj5P47F6nJg |
| 06:14:59 | <fog> | erm, not the whole of go obviously, just the async await stuff |
| 06:15:06 | <fog> | seemed pretty state of the art |
| 06:15:11 | <gnumonik> | Is there any way to use Control.Lens to update an element of a Data.Vector vector if it's present, and insert some other element if it's not? Or is that impossible because vectors aren't sufficiently maplike for a Control.Lens.At At instance? |
| 06:16:04 | × | polux2001 quits (~polux@51.15.169.172) (Quit: The Lounge - https://thelounge.github.io) |
| 06:16:10 | <fog> | what do you mean "if its present" - and "sufficently maplike" ? |
| 06:16:24 | → | polux2001 joins (~polux@51.15.169.172) |
| 06:16:43 | → | plutoniix joins (~q@175.176.222.7) |
| 06:16:48 | → | jgt joins (~jgt@46.250.27.223.pool.breezein.net) |
| 06:17:20 | <fog> | im guessing you mean like Data.Map has a lookup key which is used by At |
| 06:17:38 | <fog> | so you want to lens to a specific position in the vector |
| 06:17:59 | <fog> | but then, what would it mean to have this "not be there"? |
| 06:18:05 | <fog> | arent vectors "full"? |
| 06:18:11 | × | unlink2 quits (~unlink2@p200300ebcf25bd0068eb9d9c94da2a17.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 06:18:29 | → | unlink2 joins (~unlink2@p200300ebcf25bd0068eb9d9c94da2a17.dip0.t-ipconnect.de) |
| 06:18:30 | <gnumonik> | er sorry, i meant an element at a given index in the vector. really i only care about the case where it's an empty vector |
| 06:19:23 | <fog> | hmm, i cant remember if vectors have fixed length... let me check the docs |
| 06:20:21 | <fog> | ah, no, they are specifcally supposed to support slicing, so i guess the empty vector is like the empty list, instead of like, a fixed length vector full of undefineds or something |
| 06:20:36 | <fog> | so im still not sure this "if its present" fits well with this |
| 06:20:45 | <fog> | do you just mean an out of bounds accessor? |
| 06:21:16 | <fog> | but then, i guess you couldnt have it "insert" at this position - basically thinking of it being listlike - so you would need all the values inbetween aswell |
| 06:21:38 | <fog> | basically, no, its not suffciently maplike to insert at an arbitrary out of bounds position |
| 06:21:43 | × | jgt quits (~jgt@46.250.27.223.pool.breezein.net) (Ping timeout: 256 seconds) |
| 06:22:46 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 06:23:08 | × | hiroaki quits (~hiroaki@ip4d176049.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds) |
| 06:23:17 | <fog> | i think you could be confusing it with something like memory addresses, where you would kind of malloc off a block, like the mutability of mvector |
| 06:23:27 | → | mu_ joins (~mu@unaffiliated/mu) |
| 06:23:45 | <fog> | then you could have these presumably not containing any actual values. thats not how vectors work |
| 06:24:21 | <fog> | is it? |
| 06:25:56 | → | jgt joins (~jgt@46.250.27.223.pool.breezein.net) |
| 06:26:19 | <gnumonik> | I just meant "empty" in the Data.Vector.empty sense I think? I dunno if those are empty in some deeper sense than V.null (V.empty) = True |
| 06:26:50 | <fog> | % null [] |
| 06:26:51 | <yahb> | fog: True |
| 06:26:52 | → | zacts joins (~zacts@dragora/developer/zacts) |
| 06:27:05 | <fog> | maybe you want https://hackage.haskell.org/package/array-0.5.4.0/docs/Data-Array.html |
| 06:28:31 | <Xnuk> | what is % |
| 06:28:50 | <fog> | > null [] |
| 06:28:52 | <lambdabot> | True |
| 06:29:08 | <fog> | see how its either lambdabot or yahb that responds |
| 06:29:18 | <fog> | % is for messaging yahb |
| 06:29:19 | <yahb> | fog: ; <interactive>:133:1: error:; * Variable not in scope: is :: (t2 a0 -> (a0 -> f0 b0) -> f0 (t2 b0)) -> t0 -> t1 -> t; * Perhaps you meant one of these: `C.id' (imported from Control.Category), `id' (imported from Prelude), `iso' (imported from Control.Lens); <interactive>:133:8: error: Variable not in scope: messaging; <interactive>:133:18: error: Variable not in scope: yahb |
| 06:29:23 | <fog> | ... |
| 06:29:26 | <Xnuk> | awesome |
| 06:29:37 | <Xnuk> | > is for messaging lambdabot |
| 06:29:40 | <lambdabot> | error: |
| 06:29:40 | <lambdabot> | • Variable not in scope: |
| 06:29:40 | <lambdabot> | is :: (t2 a0 -> (a0 -> f0 b0) -> f0 (t2 b0)) -> t0 -> t1 -> t |
| 06:29:45 | <fog> | yes |
| 06:29:59 | × | alp quits (~alp@2a01:e0a:58b:4920:8dc4:6663:c8fb:d2c0) (Ping timeout: 272 seconds) |
| 06:30:07 | <fog> | yahb is sometimes better for supporting module imports and language extensions |
| 06:30:19 | <fog> | never quite sure when lambdabot is going to complain |
| 06:30:23 | × | jgt quits (~jgt@46.250.27.223.pool.breezein.net) (Ping timeout: 260 seconds) |
| 06:31:15 | → | jonatanb joins (~jonatanb@83.24.231.247.ipv4.supernova.orange.pl) |
| 06:32:34 | <fog> | gnumonik: see; https://hackage.haskell.org/package/array-0.5.4.0/docs/Data-Array-MArray.html#g:3 |
| 06:33:08 | <fog> | im guessing nobody online can answer about go or kotlin - ill return in a while |
| 06:33:08 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 06:33:18 | → | mu__ joins (~mu@unaffiliated/mu) |
| 06:33:37 | <gnumonik> | I'll check it out, thanks. That might be overkill though. I read that "never use lists" article and converted a bunch of lists that will never hold more than a dozen elements into vectors because... I dunno |
| 06:33:43 | × | fog quits (a181460d@gateway/web/cgi-irc/kiwiirc.com/ip.161.129.70.13) (Quit: Connection closed) |
| 06:34:31 | × | cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye) |
| 06:34:57 | → | filwisher joins (~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) |
| 06:35:04 | → | jgt joins (~jgt@46.250.27.223.pool.breezein.net) |
| 06:35:08 | → | thir joins (~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) |
| 06:35:34 | <Xnuk> | https://hackage.haskell.org/package/async |
| 06:38:00 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 06:40:01 | → | dhouthoo joins (~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be) |
| 06:40:46 | × | jgt quits (~jgt@46.250.27.223.pool.breezein.net) (Ping timeout: 256 seconds) |
| 06:42:30 | <hc> | ah, the beautiful async package. :) multithreaded programming is one of the most enjoyable things to do in haskell imho |
| 06:42:47 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 06:42:47 | × | mu__ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 06:43:17 | → | mu_ joins (~mu@unaffiliated/mu) |
| 06:43:46 | → | danvet_ joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
| 06:43:49 | × | ph88^ quits (~ph88@ip5f5af71a.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 06:44:19 | → | jgt joins (~jgt@46.250.27.223.pool.breezein.net) |
| 06:44:27 | × | thir quits (~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 06:48:27 | × | jgt quits (~jgt@46.250.27.223.pool.breezein.net) (Ping timeout: 240 seconds) |
| 06:50:21 | → | fog joins (a1814696@gateway/web/cgi-irc/kiwiirc.com/ip.161.129.70.150) |
| 06:50:22 | → | drbean joins (~drbean@TC210-63-209-154.static.apol.com.tw) |
| 06:50:48 | <fog> | hc: do you know how this compares to the "job" and "structured concurrency" notions from kotlin (discussed in the talk linked) |
| 06:51:06 | → | m0rphism joins (~m0rphism@HSI-KBW-046-005-177-122.hsi8.kabel-badenwuerttemberg.de) |
| 06:51:28 | <hc> | fog: kotlin in based on the java vm, so I guess they'll be using some async/await concept? |
| 06:51:37 | <fog> | they have a fancy "launch" thing that somehow captures all of the scopes nicely and does error propagation in a way that is somehow good |
| 06:51:53 | <hc> | lemme check it |
| 06:51:56 | <fog> | hc: argh, i cant really summarise the talk very well... |
| 06:52:46 | × | polyrain quits (~polyrain@130.102.13.187) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 06:52:46 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 06:52:47 | <fog> | it was something to do with branching concurent substructures all being contained in the same kind of overall thread |
| 06:53:09 | <fog> | so that errors could not "leak from the context" or something... |
| 06:53:13 | <hc> | could you give me a link to the talk? i cannot find it in the backlog |
| 06:53:25 | <fog> | https://www.youtube.com/watch?v=Mj5P47F6nJg |
| 06:53:30 | → | jgt joins (~jgt@46.250.27.223.pool.breezein.net) |
| 06:53:30 | → | mu_ joins (~mu@unaffiliated/mu) |
| 06:53:39 | <hc> | thx |
| 06:53:45 | <fog> | "Roman Elizarov — Structured concurrency" |
| 06:54:22 | <fog> | i think it was something to do with "go considered harmful" |
| 06:54:26 | <hc> | having a look at it now |
| 06:54:29 | <fog> | ok |
| 06:54:47 | × | fog quits (a1814696@gateway/web/cgi-irc/kiwiirc.com/ip.161.129.70.150) (Client Quit) |
| 06:55:17 | <hc> | ah. "inspired by async/await". 2nd slide. so it cannot be good ;p |
| 06:55:19 | → | UltimateNate joins (~UltimateN@185.189.112.19) |
| 06:55:49 | × | mu_ quits (~mu@unaffiliated/mu) (Client Quit) |
| 06:56:37 | × | Turmfalke quits (~user@unaffiliated/siracusa) (Quit: Bye!) |
| 06:57:06 | → | mananamenos joins (~mananamen@84.122.202.215.dyn.user.ono.com) |
| 06:57:17 | → | falafel_ joins (~falafel@2605:e000:1527:d491:f090:20fe:cddf:2a1a) |
| 06:58:01 | × | jgt quits (~jgt@46.250.27.223.pool.breezein.net) (Ping timeout: 258 seconds) |
| 06:58:49 | → | fog joins (a18146b8@gateway/web/cgi-irc/kiwiirc.com/ip.161.129.70.184) |
| 06:59:14 | → | chele joins (~chele@ip5b416ea2.dynamic.kabel-deutschland.de) |
| 06:59:33 | <fog> | basically, the way im doing it atm is to just launch an exe per function - and to have these all just communicate with each other using stdio |
| 07:00:35 | → | Ariakenom joins (~Ariakenom@h-98-128-229-34.NA.cust.bahnhof.se) |
| 07:00:38 | <fog> | the problem with the idea of "structured concurrency" in this approach, is that if any of the processes are long lived, and are killed unexpectedly by some rogue sentinal process (which seems to be the case at least on the free tier of AWS) |
| 07:01:01 | <fog> | where its actually really difficult to get a persistent process |
| 07:01:21 | <fog> | so then, the functions have to kind of watch the threads of each other to see if one gets killed |
| 07:01:39 | <fog> | and have the ability to restart the thing that watches over them if *it* gets killed |
| 07:02:12 | <fog> | so the idea of having these all under one parent process is totally counterproductive, since it would result in all the processes getting killed |
| 07:02:27 | hackage | fakedata 0.8.0 - Library for producing fake data https://hackage.haskell.org/package/fakedata-0.8.0 (psibi) |
| 07:02:39 | → | jgt joins (~jgt@46.250.27.223.pool.breezein.net) |
| 07:02:47 | → | polyrain joins (~polyrain@130.102.13.187) |
| 07:02:53 | <fog> | the real problem is that these are all done using linux threads, and i have some crude way of interfacing with top to get the thread numbers, its all a total hack |
| 07:03:15 | <fog> | and that really what i want, is for some kind of haskell based representation of a graph to keep track of all of these threads |
| 07:03:34 | <fog> | but then i cant reconcile the "distributed" thing, of having each of the functions running on its own exe |
| 07:03:53 | × | rprije quits (~rprije@27.143.220.203.dial.dynamic.acc01-myal-dub.comindico.com.au) (Remote host closed the connection) |
| 07:04:15 | <fog> | and the way of handling all of the communication structure from within one haskell program, so i can use nice representations of graphs for the function net |
| 07:04:31 | × | fog quits (a18146b8@gateway/web/cgi-irc/kiwiirc.com/ip.161.129.70.184) (Quit: Connection closed) |
| 07:05:25 | × | josh quits (~josh@c-67-164-104-206.hsd1.ca.comcast.net) (Remote host closed the connection) |
| 07:06:11 | → | rprije joins (~rprije@27.143.220.203.dial.dynamic.acc01-myal-dub.comindico.com.au) |
| 07:06:37 | → | josh joins (~josh@c-67-164-104-206.hsd1.ca.comcast.net) |
| 07:07:52 | × | jgt quits (~jgt@46.250.27.223.pool.breezein.net) (Ping timeout: 246 seconds) |
| 07:08:07 | × | polyrain quits (~polyrain@130.102.13.187) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 07:11:46 | → | fog joins (a1814687@gateway/web/cgi-irc/kiwiirc.com/ip.161.129.70.135) |
| 07:13:07 | → | alp joins (~alp@2a01:e0a:58b:4920:1865:138c:f898:eb2d) |
| 07:15:42 | → | jgt joins (~jgt@194.143.137.49.users.breezein.net) |
| 07:16:00 | × | mmohammadi9812 quits (~mmohammad@188.210.120.20) (Quit: I quit (╯°□°)╯︵ ┻━┻) |
| 07:16:14 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 07:17:25 | × | poljar quits (~poljar@93-139-70-179.adsl.net.t-com.hr) (Remote host closed the connection) |
| 07:17:58 | → | poljar joins (~poljar@93-139-70-179.adsl.net.t-com.hr) |
| 07:18:04 | → | FreeBirdLjj joins (~freebirdl@240e:388:4f41:dc00:dcc7:aca0:59fb:f630) |
| 07:18:25 | × | roconnor quits (~roconnor@host-45-78-198-49.dyn.295.ca) (Ping timeout: 240 seconds) |
| 07:20:01 | × | robogoat quits (~robogoat@209.195.0.146) (Ping timeout: 265 seconds) |
| 07:20:47 | → | robogoat joins (~robogoat@209.195.0.146) |
| 07:20:53 | → | Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
| 07:21:10 | <hc> | fog: ah, you were gone shortly when I said about the talk: "ah. "inspired by async/await". 2nd slide. so it cannot be good ;p" |
| 07:21:24 | <fog> | hmm |
| 07:21:37 | <hc> | imho the async/await is justified in some niche programming areas, but the way it's accepted as a generic paradigm is a bit scary |
| 07:21:50 | <hc> | i don't consider it a feature of a high level language |
| 07:21:51 | <fog> | can you elaborate? |
| 07:21:59 | → | dyeplexer joins (~lol@unaffiliated/terpin) |
| 07:22:03 | <hc> | you clutter your code with implementation details that should be left to the runtime |
| 07:22:07 | × | FreeBirdLjj quits (~freebirdl@240e:388:4f41:dc00:dcc7:aca0:59fb:f630) (Ping timeout: 240 seconds) |
| 07:22:25 | × | zacts quits (~zacts@dragora/developer/zacts) (Quit: leaving) |
| 07:22:43 | <fog> | i guess thats why he was using kotlin - the resulting implementation managed to capture the hierarchical concurrency really neatly |
| 07:22:59 | <hc> | ok, i'll have to continue with the talk :) |
| 07:23:27 | <fog> | basically it ended up with it being like a tree structure with all the branching lower forked processes being under the same top node |
| 07:23:40 | <fog> | which allowed for errors to be gathered |
| 07:23:52 | × | josh quits (~josh@c-67-164-104-206.hsd1.ca.comcast.net) (Remote host closed the connection) |
| 07:23:56 | <fog> | and that no strange effects could escape the encapsulation |
| 07:24:09 | <fog> | but this was kind of the exact opposite of my use case |
| 07:24:19 | <fog> | i cant see how that would ever work in a distributed setting |
| 07:24:34 | <fog> | it seems like its just an approach to "green threads" managment - within the program itself |
| 07:25:03 | <fog> | instead of as a way of scheduling genuinely parallel computations, running in different exes possibly on different machines |
| 07:25:28 | × | MattMareo quits (~mattl@unaffiliated/mattmareo) (Quit: WeeChat 2.7.1) |
| 07:25:39 | → | dhil joins (~dhil@11.29.39.217.dyn.plus.net) |
| 07:25:41 | <fog> | if you try and encapsulate all your threads in one runtime, then how can you ever hope to have distributed concurrency... |
| 07:26:18 | × | fog quits (a1814687@gateway/web/cgi-irc/kiwiirc.com/ip.161.129.70.135) (Quit: Connection closed) |
| 07:31:02 | × | falafel_ quits (~falafel@2605:e000:1527:d491:f090:20fe:cddf:2a1a) (Ping timeout: 260 seconds) |
| 07:31:17 | × | jedws quits (~jedws@121.209.139.222) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 07:32:42 | × | xelxebar quits (~xelxebar@gateway/tor-sasl/xelxebar) (Remote host closed the connection) |
| 07:33:09 | → | xelxebar joins (~xelxebar@gateway/tor-sasl/xelxebar) |
| 07:33:55 | <hc> | sigh, that talk is too verbose... i need to find a PDF or something |
| 07:34:40 | → | chaosmasttter joins (~chaosmast@p200300c4a70aba01f8f8cb9b34fa26e3.dip0.t-ipconnect.de) |
| 07:35:07 | × | murphy_ quits (~murphy_@2604:2000:1281:8a9e:46d4:9a6b:fb19:e552) (Ping timeout: 240 seconds) |
| 07:35:29 | → | murphy_ joins (~murphy_@2604:2000:1281:8a9e:a00c:e87a:3ee5:cae0) |
| 07:35:30 | → | fog joins (a18146a5@gateway/web/cgi-irc/kiwiirc.com/ip.161.129.70.165) |
| 07:36:02 | <fog> | hc: its not like the question actually requires an understanding of the concept of structured concurrency |
| 07:36:22 | <fog> | i dont want you to have to watch a whole talk just to get what i mean... |
| 07:37:08 | × | paintedindigo quits (~paintedin@2605:a000:1621:8576:21b5:3482:9f3c:3756) (Quit: Leaving) |
| 07:37:28 | → | paintedindigo joins (~paintedin@2605:a000:1621:8576:21b5:3482:9f3c:3756) |
| 07:37:52 | <hc> | fog: i gave up anyway; I'd rather read a paper or article about the concepts |
| 07:38:00 | <fog> | supposing i dont care about distributing the processes and i can just have everything in one program |
| 07:38:45 | <fog> | then i can use things like the async library - and im mostly concerned with comunication "channels" and shared memory like in STM - or mutable state per "node" like in an actors model |
| 07:39:06 | → | fendor joins (~fendor@77.119.130.118.wireless.dyn.drei.com) |
| 07:39:33 | → | kritzefitz joins (~kritzefit@fw-front.credativ.com) |
| 07:39:46 | × | howdoi quits (uid224@gateway/web/irccloud.com/x-mbjggxgdrdmqyxnj) (Quit: Connection closed for inactivity) |
| 07:40:08 | <fog> | hc: i dont really want to start linking a bunch of kotlin stuff here, but the author showed some blog posts he had made during the talk, so i guess you can just search his name |
| 07:40:08 | × | paintedindigo quits (~paintedin@2605:a000:1621:8576:21b5:3482:9f3c:3756) (Client Quit) |
| 07:40:29 | → | paintedindigo joins (~paintedin@2605:a000:1621:8576:21b5:3482:9f3c:3756) |
| 07:41:04 | <fog> | he said it was mostly inspired by this post; |
| 07:41:04 | <fog> | https://vorpus.org/blog/notes-on-structured-concurrency-or-go-statement-considered-harmful/ |
| 07:41:27 | <fog> | or rather, thats where the phrase "structured concurrency" was taken from |
| 07:42:02 | <fog> | do you know of any abstractions that capture these concepts? |
| 07:42:12 | <fog> | like, STM, vs Actors etc |
| 07:42:36 | <hc> | tbh, the article already makes me a bit biased by starting with a sentence like 'Every concurrency API needs a way to run code concurrently.' |
| 07:42:36 | <fog> | i cant think what functions a class would have to provide to capture both of these concurrency paradigms |
| 07:42:44 | → | borne joins (~fritjof@200116b864231000537d5cc8226f9d9f.dip.versatel-1u1.de) |
| 07:43:10 | <fog> | biased? |
| 07:43:58 | hackage | orbits 0.4 - Types and functions for Kepler orbits. https://hackage.haskell.org/package/orbits-0.4 (jophish) |
| 07:44:04 | <fog> | im just concerned that while we have at least one implementation of Actors, (i havent looked into STM yet, as i dont think i need shared mutable memory) |
| 07:44:21 | <fog> | that they dont satisfy an overall interface |
| 07:44:36 | <fog> | im not quite sure what that would be |
| 07:45:01 | <fog> | the talk basically was along the lines of "dont make a list of concurrent processes" |
| 07:45:38 | <fog> | and instead advocated them being treelike to capture ancestry in order to propagate failure and errors. |
| 07:45:43 | <hc> | wait, he has to explain to me his new control structure by starting with a history of goto? sorry, haven't got the time for that right now |
| 07:46:24 | <fog> | right, dont bother with the talk, sorry - i was just trying to get the part that was important |
| 07:46:53 | <hc> | i mean the article. that's just as confusing and verbose |
| 07:47:13 | <fog> | there was basically some magical way the kotlin language managed to render all of the handling of this tree processes as syntax where it could wrangle the contexts |
| 07:47:40 | <nshepperd1> | what concurrency API doesn't need a way to run code concurrently |
| 07:47:51 | <fog> | hc: seriously, its so simple - its just a tree as opposed to a list of concurrent processes. |
| 07:48:04 | × | BalterNotz quits (ca420871@202.66.8.113) (Remote host closed the connection) |
| 07:48:57 | <fog> | anyway, i cant understand how to structure an API for an actors model. apparently i dont want a "node list" and so presumably i dont want an edge list either |
| 07:49:12 | <fog> | i guess the idea is just to capture all that into a syntax tree |
| 07:49:31 | <fog> | and that kotlin gives some fancy way to write syntax like functions or something |
| 07:49:52 | <fog> | so that he could write things like keywords like "launch" or "run" |
| 07:50:28 | → | lucid_0x80 joins (~lucid_0x8@188.253.237.9) |
| 07:50:48 | <fog> | but basically the whole idea of "structured concurrency" was just something like having a ADT for the connectivity between calling processes |
| 07:51:42 | <fog> | ah, im confusing "comunications chanels" as edges, and this "calling processes" as parents, as branches in the syntax tree |
| 07:51:57 | <fog> | i guess i should read more about mailboxes |
| 07:52:50 | × | fog quits (a18146a5@gateway/web/cgi-irc/kiwiirc.com/ip.161.129.70.165) (Quit: Connection closed) |
| 07:54:04 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:b248:7aff:feea:34b6) |
| 07:56:02 | × | digia quits (~digia@unaffiliated/digia) (Quit: Beep Boop...) |
| 07:56:17 | → | digia joins (~digia@unaffiliated/digia) |
| 07:58:33 | → | DavidEichmann joins (~david@43.240.198.146.dyn.plus.net) |
| 07:58:47 | → | madjestic joins (~madjestic@86-88-72-244.fixed.kpn.net) |
| 07:58:52 | m1dnight_ | is now known as m1d |
| 07:59:15 | → | fog30 joins (a18146b7@gateway/web/cgi-irc/kiwiirc.com/ip.161.129.70.183) |
| 07:59:36 | <fog30> | ok, so from what i can understand, it needs something like an erlang "scheduler" |
| 08:00:18 | <fog30> | otherwise its going to be a wasteful thread, just rereading an empty mailbox over and over until it receives a "message" which is some input argument to the function |
| 08:01:19 | <fog30> | im not sure how it works to do with the mailbox being listlike, so that the receipt of messages can be raced upon, and the control of which inputs to accept is then passed to the actor |
| 08:01:22 | → | John20 joins (~John@82.46.59.122) |
| 08:02:06 | <fog30> | like it can say, "i take types of Either Int Bool, where the Ints are from this actor, and im going to process them before any of the Bools im recieving from this other actor" |
| 08:02:12 | <fog30> | by "reading its mailbox" |
| 08:02:31 | <fog30> | and in this way, somehow converting between being a pushed or pulled process.. |
| 08:02:48 | <fog30> | not sure what the termanology is - something to do with state vs costate |
| 08:02:56 | <fog30> | producer vs consumer |
| 08:03:01 | m1d | is now known as m1dnight_ |
| 08:03:22 | × | Clough quits (~Cain@210.185.68.138) (Read error: Connection reset by peer) |
| 08:03:33 | <fog30> | that by reading its mailbox, it decides when to respond, as opposed to being forced to respond by the thing sending messages |
| 08:03:49 | → | Clough joins (~Cain@210.185.68.138) |
| 08:03:50 | × | rprije quits (~rprije@27.143.220.203.dial.dynamic.acc01-myal-dub.comindico.com.au) (Remote host closed the connection) |
| 08:04:11 | → | rprije joins (~rprije@27.143.220.203.dial.dynamic.acc01-myal-dub.comindico.com.au) |
| 08:04:13 | × | klardotsh quits (~klardotsh@24.17.103.8) (Ping timeout: 246 seconds) |
| 08:04:17 | × | hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-rzmwmtzgbawceqym) (Quit: Connection closed for inactivity) |
| 08:04:41 | <fog30> | so you dont like, supply an argument to a function, you just put it in the mailbox, and the function can decide when to operate on it - i guess essentially becoming blocking in the process |
| 08:05:01 | <fog30> | but, then, there is nothing that should be waiting on it, it only ever sends messages to other mailboxes |
| 08:05:18 | → | aarvar joins (~foewfoiew@50.35.43.33) |
| 08:05:22 | <fog30> | which then somehow serve like input arguments in function application syntax |
| 08:05:31 | × | lucid_0x80 quits (~lucid_0x8@188.253.237.9) (Ping timeout: 260 seconds) |
| 08:05:37 | × | shatriff quits (~vitaliish@176.52.219.10) (Ping timeout: 264 seconds) |
| 08:05:39 | <fog30> | sounds totally mental |
| 08:06:17 | <fog30> | let bound variables passed as inputs to functions would be replaced with emited messages stored in the actors mailbox |
| 08:07:03 | <fog30> | i cant see how that would work at all really! the let bound variable might not have had a value written to it yet |
| 08:07:26 | <fog30> | hmm, i guess that would be the empty list, as a mailbox |
| 08:07:40 | <fog30> | so it seems like all values end up being replaced by lists |
| 08:08:06 | <fog30> | wierd paradigm. pretty sure thats not how the actors models we have as libraries work... |
| 08:08:32 | <fog30> | seems like the kind of thing that would work really well with linear types. |
| 08:08:46 | <fog30> | then we can have messages that are like "burn after reading" |
| 08:09:02 | <fog30> | so they dont need to be garbage collected |
| 08:09:09 | m1dnight_ | is now known as m1d |
| 08:09:16 | m1d | is now known as m1dnight_ |
| 08:09:27 | × | fog30 quits (a18146b7@gateway/web/cgi-irc/kiwiirc.com/ip.161.129.70.183) (Quit: Connection closed) |
| 08:09:31 | → | Sanchayan joins (~Sanchayan@136.185.169.201) |
| 08:10:47 | × | Sgeo quits (~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer) |
| 08:11:37 | → | justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311) |
| 08:13:16 | × | tzh quits (~tzh@2601:448:c500:5300::82b3) (Quit: zzz) |
| 08:14:57 | hackage | nothunks 0.1.1.0 - Examine values for unexpected thunks https://hackage.haskell.org/package/nothunks-0.1.1.0 (EdskoDeVries) |
| 08:16:54 | × | aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) |
| 08:18:40 | → | __monty__ joins (~toonn@unaffiliated/toonn) |
| 08:21:06 | × | DataComputist quits (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Quit: Leaving...) |
| 08:23:27 | → | sword865 joins (uid208942@gateway/web/irccloud.com/x-uhmvawtkvtngcrcd) |
| 08:24:33 | → | o1lo01ol1o joins (~o1lo01ol1@bl8-213-81.dsl.telepac.pt) |
| 08:27:46 | → | ubert joins (~Thunderbi@178.165.128.50.wireless.dyn.drei.com) |
| 08:28:47 | × | ubert quits (~Thunderbi@178.165.128.50.wireless.dyn.drei.com) (Remote host closed the connection) |
| 08:28:48 | → | mmohammadi9812 joins (~mmohammad@188.210.120.20) |
| 08:29:26 | → | aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net) |
| 08:32:16 | → | jedws joins (~jedws@121.209.139.222) |
| 08:32:45 | → | thc202 joins (~thc202@unaffiliated/thc202) |
| 08:35:11 | × | jedws quits (~jedws@121.209.139.222) (Client Quit) |
| 08:35:20 | → | isovector1 joins (~isovector@172.103.216.166) |
| 08:35:25 | × | rzmt quits (~rzmt@87-92-180-112.rev.dnainternet.fi) (Ping timeout: 265 seconds) |
| 08:35:27 | × | murphy_ quits (~murphy_@2604:2000:1281:8a9e:a00c:e87a:3ee5:cae0) (Ping timeout: 240 seconds) |
| 08:36:36 | → | murphy_ joins (~murphy_@2604:2000:1281:8a9e:14d4:9618:a1b2:ef6b) |
| 08:37:41 | → | rzmt joins (~rzmt@87-92-180-112.rev.dnainternet.fi) |
| 08:38:00 | ← | isovector1 parts (~isovector@172.103.216.166) () |
| 08:38:35 | × | TooDifficult quits (~TooDiffic@139.59.59.230) (Ping timeout: 240 seconds) |
| 08:39:50 | × | paintedindigo quits (~paintedin@2605:a000:1621:8576:21b5:3482:9f3c:3756) (Quit: Leaving) |
| 08:41:38 | → | thir joins (~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) |
| 08:42:11 | × | drbean quits (~drbean@TC210-63-209-154.static.apol.com.tw) (Ping timeout: 265 seconds) |
| 08:43:50 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 08:44:44 | → | fog joins (a1814696@gateway/web/cgi-irc/kiwiirc.com/ip.161.129.70.150) |
| 08:44:52 | <fog> | hmm, i have found several resources |
| 08:44:53 | → | jedws joins (~jedws@121.209.139.222) |
| 08:44:53 | <fog> | https://mail.haskell.org/pipermail/haskell-cafe/2014-March/113341.html |
| 08:45:06 | <fog> | this is a pretty decent thread discussing actors models |
| 08:45:24 | <fog> | not really sure about erlang vs cloud haskell |
| 08:45:34 | <fog> | but i like the references to different implementations of channels |
| 08:46:15 | <fog> | and different ways of scheduling, which i guess kind of makes actors basically an incomplete theory, if im not misunderstanding something |
| 08:46:17 | × | thir quits (~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 08:46:23 | <fog> | seems non-deterministic at least |
| 08:46:57 | <fog> | whereas you would normally want a "functions net" style implmentation with mutable state per function to be reproducable from the same initial conditions |
| 08:47:15 | <fog> | basically then we end up with the same considerations about things like LVars for the channels |
| 08:47:28 | <AWizzArd> | In Servant I describe my route and parameters, or the type of a json body. Now in Snap: is the way to go to fetch what is in the request and call Aeson’s `decode` manually on it? |
| 08:47:32 | <fog> | and a lattice computation for the sheduling |
| 08:48:28 | <fog> | but then, how would you do that sheduling? is it just a race? wouldnt it be better to have a way to demand that certain actors downstream of a let bound value can be demanded to be evaluated, or does that always result in blocking? |
| 08:48:49 | <fog> | like, is this racing actors a way to avoid blocking at the expense of determinism? |
| 08:49:14 | → | cpressey joins (~cpressey@79-72-202-166.dynamic.dsl.as9105.com) |
| 08:49:21 | <fog> | that doesnt sound like a good idea from the tradition of pure functional programing where we require reproducibility of programs |
| 08:49:23 | × | ChaiTRex quits (~ChaiTRex@gateway/tor-sasl/chaitrex) (Ping timeout: 240 seconds) |
| 08:50:19 | <fog> | then you would need some way for this lattice of actors to have like a sat solver or something to guarantee it is free from blockages |
| 08:50:42 | → | ChaiTRex joins (~ChaiTRex@gateway/tor-sasl/chaitrex) |
| 08:51:03 | <fog> | that seems like it could somehow be encoded at type level as the topology, but that would require some kind of guarantees about the functions ability to return |
| 08:51:24 | <fog> | like basically, you would have it in ST or pure, so that it wasnt doing any blocking IO |
| 08:52:12 | <fog> | then these "pure actors" could have network topological guaranties basically as "the shape of the program" at type level to be non-blocking by construction |
| 08:53:01 | <fog> | i guess that also then gives rise to a determinable evaluation order inferred by the topology |
| 08:53:16 | → | Tops2 joins (~Tobias@dyndsl-091-249-082-222.ewe-ip-backbone.de) |
| 08:53:46 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 08:53:48 | <fog> | but then, actors are supposed to be able to spawn new actors - so how would you have these runtime guaranties at type level |
| 08:54:43 | <fog> | i guess there is proabably some deep result there about how actors, by having runtime variable topoligies, *have* to have the racing and mailboxes in order to then not require this typechecking |
| 08:55:14 | × | mnrmnaugh quits (~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 265 seconds) |
| 08:55:26 | <fog> | then it seems like the fundamental problem is the reconciliation of runtime variable determinism guarantees in concurrent pure programming |
| 08:55:47 | <fog> | which sounds kind of above my pay grade |
| 08:56:01 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 246 seconds) |
| 08:56:31 | <fog> | maybe if i had a working actors model, i could get some simulated elves to do it... |
| 08:56:56 | <fog> | all talking elvish |
| 08:57:34 | × | jedws quits (~jedws@121.209.139.222) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 08:57:39 | × | jonatanb quits (~jonatanb@83.24.231.247.ipv4.supernova.orange.pl) (Remote host closed the connection) |
| 08:57:57 | × | fog quits (a1814696@gateway/web/cgi-irc/kiwiirc.com/ip.161.129.70.150) (Quit: Connection closed) |
| 08:58:06 | → | mnrmnaugh joins (~mnrmnaugh@unaffiliated/mnrmnaugh) |
| 08:58:35 | × | Clough quits (~Cain@210.185.68.138) (Ping timeout: 240 seconds) |
| 08:58:37 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds) |
| 08:59:53 | → | Orbstheorem joins (~roosember@hellendaal.orbstheorem.ch) |
| 09:00:01 | × | UltimateNate quits (~UltimateN@185.189.112.19) () |
| 09:00:24 | × | snakemasterflex quits (~snakemast@213.100.206.23) (Ping timeout: 256 seconds) |
| 09:00:36 | <dminuoso> | AWizzArd: getPostParam? |
| 09:01:12 | <dminuoso> | Oh wait, this is something else |
| 09:01:57 | <dminuoso> | snap is weird |
| 09:02:12 | <hc> | why would you switch from servant to snap? |
| 09:02:12 | <AWizzArd> | dminuoso: Yeah, I can fetch contents of the Request and then do with it whatever I want. |
| 09:02:23 | <hc> | (just curious) |
| 09:02:28 | <AWizzArd> | hc: experimentation, seeing different styles. |
| 09:02:39 | <AWizzArd> | Our main service is using Servant. |
| 09:02:43 | → | cfricke joins (~cfricke@unaffiliated/cfricke) |
| 09:02:47 | <AWizzArd> | Now for a small email service I’m trying Snap. |
| 09:03:18 | <AWizzArd> | I think in Snap I need to do things a tiny bit more manually. |
| 09:03:59 | × | davve quits (davve@bsd.douchedata.com) (Read error: Connection reset by peer) |
| 09:04:01 | <dminuoso> | AWizzArd: https://hackage.haskell.org/package/snap-core-1.0.4.2/docs/Snap-Internal-Core.html#v:getRequest |
| 09:04:13 | <dminuoso> | There you can extract the body from. |
| 09:04:56 | × | dredozubov quits (~dredozubo@37.139.21.214) (Ping timeout: 256 seconds) |
| 09:04:58 | <AWizzArd> | dminuoso: Right, and it works. I guess my main question is if I need to do this manually. Or if there is a Servant-like mechanism that lets me declaritively describe an expected request, and have Snap deliver me automatically args. |
| 09:05:15 | <AWizzArd> | The „YOU can extract the body” part (: |
| 09:05:20 | <dminuoso> | So you're looking for servant? ;) |
| 09:05:46 | <dminuoso> | But really, you can relatively trivially write your own combinator |
| 09:06:03 | → | snakemasterflex joins (~snakemast@213.100.206.23) |
| 09:06:42 | <AWizzArd> | dminuoso: Another thing I am looking for: what if I want to use a ReaderT Context where I can place some nice TVars? How would I serve a site using my own reader? |
| 09:06:56 | → | carlomagno1 joins (~cararell@inet-hqmc02-o.oracle.com) |
| 09:07:13 | <AWizzArd> | The httpServe function wants a `Snap ()` value. |
| 09:07:22 | <dminuoso> | getJSONRequest :: (FromJson t, MonadSnap m) => m t; getJSONRequest = do <- body <- rqBody <$> getRequest; buf <- ...; decode buf `note` ParseError ... |
| 09:07:54 | <dminuoso> | Some badly written pseudo, but i hope it conveys my thoughts |
| 09:08:17 | <dminuoso> | AWizzArd: Write your own MonadSnap instance. |
| 09:08:46 | <dminuoso> | In case of ReaderT, you can trivially unwrap it no? ;) |
| 09:08:50 | <AWizzArd> | dminuoso: yes, the route :: MonadSnap m => [(ByteString, m a)] -> m a looks good. There also already IS a ReaderT instance for MonadSnap. |
| 09:09:00 | × | dexterlb quits (~dexterlb@2a01:9e40:2:2::2) (Quit: Boing) |
| 09:09:23 | <dminuoso> | say, you have `data App a = App { runApp :: ReaderT Env (Snap a) } deriving (Functor, Applicative, Monad, MonadSnap, MonadReader Env)` |
| 09:09:26 | × | coot quits (~coot@37.30.59.210.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 09:09:41 | <AWizzArd> | dminuoso: shouldn’t there me some foo :: (MonadSnap m) => m -> Snap () ? |
| 09:09:41 | <dminuoso> | Then you can just say `httpServce . runReaderT someEnv . runApp $ someApp` |
| 09:09:47 | × | carlomagno quits (~cararell@inet-hqmc02-o.oracle.com) (Ping timeout: 240 seconds) |
| 09:09:52 | <dminuoso> | AWizzArd: ^- that. |
| 09:10:03 | → | davve joins (~davve@bsd.douchedata.com) |
| 09:10:18 | × | aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) |
| 09:10:20 | <dminuoso> | Think of ReaderT as being just a function, then getting the Snap out of it is just a matter of providing the argument. |
| 09:10:22 | → | TooDifficult joins (~TooDiffic@139.59.59.230) |
| 09:10:35 | <AWizzArd> | Yes, that makes sense. |
| 09:10:41 | → | coot joins (~coot@37.30.59.210.nat.umts.dynamic.t-mobile.pl) |
| 09:10:41 | <dminuoso> | Oh, I think the argument was flipped around. |
| 09:11:00 | <dminuoso> | so `httpSevce . flip runReaderT someEnv . runApp $ someApp` |
| 09:11:46 | <dminuoso> | (So if we squint a bit, runReaderT is just ($)) |
| 09:14:23 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 09:15:55 | → | dredozubov joins (~dredozubo@37.139.21.214) |
| 09:16:06 | × | jgt quits (~jgt@194.143.137.49.users.breezein.net) (Ping timeout: 256 seconds) |
| 09:18:21 | <AWizzArd> | dminuoso: yes, that makes sense. The runReaderT is that function that returns the `Snap ()`. |
| 09:18:47 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
| 09:19:16 | <dminuoso> | This is no different than servant btw |
| 09:20:50 | <dminuoso> | Abstractly, in both snap and servant you need a natural transformation `T ~> Snap` and respectively `T ~> Handler`. In servant you provide that in hoistServer, and in snap it's a bit more direct. |
| 09:20:59 | <dminuoso> | (Where T is your custom monad) |
| 09:21:09 | → | notzmv` joins (~user@179.100.115.46) |
| 09:21:18 | → | supercoven_ joins (~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi) |
| 09:21:19 | × | supercoven_ quits (~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi) (Max SendQ exceeded) |
| 09:21:33 | → | supercoven_ joins (~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi) |
| 09:21:43 | → | blase_ joins (~blase@4e69b241.skybroadband.com) |
| 09:22:31 | → | dexterlb joins (~dexterlb@2a01:9e40:2:2::2) |
| 09:22:33 | × | nkly quits (~nkly@2a02:8109:9a80:a74:201:2eff:fe81:c6dd) (Quit: ZNC 1.6.6+deb1ubuntu0.2 - http://znc.in) |
| 09:24:24 | × | notzmv quits (~user@unaffiliated/zmv) (Ping timeout: 260 seconds) |
| 09:24:24 | × | blase quits (~blase@4e69b241.skybroadband.com) (Ping timeout: 260 seconds) |
| 09:24:31 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 09:24:44 | → | josh_ joins (~josh@c-67-164-104-206.hsd1.ca.comcast.net) |
| 09:24:52 | × | supercoven quits (~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi) (Ping timeout: 260 seconds) |
| 09:26:01 | × | TooDifficult quits (~TooDiffic@139.59.59.230) (Quit: TooDifficult) |
| 09:26:24 | → | zacts joins (~zacts@dragora/developer/zacts) |
| 09:27:48 | → | jgt joins (~jgt@46.250.27.223.pool.breezein.net) |
| 09:27:49 | × | snakemasterflex quits (~snakemast@213.100.206.23) (Ping timeout: 264 seconds) |
| 09:27:58 | × | supercoven_ quits (~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi) (Max SendQ exceeded) |
| 09:28:13 | → | supercoven joins (~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi) |
| 09:28:13 | × | supercoven quits (~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi) (Max SendQ exceeded) |
| 09:28:22 | → | yoneda joins (~mike@193.206.102.122) |
| 09:28:25 | × | Tops2 quits (~Tobias@dyndsl-091-249-082-222.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
| 09:28:59 | × | josh_ quits (~josh@c-67-164-104-206.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
| 09:29:04 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
| 09:29:49 | × | jhuizy quits (~jhuizy@static.241.188.216.95.clients.your-server.de) (Quit: Ping timeout (120 seconds)) |
| 09:29:57 | hackage | cabal-cache 1.0.2.0 - CI Assistant for Haskell projects https://hackage.haskell.org/package/cabal-cache-1.0.2.0 (haskellworks) |
| 09:30:43 | × | karolus quits (~karolus@static.32.230.217.95.clients.your-server.de) (Quit: karolus says ciao) |
| 09:30:56 | → | jhuizy joins (~jhuizy@static.241.188.216.95.clients.your-server.de) |
| 09:31:03 | → | karolus joins (~karolus@static.32.230.217.95.clients.your-server.de) |
| 09:32:19 | → | mirrorbird joins (~psutcliff@h85-8-41-6.cust.a3fiber.se) |
| 09:33:55 | <AWizzArd> | dminuoso: in Servant I had to do this, yes, and wrap the result of runReader in a Handler: Handler $ runReaderT (runApp appt) context |
| 09:34:22 | <AWizzArd> | dminuoso: but the game was not over yet: I also had to `hoistServer` it. |
| 09:34:37 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 09:37:40 | → | aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net) |
| 09:38:13 | <maerwald> | lol |
| 09:38:18 | × | zacts quits (~zacts@dragora/developer/zacts) (Quit: leaving) |
| 09:38:40 | <maerwald> | runSomeThing . unwrapSomething . hoistMe . unliftMe . liftOther |
| 09:38:43 | <maerwald> | such functional |
| 09:39:07 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
| 09:39:26 | <maerwald> | justMakeTheDamnThingTypecheck |
| 09:39:44 | <AWizzArd> | maerwald: yeah. |
| 09:40:06 | <AWizzArd> | maerwald: so Snap is more "manual". That’s one difference. |
| 09:41:15 | <AWizzArd> | maerwald: in Servant I say that I get a json body and I want Servant to parse it into a SendEmailRequest value. Not much to do, it now is a parameter, I won’t have to call Aeson or read anything from a request. |
| 09:43:06 | <AWizzArd> | maerwald: also I start my handler with myHandler = readRequestBody (1024*30) >>= (\body -> ...) |
| 09:43:26 | <hc> | actually, you never tell servant what you want it to do. you just declare what you are expecting to handle ;-) |
| 09:43:27 | <AWizzArd> | maerwald: is that the typical strategy? Or is there some "readAll"? |
| 09:43:34 | <AWizzArd> | hc: si |
| 09:44:14 | <AWizzArd> | hc: I find Servant also useful when I NOT want to generate JS clients from the API. This declarative nature is nice. |
| 09:44:50 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 09:44:55 | <hc> | true :) |
| 09:44:58 | <AWizzArd> | hc: but then again Servant gives me parameters as Maybes. Is there a way to specify: „Hey, call this handler only in case that *all* of them are Justified”? |
| 09:45:00 | × | hololeap quits (~hololeap@unaffiliated/hololeap) (Ping timeout: 256 seconds) |
| 09:45:10 | <AWizzArd> | Justified = non-Nothing |
| 09:45:36 | <AWizzArd> | (If you wrap something in a Just then you just Justified it) |
| 09:45:52 | <maerwald> | AWizzArd: I personally find all that little gain for the increased cognitive noise |
| 09:46:31 | <AWizzArd> | maerwald: I will be using Snap in that service now. It seems to be a bit simpler, yet more manual. |
| 09:47:28 | <AWizzArd> | maerwald: So how do you work with a Post request that contains a json body? body <- readRequestBody (1024*30); case eitherDecode body of ... ? Like that? |
| 09:48:00 | <maerwald> | I don't recall :D |
| 09:48:20 | × | dhil quits (~dhil@11.29.39.217.dyn.plus.net) (Ping timeout: 272 seconds) |
| 09:48:49 | <AWizzArd> | Btw: Aeson – what is the difference between a) eitherDecode and b) eitherDecode' ? |
| 09:49:05 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
| 09:49:42 | <hc> | hmm, strict vs nonstrict? lemme check the docs |
| 09:50:09 | <hc> | ah no, one fails and the other returns an error on parse problems |
| 09:50:12 | <dminuoso> | strictness in conversion checking |
| 09:50:24 | <hc> | ah true |
| 09:50:25 | <dminuoso> | decode' strictly performs conversion, decode is lazy |
| 09:50:45 | <hc> | no wait! yes, it is about lazy/strictness after all :) |
| 09:50:52 | <dminuoso> | See https://hackage.haskell.org/package/aeson-1.5.4.0/docs/Data-Aeson.html#v:json |
| 09:50:55 | <dminuoso> | (And below) |
| 09:51:26 | <hc> | ah cool. both functions parse immediately so cannot lazily fail later |
| 09:51:29 | <AWizzArd> | And then eitherDecodeStrict vs eitherDecodeStrict' |
| 09:52:00 | <AWizzArd> | dminuoso: seems that’s it, json vs json' |
| 09:54:50 | → | resolve joins (~resolve@84.39.116.180) |
| 09:54:52 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 09:59:48 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
| 10:00:02 | → | tbreslein joins (~tbreslein@2a02:8108:140:44f8::901) |
| 10:01:15 | → | Ariakenom_ joins (~Ariakenom@h-178-174-193-185.NA.cust.bahnhof.se) |
| 10:02:52 | × | jgt quits (~jgt@46.250.27.223.pool.breezein.net) (Ping timeout: 246 seconds) |
| 10:04:37 | × | Ariakenom quits (~Ariakenom@h-98-128-229-34.NA.cust.bahnhof.se) (Ping timeout: 246 seconds) |
| 10:05:02 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 10:05:42 | → | jgt joins (~jgt@46.250.27.223.pool.breezein.net) |
| 10:05:47 | × | borne quits (~fritjof@200116b864231000537d5cc8226f9d9f.dip.versatel-1u1.de) (Ping timeout: 240 seconds) |
| 10:06:59 | × | jespada quits (~jespada@90.254.241.6) (Quit: Leaving) |
| 10:07:23 | × | Orbstheorem quits (~roosember@hellendaal.orbstheorem.ch) (Ping timeout: 260 seconds) |
| 10:07:57 | → | Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas) |
| 10:09:09 | → | jespada joins (~jespada@90.254.241.6) |
| 10:09:41 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds) |
| 10:11:12 | → | Orbstheorem joins (~roosember@hellendaal.orbstheorem.ch) |
| 10:14:08 | → | filwishe1 joins (~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) |
| 10:14:24 | × | dddddd quits (~dddddd@unaffiliated/dddddd) (Ping timeout: 256 seconds) |
| 10:14:29 | × | jespada quits (~jespada@90.254.241.6) (Quit: Leaving) |
| 10:15:10 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 10:15:11 | → | jespada joins (~jespada@90.254.241.6) |
| 10:15:52 | × | Orbstheorem quits (~roosember@hellendaal.orbstheorem.ch) (Ping timeout: 260 seconds) |
| 10:16:18 | × | jespada quits (~jespada@90.254.241.6) (Client Quit) |
| 10:16:56 | × | mirrorbird quits (~psutcliff@h85-8-41-6.cust.a3fiber.se) (Remote host closed the connection) |
| 10:17:11 | → | dhil joins (~dhil@11.29.39.217.dyn.plus.net) |
| 10:17:21 | → | mirrorbird joins (~psutcliff@h85-8-41-6.cust.a3fiber.se) |
| 10:19:43 | → | jespada joins (~jespada@90.254.241.6) |
| 10:19:49 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds) |
| 10:20:33 | → | Neuromancer joins (~Neuromanc@unaffiliated/neuromancer) |
| 10:25:16 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 10:26:31 | → | sz0 joins (uid110435@gateway/web/irccloud.com/x-roomdfrsyecwcjsl) |
| 10:29:16 | notzmv` | is now known as notzmv |
| 10:29:23 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
| 10:29:27 | × | notzmv quits (~user@179.100.115.46) (Changing host) |
| 10:29:27 | → | notzmv joins (~user@unaffiliated/zmv) |
| 10:29:45 | → | dddddd joins (~dddddd@unaffiliated/dddddd) |
| 10:30:16 | → | Amras joins (~Amras@unaffiliated/amras0000) |
| 10:31:05 | × | mirrorbird quits (~psutcliff@h85-8-41-6.cust.a3fiber.se) (Read error: Connection reset by peer) |
| 10:31:21 | → | mirrorbird joins (~psutcliff@h85-8-41-6.cust.a3fiber.se) |
| 10:31:58 | hackage | th-abstraction 0.4.0.0 - Nicer interface for reified information about data types https://hackage.haskell.org/package/th-abstraction-0.4.0.0 (ryanglscott) |
| 10:35:23 | × | kuribas quits (~user@ptr-25vy0i7prrvbu6qbdzj.18120a2.ip6.access.telenet.be) (Read error: Connection reset by peer) |
| 10:35:25 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 10:35:50 | → | kuribas joins (~user@ptr-25vy0i90m4i4hv80b70.18120a2.ip6.access.telenet.be) |
| 10:40:16 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds) |
| 10:41:30 | × | mnrmnaugh quits (~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 244 seconds) |
| 10:43:39 | → | mnrmnaugh joins (~mnrmnaugh@unaffiliated/mnrmnaugh) |
| 10:45:15 | → | Ariakenom__ joins (~Ariakenom@h-178-174-193-185.NA.cust.bahnhof.se) |
| 10:45:34 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 10:49:23 | × | Ariakenom_ quits (~Ariakenom@h-178-174-193-185.NA.cust.bahnhof.se) (Ping timeout: 260 seconds) |
| 10:49:45 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
| 10:53:30 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 10:54:33 | × | mmohammadi9812 quits (~mmohammad@188.210.120.20) (Quit: I quit (╯°□°)╯︵ ┻━┻) |
| 10:55:13 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:56:06 | → | ggole joins (~ggole@2001:8003:8119:7200:682e:863c:d343:3274) |
| 11:01:48 | × | pepzi quits (~robert@h-4-217-30.A328.priv.bahnhof.se) (Remote host closed the connection) |
| 11:02:28 | → | graf_blutwurst joins (~user@178.197.224.35) |
| 11:03:23 | × | graf_blutwurst quits (~user@178.197.224.35) (Remote host closed the connection) |
| 11:04:58 | → | graf_blutwurst joins (~user@178.197.224.35) |
| 11:05:55 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 11:07:01 | → | snakemasterflex joins (~snakemast@213.100.206.23) |
| 11:07:28 | × | mirrorbird quits (~psutcliff@h85-8-41-6.cust.a3fiber.se) (Ping timeout: 260 seconds) |
| 11:10:34 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds) |
| 11:12:01 | × | snakemasterflex quits (~snakemast@213.100.206.23) (Ping timeout: 265 seconds) |
| 11:12:12 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:b248:7aff:feea:34b6) (Quit: Quit.) |
| 11:13:06 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:b248:7aff:feea:34b6) |
| 11:16:00 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 11:17:00 | → | LKoen joins (~LKoen@81.255.219.130) |
| 11:20:46 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
| 11:21:09 | × | graf_blutwurst quits (~user@178.197.224.35) (Remote host closed the connection) |
| 11:26:03 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 11:27:51 | × | Stanley00 quits (~stanley00@unaffiliated/stanley00) (Remote host closed the connection) |
| 11:30:56 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds) |
| 11:31:03 | × | hekkaidekapus quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds) |
| 11:33:27 | → | hekkaidekapus joins (~tchouri@gateway/tor-sasl/hekkaidekapus) |
| 11:36:08 | → | snakemasterflex joins (~snakemast@213.100.206.23) |
| 11:36:17 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 11:40:12 | × | filwisher quits (~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 260 seconds) |
| 11:40:21 | → | acidjnk_new joins (~acidjnk@p200300d0c72378745c7b1a0a573f1493.dip0.t-ipconnect.de) |
| 11:41:01 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds) |
| 11:41:10 | × | justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) () |
| 11:43:20 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:b248:7aff:feea:34b6) (Quit: Quit.) |
| 11:44:59 | <arahael> | Do the videos on the haskell.org website have any captions or transcripts? |
| 11:45:38 | → | Wuzzy joins (~Wuzzy@p5790e6f5.dip0.t-ipconnect.de) |
| 11:46:22 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 11:49:42 | × | plutoniix quits (~q@175.176.222.7) (Quit: Leaving) |
| 11:50:57 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
| 11:56:31 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 11:56:41 | → | nbloomf joins (~nbloomf@2600:1700:83e0:1f40:6509:5e93:9c09:e475) |
| 11:56:42 | → | borne joins (~fritjof@200116b864231000537d5cc8226f9d9f.dip.versatel-1u1.de) |
| 12:00:01 | × | resolve quits (~resolve@84.39.116.180) () |
| 12:01:08 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
| 12:03:28 | hackage | cabal-cache 1.0.2.1 - CI Assistant for Haskell projects https://hackage.haskell.org/package/cabal-cache-1.0.2.1 (haskellworks) |
| 12:03:59 | × | cpressey quits (~cpressey@79-72-202-166.dynamic.dsl.as9105.com) (Quit: Lunch) |
| 12:04:40 | × | elliott_ quits (~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
| 12:05:16 | → | urodna joins (~urodna@unaffiliated/urodna) |
| 12:06:45 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 12:07:08 | → | elliott_ joins (~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) |
| 12:07:28 | → | filwisher joins (~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) |
| 12:11:28 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds) |
| 12:13:27 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:b248:7aff:feea:34b6) |
| 12:13:47 | × | filwisher quits (~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 240 seconds) |
| 12:15:31 | → | filwisher joins (~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) |
| 12:16:47 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 12:17:22 | × | koz_ quits (~koz@121.99.240.58) (Remote host closed the connection) |
| 12:18:13 | → | koz joins (~koz@121.99.240.58) |
| 12:20:07 | → | raichoo joins (~raichoo@213.240.178.58) |
| 12:21:07 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
| 12:22:38 | → | drbean joins (~drbean@TC210-63-209-47.static.apol.com.tw) |
| 12:26:27 | hackage | th-compat 0.1 - Backward- (and forward-)compatible Quote and Code types https://hackage.haskell.org/package/th-compat-0.1 (ryanglscott) |
| 12:27:02 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 12:27:36 | × | mpereira quits (~mpereira@2a02:810d:f40:d96:294e:473a:4b53:edb9) (Remote host closed the connection) |
| 12:28:58 | × | LKoen quits (~LKoen@81.255.219.130) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”) |
| 12:29:44 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 12:31:07 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
| 12:31:10 | <maralorn> | "justMakeTheDamnThingTypecheck :: foral a b. a -> b" ? |
| 12:31:32 | × | nbloomf quits (~nbloomf@2600:1700:83e0:1f40:6509:5e93:9c09:e475) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 12:31:59 | <dminuoso> | Let's see if it exists |
| 12:32:00 | → | st8less joins (~st8less@2603:a060:11fe:0:b186:dda4:132a:2a8a) |
| 12:32:02 | <dminuoso> | % :t justMakeTheDamnThingTypecheck |
| 12:32:03 | <yahb> | dminuoso: a -> b |
| 12:32:09 | <dminuoso> | Oh, who'd have guessed. |
| 12:32:19 | × | ryansmccoy quits (~ryansmcco@193.37.254.27) (Ping timeout: 256 seconds) |
| 12:33:00 | <maralorn> | Wait what?^^ |
| 12:33:13 | → | ryansmccoy joins (~ryansmcco@193.37.254.27) |
| 12:33:18 | <merijn> | I'll take "What is unsafeCoerce?" for 500, Alex. |
| 12:33:22 | <maralorn> | You have been secretely querying yahb, haven't you? |
| 12:33:22 | <merijn> | :t unsafeCoerce |
| 12:33:24 | <lambdabot> | error: Variable not in scope: unsafeCoerce |
| 12:33:29 | <merijn> | % :t unsafeCoerce |
| 12:33:30 | <yahb> | merijn: a -> b |
| 12:33:47 | <dminuoso> | maralorn: I'd never do that for effect. |
| 12:33:48 | <merijn> | maralorn: Enjoy your one way ticket to segfault city ;) |
| 12:33:58 | <dminuoso> | ;) |
| 12:34:23 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
| 12:34:30 | <maralorn> | ^^ |
| 12:34:38 | <dminuoso> | merijn: Oh I have a valid and safe use case of unsafeCoerce. |
| 12:34:42 | <maralorn> | "I'd never do that for effect." -> unsafePerformIO |
| 12:35:43 | <dminuoso> | So I have a particular take on a hererogenous, type safe, map.. which is implemented as `Map Integer Any` under the hood.. |
| 12:36:03 | × | alp quits (~alp@2a01:e0a:58b:4920:1865:138c:f898:eb2d) (Ping timeout: 272 seconds) |
| 12:36:16 | <dminuoso> | So upon accessing, I unsafeCoerce things into the right thing, but I prove the correctness of it all in the type system. |
| 12:36:29 | → | nbloomf joins (~nbloomf@2600:1700:83e0:1f40:6509:5e93:9c09:e475) |
| 12:36:51 | <dminuoso> | maralorn: unsafePerformIO is boring. I prefer accursedUnutterablePerformIO. |
| 12:37:05 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 12:37:05 | <dminuoso> | Eliding internal mutable buffers saves memory. |
| 12:37:13 | <dminuoso> | It's very efficient. |
| 12:38:09 | × | cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9) |
| 12:41:09 | × | Quarl quits (~Quarl@94.191.138.174.mobile.tre.se) (Read error: Connection reset by peer) |
| 12:41:25 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
| 12:42:53 | → | alp joins (~alp@2a01:e0a:58b:4920:1846:e8b6:c010:c9fe) |
| 12:42:56 | → | Quarl joins (~Quarl@94.191.138.174.mobile.tre.se) |
| 12:42:58 | → | thir joins (~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) |
| 12:44:05 | × | John20 quits (~John@82.46.59.122) (Ping timeout: 240 seconds) |
| 12:44:59 | → | Guest_71 joins (c13ddbc8@edu185.eduroam.aber.ac.uk) |
| 12:45:11 | × | sz0 quits (uid110435@gateway/web/irccloud.com/x-roomdfrsyecwcjsl) (Quit: Connection closed for inactivity) |
| 12:46:01 | <Guest_71> | Im having trouble downloading haskell for mac |
| 12:46:07 | <Guest_71> | can some1 help me |
| 12:46:13 | <maerwald> | yes |
| 12:46:50 | <Guest_71> | it says cannot install the software because it is not currently avaliable from the software update server |
| 12:46:58 | <maerwald> | what software |
| 12:47:04 | <Guest_71> | curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh |
| 12:47:09 | <Guest_71> | this crap |
| 12:47:14 | <Guest_71> | GHC |
| 12:47:27 | × | thir quits (~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 12:48:50 | → | raehik joins (~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net) |
| 12:48:56 | → | barzo joins (~barzo@95.70.186.248) |
| 12:49:11 | <maerwald> | that's an excellent question |
| 12:49:59 | → | Orbstheorem joins (~roosember@hellendaal.orbstheorem.ch) |
| 12:50:15 | × | nbloomf quits (~nbloomf@2600:1700:83e0:1f40:6509:5e93:9c09:e475) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 12:51:55 | <Guest_71> | any ideas? |
| 12:52:09 | <yushyin> | you must be right about that course, maerwald. |
| 12:52:58 | <maerwald> | I don't have a mac, but the script requires certain tools that the system must install (such as curl, tar, ...). Afaik mac tries to pull these from somewhere |
| 12:53:12 | <maerwald> | It seems to fail doing so |
| 12:54:17 | <merijn> | maerwald: curl and tar are always installed, afaik |
| 12:54:19 | <dminuoso> | This seems like an Xcode error. |
| 12:54:39 | <merijn> | xcode errors shouldn't kick in until you try to compile/link, though |
| 12:54:39 | <dminuoso> | Since that's the error you'd get from `xcode-select --install` in some situations. |
| 12:55:01 | <dminuoso> | Does ghcup invoke xcode-select? |
| 12:55:14 | <maerwald> | dminuoso: no, but I think that happens implicitly |
| 12:55:21 | <maerwald> | that's what ppl told me |
| 12:55:25 | <dminuoso> | Implicitly when? |
| 12:55:35 | <maerwald> | Good question |
| 12:55:39 | <merijn> | so far I don't see an error message, so it's impossible to say |
| 12:56:05 | → | p-core joins (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) |
| 12:56:05 | <dminuoso> | Guest_71: Can you share the full terminal output since you ran that command in a gist/pastie/snippet? |
| 12:56:24 | → | wimpunk1 joins (~wimpunk@185.189.112.19) |
| 12:56:37 | <dminuoso> | merijn: He mentioend the error message above. And that's most definitely an error message from xcode-select :) |
| 12:57:22 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 12:57:57 | <Guest_71> | it didn't appear in the console it was a pop up box |
| 12:58:01 | <Guest_71> | if that helps |
| 12:58:17 | <dminuoso> | Ah, still share the output. |
| 12:58:50 | → | nbloomf joins (~nbloomf@2600:1700:83e0:1f40:71e4:29c:fe07:7926) |
| 12:58:57 | <Guest_71> | his script will download and install the following binaries: * ghcup - The Haskell toolchain installer (for managing GHC/cabal versions) * ghc - The Glasgow Haskell Compiler * cabal - The Cabal build toolghcup installs only into the following directory,which can be removed anytime: /Users/MacBook-Pro/.ghcupPress ENTER to proceed or |
| 12:58:58 | <Guest_71> | ctrl-c to abort.Note that this script can be re-run at any given time. % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed100 8345k 100 8345k 0 0 7880k 0 0:00:01 0:00:01 --:--:-- 7880k[ Info ] Upgrading GHCup...[ Info ] |
| 12:58:58 | <Guest_71> | downloading: https://downloads.haskell.org/~ghcup/0.1.11/x86_64-apple-darwin-ghcup-0.1.11 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 40 8501k 40 3430k 0 0 7177k 0 0:00:01 --:--:-- 0:00:01 7177k100 8501k 100 8501k 0 |
| 12:58:59 | <Guest_71> | 0 9487k 0 --:--:-- --:--:-- --:--:-- 9487k[ Info ] verifying digest of: ghcup[ Info ] Successfully upgraded GHCup to version 0.1.11System requirements Note: On OS X, in the course of running ghcup you will be given a dialog box to install the command line tools. Accept and the requirements will be installed for you. You will then need to |
| 12:58:59 | <Guest_71> | run the command again.Press ENTER to proceed or ctrl-c to abort.Installation may take a while.[ Info ] verifying digest of: ghc-8.8.4-x86_64-apple-darwin.tar.xz[ Info ] Unpacking: ghc-8.8.4-x86_64-apple-darwin.tar.xz to /var/folders/98/8p2q1z693kgd515zsjklyg5c0000gn/T/ghcup-6LMxdn[ Info ] Installing GHC (this may take a while)[ ghc-configure ] |
| 12:59:00 | <Guest_71> | not found (too old?)[ ghc-configure ] checking for gcc... gcc[ ghc-configure ] checking whether the C compiler works... no[ ghc-configure ] configure: error: in `/private/var/folders/98/8p2q1z693kgd515zsjklyg5c0000gn/T/ghcup-6LMxdn/ghc-8.8.4':[ ghc-configure ] configure: error: C compiler cannot create executables[ ghc-configure ] See `config.log' |
| 12:59:00 | <Guest_71> | for more details[ Error ] Build failed with NonZeroExit 77 "./configure" ["--prefix=/Users/MacBook-Pro/.ghcup/ghc/8.8.4"] Check the logs at "/Users/MacBook-Pro/.ghcup/logs" and the build directory "/var/folders/98/8p2q1z693kgd515zsjklyg5c0000gn/T/ghcup-6LMxdn" for more clues. Make sure to clean up |
| 12:59:00 | × | Guest_71 quits (c13ddbc8@edu185.eduroam.aber.ac.uk) (Killed (Sigyn (Spam is off topic on freenode.))) |
| 12:59:10 | ChanServ | sets mode +o ski |
| 12:59:14 | <maerwald> | for some reason, I know this would happen |
| 12:59:18 | <yushyin> | me too |
| 12:59:33 | ChanServ | sets mode -o ski |
| 12:59:49 | <dminuoso> | Doesn't help for their Haskell experience. :< |
| 13:00:00 | → | guest12 joins (c13ddbc8@edu185.eduroam.aber.ac.uk) |
| 13:00:04 | <guest12> | okay im that same person it just kicked me |
| 13:00:09 | <maerwald> | :D |
| 13:00:14 | <ski> | please don't paste lots of lines into the channel |
| 13:00:15 | <dminuoso> | guest12: Yeah, use a website to paste content, dont flood the channel. :) |
| 13:00:25 | <dminuoso> | You can use https://paste.tomsmeding.com/ |
| 13:00:32 | <guest12> | okay thanks xD |
| 13:00:41 | <Cheery> | gist github is also good if you happen to have github account. |
| 13:00:55 | <dminuoso> | Always good to donate your data to Microsoft. |
| 13:00:59 | × | barzo quits (~barzo@95.70.186.248) (Quit: Quit) |
| 13:01:34 | <guest12> | https://paste.tomsmeding.com/iIICrGHx |
| 13:02:01 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds) |
| 13:02:31 | <gehmehgeh> | guest12: what does "cc --version" say? |
| 13:02:48 | <merijn> | ok, yeah, that's missing xcode |
| 13:02:50 | <gehmehgeh> | (on the command line) |
| 13:02:54 | <dminuoso> | guest12: Did you ever get a dialog box to install the command line tools? |
| 13:03:18 | <guest12> | yes I did and thats where I got the error |
| 13:03:47 | <gehmehgeh> | guest12: can you type "cc --version", please? |
| 13:04:29 | → | motherfsck joins (~motherfsc@unaffiliated/motherfsck) |
| 13:04:42 | <gehmehgeh> | guest12: also "gcc --version" |
| 13:04:48 | <gehmehgeh> | cc should be Clang |
| 13:04:49 | <gehmehgeh> | I guess |
| 13:04:51 | <guest12> | https://paste.tomsmeding.com/Esfn48xS |
| 13:04:52 | <gehmehgeh> | (on MacOS) |
| 13:04:57 | <guest12> | then I get that with a dialog box |
| 13:05:28 | <guest12> | same with gcc |
| 13:05:53 | <dminuoso> | guest12: Out of curiosity, which macOS version are you on? |
| 13:06:08 | <gehmehgeh> | guest12: type "uname -a" |
| 13:06:09 | <guest12> | catalina |
| 13:06:37 | <dminuoso> | Brave thing, to be running on most recent macOS. :> |
| 13:07:06 | × | DirefulSalt quits (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection) |
| 13:07:34 | <dminuoso> | Perhaps the apple repos are bugged at the moment |
| 13:07:36 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 13:07:48 | <dminuoso> | Do you have an icloud account? |
| 13:07:50 | <gehmehgeh> | guest12: I typed it into a search engine, and apparently, MacOS will install the necessary development tools after asking you |
| 13:07:52 | <merijn> | Try running "xcode-select --install" |
| 13:08:05 | <gehmehgeh> | guest12: yes, waht merijn said for example |
| 13:08:07 | × | aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) |
| 13:08:08 | → | DirefulSalt joins (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) |
| 13:08:11 | <gehmehgeh> | guest12: or just type "make" or "gcc" or whatever |
| 13:08:29 | → | jedws joins (~jedws@121.209.139.222) |
| 13:08:42 | <guest12> | same thing happens in the middle of the finding software bar it comes up with that message |
| 13:08:45 | → | Ariakenom_ joins (~Ariakenom@h-98-128-229-8.NA.cust.bahnhof.se) |
| 13:08:50 | <dminuoso> | guest12: Alright, then install it manually from https://developer.apple.com/download/more/?=command%20line%20tools |
| 13:08:58 | <dminuoso> | You're tripping into Apple issues. |
| 13:09:56 | <dminuoso> | (Note you will need an iCloud account to reach that) |
| 13:10:07 | <dminuoso> | Or rather, an Apple Id. |
| 13:10:09 | <guest12> | yeye which do i download |
| 13:10:16 | <dminuoso> | Dunno, what do you see there? |
| 13:10:43 | × | Rudd0 quits (~Rudd0@185.189.115.103) (Ping timeout: 260 seconds) |
| 13:10:59 | <guest12> | A lot of stuff xcode 12, command line tools for xcode lots and lots of stuff |
| 13:10:59 | <dminuoso> | Ah the top one |
| 13:11:05 | <Squarism> | Does there exist some type description language (think protocol buffers/openapi/xml-schema/thrift) that has sum/product types and type functions (atleast paramterized types)? Something that handles the basics of haskell type system. |
| 13:11:07 | <dminuoso> | Command Line Tools for XCode 12 |
| 13:11:08 | <dminuoso> | should be fine |
| 13:11:14 | <guest12> | okay |
| 13:11:22 | <dminuoso> | Squarism: servant? |
| 13:11:34 | <dminuoso> | or, are you thinking something else? |
| 13:12:02 | <dminuoso> | (you can encode anonymous sum/product types up to isomorphism with Either and (,), or using custom data types) |
| 13:12:09 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds) |
| 13:12:09 | × | Ariakenom__ quits (~Ariakenom@h-178-174-193-185.NA.cust.bahnhof.se) (Ping timeout: 258 seconds) |
| 13:12:30 | <Squarism> | dminuoso, I meant a textual representation that was at least aimed to be language agnostic. |
| 13:12:45 | <dminuoso> | What would that language describe? |
| 13:13:19 | → | aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net) |
| 13:13:20 | <Squarism> | data structures (or types in haskell terms) |
| 13:13:33 | <Squarism> | possibly functions |
| 13:14:57 | hackage | th-lift 0.8.2 - Derive Template Haskell's Lift class for datatypes. https://hackage.haskell.org/package/th-lift-0.8.2 (ryanglscott) |
| 13:14:59 | <Cheery> | there is a project that explores that. |
| 13:15:22 | → | zariuq joins (~zar@fw2.ciirc.cvut.cz) |
| 13:16:57 | <Cheery> | lol you need to remember the url to find it |
| 13:17:02 | <Cheery> | https://typedefs.com/ |
| 13:17:06 | <lortabac> | Squarism: you can achieve something similar with GraphQL, but it's a little cumbersome |
| 13:17:33 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 13:17:43 | <guest12> | Its fixed thanks guys |
| 13:17:49 | × | zargoertzel quits (~zar@fw4.ciirc.cvut.cz) (Ping timeout: 246 seconds) |
| 13:17:56 | <lortabac> | also, you can encode sum types in OpenAPI IIRC |
| 13:18:19 | × | drbean quits (~drbean@TC210-63-209-47.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin1 - https://znc.in) |
| 13:19:24 | × | revprez_stg quits (~revprez_s@pool-108-49-213-40.bstnma.fios.verizon.net) (Quit: Lost terminal) |
| 13:19:37 | × | guest12 quits (c13ddbc8@edu185.eduroam.aber.ac.uk) (Remote host closed the connection) |
| 13:22:23 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
| 13:23:02 | → | coot_ joins (~coot@37.30.59.210.nat.umts.dynamic.t-mobile.pl) |
| 13:23:53 | <alp> | thrift too IIRC |
| 13:24:05 | → | roconnor joins (~roconnor@host-104-157-196-197.dyn.295.ca) |
| 13:24:13 | → | luke_ joins (~luke@bitnomial/staff/luke) |
| 13:25:25 | × | coot quits (~coot@37.30.59.210.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 265 seconds) |
| 13:25:25 | coot_ | is now known as coot |
| 13:26:11 | → | josh_ joins (~josh@c-67-164-104-206.hsd1.ca.comcast.net) |
| 13:26:25 | × | sw1nn quits (~sw1nn@host86-173-104-87.range86-173.btcentralplus.com) (Quit: WeeChat 2.9) |
| 13:27:42 | → | sw1nn joins (~sw1nn@host86-173-104-87.range86-173.btcentralplus.com) |
| 13:27:43 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 13:30:25 | × | josh_ quits (~josh@c-67-164-104-206.hsd1.ca.comcast.net) (Ping timeout: 246 seconds) |
| 13:31:36 | × | perdent quits (~blah@101.175.129.224) (Ping timeout: 256 seconds) |
| 13:32:23 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
| 13:32:44 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 13:37:52 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 13:39:20 | → | kw joins (ac4a6125@cpe-172-74-97-37.nc.res.rr.com) |
| 13:40:45 | <kw> | Anyone know why hlint suggests writing `[x]` instead of `x : []`? |
| 13:41:03 | <dminuoso> | kw: because its more idiomatic to use the [...] notation than : |
| 13:41:06 | <merijn> | kw: Because hlint is super opinionated |
| 13:41:24 | <merijn> | kw: And it's opinions reflect those of the author, not necessarily the wider community |
| 13:41:32 | × | dhil quits (~dhil@11.29.39.217.dyn.plus.net) (Ping timeout: 260 seconds) |
| 13:41:54 | <kw> | That makes sense. |
| 13:41:56 | <dminuoso> | I personally prefer `singleton x` in some code paths, where `singleton x = pure x` |
| 13:42:30 | <kw> | Just always confuses me when constructor syntax like `x : xs` is mixed with literal syntax. |
| 13:42:49 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds) |
| 13:42:50 | <kw> | But obviously you can't use literal syntax to deconstruct an arbitrary list. |
| 13:43:08 | <merijn> | kw: You can |
| 13:43:20 | <kw> | Wait, how? |
| 13:43:32 | <kw> | Do you mean with comprehensions? |
| 13:43:34 | <merijn> | > case [1,2] of [x,y] -> "yay!"; _ -> "nay!" |
| 13:43:36 | <lambdabot> | "yay!" |
| 13:43:39 | <merijn> | > case [1,2,3] of [x,y] -> "yay!"; _ -> "nay!" |
| 13:43:42 | <lambdabot> | "nay!" |
| 13:43:47 | <dminuoso> | I think by "arbitrary" they mean it in the sense of `f ([x,y,z]:_) = ...` |
| 13:43:54 | <dminuoso> | (Which doesn't make sense, of course) |
| 13:43:55 | <kw> | OK, fair enough if I don't need the tail... |
| 13:44:05 | <int-e> | but it's odd when your cases are [], [x], [x,y] and then x:y:z:xs |
| 13:44:07 | <dminuoso> | kw: no, this is an exact list match |
| 13:44:14 | <dminuoso> | it doesnt throw the tail away, it just doesnt match |
| 13:44:19 | <merijn> | kw: No, "[x,y]" is equivalent to matching "x : (y : [])" |
| 13:44:30 | <dminuoso> | So if you want something like `f (x:y:z:_) = ..` you cant use the [] syntax for that |
| 13:44:32 | <merijn> | Note that the 2nd example returned "nay" |
| 13:45:03 | <dminuoso> | kw: Anyhow. If you find the `x:[]` to work better, maybe for symmetry reasons wrt to the pattern matching on the left side, that's perfectly fine. :) |
| 13:45:10 | <kw> | Sorry, I wasn't very clear. I've got a function that has special cases for lists of length 0, 1, 2, and 3, and has a recursive case for lists of length greater than 3. |
| 13:45:39 | <merijn> | kw: writing out those fixed cases with literal syntax works fine\ |
| 13:45:49 | <dminuoso> | `f [] = ...; f [x] = ...; f [x,y] = ...; f [x,y,z] = ...; f xs = ...` |
| 13:46:22 | → | spew joins (uid195861@gateway/web/irccloud.com/x-smxsszajtmpzphkc) |
| 13:46:47 | × | mnrmnaugh quits (~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 240 seconds) |
| 13:47:10 | → | ystael joins (~ystael@209.6.50.55) |
| 13:48:04 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 13:48:21 | → | mnrmnaugh joins (~mnrmnaugh@unaffiliated/mnrmnaugh) |
| 13:48:36 | <dminuoso> | `t :: IO [Pg.Only T]` how do I efficiently turn that into `IO [T]`? |
| 13:48:54 | <dminuoso> | (Only is just a newtype) |
| 13:49:06 | <kw> | I guess it really does come down to opinion. For me `case xs of { [] -> z; [x] -> f x; [x1, x2] -> g x1 x2; x1 : x2 : x3 : xs -> h x1 x2 x3 (loop xs)}` seemed really odd. But it does make the recursive case stand out. |
| 13:49:10 | <dminuoso> | `newtype Only a = Only { fromOnly :: a }` |
| 13:49:14 | <merijn> | dminuoso: "fmap (fmap getOnly)" :p |
| 13:49:14 | <[exa]> | dminuoso: fromOnly? |
| 13:49:25 | <merijn> | Or just "coerce" |
| 13:49:40 | <dminuoso> | merijn: Will double fmap not cause it to walk over the list unnecessarily? |
| 13:50:07 | <dminuoso> | % coerce [Produt 5, Product 6] :: [Integer] |
| 13:50:08 | <yahb> | dminuoso: ; <interactive>:137:9: error:; * Data constructor not in scope: Produt :: t0 -> Product a0; * Perhaps you meant one of these: `Product' (imported from Control.Monad.RWS), variable `product' (imported from Prelude) |
| 13:50:14 | <dminuoso> | % coerce [Product 5, Product 6] :: [Integer] |
| 13:50:14 | <yahb> | dminuoso: [5,6] |
| 13:50:18 | <dminuoso> | Ah. Mmm. |
| 13:51:08 | <dminuoso> | % coerce (pure [Product 5, Product 6] :: IO [Product Integer]) :: IO [Integer] |
| 13:51:08 | <yahb> | dminuoso: [5,6] |
| 13:51:19 | <dminuoso> | merijn: I see. Somehow I didnt realize I could coerce through IO. :) |
| 13:51:42 | <kw> | Is there any efficiency advantage in GHC to using list literal syntax? |
| 13:51:59 | <merijn> | No |
| 13:52:06 | <dminuoso> | kw: list literals are just syntax sugar around : |
| 13:52:24 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds) |
| 13:52:58 | <kw> | That's a relief. I remember reading somewhere that GHC would compile literal lists to arrays. |
| 13:52:58 | × | jedws quits (~jedws@121.209.139.222) (Read error: Connection reset by peer) |
| 13:53:06 | → | dhil joins (~dhil@11.29.39.217.dyn.plus.net) |
| 13:53:29 | <int-e> | There's some special treatment of string literals. |
| 13:53:34 | → | jedws joins (~jedws@121.209.139.222) |
| 13:54:29 | <kw> | Oh, maybe that was it. I'm not using strings, so I guess it doesn't matter. |
| 13:55:07 | → | machinedgod joins (~machinedg@d67-193-126-196.home3.cgocable.net) |
| 13:55:12 | <kw> | Thanks everyone. |
| 13:55:27 | × | wimpunk1 quits (~wimpunk@185.189.112.19) (Ping timeout: 240 seconds) |
| 13:55:40 | <merijn> | kw: IF ghc did that, there's no reason why it couldn't to the exact same thing for lists written using :, though |
| 13:56:47 | <kw> | I know, I shouldn't doubt GHC's intelligence. Was just imagining that it might be something special that applies only to the sugar. |
| 13:58:03 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 13:59:23 | × | Unhammer quits (~Unhammer@gateway/tor-sasl/unhammer) (Ping timeout: 240 seconds) |
| 13:59:57 | hackage | jose 0.8.4 - Javascript Object Signing and Encryption and JSON Web Token library https://hackage.haskell.org/package/jose-0.8.4 (frasertweedale) |
| 14:00:03 | → | Unhammer joins (~Unhammer@gateway/tor-sasl/unhammer) |
| 14:01:14 | → | AlterEgo- joins (~ladew@124-198-158-163.dynamic.caiway.nl) |
| 14:02:25 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
| 14:03:46 | → | Sgeo joins (~Sgeo@ool-18b982ad.dyn.optonline.net) |
| 14:08:20 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 14:08:31 | → | fweht joins (uid404746@gateway/web/irccloud.com/x-otdjghlxzvvxjpbo) |
| 14:12:43 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds) |
| 14:12:45 | → | shatriff joins (~vitaliish@176.52.219.10) |
| 14:13:14 | × | luke_ quits (~luke@bitnomial/staff/luke) (Quit: sleep) |
| 14:13:31 | → | son0p joins (~son0p@181.136.122.143) |
| 14:13:34 | → | cpressey joins (~cpressey@79-72-202-166.dynamic.dsl.as9105.com) |
| 14:14:13 | × | alp quits (~alp@2a01:e0a:58b:4920:1846:e8b6:c010:c9fe) (Ping timeout: 272 seconds) |
| 14:14:58 | → | justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311) |
| 14:16:48 | → | z0 joins (~z0@bl17-251-27.dsl.telepac.pt) |
| 14:18:23 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 14:18:31 | <z0> | im doing advent of code 2019 and I think I found a typo in the last example @ day 5 part 2. has anyone done it and wants to verify? |
| 14:19:42 | <merijn> | Seems unlikely, since I'm pretty sure I completed that just fine :p |
| 14:20:07 | → | polyphem joins (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) |
| 14:20:45 | <z0> | i also completed, but i tested all examples given and this is the only one failing |
| 14:20:55 | <tdammers> | yeah, AoC tends to be reviewed insanely well, which is kind of prudent considering the audience |
| 14:21:58 | × | kuribas quits (~user@ptr-25vy0i90m4i4hv80b70.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
| 14:22:25 | × | nbloomf quits (~nbloomf@2600:1700:83e0:1f40:71e4:29c:fe07:7926) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 14:22:27 | × | sword865 quits (uid208942@gateway/web/irccloud.com/x-uhmvawtkvtngcrcd) (Quit: Connection closed for inactivity) |
| 14:22:44 | <z0> | well... i'm very suspicious because you can see the list ends in "4,20,1105,1,46,98,99" and I get the correct results BUT the next code is not 99 (halt) |
| 14:23:14 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
| 14:23:22 | <z0> | 4 (the output instruction) has 2 parameters and if you move the pointer you go to 1105 and not 99 |
| 14:23:31 | → | jollygood2 joins (~bc815b99@217.29.117.252) |
| 14:23:44 | → | josh_ joins (~josh@c-67-164-104-206.hsd1.ca.comcast.net) |
| 14:24:07 | × | xff0x quits (~fox@2001:1a81:53b0:3c00:9889:b2f6:c747:1eec) (Ping timeout: 240 seconds) |
| 14:24:32 | <tdammers> | I can't remember the details, but I think I initially misread something in the spec that made this example fail |
| 14:24:47 | <tdammers> | meaning that it's probably not the example, but your brain that's wrong |
| 14:24:50 | <dminuoso> | z0: hold on, why does 4 have 2 parameters? |
| 14:25:01 | <dminuoso> | It has only one. |
| 14:25:07 | → | xff0x joins (~fox@2001:1a81:53b0:3c00:65ac:b49c:d7d6:af9b) |
| 14:25:42 | <z0> | sorry, i meant 1 |
| 14:25:57 | <z0> | the pointer moves 2 addresse |
| 14:26:41 | <z0> | which puts it in the 1105 instruction. if i let it run it will eventually halt with the output 0 |
| 14:28:12 | <dminuoso> | z0: I dont quite understand what confusion you have., |
| 14:28:32 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 14:29:00 | <z0> | as i understood, as soon as the output is /= 0, the next instruction HAS to be 99, right? |
| 14:29:32 | → | abdullah__ joins (~LeghariK@37.111.129.221) |
| 14:30:22 | <z0> | in this case, the output i get from that last 4 is the right output for all 3 cases (< 9, ==9, > 9) |
| 14:30:28 | hackage | cli-extras 0.1.0.0 - Miscellaneous utilities for building and working with command line interfaces https://hackage.haskell.org/package/cli-extras-0.1.0.0 (RyanTrinkle) |
| 14:30:29 | <z0> | but the next instruction is not 99 |
| 14:30:53 | <z0> | *(<8,==8,>8) |
| 14:31:28 | hackage | nix-thunk 0.1.0.0, cli-nix 0.1.0.0, cli-git 0.1.0.0 (RyanTrinkle) |
| 14:32:56 | → | nbloomf joins (~nbloomf@2600:1700:83e0:1f40:85d7:28a9:e9cf:26c5) |
| 14:33:01 | <dminuoso> | 16:29:00 z0 | as i understood, as soon as the output is /= 0, the next instruction HAS to be 99, right? |
| 14:33:05 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds) |
| 14:33:07 | <dminuoso> | The way I read it, that sounds wrong. |
| 14:34:37 | <dminuoso> | Consider the context of it all |
| 14:35:48 | <dminuoso> | This is diagnostic routines. A diagnostic is finished by writing some output, and it outputs 0 if it was successful, and a number if there was a deviation from the expected value |
| 14:36:05 | <dminuoso> | There's nothing to suggest a failed diagnostic must halt the program. |
| 14:36:47 | × | random quits (~random@185.219.70.106) (Ping timeout: 240 seconds) |
| 14:37:53 | × | chaosmasttter quits (~chaosmast@p200300c4a70aba01f8f8cb9b34fa26e3.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
| 14:38:22 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 14:38:26 | → | turion joins (~turion@ip1f10fe5a.dynamic.kabel-deutschland.de) |
| 14:38:42 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 14:39:06 | <turion> | Is there a standard solution for building QuickCheck/SmallCheck/etc. generators for datatypes with constructors with existential types? |
| 14:39:14 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 14:40:00 | <dminuoso> | turion: Mmm, how is that different from any other datatype? |
| 14:40:23 | <turion> | E.g. I have a free category type |
| 14:40:23 | <turion> | data FreeCat c where |
| 14:40:23 | <turion> | Id :: FreeCat c a a |
| 14:40:23 | <turion> | Seq :: FreeCat cat a b -> FreeCat cat b c |
| 14:40:23 | <turion> | Free :: cat a b -> FreeCat cat a b |
| 14:40:47 | <turion> | When I want to generate a Seq, I need to choose a _type_ b |
| 14:41:04 | <ski> | signature of `Seq' looks incomplete |
| 14:41:06 | <turion> | Of course I could always choose the same one, but that would be boring |
| 14:41:25 | <turion> | Whoops right, thanks. |
| 14:41:25 | <turion> | Seq :: FreeCat cat a b -> FreeCat cat b c -> FreeCat cat a c |
| 14:41:54 | <int-e> | z0: you're reading too much inbto "immediately followed by"... 1105,1,n is an unconditional jump to offset n; here n=46 and the operation there is the 99 you want. |
| 14:42:19 | <ski> | if you could have generation for `cat a b' pick an `a' or a `b' for you, given the other, then that could be useful, probably |
| 14:43:00 | <turion> | ski: What would be the type of such a generator? |
| 14:43:03 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 14:43:05 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
| 14:43:25 | × | Ariakenom_ quits (~Ariakenom@h-98-128-229-8.NA.cust.bahnhof.se) (Remote host closed the connection) |
| 14:43:47 | → | Ariakenom_ joins (~Ariakenom@h-98-128-229-8.NA.cust.bahnhof.se) |
| 14:44:03 | × | bitmapper quits (uid464869@gateway/web/irccloud.com/x-ssqdypdoaselcqyh) (Quit: Connection closed for inactivity) |
| 14:45:07 | × | xff0x quits (~fox@2001:1a81:53b0:3c00:65ac:b49c:d7d6:af9b) (Ping timeout: 240 seconds) |
| 14:45:16 | <ski> | hm, to a zeroth approximation, something like `Gen (exists b. cat a b)', but then one'd like to keep using that `b' onwards .. |
| 14:46:10 | × | nbloomf quits (~nbloomf@2600:1700:83e0:1f40:85d7:28a9:e9cf:26c5) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 14:46:18 | → | xff0x joins (~fox@2001:1a81:53b0:3c00:65ac:b49c:d7d6:af9b) |
| 14:46:42 | → | ddellacosta joins (~dd@86.106.121.168) |
| 14:47:45 | → | nbloomf joins (~nbloomf@2600:1700:83e0:1f40:f198:f10:f56d:4606) |
| 14:48:45 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 14:49:26 | <turion> | ski: Yes. I guess there is a way to do this with an existential type somehow. Or maybe continuations...? But I'm wondering whether something like this has been studied systematically, because it must show up every time someone wants to write a generator for a GADT or existential type |
| 14:50:32 | × | snakemasterflex quits (~snakemast@213.100.206.23) (Read error: Connection reset by peer) |
| 14:50:57 | → | snakemasterflex joins (~snakemast@213.100.206.23) |
| 14:51:33 | <ski> | if we imagine `class SomeArbitrary f where someArbitrary :: Gen (..f..)', one could have `instance SomeArbitrary (cat a) => SomeArbitrary (FreeCat cat a) where ..' with `someArbitrary :: Gen (exists b. SomeArbitrary (cat b) *> FreeCat cat a b)', maybe ? |
| 14:52:22 | <ski> | perhaps the constraint here could be an associated type |
| 14:52:40 | <z0> | dminuoso: "For each test, it will run an output instruction indicating how far the result of the test was from the expected value, where 0 means the test was successful. Non-zero outputs mean that a function is not working correctly; check the instructions that were run before the output instruction to see which one failed." |
| 14:52:45 | → | herasmus joins (~mb@91-160-105-150.subs.proxad.net) |
| 14:52:58 | <z0> | but ignoring this, it now works as supposed |
| 14:53:00 | <z0> | thanks |
| 14:53:26 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
| 14:54:03 | <turion> | ski: I'm not sure how exactly the generator case for Seq typechecks |
| 14:54:05 | <Cale> | I can imagine writing a generator something like (Arbitrary b, CoArbitrary a) => FreeCat (->) a b |
| 14:54:32 | <Cale> | which generated Seq terms by picking from a finite list of types that are known to have Arbitrary and CoArbitrary instances |
| 14:54:46 | <z0> | int-e: maybe i read too much into the sentence I pasted above |
| 14:54:55 | <Cale> | oops |
| 14:55:05 | <Cale> | I meant Gen (FreeCat (->) a b) obviously |
| 14:55:13 | <ski> | Cale : imagine `cat' is a basic GADT ? |
| 14:55:38 | <turion> | Cale: Yes, I guess that can work. Is there a framework that does this? |
| 14:56:05 | <turion> | Imagine we'd go on and do free arrows, and we want to reuse this list of types, how to abstract it |
| 14:57:09 | <dminuoso> | z0: Still, where does it say it has to halt? |
| 14:58:11 | <Cale> | I was thinking cat is a category |
| 14:58:11 | <Cale> | No, you'd have to write the thing yourself, and it will include too many details of this structure to be really generalisable |
| 14:58:11 | <Cale> | Or maybe I just lack the imagination to figure out how to generalise it |
| 14:58:12 | <Cale> | But it won't be a difficult thing to write |
| 14:58:27 | <dminuoso> | z0: `Finally, the program will output a diagnostic code and immediately halt. ` means it will halt *after* the final diagnostic code. |
| 14:58:58 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 14:59:07 | <Cale> | Oh, well, if you take a function of type (forall a b. (CoArbitrary a, Arbitrary b) => cat a b), that's the only real missing piece |
| 14:59:36 | <Cale> | Or you could just insist on an instance Arbitrary (cat a b) |
| 14:59:42 | herasmus | is now known as Herasmus |
| 14:59:47 | × | mnrmnaugh quits (~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 240 seconds) |
| 15:00:13 | <turion> | Cale, let's assume we have (forall a b. (CoArbitrary a, Arbitrary b) => cat a b) already |
| 15:00:32 | <Cale> | It's the Free case which is more challenging than the Seq case. The Seq case just amounts to making a random decision about which type to factor through, and making acceptable choices for it |
| 15:01:00 | <turion> | Cale: It's this random decision of a type that I want to abstract |
| 15:01:17 | → | mnrmnaugh joins (~mnrmnaugh@unaffiliated/mnrmnaugh) |
| 15:01:24 | <Cale> | oneof :: [Gen a] -> Gen a |
| 15:01:36 | <Cale> | ^^ use that :) |
| 15:01:40 | <z0> | dminuoso: well, you are not wrong :/ |
| 15:01:42 | <ski> | for some applications, it seems it would be eaiser to pick the value first, and let the choice of that decide the type |
| 15:02:13 | → | Lord_of_Life_ joins (~Lord@unaffiliated/lord-of-life/x-0885362) |
| 15:02:14 | <Cale> | You can imagine writing the generator which generates a random Seq term by always factoring through Integer |
| 15:02:21 | <Cale> | Or String or some such |
| 15:02:25 | <Cale> | right? |
| 15:02:28 | <turion> | We can also represent the free category differently: |
| 15:02:28 | <turion> | data FreeCat cat a b where |
| 15:02:28 | <turion> | Id :: FreeCat cat a a |
| 15:02:28 | <turion> | Comp :: cat a b -> FreeCat cat b c -> FreeCat cat a c |
| 15:02:35 | <Cale> | So you can combine those together with oneof |
| 15:02:53 | <turion> | ski: Yes, maybe there is a generator for cat a b that knows what the output type should be |
| 15:03:10 | <turion> | Cale: Yes, that part I know how to do. It's more that I'd like to abstract it |
| 15:03:19 | <turion> | Or rather to see whether someone has already done that |
| 15:03:28 | <Cale> | If you're writing the general instance, it'll just amount to pretty much Seq arbitrary arbitrary a bunch of times, but with type signatures on the arbitrary terms |
| 15:03:42 | <Cale> | er, Seq <$> arbitrary <*> arbitrary rather |
| 15:03:44 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds) |
| 15:03:48 | <turion> | Because it seems like an ubiquitous problem |
| 15:03:51 | → | perdent joins (~blah@101.175.129.224) |
| 15:03:55 | <ski> | e.g. perhaps you have `data Fun :: * -> * -> * where Not :: Fun Bool Bool; Chr :: Fun Int Char; Ord :: Fun Char Int; Succ :: Fun Int Int; IsSpace :: Fun Char Bool', or something like that |
| 15:03:57 | <Cale> | hmm |
| 15:04:00 | <z0> | dminuoso: teaches me to keep no assumptions |
| 15:04:11 | <ski> | and then you want to generate `FreeCat Fun' |
| 15:04:43 | → | luke joins (~luke@bitnomial/staff/luke) |
| 15:04:50 | <ski> | turion : i don't think that representation makes a huge difference to the problem here |
| 15:04:58 | <turion> | ski: That's a good example |
| 15:05:01 | × | Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 264 seconds) |
| 15:05:03 | <Cale> | Oh, also, Id will be interesting, actually |
| 15:05:10 | Lord_of_Life_ | is now known as Lord_of_Life |
| 15:05:11 | <Cale> | hmm |
| 15:05:14 | → | Noldorin joins (~noldorin@unaffiliated/noldorin) |
| 15:05:22 | <Cale> | Unless you demand Typeable a, Typeable b in your instance head |
| 15:05:38 | <Cale> | So that you know when you're allowed to attempt to produce Id terms |
| 15:05:39 | <turion> | ski: No the representation isn't that important, I agree. (That was kind of the point. I wanted to draw the attention away from the difference between Seq and Free) |
| 15:07:11 | <ski> | Cale : hm, point |
| 15:07:18 | <ski> | well |
| 15:07:37 | <ski> | Cale : i guess you could allow `Id' for any `a' of the right kind |
| 15:08:02 | <turion> | Assume I have an interpreter for this Fun type and I want to quickcheck that it preserves composition from FreeCat Fun to its semantic domain. But in a very general setting, where I don't have to fix the input and output types |
| 15:08:47 | × | perdent quits (~blah@101.175.129.224) (Ping timeout: 260 seconds) |
| 15:09:05 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 15:09:08 | × | nbloomf quits (~nbloomf@2600:1700:83e0:1f40:f198:f10:f56d:4606) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 15:09:12 | <Cale> | ski: Well, if you're writing an instance (...) => Arbitrary (FreeCat cat a b), you need to know whether a ~ b so that you know whether it's valid to generate Id at all. |
| 15:09:34 | <Cale> | If a and b are not the same type, you can't generate Id terms, but you can still generate Comp/Free terms |
| 15:09:47 | <ski> | yea. but i'm more considering `Arbitrary (exists b. FreeCat cat a b)' :) |
| 15:09:56 | <Cale> | hmmm |
| 15:10:03 | <Cale> | fair enough :) |
| 15:10:16 | <ski> | (since we need something like that, for the composition) |
| 15:10:47 | <ski> | (or else, i guess, randomly generating `b0' and `b1', which are `Typeable', and then comparing that they're the same ..) |
| 15:10:56 | <ski> | (.. but that's not that nice) |
| 15:11:05 | × | Sanchayan quits (~Sanchayan@136.185.169.201) (Quit: leaving) |
| 15:11:27 | <turion> | Maybe at the end we need to build an Arbitrary (exists a b . FreeCat cat a b) |
| 15:11:55 | <turion> | (possibly with Typeable, Arbitrary, Coarbitrary etc. thrown in |
| 15:12:27 | hackage | th-orphans 0.13.11 - Orphan instances for TH datatypes https://hackage.haskell.org/package/th-orphans-0.13.11 (ryanglscott) |
| 15:12:30 | → | nbloomf joins (~nbloomf@2600:1700:83e0:1f40:6d38:c363:743b:50e9) |
| 15:13:17 | → | alp joins (~alp@88.126.45.36) |
| 15:13:38 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
| 15:13:53 | <ski> | turion : the `Arbitrary' and `Coarbitrary' would be if `cat' say had constructors taking functions |
| 15:18:22 | <turion> | ski: Yes |
| 15:18:51 | <turion> | For your example it's not needed, right |
| 15:18:54 | → | voyons_osti joins (~dan@107-190-41-58.cpe.teksavvy.com) |
| 15:18:58 | <ski> | right |
| 15:19:08 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 15:19:12 | <turion> | I was implicitly thinking about my use case, which is a kind of free arrow |
| 15:19:16 | × | filwishe1 quits (~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 246 seconds) |
| 15:20:51 | → | zpao joins (~zpao@185.163.110.116) |
| 15:21:43 | <turion> | This kind of problem sounds like something that someone has written a functional pearl about 10 years ago |
| 15:22:52 | × | jespada quits (~jespada@90.254.241.6) (Ping timeout: 265 seconds) |
| 15:23:43 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
| 15:24:20 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 15:25:02 | <Cale> | Ah, writing the instance, you end up wanting to know not only that there are instances of Arbitrary for (cat a String) and (cat String a) for example, but also for (cat String String) and all combinations of intermediate types you plan to use |
| 15:25:07 | × | luke quits (~luke@bitnomial/staff/luke) (Quit: sleep) |
| 15:25:13 | → | jespada joins (~jespada@90.254.241.6) |
| 15:25:37 | → | knupfer joins (~Thunderbi@i5E86B4C1.versanet.de) |
| 15:27:01 | <Cale> | So the instance head has O(n^2) constraints on it if you want n intermediate types :) |
| 15:27:13 | × | koz quits (~koz@121.99.240.58) (Remote host closed the connection) |
| 15:27:21 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 15:27:29 | → | koz joins (~koz@121.99.240.58) |
| 15:27:33 | <ski> | yes, hence i wanted `someArbitrary :: Gen (exists b. SomeArbitrary (cat b) *> FreeCat cat a b)', for `instance SomeArbitrary (cat a) => SomeArbitrary (FreeCat cat a)' |
| 15:27:48 | × | elliott_ quits (~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) (Ping timeout: 272 seconds) |
| 15:28:14 | <Cale> | tsk, wildcards not allowed in instance declarations |
| 15:28:17 | <Cale> | annoying |
| 15:28:33 | <ski> | so, when it's picking a new type for you, it should also give you an instance for how you could continue from that type |
| 15:28:43 | <ski> | (this is very specific to `FreeCat', obviously) |
| 15:29:01 | <Cale> | yeah |
| 15:29:08 | → | bloodstalker joins (~bloodstal@46.166.187.188) |
| 15:29:15 | <Cale> | You could also just demand everything you'll end up needing |
| 15:29:20 | × | rslima____ quits (sid26145@gateway/web/irccloud.com/x-zjgqdcvtyayglqgm) (Ping timeout: 260 seconds) |
| 15:29:35 | <Cale> | It's also probably sufficient just to have a single intermediate type, in practice. :P |
| 15:29:48 | × | Herasmus quits (~mb@91-160-105-150.subs.proxad.net) (Quit: leaving) |
| 15:29:58 | <ski> | you mean for other cases than `FreeCat' ? |
| 15:30:07 | <Cale> | No |
| 15:30:19 | <Squarism> | Cheery, thanks for the link. Thats exactly what I'm after |
| 15:30:46 | → | rslima____ joins (sid26145@gateway/web/irccloud.com/x-nijwoaxwcetixacu) |
| 15:31:38 | <ski> | hm, sorry. for some reason, i misread you as saying "insufficient", rather than "sufficient" |
| 15:32:22 | <Cale> | https://dpaste.com/5DUQARMCK -- anyway, something like this works |
| 15:32:49 | → | Tops2 joins (~Tobias@dyndsl-091-249-082-222.ewe-ip-backbone.de) |
| 15:33:50 | → | bitmapper joins (uid464869@gateway/web/irccloud.com/x-jerhumioweuciiqb) |
| 15:34:07 | <Cale> | Probably () would be a more useful choice than either Integer or String as a second type. Pick something with lots of values and something with few values :) |
| 15:34:17 | <Cale> | Maybe throw in Void |
| 15:34:27 | × | turion quits (~turion@ip1f10fe5a.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 15:35:04 | <z0> | /quit |
| 15:35:14 | × | z0 quits (~z0@bl17-251-27.dsl.telepac.pt) (Quit: leaving) |
| 15:35:40 | <monochrom> | Nice, GHC 9.0.1 alpha1 was released yesterday |
| 15:37:07 | <monochrom> | onoes, the GHC user's guide will use the readthedocs format :) |
| 15:38:00 | → | turion joins (~turion@ip1f10fe5a.dynamic.kabel-deutschland.de) |
| 15:38:35 | × | lagothrix quits (~lagothrix@unaffiliated/lagothrix) (Ping timeout: 258 seconds) |
| 15:38:50 | → | lagothrix joins (~lagothrix@unaffiliated/lagothrix) |
| 15:39:29 | <turion> | Ideally, have lots of different types, and ideally tweak the intermediate types depending over what we want the free category |
| 15:40:28 | × | jgt quits (~jgt@46.250.27.223.pool.breezein.net) (Ping timeout: 272 seconds) |
| 15:40:37 | <turion> | E.g. in FreeCat (->) a b we basically want everything we can think of that has (CoArbitrary a, Arbitrary b). In ski's example, we want just the types that occur in Fun |
| 15:41:09 | × | jedws quits (~jedws@121.209.139.222) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 15:41:18 | → | solonarv joins (~solonarv@astrasbourg-653-1-252-112.w92-161.abo.wanadoo.fr) |
| 15:43:31 | × | xerox_ quits (~xerox@unaffiliated/xerox) (Quit: leaving) |
| 15:43:50 | <ski> | turion : could also allow other types to be used, with `Id' |
| 15:44:16 | × | kritzefitz quits (~kritzefit@fw-front.credativ.com) (Ping timeout: 256 seconds) |
| 15:44:47 | <Cale> | With newer GHCs, you could use QuantifiedConstraints to get the thing you want in the (->) case |
| 15:45:24 | <Cale> | It's also probably possible to construct a type family that lets you turn a list of types into a list of all the needed Arbitrary constraints between them |
| 15:45:37 | <turion> | ski: Hmm true. So maybe we always want as many types as possible. But sometimes we'll have to restrict to the ones that are specified in a constructor |
| 15:45:42 | <Cale> | (rather, into the combination of those constraints directly |
| 15:45:43 | <Cale> | ) |
| 15:46:57 | <ski> | turion : perhaps there could be some way to "inject" which types one'd like it to consider for existentials .. not sure how one'd want that to work, though |
| 15:47:17 | <turion> | ski: Like a list of proxies hidden in an existential type |
| 15:47:26 | <Cale> | Also, note that you don't have to stick to a single Arbitrary instance. |
| 15:48:03 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
| 15:48:04 | <turion> | Cale: What do you mean? |
| 15:48:29 | <Cale> | You can write a bunch of these Gen values for various circumstances, and use them via QuickCheck's forAll |
| 15:48:35 | <Cale> | forAll :: (Show a, Testable prop) => Gen a -> (a -> prop) -> Property |
| 15:48:49 | <turion> | Ah yes :) that will sometimes make it easier |
| 15:48:52 | <monochrom> | Yikes, new extension LexicalNegation. If you turn it on, then "x -y" means "x (negate y)", and "(- b)" means the section "subtract b". |
| 15:49:11 | × | DirefulSalt quits (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection) |
| 15:50:04 | → | DirefulSalt joins (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) |
| 15:50:18 | → | elliott_ joins (~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) |
| 15:50:19 | → | jb55 joins (~jb55@gateway/tor-sasl/jb55) |
| 15:50:37 | <dolio> | Oh, it turns off unary minus with spaces? |
| 15:50:39 | <Cale> | monochrom: I hate the direction that GHC's been going lately |
| 15:51:03 | <ski> | Cale : syntactically ? |
| 15:51:07 | <monochrom> | I have a conspiracy theory! LinearTypes was a smoke screen to distract people from noticing the really breaking changes like LexicalNegation and simplified subsumption. :) |
| 15:51:18 | <Cale> | ski: Syntactically, semantically... |
| 15:51:19 | × | nbloomf quits (~nbloomf@2600:1700:83e0:1f40:6d38:c363:743b:50e9) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 15:51:36 | <monochrom> | Yeah dolio, basically that. |
| 15:52:25 | <Cale> | LinearTypes is a disaster unfolding in slow motion, then there's all these little stupid syntactic extensions that everyone's going to have to deal with. |
| 15:52:36 | <dolio> | Simplified subsumption I can kind of get behind, if it's what I'm thinking of. |
| 15:52:43 | <monochrom> | Well, also, "x -y" meaning "x (negate y)" is turning on unary minus with absence of spaces. :) |
| 15:53:25 | <monochrom> | "\x -> sin x == sin -x" is now a valid property for quickcheck :) |
| 15:53:40 | <monochrom> | err, s/sin/cos/ |
| 15:53:58 | <dolio> | Right. I just thought it was adding the rule about -x, not taking away - x. |
| 15:54:27 | <Cale> | I feel like RecordDotSyntax was the kind of thing that newbies would always ask for like a decade ago, but there were always good reasons not to do it. Now we've just gone ahead and ignored all those good reasons, and implemented something which makes it easy to write terms that nobody knows how to parse |
| 15:55:07 | × | acidjnk_new quits (~acidjnk@p200300d0c72378745c7b1a0a573f1493.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 15:55:11 | <Cale> | (there's a rule for disambiguation, but it's not obvious) |
| 15:55:37 | <monochrom> | (basically using spaces again, yeah) |
| 15:55:59 | <maerwald> | magical spaces |
| 15:56:07 | <Cale> | It honestly makes me want to fork the entire language |
| 15:56:31 | <maerwald> | reminds me of the `return foo;` vs `foo` syntax in rust, which is nonsense imo |
| 15:56:34 | → | wroathe joins (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) |
| 15:56:40 | <dolio> | Taking away spaced unary minus might actually be good in that situation, I guess, because it's one less complication. |
| 15:56:51 | <Cale> | GHC doesn't need new language extensions, it needs to be simpler and produce better code in less time |
| 15:56:52 | <dolio> | Like "-x `mod` y" vs "- x `mod` y". |
| 15:57:08 | → | Saukk joins (~Saukk@2001:998:f1:3966:96a6:dee2:2e9:fdf3) |
| 15:57:08 | <Cale> | The GHC API needs to be more usable |
| 15:58:03 | <monochrom> | As usual, LinearTypes earns paper credits, improving GHC API doesn't. |
| 15:58:37 | → | hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-hhonmrvgqckxkhob) |
| 15:58:48 | <maerwald> | monochrom: dunno, by now there should be enough companies caring about these mundane things... I'm not sure what's going on |
| 15:58:52 | <dolio> | It's a little odd that - binds tighter than function application, though. |
| 15:59:06 | <Cale> | dolio: Yeah, that's happening with dot now too |
| 15:59:19 | <dolio> | Well, I'm not surprised by that. |
| 15:59:20 | <Cale> | It's disgusting |
| 15:59:53 | <dolio> | I expect "we need to import syntax from JavaScript" to be nonsense. |
| 15:59:54 | <Cale> | The *one* rule about precedence that we used to be able to rely on |
| 15:59:55 | → | xerox_ joins (~xerox@unaffiliated/xerox) |
| 16:00:04 | <monochrom> | Ahhh I see now, two-for-one deal, if you can use spacing to change precedence, you may as well do it to both - and . and nail two popular demands. |
| 16:00:13 | × | coot quits (~coot@37.30.59.210.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 16:00:18 | × | kaushikc quits (kaushikkau@gateway/shell/matrix.org/x-hwwljnatfkzlwbta) (Quit: Idle for 30+ days) |
| 16:00:27 | → | Rudd0 joins (~Rudd0@185.189.115.98) |
| 16:00:50 | × | cpressey quits (~cpressey@79-72-202-166.dynamic.dsl.as9105.com) (Quit: WeeChat 1.9.1) |
| 16:01:04 | <dolio> | Anyhow, this is why "avoid (success at all costs)" is the wrong reading. :) |
| 16:01:25 | → | nbloomf joins (~nbloomf@2600:1700:83e0:1f40:ddd1:5640:16d4:8a5) |
| 16:02:21 | × | machinedgod quits (~machinedg@d67-193-126-196.home3.cgocable.net) (Ping timeout: 258 seconds) |
| 16:05:13 | × | nbloomf quits (~nbloomf@2600:1700:83e0:1f40:ddd1:5640:16d4:8a5) (Client Quit) |
| 16:05:19 | → | howdoi joins (uid224@gateway/web/irccloud.com/x-mlzhxxxzmqvsdejo) |
| 16:05:23 | × | justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) (Ping timeout: 256 seconds) |
| 16:06:37 | → | zacts joins (~zacts@dragora/developer/zacts) |
| 16:07:10 | → | thir joins (~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) |
| 16:07:49 | → | luke joins (~luke@bitnomial/staff/luke) |
| 16:08:03 | → | Guest18 joins (567e8866@gateway/web/cgi-irc/kiwiirc.com/ip.86.126.136.102) |
| 16:08:36 | <zincy_> | Cale: I agree, newbies at my last workplace were all over RecordDotSyntax |
| 16:09:13 | × | raehik quits (~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net) (Ping timeout: 264 seconds) |
| 16:10:20 | × | turion quits (~turion@ip1f10fe5a.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds) |
| 16:10:23 | <zincy_> | Why is linear types going to be a disaster? |
| 16:11:55 | <Cale> | Because it's not very useful, and yet in order to attempt to use it in various circumstances, people are going to want linear-generalised versions of various higher order things from every package in the known universe. |
| 16:12:02 | <quicksilver> | I was always afraid this would happen with record syntax |
| 16:12:15 | <Cale> | This will clutter the world, and yet serve very little purpose |
| 16:12:27 | × | thir quits (~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 16:13:32 | → | raehik joins (~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net) |
| 16:14:26 | <zincy_> | Cale: Yeah it seems like a lot of work for a solution to a very niche set of problems |
| 16:14:36 | <Cale> | A lot of the downsides of attempting to use linear types are not particularly obvious at first sight. For example, the paper which introduced them includes as one of its examples, a socket library which could only be used if you never want to do any I/O in your server that could potentially throw an exception you might want to catch without taking down the entire server. |
| 16:14:59 | × | luke quits (~luke@bitnomial/staff/luke) (Quit: sleep) |
| 16:15:00 | → | nbloomf joins (~nbloomf@2600:1700:83e0:1f40:94ea:ab3b:3884:ed6e) |
| 16:15:16 | <zincy_> | haha |
| 16:15:17 | × | puffnfresh_ quits (~puffnfres@45.76.124.5) (Quit: ZNC 1.8.0 - https://znc.in) |
| 16:15:31 | <Cale> | This is the kind of thing that beginners will hang themselves on, and blame Haskell's type system for being frustrating and incomprehensible, and the annoying thing is that in this case, they will be right. |
| 16:15:36 | → | puffnfresh_ joins (~puffnfres@45.76.124.5) |
| 16:16:16 | <zincy_> | Cale: Do you feel that there are too many obscure extensions on the market? |
| 16:16:21 | <Cale> | yes |
| 16:16:59 | <zincy_> | They feel a bit like pokemon. |
| 16:17:05 | <Cale> | I think it's long past time to stop making new extensions at least until people have better ideas |
| 16:17:18 | <zincy_> | In the old days you had ones you loved and new ones keep coming out and you dont care anymore |
| 16:18:09 | <quicksilver> | I don't mind a plethora of experimental extensions as long as they don't become a new default |
| 16:18:19 | <quicksilver> | I suppose that's hard to control/predict |
| 16:18:44 | <Cale> | The thing is, the language people have to learn is basically the union of all the extensions that exist |
| 16:18:55 | <int-e> | quicksilver: the problem with those extensions is somebody will use them :-/ |
| 16:18:57 | <Cale> | because once it's in GHC, someone's going to use it |
| 16:18:59 | <zincy_> | I thought Haskell would be great at "taming" bad programmers. But it is amazing the ingenuity Haskell can give you to create bad code. |
| 16:19:22 | <Cale> | Yeah, I've seen some remarkably terrible things done with singletons |
| 16:19:24 | → | cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
| 16:19:52 | <zincy_> | Shudder |
| 16:19:53 | <Cale> | People using the type system to guarantee properties that nobody ever actually cared about, and which turn programming into a bureaucratic nightmate |
| 16:19:57 | <Cale> | nightmare* |
| 16:20:09 | <zincy_> | Haha this is so true |
| 16:20:32 | <Cale> | As much as I love dependent types, I also fear what bad programmers will do with them |
| 16:20:32 | → | wonko7 joins (~wonko7@2a01:e35:2ffb:7040:8c5f:831a:4acc:45dd) |
| 16:20:41 | <int-e> | I want dependable types. |
| 16:20:58 | <monochrom> | @quote int-e I want dependable types. |
| 16:20:58 | <lambdabot> | No quotes match. Take a stress pill and think things over. |
| 16:21:02 | <monochrom> | err heh |
| 16:21:08 | <monochrom> | @remember int-e I want dependable types. |
| 16:21:09 | <lambdabot> | Nice! |
| 16:21:09 | <zincy_> | Maybe there should be a dependent types certification like a driving licence |
| 16:21:13 | <zincy_> | or an oath to do no harm |
| 16:21:16 | <Cale> | Even good programmers have a hard time finding the right way to define things in a dependently typed setting to guarantee the properties that are desired and still maintaining usability |
| 16:22:01 | <dolio> | Right. That is publishable research. |
| 16:22:07 | <zincy_> | What people do with custom typeclasses can be painful |
| 16:23:05 | <monochrom> | I disbelieve that dependent typing and/or exploiting curry-howard is a good way to express general invariants. I disbelieve the argument "I don't need to learn a different language for specifications". |
| 16:23:24 | <Cale> | There are places to use all the fancy new stuff in GHC, and I've been genuinely quite happy with some of the practical things I've been able to do with GADTs and DMap for example |
| 16:23:45 | → | bitmagie joins (~Thunderbi@200116b80673370090ed3453f880395e.dip.versatel-1u1.de) |
| 16:23:54 | <Cale> | But using the fancy things has to be a last resort |
| 16:24:05 | <monochrom> | Re-using the type language for general invariants is worse, not better, because it is not re-using, it is shoe-horning. |
| 16:24:12 | <Cale> | Plain old Haskell 98 is pretty damn good 99% of the time |
| 16:24:20 | × | elcaro quits (~anonymous@45.32.191.75) (Remote host closed the connection) |
| 16:24:22 | → | thir joins (~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) |
| 16:24:24 | <zincy_> | Yeah |
| 16:24:41 | × | nbloomf quits (~nbloomf@2600:1700:83e0:1f40:94ea:ab3b:3884:ed6e) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 16:25:25 | × | urdh quits (~urdh@unaffiliated/urdh) (Ping timeout: 246 seconds) |
| 16:26:18 | → | puffnfre- joins (~puffnfres@45.76.124.5) |
| 16:26:49 | × | puffnfresh_ quits (~puffnfres@45.76.124.5) (Read error: Connection reset by peer) |
| 16:26:59 | → | urdh joins (~urdh@unaffiliated/urdh) |
| 16:27:31 | <Cale> | Well, when I say "all the new stuff", I'm still actually excluding a fair amount... there are a fair number of extensions that we just don't even begin to use, like all the weird record overloading shenanigans |
| 16:28:10 | <merijn> | Cale: Also, GADTs and fancy things are like spices |
| 16:28:12 | → | nbloomf joins (~nbloomf@2600:1700:83e0:1f40:b183:d428:bf80:8a35) |
| 16:28:14 | <merijn> | A little goes a long way |
| 16:28:15 | <Cale> | I guess I'm referring to the stuff that's more in the direction of dependent types, like GADTs and type families and QuantifiedConstraints and such |
| 16:28:22 | <Cale> | yeah |
| 16:28:40 | <Cale> | There's a lot that I could do if I could write just *one* type level lambda :) |
| 16:29:03 | <dolio> | Is there an extension where record syntax doesn't generate the accessor? |
| 16:29:08 | <zincy_> | monochrom: What would you recommend as a first dip of the toe into proving properties about programs? |
| 16:29:32 | × | thir quits (~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
| 16:29:40 | <zincy_> | monochrom: Operational/Denotational semantics, was thinking software foundations but Isabelle looks fun too |
| 16:29:40 | <merijn> | dolio: Yes |
| 16:29:43 | <dolio> | Seems like that would be one of the most useful extensions. |
| 16:29:45 | <merijn> | dolio: Not sure if it's in yet |
| 16:29:53 | → | geekosaur joins (42d52102@66.213.33.2) |
| 16:29:54 | <merijn> | dolio: But the GHC proposal was approved |
| 16:30:18 | <dolio> | Then you can declare record types and generate overloaded lenses instead of monomorphic accessors. |
| 16:30:21 | <merijn> | dolio: https://github.com/ghc-proposals/ghc-proposals/pull/160 |
| 16:30:24 | <monochrom> | I'm biased, I'll just point you to my favourite: my thesis supervisor's textbook :) http://www.cs.toronto.edu/~hehner/aPToP/ |
| 16:30:25 | → | kritzefitz joins (~kritzefit@212.86.56.80) |
| 16:30:34 | × | kritzefitz quits (~kritzefit@212.86.56.80) (Client Quit) |
| 16:30:36 | <ski> | it would be useful, yes |
| 16:30:47 | <dolio> | Which gives you a much better record system than a bunch of ad-hoc nonsense. |
| 16:30:52 | → | tzh joins (~tzh@2601:448:c500:5300::82b3) |
| 16:30:54 | <merijn> | dolio: Looks like it'll be 9.2: https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4017 |
| 16:31:14 | → | elcaro joins (~anonymous@45.32.191.75) |
| 16:31:18 | <dolio> | Ah, okay. |
| 16:31:29 | <zincy_> | monochrom: Thanks, I learned to prove things by studying Analysis so looking for the next step really that will tie in with programming :) |
| 16:31:34 | <dolio> | And you no longer have to name your field _foo. |
| 16:31:47 | → | thir joins (~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) |
| 16:33:11 | <Guest18> | Does anybody know how is Maybe implemented? |
| 16:33:28 | <dolio> | To be honest, I blame a bit of the record stuff on the 'rigorous typeclasses' culture that has developed. |
| 16:33:37 | <maerwald> | @src Maybe |
| 16:33:37 | <lambdabot> | data Maybe a = Nothing | Just a |
| 16:33:39 | → | machinedgod joins (~machinedg@45.78.189.122) |
| 16:33:51 | <Guest18> | @src Nothing |
| 16:33:52 | <lambdabot> | Source not found. My brain just exploded |
| 16:33:58 | <maerwald> | That's a constructor |
| 16:34:19 | <[exa]> | Guest18: Nothing is defined by that definition of Maybe |
| 16:34:31 | <geekosaur> | as is Just |
| 16:34:34 | <maerwald> | I'm wondering which university started this haskell course :p |
| 16:34:53 | <dolio> | Type classes are obviously the correct way to overload records, but any suggestion for using it would get hammered by the "there are no LAWS" crowd. So instead people need to invent a less thought out version of type classes that you're allowed to use how you want. |
| 16:35:06 | <Guest18> | [exa] so they don't have implementations? They are just symbols of sorts? |
| 16:35:06 | × | voyons_osti quits (~dan@107-190-41-58.cpe.teksavvy.com) (Read error: Connection reset by peer) |
| 16:35:27 | <[exa]> | Guest18: yeah, perfectly arbitrary "labels". Just like False and True |
| 16:35:39 | → | voyons_osti joins (~dan@107-190-41-58.cpe.teksavvy.com) |
| 16:35:46 | <merijn> | Guest18: Define "implementations" |
| 16:35:55 | <merijn> | Guest18: That *is* the implementation |
| 16:35:58 | <monochrom> | dolio, the good news is you have convinced me. :) Next time I teach my course, I'll be relaxing on traits of good type classes. |
| 16:36:08 | <ski> | Guest18 : they don't have implementations in Haskell, beyond that `data' type definition |
| 16:36:25 | <Guest18> | that's a bit confusing, i might say |
| 16:36:27 | × | thir quits (~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 16:36:39 | <ski> | whyso ? |
| 16:36:58 | × | elcaro quits (~anonymous@45.32.191.75) (Ping timeout: 256 seconds) |
| 16:37:21 | <ski> | you know (or will know) how to work with them, practically. why do you care about "what they really are" ? |
| 16:37:23 | → | elcaro joins (~anonymous@45.32.191.75) |
| 16:37:34 | → | jgt joins (~jgt@233724.soborka.net) |
| 16:38:04 | <monochrom> | But even my previous version was open-ended. I had "useful expectations", this included social expectations, so overloaded field name would be fine. Also, I only intend a spectrum, not a boolean. |
| 16:38:22 | → | Turmfalke joins (~user@unaffiliated/siracusa) |
| 16:38:27 | <Guest18> | Regarding what [exa] said about True and False: if they are just arbitrary labels, why can i put a guard, a condition after and it automatically knows it should execute that only if the condition == True |
| 16:38:45 | <Guest18> | ski: Just curios, Nothing else ;) |
| 16:38:45 | <maerwald> | I'd favor a version of the haskell language without type classes :p ...just wondering how we'd implement functors etc |
| 16:38:46 | <ski> | you know you can construct `Maybe' values, with `Nothing', and with `Just'. and you know you can detect which way a `Maybe' value was constructed, by using pattern-matching, on the `Nothing' and `Just' cases (getting the "contents" as well, in the latter case) |
| 16:38:51 | <ski> | what more do you need ? |
| 16:38:56 | <[exa]> | Guest18: because the "label" for True is shared between `guard` and your program, and they know it's the same thing |
| 16:39:00 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 16:39:20 | × | bitmagie quits (~Thunderbi@200116b80673370090ed3453f880395e.dip.versatel-1u1.de) (Quit: bitmagie) |
| 16:40:08 | <maerwald> | Guest18: there are also pattern guards: | (Just m) <- foo = bar |
| 16:40:08 | <ski> | Guest18 : well, guard syntax (and `if', and list comprehensions) knows about `Bool' in particular |
| 16:40:18 | <geekosaur> | booleans are partially wired into the compiler because of guards, among other things (but this is just an optimization). Maybe isn't, because there's no equivalent usage inside the compiler for it |
| 16:40:38 | <monochrom> | Lately I've been writing a GHC.Generics tutorial, and also realize that it is very difficult to uphold "has laws" for the homebrew type classes you have to define in order to have a place for your generic algorithm to live in. |
| 16:40:38 | <maerwald> | lets drown them in information :p |
| 16:40:42 | → | klardotsh joins (~klardotsh@c-71-231-242-112.hsd1.wa.comcast.net) |
| 16:40:46 | <ski> | you could define your own version of `if' (as an ordinary function), though. `if ... then ... else ...' is just a handy syntactic sugar |
| 16:41:16 | <ski> | maerwald : it's an old established tradition :) |
| 16:41:23 | <Guest18> | ski: just curiosity to see how complicated it is on the inside. I mean, I always assume whatever i get from the standard library is going to have some weird implementation that I can't understand. Wanted to see what the deal was with Maybe |
| 16:41:53 | <maerwald> | Those are reasonable expectations from a standard library |
| 16:42:25 | <Guest18> | i get it now, i experimented with Maybe for a bit already and get how to use it, and now wanted to see how it works |
| 16:43:01 | <ski> | what's the difference between "how to use it" and "how it works" ? |
| 16:43:12 | → | puffnfresh_ joins (~puffnfres@45.76.124.5) |
| 16:43:18 | <maerwald> | > join (+) 4 -- hey Guest18, look at this :p |
| 16:43:20 | <lambdabot> | 8 |
| 16:43:32 | <maerwald> | :t join |
| 16:43:33 | <lambdabot> | Monad m => m (m a) -> m a |
| 16:43:58 | <geekosaur> | there's nothing to know, really. either it's Nothing or it's Just some value. there are some typeclass instances that make it more convenient to use in various cases, but those aren't wired in to the compiler either |
| 16:44:16 | × | puffnfre- quits (~puffnfres@45.76.124.5) (Ping timeout: 256 seconds) |
| 16:44:18 | <Guest18> | ski: i can drive a car, or 'use' it, but i don't know all the internals and how it functions |
| 16:44:38 | × | elcaro quits (~anonymous@45.32.191.75) (Ping timeout: 260 seconds) |
| 16:44:40 | × | jgt quits (~jgt@233724.soborka.net) (Ping timeout: 246 seconds) |
| 16:44:47 | → | elcaro joins (~anonymous@45.32.191.75) |
| 16:44:51 | <ski> | it could "work" then in different ways, depending on which implementation of the language you're using |
| 16:45:01 | <Guest18> | maerwald: I haven't gotten into Monads, that's uncharted territory to me |
| 16:45:02 | <monochrom> | There are English native speakers, I think even the majority, who use "how does it work" to mean, seriously, how to use. |
| 16:45:05 | <[exa]> | Guest18: on the inside there's a very rough reminiscent of a tagged union (something like enum with extra struct members, if you like C) |
| 16:45:06 | <ski> | (but then we're not talking about Haskell, but implementations of Haskell) |
| 16:45:38 | <[exa]> | but yeah that depends a lot on the actual implementation. |
| 16:45:40 | <dolio> | monochrom: Yeah, the important thing is to judge the value in context, and not over-generalize some rigid rule set. Like, mathematical structures are a good way to figure out nice type classes. But they're not the only way. |
| 16:45:47 | <maerwald> | monochrom: isn't that a rather american thing? |
| 16:46:20 | <maerwald> | where "work" is overloaded to all sorts of meanings |
| 16:46:22 | <Guest18> | ski: yeah, you are right here. I should have asked: what's a probable implementation of Maybe? |
| 16:46:37 | <monochrom> | I don't know. But I'm afraid more people speak American English than British English. I deplore it, but I admit defeat. And it's spelled colour, not color! |
| 16:46:38 | <ski> | Guest18 : what [exa] said |
| 16:46:42 | × | nbloomf quits (~nbloomf@2600:1700:83e0:1f40:b183:d428:bf80:8a35) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 16:46:46 | <Guest18> | [exa]: I see, thank you so much |
| 16:46:53 | <dolio> | And with generics that's just a completely different application, basically. |
| 16:47:01 | <ski> | Guest18 : have you seen C ? |
| 16:47:27 | <Guest18> | what lambdabot said does remind me of an enum of sorts |
| 16:47:51 | <Guest18> | ski: if i have seen it? what do you mean? |
| 16:48:08 | → | thir joins (~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) |
| 16:48:46 | <Guest18> | you mean if i've ever seen C code? Sure i have |
| 16:48:51 | <Guest18> | Quite a lot |
| 16:49:05 | <[exa]> | you might like the ghc RTS then. :] |
| 16:49:06 | × | alp quits (~alp@88.126.45.36) (Remote host closed the connection) |
| 16:49:24 | <ski> | Guest18 : very roughly, you could imagine something like `struct maybe_int { enum {NOTHING,JUST} tag; union { struct {} n; struct { int n; } j; } u; };' |
| 16:49:27 | <maerwald> | I think this might be the only student passing the exam :) |
| 16:49:32 | → | alp joins (~alp@2a01:e0a:58b:4920:c58c:601c:cb46:bf0c) |
| 16:49:46 | <maerwald> | (the others left after they figured out how to install GHC) |
| 16:49:59 | <ski> | (but this ignores lots of things, is just meant to get a general idea for how you could simulate something a bit akin to `Maybe Int', in C) |
| 16:50:39 | <monochrom> | With great trouble. |
| 16:50:41 | <dolio> | EvanR: Oh, by the way, I thought of some other 'not correct' stuff that probably makes sense in SDG. All those weird differential operators that get used in e.g. Maxwell's equations, where in classical math you have to explain it as 'just a notation' probably actually make sense. Like the gradient is actually a vector-like thing, and you can use the dot product to get the divergence, and it all makes sense. At least, I think that's the kind of thing |
| 16:50:42 | <dolio> | you get out of it (I have very little understanding of SDG). |
| 16:50:44 | <[exa]> | ( ...did I miss a surge of new questions about haskell language server? ) |
| 16:51:08 | × | o1lo01ol1o quits (~o1lo01ol1@bl8-213-81.dsl.telepac.pt) (Read error: Connection reset by peer) |
| 16:51:16 | <ski> | [exa] : recently there's been a bit of people having basic trouble with how to install GHC |
| 16:51:35 | → | o1lo01ol1o joins (~o1lo01ol1@bl8-213-81.dsl.telepac.pt) |
| 16:51:35 | <[exa]> | good |
| 16:51:40 | → | nbloomf joins (~nbloomf@2600:1700:83e0:1f40:c9ce:dada:6b56:fcbb) |
| 16:51:42 | <[exa]> | I'm going to contribute a few tomorrow. :] |
| 16:51:48 | × | nineonine quits (~nineonine@216-19-190-182.dyn.novuscom.net) (Remote host closed the connection) |
| 16:52:04 | <maerwald> | I already have PATH-burnout |
| 16:52:12 | <ski> | Guest18 : does that help ? |
| 16:52:26 | <[exa]> | oh this. |
| 16:52:32 | → | nineonine joins (~nineonine@216-19-190-182.dyn.novuscom.net) |
| 16:52:41 | <monochrom> | ski and Guest18: Could I talk you into replacing C by Rust as your reference point? Because Rust matches so much better to Haskell in this regard. |
| 16:52:53 | <[exa]> | I should put this to slides explicitly |
| 16:53:23 | <ski> | mm, the other day, we helped someone to add stuff to `.bashrc' and `.bash_profile' (after telling how to create the first one, which was non-existant) |
| 16:53:24 | <Guest18> | ski: it does. Do you recommend going into the RTS to see some of this in action? I am quite curious |
| 16:53:49 | <ski> | monochrom : i'd love to, but less people tend to be familiar with it :) |
| 16:53:57 | × | thir quits (~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 16:54:01 | <monochrom> | maerwald: There is an alternative. If you don't support Mac... >:) |
| 16:54:10 | <[exa]> | monochrom: doesn't it kinda lead to question "how's that implemented in rust?" |
| 16:54:28 | <Guest18> | monochrom: i for one can read simple rust, but never programmed with it |
| 16:54:32 | <monochrom> | Yes for some people, no for some people. |
| 16:54:40 | <Guest18> | and i think many people have the same problem |
| 16:54:43 | <[exa]> | anyway thanks for pointing out the install problem, I just realized that my slides don't match reality anymore, at all |
| 16:54:45 | <maerwald> | monochrom: I hope the next haskell survey will give better insights about the user distribution of ghcup |
| 16:56:02 | <monochrom> | Notice how, for example, most javascript programmers never ask how are javascript features implemented, how are web browsers implemented in the first place. |
| 16:56:22 | × | chele quits (~chele@ip5b416ea2.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 16:56:32 | <zincy_> | monochrom: Yes! |
| 16:56:36 | × | Saukk quits (~Saukk@2001:998:f1:3966:96a6:dee2:2e9:fdf3) (Remote host closed the connection) |
| 16:56:44 | <[exa]> | monochrom: they learnt to fear the browser! |
| 16:57:02 | <dolio> | JavaScript is the fundamental language of the universe. |
| 16:57:12 | <[exa]> | ("learnt" isn't english, is it...) |
| 16:57:13 | × | nineonine quits (~nineonine@216-19-190-182.dyn.novuscom.net) (Ping timeout: 264 seconds) |
| 16:57:22 | <ski> | [exa] : if you look for "xcode" in scroll-back, you should see one such conversation, a few hours ago |
| 16:57:24 | <geekosaur> | british english |
| 16:57:27 | <monochrom> | It is. Both learnt and learned are legal. |
| 16:57:45 | <Guest18> | monochrom: the problem with those is that they chose the easy route, it's all about making a living, but beyond that, i don't think they care if it doesn't affect them |
| 16:57:45 | <[exa]> | o nice |
| 16:57:50 | → | mu_ joins (~mu@unaffiliated/mu) |
| 16:57:51 | <[exa]> | ski: thanks! |
| 16:57:53 | <Cheery> | I just wrote a lazy lambda calculus interpreter in RPython. |
| 16:58:01 | <monochrom> | Recommendation: Every time, toss a coin to decide whether you use learnt or learned :) |
| 16:58:35 | → | Saten-san joins (~Saten-san@ip-213-49-123-190.dsl.scarlet.be) |
| 16:58:49 | <ski> | [exa] : and there was someone that we helped with `.bashrc' and `.bash_profile' (on Mac), maybe yesterday, or the day before (you could check the TUNES logs, if it's fallen off the far end of your buffer) |
| 16:59:18 | <ski> | monochrom : ooh, is that what the learnt ones do ? |
| 16:59:27 | <monochrom> | haha |
| 16:59:29 | <[exa]> | I see it in the backlog (it's nicely marked by a flood of ghcup install logs :D ) |
| 16:59:46 | <monochrom> | Nah, learnt people don't troll like that. |
| 17:00:24 | <Guest18> | [exa] Do you do any embedded by any chance? |
| 17:00:26 | <maerwald> | [exa]: yeah, we saw it coming a mile away |
| 17:00:32 | <zincy_> | And then you have those lovely people who take javascript out of the browser and write their servers in it! |
| 17:00:54 | <zincy_> | Keep the monster in the box |
| 17:01:05 | <ski> | Guest18 : iirc, there's some STG paper that people seems to be suggesting. but i think it's probably more useful to first get a bit more comfortable with the language |
| 17:01:22 | <[exa]> | Guest18: embedded? as in programming for embedded platforms? |
| 17:01:32 | <Guest18> | Any chance we could convert js devs to OCaml? |
| 17:01:35 | <Guest18> | [exa]: yes |
| 17:01:41 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 17:01:43 | × | elliott_ quits (~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) (Ping timeout: 260 seconds) |
| 17:01:49 | <zincy_> | Guest18: They tried that with Reasonml |
| 17:01:52 | → | mirrorbird joins (~psutcliff@2a00:801:3fb:53b9:b09b:cd4e:4e4a:44a9) |
| 17:02:00 | <zincy_> | But it was too hard to learn of course |
| 17:02:03 | <zincy_> | Because. Types. |
| 17:02:16 | <monochrom> | I am against converting people. |
| 17:02:28 | <zincy_> | haha |
| 17:02:39 | <[exa]> | Guest18: I'm also teaching C/C++ and generally work towards the "restricted&efficient" systems but usually not for the small-platform-ish reasons |
| 17:03:03 | <dolio> | It's too hard to get your variable scoping errors at compile time. |
| 17:03:28 | <Guest18> | Oh, cool, I taught C++ as well. As in, not anymore |
| 17:03:40 | <[exa]> | some of the JS people kindof don't believe the mistake until it really happens |
| 17:03:51 | <zincy_> | dolio: And scary! |
| 17:04:01 | <zincy_> | Imagine seeing all those problems at once |
| 17:04:04 | → | elliott_ joins (~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) |
| 17:04:11 | <Guest18> | Although, probably in this group, that's not much of an achievement |
| 17:04:18 | → | nineonine joins (~nineonine@216.81.48.202) |
| 17:06:09 | → | lucid_0x80 joins (~lucid_0x8@188.253.231.113) |
| 17:06:27 | → | GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 17:06:27 | × | GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 17:06:27 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 17:07:03 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 17:07:07 | × | xff0x quits (~fox@2001:1a81:53b0:3c00:65ac:b49c:d7d6:af9b) (Ping timeout: 272 seconds) |
| 17:07:08 | → | mu__ joins (~mu@unaffiliated/mu) |
| 17:07:11 | koz | is now known as koz_ |
| 17:08:35 | <maerwald> | you can conver js devs to elm |
| 17:09:10 | <[exa]> | "but does it run react?" |
| 17:10:17 | <maerwald> | I'm already happy TypeScript exists, although the type system isn't entirely sound |
| 17:10:56 | → | xff0x joins (~fox@2001:1a81:53b0:3c00:65ac:b49c:d7d6:af9b) |
| 17:11:09 | <aldum> | you know, compared to what ; next JS it's splendid |
| 17:11:27 | <monochrom> | Hey maerwald, I'm wondering if https://downloads.haskell.org/ghc/9.0.1-alpha1/docs/html/users_guide/9.0.1-notes.html#base-library solves your ByteString space troubles. |
| 17:11:50 | <monochrom> | This is on GHC 9.0.1 alpha1 |
| 17:12:15 | <maerwald> | aldum: https://github.com/microsoft/TypeScript/issues/18770 |
| 17:13:17 | <maerwald> | const array1: (number | string)[] = []; const array2: number[] = array1; array1.push("gotcha"); |
| 17:13:19 | <maerwald> | heh |
| 17:13:30 | <maerwald> | boom |
| 17:13:35 | <maerwald> | (it works) |
| 17:15:19 | <ski> | contravariance of mutable container ? |
| 17:16:37 | × | wonko7 quits (~wonko7@2a01:e35:2ffb:7040:8c5f:831a:4acc:45dd) (Ping timeout: 272 seconds) |
| 17:16:37 | × | mu__ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 17:17:07 | → | mu_ joins (~mu@unaffiliated/mu) |
| 17:20:12 | <maerwald> | monochrom: you mean this? https://github.com/haskell/tar/issues/57 |
| 17:20:26 | <monochrom> | Yeah |
| 17:20:28 | <maerwald> | I think it might actually be related to ByteString, but I have to check |
| 17:21:01 | <maerwald> | or it might get worse |
| 17:21:07 | × | borne quits (~fritjof@200116b864231000537d5cc8226f9d9f.dip.versatel-1u1.de) (Ping timeout: 240 seconds) |
| 17:21:13 | <monochrom> | Ah then, maybe 9.0.1 doesn't help. |
| 17:21:24 | <maerwald> | they made bytestring faster... but no one knows if that increased the memory footprint I think |
| 17:21:31 | <geekosaur> | bytestring still needs to be updatd to use the new mechanism |
| 17:21:35 | <monochrom> | 9.0.1's change is for OverloadedString bytestrings, if I read correctly |
| 17:21:56 | <maerwald> | I usually don't put 200mb string literals in my code |
| 17:21:59 | <monochrom> | And what geekosaur said. |
| 17:22:09 | → | coot joins (~coot@37.30.59.210.nat.umts.dynamic.t-mobile.pl) |
| 17:22:14 | <geekosaur> | and in any case there are multiple ways that ByteStrings fragment and possibly leak memory, as I understand it, and this helps only one of them |
| 17:22:18 | × | DirefulSalt quits (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection) |
| 17:22:50 | → | DirefulSalt joins (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) |
| 17:23:01 | <maerwald> | the streamly maintainer wants to completely replace it with a Stream of Word8 |
| 17:23:01 | × | raichoo quits (~raichoo@213.240.178.58) (Quit: Lost terminal) |
| 17:23:25 | <maerwald> | maybe that solves all our problems |
| 17:26:08 | <aldum> | is OverloadedStrings default now, or am I misunderstanding you? |
| 17:26:11 | × | yoneda quits (~mike@193.206.102.122) (Quit: leaving) |
| 17:26:38 | <geekosaur> | no, it's not the default |
| 17:26:39 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 17:27:07 | → | mu_ joins (~mu@unaffiliated/mu) |
| 17:27:23 | <geekosaur> | but OverloadedStrings means you have a string literal somewhere that in this case gets converted to a ByteString, which means the string ow exists twice unless there's some trickery to share the representation |
| 17:27:34 | <geekosaur> | this is said trickery |
| 17:28:20 | <geekosaur> | (it can't be a normal FroeignPr like with most ByteStrings because it would then be freeable, but it's not in the heap because it was compiled in) |
| 17:29:01 | × | puffnfresh_ quits (~puffnfres@45.76.124.5) (Ping timeout: 264 seconds) |
| 17:30:40 | × | elcaro quits (~anonymous@45.32.191.75) (Ping timeout: 260 seconds) |
| 17:30:40 | × | BIG_JIMMY_D quits (~jim@108.61.185.76) (Ping timeout: 272 seconds) |
| 17:31:01 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 17:34:21 | × | dhil quits (~dhil@11.29.39.217.dyn.plus.net) (Ping timeout: 258 seconds) |
| 17:34:59 | × | alp quits (~alp@2a01:e0a:58b:4920:c58c:601c:cb46:bf0c) (Ping timeout: 272 seconds) |
| 17:35:06 | × | jb55 quits (~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection) |
| 17:36:44 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 17:36:45 | × | zabracks quits (sid322453@gateway/web/irccloud.com/x-biellhbdwvaqjeyr) (Ping timeout: 240 seconds) |
| 17:36:47 | × | systemfault quits (sid267009@gateway/web/irccloud.com/x-sfyoklqzvaqfavha) (Ping timeout: 240 seconds) |
| 17:36:47 | × | lexi-lambda quits (sid92601@gateway/web/irccloud.com/x-gzrfkljqohobksef) (Ping timeout: 240 seconds) |
| 17:36:47 | × | idnar quits (sid12240@gateway/web/irccloud.com/x-ksrpwtdqweqhqhsk) (Ping timeout: 240 seconds) |
| 17:36:47 | × | verlet64_ quits (sid261276@gateway/web/irccloud.com/x-gtjwwpwdhrqekihq) (Ping timeout: 240 seconds) |
| 17:36:58 | × | aizen_s quits (sid462968@gateway/web/irccloud.com/x-dmmzhntvaxdtjaeg) (Ping timeout: 256 seconds) |
| 17:36:59 | × | rann quits (sid175221@gateway/web/irccloud.com/x-qththkjntwgnhebq) (Ping timeout: 240 seconds) |
| 17:37:05 | × | moobar quits (sid171730@gateway/web/irccloud.com/x-gndqbhnlgmetppkc) (Ping timeout: 246 seconds) |
| 17:37:07 | × | yogani quits (sid42623@gateway/web/irccloud.com/x-nguvyfsvhgyshvjf) (Ping timeout: 260 seconds) |
| 17:37:07 | × | PotatoGim quits (sid99505@gateway/web/irccloud.com/x-zoyefvrqhzvagror) (Ping timeout: 260 seconds) |
| 17:37:07 | × | xyggos quits (uid216035@gateway/web/irccloud.com/x-hospzqdbwodsdydc) (Ping timeout: 260 seconds) |
| 17:37:07 | × | cstrahan quits (sid36118@gateway/web/irccloud.com/x-qpyatyyfmsjoedfl) (Ping timeout: 260 seconds) |
| 17:37:07 | × | ebutleriv quits (sid217783@gateway/web/irccloud.com/x-xojalosetjeggitu) (Ping timeout: 260 seconds) |
| 17:37:07 | × | ProofTechnique quits (sid79547@gateway/web/irccloud.com/x-tponbxdqtfpxmwel) (Ping timeout: 260 seconds) |
| 17:37:07 | × | chessai quits (sid225296@gateway/web/irccloud.com/x-zzehzebrnlswozjp) (Ping timeout: 260 seconds) |
| 17:37:07 | × | FMJz____ quits (sid279245@gateway/web/irccloud.com/x-xxlxmdepyepdjiiz) (Ping timeout: 260 seconds) |
| 17:37:07 | × | albethere quits (sid457088@gateway/web/irccloud.com/x-egacnjjdaxtejyln) (Ping timeout: 260 seconds) |
| 17:37:07 | × | mcfilib quits (sid302703@gateway/web/irccloud.com/x-ayrowhifopnqemcf) (Ping timeout: 260 seconds) |
| 17:37:08 | × | natim87 quits (sid286962@gateway/web/irccloud.com/x-owkkkawkmfdtpxis) (Ping timeout: 260 seconds) |
| 17:37:08 | → | mu_ joins (~mu@unaffiliated/mu) |
| 17:37:08 | × | simony quits (sid226116@gateway/web/irccloud.com/x-vcsdewznrdwwgnis) (Ping timeout: 260 seconds) |
| 17:37:08 | × | cbarrett quits (sid192934@adium/cbarrett) (Ping timeout: 260 seconds) |
| 17:37:10 | × | scav quits (sid309693@gateway/web/irccloud.com/x-sroyhqfgixitzetl) (Ping timeout: 246 seconds) |
| 17:37:12 | × | wpcarro quits (sid397589@gateway/web/irccloud.com/x-tmnsiiwhaheypbna) (Ping timeout: 260 seconds) |
| 17:37:12 | × | gregberns_ quits (sid315709@gateway/web/irccloud.com/x-pxdaqtbgiynqrhqa) (Ping timeout: 260 seconds) |
| 17:37:12 | × | mpickering quits (sid78412@gateway/web/irccloud.com/x-tenczaeanycawpas) (Ping timeout: 260 seconds) |
| 17:37:12 | × | darthThorik quits (sid39589@gateway/web/irccloud.com/x-eimsyucdiebkhuma) (Ping timeout: 260 seconds) |
| 17:37:12 | × | davetapley quits (sid666@gateway/web/irccloud.com/x-issjvdpiznczxsoo) (Ping timeout: 260 seconds) |
| 17:37:12 | × | fiadliel quits (sid399568@gateway/web/irccloud.com/x-ootswxobilgmieqa) (Ping timeout: 260 seconds) |
| 17:37:12 | × | ^[_ quits (sid43445@gateway/web/irccloud.com/x-tppirwslmjxiosbo) (Ping timeout: 260 seconds) |
| 17:37:22 | → | elcaro joins (~anonymous@45.32.191.75) |
| 17:37:25 | × | pepeiborra quits (sid443799@gateway/web/irccloud.com/x-mukumnrtxgwgxvcg) (Ping timeout: 240 seconds) |
| 17:37:25 | × | banjiewen quits (sid115913@gateway/web/irccloud.com/x-cfyiyxhggjpdnbsm) (Ping timeout: 244 seconds) |
| 17:37:27 | × | betawaffle quits (sid2730@gateway/web/irccloud.com/x-wauonuwppwmwhziv) (Ping timeout: 260 seconds) |
| 17:37:27 | × | NemesisD quits (sid24071@gateway/web/irccloud.com/x-hbgzpmcbhsxfreot) (Ping timeout: 260 seconds) |
| 17:37:27 | × | dgpratt quits (sid193493@gateway/web/irccloud.com/x-jfcngfvjfuasdztv) (Ping timeout: 260 seconds) |
| 17:37:27 | × | chpatrick quits (sid239395@gateway/web/irccloud.com/x-hgwhhvpaceqfpsfd) (Ping timeout: 260 seconds) |
| 17:37:27 | × | jlpeters quits (sid25606@gateway/web/irccloud.com/x-twwkkqhyyggfdivq) (Ping timeout: 260 seconds) |
| 17:37:27 | × | feepo quits (sid28508@gateway/web/irccloud.com/x-yvdfjmicbugqxtqj) (Ping timeout: 260 seconds) |
| 17:37:27 | × | kip quits (sid71464@gateway/web/irccloud.com/x-rmonmsxkcjhjcgqe) (Ping timeout: 260 seconds) |
| 17:37:27 | × | lally quits (sid388228@gateway/web/irccloud.com/x-lwhbjdguutvknmcz) (Ping timeout: 240 seconds) |
| 17:37:31 | × | nick_h quits (sid319833@gateway/web/irccloud.com/x-wfhraakyeevpkesp) (Ping timeout: 272 seconds) |
| 17:37:31 | × | hamishmack quits (sid389057@gateway/web/irccloud.com/x-sbssjiiibjkdervd) (Ping timeout: 246 seconds) |
| 17:37:38 | × | grfn quits (sid449115@gateway/web/irccloud.com/x-rvpditypzabzksng) (Ping timeout: 272 seconds) |
| 17:37:38 | × | gaze__ quits (sid387101@gateway/web/irccloud.com/x-dnjlouysixtlqjqi) (Ping timeout: 272 seconds) |
| 17:37:38 | × | conjunctive quits (sid433686@gateway/web/irccloud.com/x-tffvixiwtutlgztn) (Ping timeout: 272 seconds) |
| 17:37:40 | × | wildsebastian quits (sid324688@gateway/web/irccloud.com/x-noxobrzcxmeunedz) (Ping timeout: 260 seconds) |
| 17:37:40 | × | dmj` quits (sid72307@gateway/web/irccloud.com/x-yskysacdwencbpve) (Ping timeout: 260 seconds) |
| 17:37:40 | × | johs quits (sid246410@gateway/web/irccloud.com/x-rkhjgvgwqomlfxih) (Ping timeout: 260 seconds) |
| 17:37:42 | × | fweht quits (uid404746@gateway/web/irccloud.com/x-otdjghlxzvvxjpbo) (Ping timeout: 260 seconds) |
| 17:37:42 | × | alexknvl quits (sid259568@gateway/web/irccloud.com/x-kbonmpmnmqrrezib) (Ping timeout: 260 seconds) |
| 17:37:42 | × | Cir0X quits (sid221743@gateway/web/irccloud.com/x-obthuqhxhrpgtptx) (Ping timeout: 260 seconds) |
| 17:37:42 | × | SrPx quits (sid108780@gateway/web/irccloud.com/x-ewgpqpdkoawdjsvm) (Ping timeout: 260 seconds) |
| 17:37:43 | × | liquorice quits (sid267884@gateway/web/irccloud.com/x-ubxyjvrpmxhwnqkq) (Ping timeout: 260 seconds) |
| 17:37:43 | × | carter quits (sid14827@gateway/web/irccloud.com/x-iroznbxhtklfnfzx) (Ping timeout: 260 seconds) |
| 17:37:43 | × | rdivyanshu quits (sid322626@gateway/web/irccloud.com/x-rlikewfaiqjbobsd) (Ping timeout: 260 seconds) |
| 17:37:43 | × | tiru quits (tiru@gateway/web/irccloud.com/x-fdoctjaahakycgjg) (Ping timeout: 260 seconds) |
| 17:37:46 | × | angerman quits (sid209936@gateway/web/irccloud.com/x-fjowxznciagzmqyd) (Ping timeout: 256 seconds) |
| 17:37:46 | × | lightandlight quits (sid135476@gateway/web/irccloud.com/x-nimetgbujjzfnoxs) (Ping timeout: 256 seconds) |
| 17:37:46 | × | benwr__ quits (sid372383@gateway/web/irccloud.com/x-ympydwgppzchpmbc) (Ping timeout: 256 seconds) |
| 17:37:47 | × | cvlad- quits (sid203065@gateway/web/irccloud.com/x-mpioidbgyaapnjay) (Ping timeout: 240 seconds) |
| 17:37:47 | × | cemerick quits (sid54985@gateway/web/irccloud.com/x-vhzrinxizastpatl) (Ping timeout: 240 seconds) |
| 17:37:47 | × | koankeeper quits (sid216950@gateway/web/irccloud.com/x-syslkpiebyqhjoto) (Ping timeout: 246 seconds) |
| 17:37:47 | × | affinespaces quits (sid327561@gateway/web/irccloud.com/x-uvkionscqpuxysza) (Ping timeout: 246 seconds) |
| 17:37:52 | × | jbetz quits (sid283648@gateway/web/irccloud.com/x-cdgqzqayyopikxgp) (Ping timeout: 246 seconds) |
| 17:37:55 | × | pasukon quits (sid49097@gateway/web/irccloud.com/x-bhzijvvicaqszpwp) (Ping timeout: 240 seconds) |
| 17:37:56 | × | spew quits (uid195861@gateway/web/irccloud.com/x-smxsszajtmpzphkc) (Ping timeout: 244 seconds) |
| 17:37:58 | <geekosaur> | hm, actually I wonder how much of that I have correct, since I thought string literals were encoded with a variant of UTF8 which would then require decoding to recover the "original" ByteString |
| 17:38:02 | × | JSharp quits (sid4580@wikia/JSharp) (Ping timeout: 260 seconds) |
| 17:38:02 | × | sclv quits (sid39734@haskell/developer/sclv) (Ping timeout: 260 seconds) |
| 17:38:02 | × | teehemkay quits (sid14792@gateway/web/irccloud.com/x-aqijularyrnvcadd) (Ping timeout: 260 seconds) |
| 17:38:05 | × | liszt quits (sid336875@gateway/web/irccloud.com/x-uteuxgmqmrjwpffv) (Ping timeout: 240 seconds) |
| 17:38:05 | × | bgavran quits (sid393312@gateway/web/irccloud.com/x-rpbuvoicjcozhpoz) (Ping timeout: 240 seconds) |
| 17:38:07 | × | Firedancer quits (sid336191@gateway/web/irccloud.com/x-frlnuobcpesgtznh) (Ping timeout: 240 seconds) |
| 17:38:07 | × | aristid quits (sid1599@gateway/web/irccloud.com/x-tmxjacnukwymwzmb) (Ping timeout: 240 seconds) |
| 17:38:07 | × | drupol quits (sid117588@gateway/web/irccloud.com/x-fskigpwmolejzutt) (Ping timeout: 240 seconds) |
| 17:38:08 | × | ibloom quits (sid350277@gateway/web/irccloud.com/x-cacfkhbbqxamkhgb) (Ping timeout: 260 seconds) |
| 17:38:08 | × | ReinH__ quits (sid179972@gateway/web/irccloud.com/x-frnhqpvakkbttusm) (Ping timeout: 260 seconds) |
| 17:38:08 | × | edwardk quits (sid47016@haskell/developer/edwardk) (Ping timeout: 246 seconds) |
| 17:38:09 | × | adamse quits (sid72084@gateway/web/irccloud.com/x-acsiiwpllajbbwmz) (Ping timeout: 272 seconds) |
| 17:38:09 | × | ajmcmiddlin quits (sid284402@gateway/web/irccloud.com/x-fawmkuicgdpfjppp) (Ping timeout: 272 seconds) |
| 17:38:09 | × | sgraf quits (sid326656@gateway/web/irccloud.com/x-bqdvppnreegksoze) (Ping timeout: 272 seconds) |
| 17:38:09 | × | iphy quits (sid67735@gateway/web/irccloud.com/x-kldcelvhnttznwir) (Ping timeout: 272 seconds) |
| 17:38:09 | × | Nascha quits (sid212230@gateway/web/irccloud.com/x-veqfssgsdgrwspqx) (Ping timeout: 272 seconds) |
| 17:38:11 | × | dsturnbull quits (sid347899@gateway/web/irccloud.com/x-yqnrvyjyssesilet) (Ping timeout: 258 seconds) |
| 17:38:11 | × | Adeon quits (sid418992@gateway/web/irccloud.com/x-cvwbjodfepluylyi) (Ping timeout: 258 seconds) |
| 17:38:11 | × | jetpack_joe quits (sid146137@gateway/web/irccloud.com/x-zepsxlqcwpmeoiye) (Ping timeout: 258 seconds) |
| 17:38:13 | × | buggymcbugfix quits (sid432603@gateway/web/irccloud.com/x-segxurmailgbipxk) (Ping timeout: 246 seconds) |
| 17:38:16 | × | rodlogic__ quits (sid214676@gateway/web/irccloud.com/x-uruhlkshnartaizk) (Ping timeout: 272 seconds) |
| 17:38:16 | × | elvishjerricco quits (sid237756@NixOS/user/ElvishJerricco) (Ping timeout: 272 seconds) |
| 17:38:17 | × | Aquazi quits (uid312403@gateway/web/irccloud.com/x-miajzzxztjikfpri) (Ping timeout: 260 seconds) |
| 17:38:17 | × | eruditass quits (uid248673@gateway/web/irccloud.com/x-zlcczwkclodwpxuw) (Ping timeout: 260 seconds) |
| 17:38:17 | × | Tritlo quits (sid58727@gateway/web/irccloud.com/x-wvdtimilnbylevtp) (Ping timeout: 260 seconds) |
| 17:38:17 | × | PoliticsII____ quits (sid193551@gateway/web/irccloud.com/x-mjvkfuacygrjfvtp) (Ping timeout: 260 seconds) |
| 17:38:17 | × | integral quits (sid296274@p3m/member/integral) (Ping timeout: 260 seconds) |
| 17:38:17 | × | edmundnoble quits (sid229620@gateway/web/irccloud.com/x-aamqtvpjhykeshcn) (Ping timeout: 260 seconds) |
| 17:38:18 | × | newhoggy quits (sid198874@gateway/web/irccloud.com/x-kjtefuttsgcyxcav) (Ping timeout: 260 seconds) |
| 17:38:18 | × | alunduil quits (alunduil@gateway/web/irccloud.com/x-vymgafgkgglqgroh) (Ping timeout: 260 seconds) |
| 17:38:18 | × | billstclair quits (sid77830@gateway/web/irccloud.com/x-hfktjwoadztbgrwu) (Ping timeout: 260 seconds) |
| 17:38:20 | × | stylewarning quits (stylewarni@gateway/web/irccloud.com/x-uvpnoawijpdmmxja) (Ping timeout: 256 seconds) |
| 17:38:20 | × | Shun131 quits (sid377723@gateway/web/irccloud.com/x-xzwejgdnirknkdyy) (Ping timeout: 256 seconds) |
| 17:38:25 | × | AndreasK quits (sid320732@gateway/web/irccloud.com/x-vczvdqfgysdsqvxe) (Ping timeout: 240 seconds) |
| 17:38:27 | × | caasih quits (sid13241@gateway/web/irccloud.com/x-qqxnxucjsbybstdv) (Ping timeout: 244 seconds) |
| 17:38:27 | × | jared-w quits (uid405292@gateway/web/irccloud.com/x-buqniywashydfoae) (Ping timeout: 240 seconds) |
| 17:38:34 | × | nh2 quits (sid309956@gateway/web/irccloud.com/x-ustskhglogudnzlb) (Ping timeout: 258 seconds) |
| 17:38:34 | × | hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-hhonmrvgqckxkhob) (Ping timeout: 246 seconds) |
| 17:38:34 | × | totbwf quits (sid402332@gateway/web/irccloud.com/x-eulltanhbubrhuoe) (Ping timeout: 246 seconds) |
| 17:38:35 | × | mudri quits (sid317655@gateway/web/irccloud.com/x-aglqfensdztorpxf) (Ping timeout: 240 seconds) |
| 17:38:36 | × | adius quits (sid321344@gateway/web/irccloud.com/x-cdslkdkulmqfrsas) (Ping timeout: 260 seconds) |
| 17:38:36 | × | enemeth79 quits (sid309041@gateway/web/irccloud.com/x-ztkkujlriirbyczm) (Ping timeout: 260 seconds) |
| 17:38:36 | → | puffnfresh_ joins (~puffnfres@45.76.124.5) |
| 17:38:37 | × | bjs quits (sid190364@gateway/web/irccloud.com/x-sffmijuqwritxret) (Ping timeout: 260 seconds) |
| 17:38:45 | × | alanz quits (sid110616@gateway/web/irccloud.com/x-oljjdoyrlaarrctj) (Ping timeout: 240 seconds) |
| 17:38:45 | × | eacameron quits (sid256985@gateway/web/irccloud.com/x-hqavlegecgsakqev) (Ping timeout: 240 seconds) |
| 17:38:47 | × | d0liver quits (sid363046@gateway/web/irccloud.com/x-fqaugfmivohbxqbc) (Ping timeout: 272 seconds) |
| 17:38:47 | × | heyj quits (sid171370@gateway/web/irccloud.com/x-gxveayvtjepkleli) (Ping timeout: 272 seconds) |
| 17:38:47 | × | PatrickRobotham_ quits (sid18270@gateway/web/irccloud.com/x-vnvdpghrecuvxqhe) (Ping timeout: 272 seconds) |
| 17:38:47 | × | runeks quits (sid21167@gateway/web/irccloud.com/x-dikezscovkucfwrf) (Ping timeout: 240 seconds) |
| 17:38:47 | × | mankyKitty quits (sid31287@gateway/web/irccloud.com/x-stbsqcajexfluxuf) (Ping timeout: 272 seconds) |
| 17:38:47 | × | bitonic quits (sid61915@gateway/web/irccloud.com/x-jpfawwdoltfxqtdr) (Ping timeout: 240 seconds) |
| 17:38:47 | × | joshmeredith quits (sid387798@gateway/web/irccloud.com/x-tocpehdjhiusuwgk) (Ping timeout: 272 seconds) |
| 17:38:47 | × | thi quits (sid97277@gateway/web/irccloud.com/x-skwjfzenuehplhxv) (Ping timeout: 272 seconds) |
| 17:38:52 | × | howdoi quits (uid224@gateway/web/irccloud.com/x-mlzhxxxzmqvsdejo) (Ping timeout: 260 seconds) |
| 17:38:53 | × | entel quits (uid256215@botters/entel) (Ping timeout: 260 seconds) |
| 17:38:53 | × | sethetter__ quits (sid17895@gateway/web/irccloud.com/x-gjrsztjbkfnqxzcl) (Ping timeout: 260 seconds) |
| 17:38:53 | × | Boarders quits (sid425905@gateway/web/irccloud.com/x-bknwefewrylbhwhw) (Ping timeout: 260 seconds) |
| 17:38:53 | × | rizary quits (sid220347@gateway/web/irccloud.com/x-fasoxblpleyerysc) (Ping timeout: 260 seconds) |
| 17:38:53 | × | bradparker quits (sid262931@gateway/web/irccloud.com/x-mofanjllsexcdrco) (Ping timeout: 260 seconds) |
| 17:38:54 | × | parseval quits (sid239098@gateway/web/irccloud.com/x-uwazpjswabidvbms) (Ping timeout: 256 seconds) |
| 17:38:54 | × | metadave quits (sid28102@gateway/web/irccloud.com/x-cdlxasoxplxxhgfg) (Ping timeout: 272 seconds) |
| 17:38:54 | × | higherorder quits (sid185221@gateway/web/irccloud.com/x-bibdsgmjkwhtnxuc) (Ping timeout: 272 seconds) |
| 17:38:54 | × | dsal quits (sid13060@gateway/web/irccloud.com/x-jivacdsumvanwzlw) (Ping timeout: 272 seconds) |
| 17:38:57 | × | ullbeking quits (sid5364@gateway/web/irccloud.com/x-fktbgzptuxsmswdm) (Ping timeout: 258 seconds) |
| 17:38:59 | × | jonrh quits (sid5185@gateway/web/irccloud.com/x-kmnnkmgjpjlhftsl) (Ping timeout: 240 seconds) |
| 17:39:03 | × | nlofaro quits (sid258233@gateway/web/irccloud.com/x-czuznqcijtcgyazu) (Ping timeout: 260 seconds) |
| 17:39:03 | × | gluegadget quits (sid22336@gateway/web/irccloud.com/x-zdtzjryntvxgdzkx) (Ping timeout: 260 seconds) |
| 17:39:25 | × | bitmapper quits (uid464869@gateway/web/irccloud.com/x-jerhumioweuciiqb) (Ping timeout: 272 seconds) |
| 17:39:25 | × | benl23 quits (sid284234@gateway/web/irccloud.com/x-vofwvposnuzciuxt) (Ping timeout: 272 seconds) |
| 17:39:25 | × | drbrule quits (sid395654@gateway/web/irccloud.com/x-wymmvrsbnkdeuwas) (Ping timeout: 272 seconds) |
| 17:39:25 | × | pent quits (sid313808@gateway/web/irccloud.com/x-jidkyfivzjscwhcc) (Ping timeout: 272 seconds) |
| 17:39:25 | × | amatecha__ quits (sid10006@gateway/web/irccloud.com/x-rbrqcxiojnxeeyta) (Ping timeout: 272 seconds) |
| 17:39:28 | hackage | acc 0.1.0.2 - Sequence optimized for monoidal construction and folding https://hackage.haskell.org/package/acc-0.1.0.2 (NikitaVolkov) |
| 17:39:32 | × | tnks quits (sid412124@gateway/web/irccloud.com/x-qmlnvujgxrzdkpep) (Ping timeout: 272 seconds) |
| 17:39:35 | × | coot quits (~coot@37.30.59.210.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 17:39:56 | <geekosaur> | in other news, there's some odd attrition going on here |
| 17:40:40 | × | Neuromancer quits (~Neuromanc@unaffiliated/neuromancer) (Ping timeout: 246 seconds) |
| 17:40:54 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 17:42:11 | → | BIG_JIMMY_D joins (~jim@108.61.185.76) |
| 17:42:38 | → | Suigetsu joins (~kakashi@223.226.34.93) |
| 17:42:50 | × | Jesin quits (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving) |
| 17:43:49 | → | falafel_ joins (~falafel@2605:e000:1527:d491:f090:20fe:cddf:2a1a) |
| 17:44:07 | × | st8less quits (~st8less@2603:a060:11fe:0:b186:dda4:132a:2a8a) (Ping timeout: 240 seconds) |
| 17:44:51 | → | LKoen joins (~LKoen@lstlambert-657-1-123-43.w92-154.abo.wanadoo.fr) |
| 17:45:52 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
| 17:46:12 | → | st8less joins (~st8less@inet-167-224-197-181.isp.ozarksgo.net) |
| 17:46:20 | <Turmfalke> | That's what the IRCCloud version of a netsplit looks like |
| 17:47:03 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 17:47:07 | × | p-core quits (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) (Remote host closed the connection) |
| 17:47:08 | → | mu__ joins (~mu@unaffiliated/mu) |
| 17:47:16 | → | Jesin joins (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) |
| 17:47:21 | <geekosaur> | cute |
| 17:47:48 | → | zabracks joins (sid322453@gateway/web/irccloud.com/x-quucjgaiznbgmxnq) |
| 17:47:48 | → | d0liver joins (sid363046@gateway/web/irccloud.com/x-qfnvcyeeietbneso) |
| 17:47:50 | → | runeks joins (sid21167@gateway/web/irccloud.com/x-fmnyekuxeoeaxuso) |
| 17:47:52 | → | iphy joins (sid67735@gateway/web/irccloud.com/x-qiqhfnskjyrqjolo) |
| 17:47:53 | → | eacameron joins (sid256985@gateway/web/irccloud.com/x-gpifboixmoeemfmh) |
| 17:47:54 | → | dgpratt joins (sid193493@gateway/web/irccloud.com/x-scubtbcgbtduxhny) |
| 17:47:55 | → | Cir0X joins (sid221743@gateway/web/irccloud.com/x-pbplgsntntnfncyd) |
| 17:48:01 | → | rizary joins (sid220347@gateway/web/irccloud.com/x-yircivgrzzuogmcd) |
| 17:48:03 | → | stylewarning joins (stylewarni@gateway/web/irccloud.com/x-ldvspppvftwdoorj) |
| 17:48:03 | → | bjs joins (sid190364@gateway/web/irccloud.com/x-avegidalgukhrltc) |
| 17:48:04 | → | darthThorik joins (sid39589@gateway/web/irccloud.com/x-bheqtddrvymsaipm) |
| 17:48:05 | → | ReinH__ joins (sid179972@gateway/web/irccloud.com/x-iqviielvspfzhzdh) |
| 17:48:05 | → | bitonic joins (sid61915@gateway/web/irccloud.com/x-ttnjiqhzlxpwrect) |
| 17:48:09 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 17:48:11 | → | buggymcbugfix joins (sid432603@gateway/web/irccloud.com/x-hztztfmfplqpnzth) |
| 17:48:12 | → | xyggos joins (uid216035@gateway/web/irccloud.com/x-gnstndpjgaocojtu) |
| 17:48:14 | → | mpickering joins (sid78412@gateway/web/irccloud.com/x-qlfoyixpkacsyapm) |
| 17:48:14 | → | idnar joins (sid12240@gateway/web/irccloud.com/x-lgbnafawhmfrrtxy) |
| 17:48:21 | → | liquorice joins (sid267884@gateway/web/irccloud.com/x-doobozzftsutluns) |
| 17:48:25 | → | edwardk joins (sid47016@haskell/developer/edwardk) |
| 17:48:29 | → | systemfault joins (sid267009@gateway/web/irccloud.com/x-wamvuwnhvmmhuwor) |
| 17:48:29 | → | ibloom joins (sid350277@gateway/web/irccloud.com/x-otqdduodmhxboldg) |
| 17:48:29 | → | alanz joins (sid110616@gateway/web/irccloud.com/x-nlebobwfaogucyez) |
| 17:48:34 | → | thi joins (sid97277@gateway/web/irccloud.com/x-hnhbkpyrjaxopzwq) |
| 17:48:38 | → | alexknvl joins (sid259568@gateway/web/irccloud.com/x-iuotkcbnxquozzxj) |
| 17:48:40 | → | jonrh joins (sid5185@gateway/web/irccloud.com/x-rdqetwxjttlljyjv) |
| 17:48:47 | × | falafel_ quits (~falafel@2605:e000:1527:d491:f090:20fe:cddf:2a1a) (Ping timeout: 260 seconds) |
| 17:48:55 | → | fweht joins (uid404746@gateway/web/irccloud.com/x-rnrthvwccypgvabv) |
| 17:48:55 | → | drbrule joins (sid395654@gateway/web/irccloud.com/x-kdjmwhavsxqjkxzh) |
| 17:48:55 | → | SrPx joins (sid108780@gateway/web/irccloud.com/x-setrbpmzwvmplhxx) |
| 17:48:56 | → | cemerick joins (sid54985@gateway/web/irccloud.com/x-cavipfrpgeccrwhx) |
| 17:48:57 | → | gregberns_ joins (sid315709@gateway/web/irccloud.com/x-rlsbvnyekhpgzioc) |
| 17:49:03 | → | sclv joins (sid39734@haskell/developer/sclv) |
| 17:49:05 | → | hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-tjiavkhmuuynmiyn) |
| 17:49:07 | → | newhoggy joins (sid198874@gateway/web/irccloud.com/x-xognmkhlwjudtvku) |
| 17:49:08 | → | higherorder joins (sid185221@gateway/web/irccloud.com/x-wazqaevutzmkbpnh) |
| 17:49:12 | → | gaze__ joins (sid387101@gateway/web/irccloud.com/x-rudberqzemjkvxug) |
| 17:49:12 | → | conjunctive joins (sid433686@gateway/web/irccloud.com/x-aktdkimmtnwjggmi) |
| 17:49:12 | → | Aquazi joins (uid312403@gateway/web/irccloud.com/x-rxoskppdgceviaxb) |
| 17:49:14 | → | nh2 joins (sid309956@gateway/web/irccloud.com/x-iisiycrpvvmdqvri) |
| 17:49:17 | → | gluegadget joins (sid22336@gateway/web/irccloud.com/x-lopxigkfhkxxekjc) |
| 17:49:22 | → | grfn joins (sid449115@gateway/web/irccloud.com/x-ydoemzyjkpbwqwwh) |
| 17:49:22 | → | simony joins (sid226116@gateway/web/irccloud.com/x-fjezusljhbyijwij) |
| 17:49:22 | → | Boarders joins (sid425905@gateway/web/irccloud.com/x-mwhqjtpnvbxsnunk) |
| 17:49:24 | → | spew joins (uid195861@gateway/web/irccloud.com/x-pyehxyldfhezcjcx) |
| 17:49:24 | → | aristid joins (sid1599@gateway/web/irccloud.com/x-upybhzrqzplurklw) |
| 17:49:27 | → | dsal joins (sid13060@gateway/web/irccloud.com/x-ggesknpxulujswrk) |
| 17:49:30 | → | enemeth79 joins (sid309041@gateway/web/irccloud.com/x-cpgsitkowcnhohsm) |
| 17:49:38 | → | aizen_s joins (sid462968@gateway/web/irccloud.com/x-qlcwmrqworrqgvap) |
| 17:49:39 | → | yogani joins (sid42623@gateway/web/irccloud.com/x-yikdyiyitctvugtr) |
| 17:49:46 | → | joshmeredith joins (sid387798@gateway/web/irccloud.com/x-aoqdwycfabqpemvo) |
| 17:49:47 | → | Nascha joins (sid212230@gateway/web/irccloud.com/x-jkdnlkimcaknykgu) |
| 17:49:48 | → | verlet64_ joins (sid261276@gateway/web/irccloud.com/x-siffhywpxdihuiyy) |
| 17:49:49 | → | mcfilib joins (sid302703@gateway/web/irccloud.com/x-spscyafmbmiqsgji) |
| 17:49:51 | → | rodlogic__ joins (sid214676@gateway/web/irccloud.com/x-hqmucughwqwxderw) |
| 17:50:04 | → | mankyKitty joins (sid31287@gateway/web/irccloud.com/x-rnrltkoeycimcfms) |
| 17:50:04 | → | albethere joins (sid457088@gateway/web/irccloud.com/x-hxohvxvcjqpojjdv) |
| 17:50:07 | → | AndreasK joins (sid320732@gateway/web/irccloud.com/x-swfhbbclpahktdbs) |
| 17:50:07 | → | entel joins (uid256215@botters/entel) |
| 17:50:09 | → | billstclair joins (sid77830@gateway/web/irccloud.com/x-nmvjsnbrwyhkhvex) |
| 17:50:17 | → | dsturnbull joins (sid347899@gateway/web/irccloud.com/x-inyrzexxuloskcia) |
| 17:50:17 | → | carter joins (sid14827@gateway/web/irccloud.com/x-oplagrzaomanclrc) |
| 17:50:19 | → | Adeon joins (sid418992@gateway/web/irccloud.com/x-rzelteelnhmuqmnc) |
| 17:50:22 | → | koankeeper joins (sid216950@gateway/web/irccloud.com/x-yicffuughjxytvpv) |
| 17:50:24 | → | drupol joins (sid117588@gateway/web/irccloud.com/x-awnbfxqpznoqpkyo) |
| 17:50:24 | → | FMJz____ joins (sid279245@gateway/web/irccloud.com/x-ltdrvaqbqwgrgkpe) |
| 17:50:25 | → | rann joins (sid175221@gateway/web/irccloud.com/x-skhgikkvbkdanbtl) |
| 17:50:35 | → | ^[_ joins (sid43445@gateway/web/irccloud.com/x-fxdjmwbbnqygzcyt) |
| 17:50:36 | → | liszt joins (sid336875@gateway/web/irccloud.com/x-jndphrjraiimjfeg) |
| 17:50:36 | → | JSharp joins (sid4580@wikia/JSharp) |
| 17:50:41 | → | TooDifficult joins (~TooDiffic@139.59.59.230) |
| 17:50:53 | → | Shun131 joins (sid377723@gateway/web/irccloud.com/x-czgeyqhvuxkikuaz) |
| 17:51:23 | → | hololeap joins (~hololeap@unaffiliated/hololeap) |
| 17:52:05 | → | Dashboard joins (~hyig@179.54.112.192) |
| 17:52:40 | → | systemhalted joins (~aqualogic@71-129-231-253.lightspeed.rcsntx.sbcglobal.net) |
| 17:53:39 | <Dashboard> | !help |
| 17:53:40 | × | Saten-san quits (~Saten-san@ip-213-49-123-190.dsl.scarlet.be) (Quit: WeeChat 2.9) |
| 17:53:54 | <yushyin> | hello Dashboard |
| 17:53:59 | <Dashboard> | hi |
| 17:54:10 | → | jared-w joins (uid405292@gateway/web/irccloud.com/x-rpqfkttwgpododuy) |
| 17:54:23 | → | banjiewen joins (sid115913@gateway/web/irccloud.com/x-xhvpjulpxhwqhcqy) |
| 17:54:29 | → | moobar joins (sid171730@gateway/web/irccloud.com/x-tjgzicifcocmdkpp) |
| 17:54:30 | → | natim87 joins (sid286962@gateway/web/irccloud.com/x-uvpnvingawevahjl) |
| 17:54:30 | → | Firedancer joins (sid336191@gateway/web/irccloud.com/x-hgqilzghfblwpocf) |
| 17:54:30 | → | fiadliel joins (sid399568@gateway/web/irccloud.com/x-ktjqphtdpabuzhix) |
| 17:54:38 | → | johs joins (sid246410@gateway/web/irccloud.com/x-fxzggmlrvgjkxynk) |
| 17:54:43 | → | cvlad- joins (sid203065@gateway/web/irccloud.com/x-dpssemqomdmrjjbm) |
| 17:54:46 | → | ajmcmiddlin joins (sid284402@gateway/web/irccloud.com/x-sfijhwdwxlmemapi) |
| 17:54:46 | → | pepeiborra joins (sid443799@gateway/web/irccloud.com/x-zjvxjrszspxcqhac) |
| 17:54:47 | → | cbarrett joins (sid192934@adium/cbarrett) |
| 17:54:48 | → | jbetz joins (sid283648@gateway/web/irccloud.com/x-jpndowfutuxwtlac) |
| 17:54:48 | → | metadave joins (sid28102@gateway/web/irccloud.com/x-kvbjexppaeoxogva) |
| 17:54:48 | → | affinespaces joins (sid327561@gateway/web/irccloud.com/x-qpsgoegqtleeqjei) |
| 17:54:50 | → | NemesisD joins (sid24071@gateway/web/irccloud.com/x-tvpdgcumyqbfkxuv) |
| 17:54:51 | → | benwr__ joins (sid372383@gateway/web/irccloud.com/x-gisfqzblfklvpltj) |
| 17:54:51 | → | teehemkay joins (sid14792@gateway/web/irccloud.com/x-enbnrxzqqcvacsyt) |
| 17:54:53 | → | wpcarro joins (sid397589@gateway/web/irccloud.com/x-dhrgdbgzbcfpxeys) |
| 17:54:59 | → | chessai joins (sid225296@gateway/web/irccloud.com/x-iuoxqvqcfhadrlqz) |
| 17:55:12 | → | PotatoGim joins (sid99505@gateway/web/irccloud.com/x-hpkxvtmaddacpkcm) |
| 17:55:14 | <Dashboard> | !id |
| 17:55:14 | × | amosbird quits (~amosbird@65.52.179.247) (Quit: ZNC 1.7.5 - https://znc.in) |
| 17:55:37 | → | eruditass joins (uid248673@gateway/web/irccloud.com/x-xlxyyorlrbylocpr) |
| 17:55:41 | → | chaosmasttter joins (~chaosmast@p200300c4a70aba01f8f8cb9b34fa26e3.dip0.t-ipconnect.de) |
| 17:55:45 | ← | Dashboard parts (~hyig@179.54.112.192) () |
| 17:56:23 | → | angerman joins (sid209936@gateway/web/irccloud.com/x-sxwsoxjbjhhdcytm) |
| 17:56:36 | × | mu__ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 17:57:07 | → | mu_ joins (~mu@unaffiliated/mu) |
| 17:57:26 | × | dyeplexer quits (~lol@unaffiliated/terpin) (Remote host closed the connection) |
| 17:57:36 | → | rdivyanshu joins (sid322626@gateway/web/irccloud.com/x-uzofhbgtemdbbxba) |
| 17:57:44 | → | chpatrick joins (sid239395@gateway/web/irccloud.com/x-glesujyjgaborgwe) |
| 17:58:01 | × | cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 265 seconds) |
| 17:58:30 | → | caasih joins (sid13241@gateway/web/irccloud.com/x-witsgvtavsidjabf) |
| 17:58:31 | → | adamse joins (sid72084@gateway/web/irccloud.com/x-ngwbhkuzhtraadxk) |
| 17:58:33 | → | bitmapper joins (uid464869@gateway/web/irccloud.com/x-uvcgkpyqvrycitrg) |
| 17:58:35 | → | edmundnoble joins (sid229620@gateway/web/irccloud.com/x-oyzfxczakjbvmtnw) |
| 17:58:37 | × | systemhalted quits (~aqualogic@71-129-231-253.lightspeed.rcsntx.sbcglobal.net) (Remote host closed the connection) |
| 17:58:53 | → | feepo joins (sid28508@gateway/web/irccloud.com/x-nwgrhdtytnogkuwe) |
| 17:58:53 | → | alunduil joins (alunduil@gateway/web/irccloud.com/x-tbwasyjgdwlvrowc) |
| 17:59:01 | → | tiru joins (tiru@gateway/web/irccloud.com/x-fjglewsekyfbnkaz) |
| 17:59:02 | → | parseval joins (sid239098@gateway/web/irccloud.com/x-xpafjsslpgmpnfxd) |
| 17:59:03 | → | integral joins (sid296274@p3m/member/integral) |
| 17:59:05 | → | ProofTechnique joins (sid79547@gateway/web/irccloud.com/x-oymjiupjrtcxewbp) |
| 17:59:13 | → | bgavran joins (sid393312@gateway/web/irccloud.com/x-lpoihxszwcoufyws) |
| 17:59:16 | → | pasukon joins (sid49097@gateway/web/irccloud.com/x-giisizmxehyuzjuk) |
| 17:59:16 | → | tnks joins (sid412124@gateway/web/irccloud.com/x-efpfhxrycxbcbhjo) |
| 17:59:19 | → | sethetter__ joins (sid17895@gateway/web/irccloud.com/x-wdliizmlfolakmwm) |
| 17:59:21 | → | adius joins (sid321344@gateway/web/irccloud.com/x-quuxqbuikynbakrx) |
| 17:59:32 | → | ullbeking joins (sid5364@gateway/web/irccloud.com/x-tebupervehbjefqp) |
| 17:59:54 | → | jlpeters joins (sid25606@gateway/web/irccloud.com/x-asdpksetnctvsero) |
| 18:00:01 | × | zpao quits (~zpao@185.163.110.116) () |
| 18:00:02 | × | knupfer quits (~Thunderbi@i5E86B4C1.versanet.de) (Quit: knupfer) |
| 18:00:08 | → | knupfer1 joins (~Thunderbi@200116b82c08f6003db34c53b593aaa2.dip.versatel-1u1.de) |
| 18:00:09 | → | PoliticsII____ joins (sid193551@gateway/web/irccloud.com/x-ayjlnphasddeuyig) |
| 18:00:29 | × | geekosaur quits (42d52102@66.213.33.2) (Ping timeout: 245 seconds) |
| 18:00:34 | → | kip joins (sid71464@gateway/web/irccloud.com/x-dfffpddexmzhpgky) |
| 18:00:44 | → | dmj` joins (sid72307@gateway/web/irccloud.com/x-odngicoenfnwoyvu) |
| 18:00:56 | → | jetpack_joe joins (sid146137@gateway/web/irccloud.com/x-ozvqusskhemoywnb) |
| 18:00:56 | → | nlofaro joins (sid258233@gateway/web/irccloud.com/x-qhanesmmszvewqrk) |
| 18:01:01 | → | betawaffle joins (sid2730@gateway/web/irccloud.com/x-jtacgyvyddfakhzw) |
| 18:01:01 | → | cstrahan joins (sid36118@gateway/web/irccloud.com/x-ykmbvasjrmtaqanw) |
| 18:01:03 | → | wildsebastian joins (sid324688@gateway/web/irccloud.com/x-fdvhisdzgkkbymer) |
| 18:01:04 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 18:01:10 | → | nick_h joins (sid319833@gateway/web/irccloud.com/x-yxzkrhmigqhpumeq) |
| 18:01:29 | → | hamishmack joins (sid389057@gateway/web/irccloud.com/x-dpctrfmaydvjllku) |
| 18:01:36 | × | ggole quits (~ggole@2001:8003:8119:7200:682e:863c:d343:3274) (Quit: Leaving) |
| 18:02:13 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 18:02:32 | knupfer1 | is now known as knupfer |
| 18:04:41 | → | benl23 joins (sid284234@gateway/web/irccloud.com/x-uphxfqxgzdhiwrls) |
| 18:04:43 | → | PatrickRobotham_ joins (sid18270@gateway/web/irccloud.com/x-szkuaevozzmraacs) |
| 18:04:55 | → | scav joins (sid309693@gateway/web/irccloud.com/x-aajvlddkzxpzyrkk) |
| 18:05:01 | → | ebutleriv joins (sid217783@gateway/web/irccloud.com/x-zcpyidnqxtmhuisv) |
| 18:05:01 | → | totbwf joins (sid402332@gateway/web/irccloud.com/x-auttreoigxuilyba) |
| 18:05:09 | → | bradparker joins (sid262931@gateway/web/irccloud.com/x-dvycqqnustcjicgg) |
| 18:05:11 | → | mudri joins (sid317655@gateway/web/irccloud.com/x-fieggmdqfmzcrqpn) |
| 18:05:11 | → | heyj joins (sid171370@gateway/web/irccloud.com/x-gbwtmgtkvwxnufqr) |
| 18:05:14 | → | sgraf joins (sid326656@gateway/web/irccloud.com/x-ljndrirzbtbynvou) |
| 18:05:17 | → | lightandlight joins (sid135476@gateway/web/irccloud.com/x-hovjzoliueuictrg) |
| 18:05:20 | → | lally joins (sid388228@gateway/web/irccloud.com/x-lstpiuaiwaadwufc) |
| 18:05:22 | → | Tritlo joins (sid58727@gateway/web/irccloud.com/x-csyclvuwsofrnkal) |
| 18:05:27 | hackage | asciichart 1.0.2 - Line charts in terminal https://hackage.haskell.org/package/asciichart-1.0.2 (madnight) |
| 18:05:45 | → | howdoi joins (uid224@gateway/web/irccloud.com/x-zozvjyzrnsmbzmrc) |
| 18:05:58 | → | amatecha__ joins (sid10006@gateway/web/irccloud.com/x-uwkjukjibnksfmha) |
| 18:06:26 | → | alp joins (~alp@2a01:e0a:58b:4920:c58c:601c:cb46:bf0c) |
| 18:07:02 | × | TooDifficult quits (~TooDiffic@139.59.59.230) (Quit: TooDifficult) |
| 18:07:02 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 18:07:08 | → | mu__ joins (~mu@unaffiliated/mu) |
| 18:08:11 | × | shatriff quits (~vitaliish@176.52.219.10) () |
| 18:09:57 | → | ahmr88 joins (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) |
| 18:10:01 | × | nbloomf quits (~nbloomf@2600:1700:83e0:1f40:c9ce:dada:6b56:fcbb) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 18:10:05 | × | tbreslein quits (~tbreslein@2a02:8108:140:44f8::901) (Remote host closed the connection) |
| 18:10:46 | → | pent joins (sid313808@gateway/web/irccloud.com/x-txvaiafqfamllvau) |
| 18:10:52 | → | lexi-lambda joins (sid92601@gateway/web/irccloud.com/x-ejlceriojlkpcrvm) |
| 18:10:59 | × | ahmr88 quits (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection) |
| 18:12:16 | → | nbloomf joins (~nbloomf@2600:1700:83e0:1f40:209d:e921:7304:6018) |
| 18:13:08 | × | raehik quits (~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net) (Ping timeout: 260 seconds) |
| 18:13:55 | → | acidjnk_new joins (~acidjnk@p200300d0c72378745c7b1a0a573f1493.dip0.t-ipconnect.de) |
| 18:14:09 | × | Jesin quits (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving) |
| 18:14:37 | × | elliott_ quits (~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) (Ping timeout: 246 seconds) |
| 18:15:04 | → | elvishjerricco joins (sid237756@NixOS/user/ElvishJerricco) |
| 18:15:23 | × | wroathe quits (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Quit: leaving) |
| 18:16:52 | → | Jesin joins (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) |
| 18:16:52 | × | mu__ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 18:17:08 | → | mu_ joins (~mu@unaffiliated/mu) |
| 18:24:31 | × | knupfer quits (~Thunderbi@200116b82c08f6003db34c53b593aaa2.dip.versatel-1u1.de) (Quit: knupfer) |
| 18:24:38 | → | knupfer joins (~Thunderbi@200116b82c08f6003db34c53b593aaa2.dip.versatel-1u1.de) |
| 18:26:12 | → | davetapley joins (sid666@gateway/web/irccloud.com/x-djoktstvzubeecxm) |
| 18:26:54 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 18:27:11 | → | mu_ joins (~mu@unaffiliated/mu) |
| 18:27:38 | → | elliott_ joins (~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) |
| 18:28:01 | → | thir joins (~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) |
| 18:28:34 | → | unlink_ joins (~unlink2@p200300ebcf25bd0068eb9d9c94da2a17.dip0.t-ipconnect.de) |
| 18:29:08 | × | unlink2 quits (~unlink2@p200300ebcf25bd0068eb9d9c94da2a17.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 18:30:17 | → | fredcy- joins (fredcy@2600:3c00::f03c:91ff:feae:15ae) |
| 18:31:28 | × | fredcy quits (~fredcy@mail.yankowski.com) (Ping timeout: 258 seconds) |
| 18:32:52 | × | thir quits (~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 18:35:37 | → | macrover joins (~macrover@ip70-189-231-35.lv.lv.cox.net) |
| 18:36:34 | <zincy_> | Should you use floating point to store monetary values? |
| 18:36:36 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 18:36:41 | <dolio> | No. |
| 18:36:50 | <zincy_> | I thought not but now I am reading stuff which questions this |
| 18:37:09 | → | geekosaur joins (42d52102@66.213.33.2) |
| 18:37:13 | → | mu_ joins (~mu@unaffiliated/mu) |
| 18:38:06 | <koz_> | zincy_: As someone having to deal with the fallout of this: no, you should never, under any circumstances, ever. |
| 18:38:22 | <zincy_> | haha |
| 18:38:30 | <monochrom> | "should" is ambiguous. For example, more socially acceptable? Technically better? More moral? |
| 18:38:31 | <zincy_> | I am trying to question my understanding of this ... so here goes |
| 18:38:44 | <koz_> | You have _no idea_ what kind of absurd contortions I have been putting codebases through for several months to get around this _horrific_ decision. |
| 18:38:53 | <monochrom> | For example, to be more socially acceptable among bankers, use fixed point, it's what they do. |
| 18:38:59 | <koz_> | (made a long time by someone who isn't me) |
| 18:39:05 | <monochrom> | in fact use decimal fixed point. |
| 18:39:40 | × | murphy_ quits (~murphy_@2604:2000:1281:8a9e:14d4:9618:a1b2:ef6b) (Remote host closed the connection) |
| 18:39:40 | <monochrom> | But binary is technically better than decimal in terms of minimizing errors, as shown by Knuth. |
| 18:39:49 | <zincy_> | You cannot use floating point to accurately store monetary values because expansions of rational numbers that are recurring cannot be stored within a finite amount of memory |
| 18:39:57 | → | murphy_ joins (~murphy_@2604:2000:1281:8a9e:d2e4:da3f:de8a:c9c9) |
| 18:40:11 | <zincy_> | Is that right? |
| 18:40:43 | <koz_> | zincy_: That isn't even the _tenth_ reason. |
| 18:40:46 | <zincy_> | monochrom: What does better mean in terms of error distribution? |
| 18:40:54 | <monochrom> | Yes, rational numbers is even better than binary floating point, technically. |
| 18:40:57 | <koz_> | Firstly, there are some integer values that cannot be represented as floats as such. |
| 18:41:12 | <monochrom> | smaller errors if you have to round |
| 18:41:20 | <koz_> | Secondly, you cannot guarantee (for example) associativity of addition where floats are involved. |
| 18:41:40 | <monochrom> | As for distribution, round to even is better than "round up when half". As shown by Knuth, same paper. |
| 18:42:01 | <koz_> | (I'm not even mentioning the fact that some _non_-integer values cannot be represented) |
| 18:42:15 | <koz_> | The fact that you truncate recurring decimals is a drop in the goddamned ocean. |
| 18:42:16 | <monochrom> | However, rational number is even less socially acceptable than binary floating point. |
| 18:42:22 | → | shatriff joins (~vitaliish@176.52.219.10) |
| 18:42:42 | <zincy_> | Yes rational numbers are seen as idealistic |
| 18:43:14 | <zincy_> | Im not comfortable with how changing the base results in less errors |
| 18:43:31 | <monochrom> | Bankers have made the decision of decimal fixed point, and have built very anal rounding rules around it. If you use rational numbers, you stand to be more correct than them, but that also means from their POV you're wrong. |
| 18:43:34 | <zincy_> | What are examples of values that cannot be represented |
| 18:43:41 | <tomsmeding> | zincy_: 1/10 |
| 18:43:52 | <monochrom> | This is the very reason Intel floating point has BCD. |
| 18:43:59 | <tomsmeding> | > sum (replicate 10 0.1) |
| 18:44:01 | × | elliott_ quits (~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) (Ping timeout: 264 seconds) |
| 18:44:02 | <lambdabot> | 0.9999999999999999 |
| 18:44:09 | <monochrom> | Note: BCD is still floating point, just decimal. |
| 18:44:18 | <dolio> | I mean, that's the real reason. If you want your program to be used for anything, you need to comply with all the rules. |
| 18:44:26 | <dolio> | And you, some random tech dude, aren't going to change the rules. |
| 18:44:46 | → | elliott_ joins (~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) |
| 18:44:47 | <monochrom> | Hell, Knuth is not random, and still can't change the rules. |
| 18:45:13 | <zincy_> | Why can't you just represent 1/10 as 10^-1 ? |
| 18:45:21 | <zincy_> | Isnt floating point essentially scientific notation |
| 18:45:23 | <tomsmeding> | zincy_: then you're using base 10 :) |
| 18:45:42 | <monochrom> | 1/3 can be represented in floating point if base 3. |
| 18:45:43 | <zincy_> | So is floating point generally base 2 |
| 18:45:54 | <tomsmeding> | IEEE floating points use base 2, which means all numbers are represented as <integer> * 2^<integer> |
| 18:45:55 | <geekosaur> | yes |
| 18:46:07 | <tomsmeding> | not just generally; most programmers will answer you "always" |
| 18:46:20 | <tomsmeding> | for the normal definition of the term "floating point", which is IEEE floating points |
| 18:46:21 | <dolio> | You can define floating point for any base, but the ones implemented in hardware are base 2. |
| 18:46:32 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 18:46:33 | <monochrom> | OK you need to read this: https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html |
| 18:46:39 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 18:46:47 | <tomsmeding> | long though |
| 18:47:09 | → | mu_ joins (~mu@unaffiliated/mu) |
| 18:47:17 | <monochrom> | long compared to what? compared to replicating the same length in #haskell? |
| 18:47:21 | <tomsmeding> | :D |
| 18:47:22 | × | whiteline_ quits (~whiteline@unaffiliated/whiteline) (Remote host closed the connection) |
| 18:47:47 | → | whiteline_ joins (~whiteline@unaffiliated/whiteline) |
| 18:47:51 | <zincy_> | Understanding the limitations of floating point actually goes quite deep |
| 18:48:03 | <monochrom> | Seriously by the time one asks "why is 1/10 not representable" it's time to actually learn it. |
| 18:48:32 | <monochrom> | Or else, finish the 2nd year "computer organization" course in the standard CS curriculum. |
| 18:48:59 | <zincy_> | Yeah i Have done zero architecture or low level stuff |
| 18:49:34 | <Noughtmare[m]> | It is also very important for geometric algorithms and numeric analysis. |
| 18:50:01 | <zincy_> | I guess I should do that computer organization course |
| 18:50:03 | <geekosaur> | you have reached the point here you need to know it and its limitations and how to work around them |
| 18:50:09 | <geekosaur> | *where you |
| 18:50:19 | <zincy_> | Yeah |
| 18:50:42 | <zincy_> | I am past the point where I can just memorise the answer without understanding why |
| 18:51:08 | <zincy_> | That is get away with it rather than *should* |
| 18:51:11 | <ski> | @where floating-point |
| 18:51:11 | <lambdabot> | "What Every Programmer Should Know About Floating-Point Arithmetic" at <http://floating-point-gui.de/> and "What Every Computer Scientist Should Know About Floating-Point Arithmetic" by David |
| 18:51:11 | <lambdabot> | Goldberg in 1991 at <http://docs.sun.com/source/806-3568/ncg_goldberg.html> and <http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.102.244> |
| 18:51:38 | × | knupfer quits (~Thunderbi@200116b82c08f6003db34c53b593aaa2.dip.versatel-1u1.de) (Quit: knupfer) |
| 18:52:56 | <zincy_> | Thanks I have some reading to do :) |
| 18:53:06 | → | Ariakenom__ joins (~Ariakenom@h-178-174-193-185.NA.cust.bahnhof.se) |
| 18:54:07 | → | hiroaki joins (~hiroaki@2a02:908:4b18:e20::a362) |
| 18:55:39 | → | thir joins (~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) |
| 18:55:51 | × | voyons_osti quits (~dan@107-190-41-58.cpe.teksavvy.com) (Read error: Connection reset by peer) |
| 18:56:29 | → | Ariakenom joins (~Ariakenom@h-82-196-111-138.NA.cust.bahnhof.se) |
| 18:56:36 | → | voyons_osti joins (~dan@107-190-41-58.cpe.teksavvy.com) |
| 18:56:37 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 18:56:52 | × | Ariakenom_ quits (~Ariakenom@h-98-128-229-8.NA.cust.bahnhof.se) (Ping timeout: 256 seconds) |
| 18:57:07 | → | mu_ joins (~mu@unaffiliated/mu) |
| 18:59:14 | <dolio> | I guess one thing to consider is that the market capitalization of Apple is (as far as bankers might be concerned) a number requiring almost 53 bits of precision, just on its own. So Double just gets by, and it's immediately going to be rounding stuff according to the non-banker specification. |
| 18:59:21 | × | Ariakenom__ quits (~Ariakenom@h-178-174-193-185.NA.cust.bahnhof.se) (Ping timeout: 256 seconds) |
| 19:00:45 | <dolio> | 53 might actually not be enough, even. |
| 19:00:47 | × | thir quits (~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 19:01:44 | <Noughtmare[m]> | There was also this blog post: https://cs-syd.eu/posts/2020-07-28-how-to-deal-with-money-in-software |
| 19:02:12 | <Noughtmare[m]> | Might be an easier read and more related to Haskell and money. |
| 19:02:25 | × | nbloomf quits (~nbloomf@2600:1700:83e0:1f40:209d:e921:7304:6018) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 19:04:27 | → | mmohammadi9812 joins (~mmohammad@5.238.179.190) |
| 19:05:41 | × | machinedgod quits (~machinedg@45.78.189.122) (Read error: Connection reset by peer) |
| 19:05:51 | × | benl23 quits (sid284234@gateway/web/irccloud.com/x-uphxfqxgzdhiwrls) (Ping timeout: 260 seconds) |
| 19:05:51 | × | affinespaces quits (sid327561@gateway/web/irccloud.com/x-qpsgoegqtleeqjei) (Ping timeout: 260 seconds) |
| 19:05:59 | → | nbloomf joins (~nbloomf@2600:1700:83e0:1f40:b8df:2d55:a789:4c6e) |
| 19:05:59 | × | adius quits (sid321344@gateway/web/irccloud.com/x-quuxqbuikynbakrx) (Ping timeout: 246 seconds) |
| 19:05:59 | × | sethetter__ quits (sid17895@gateway/web/irccloud.com/x-wdliizmlfolakmwm) (Ping timeout: 246 seconds) |
| 19:06:23 | × | zacts quits (~zacts@dragora/developer/zacts) (Ping timeout: 260 seconds) |
| 19:06:43 | × | elcaro quits (~anonymous@45.32.191.75) (Ping timeout: 256 seconds) |
| 19:06:44 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 19:06:46 | → | benl23 joins (sid284234@gateway/web/irccloud.com/x-ghlogzbejlthcofn) |
| 19:06:48 | × | heyj quits (sid171370@gateway/web/irccloud.com/x-gbwtmgtkvwxnufqr) (Ping timeout: 260 seconds) |
| 19:06:48 | → | Firedancer__ joins (sid336191@gateway/web/irccloud.com/x-sstfhgxjcldlniie) |
| 19:06:56 | × | puffnfresh_ quits (~puffnfres@45.76.124.5) (Ping timeout: 272 seconds) |
| 19:06:59 | → | affinespaces joins (sid327561@gateway/web/irccloud.com/x-pmydnplqbvmshcfw) |
| 19:07:05 | → | rann_ joins (sid175221@gateway/web/irccloud.com/x-iiyrjbxtmscqghei) |
| 19:07:07 | × | Firedancer quits (sid336191@gateway/web/irccloud.com/x-hgqilzghfblwpocf) (Ping timeout: 240 seconds) |
| 19:07:07 | Firedancer__ | is now known as Firedancer |
| 19:07:08 | → | mu_ joins (~mu@unaffiliated/mu) |
| 19:07:16 | × | BIG_JIMMY_D quits (~jim@108.61.185.76) (Ping timeout: 260 seconds) |
| 19:07:27 | → | sgraf_ joins (sid326656@gateway/web/irccloud.com/x-jfxyumxhbkdnvfol) |
| 19:07:31 | → | sethetter__ joins (sid17895@gateway/web/irccloud.com/x-mezhbcfrdugnnivw) |
| 19:07:33 | × | Tritlo quits (sid58727@gateway/web/irccloud.com/x-csyclvuwsofrnkal) (Ping timeout: 260 seconds) |
| 19:07:37 | → | adius joins (sid321344@gateway/web/irccloud.com/x-uiqaepphrufnogik) |
| 19:07:43 | × | sgraf quits (sid326656@gateway/web/irccloud.com/x-ljndrirzbtbynvou) (Ping timeout: 260 seconds) |
| 19:07:44 | × | rann quits (sid175221@gateway/web/irccloud.com/x-skhgikkvbkdanbtl) (Ping timeout: 260 seconds) |
| 19:07:44 | sgraf_ | is now known as sgraf |
| 19:07:45 | rann_ | is now known as rann |
| 19:07:57 | × | nbloomf quits (~nbloomf@2600:1700:83e0:1f40:b8df:2d55:a789:4c6e) (Client Quit) |
| 19:08:08 | × | Suigetsu quits (~kakashi@223.226.34.93) (Remote host closed the connection) |
| 19:08:59 | → | Tritlo joins (sid58727@gateway/web/irccloud.com/x-bpkuocxqeatvohss) |
| 19:08:59 | → | heyj joins (sid171370@gateway/web/irccloud.com/x-etzhorqwefwzvcps) |
| 19:09:28 | → | nbloomf joins (~nbloomf@2600:1700:83e0:1f40:1912:3cad:d0f5:3993) |
| 19:09:54 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 19:10:05 | → | machinedgod joins (~machinedg@45.78.189.122) |
| 19:12:46 | → | puffnfresh_ joins (~puffnfres@45.76.124.5) |
| 19:12:59 | × | Quarl quits (~Quarl@94.191.138.174.mobile.tre.se) (Read error: Connection reset by peer) |
| 19:13:03 | → | fresheyeball joins (~isaac@c-71-237-105-37.hsd1.co.comcast.net) |
| 19:13:44 | → | raehik joins (~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net) |
| 19:17:03 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 19:17:08 | → | mu__ joins (~mu@unaffiliated/mu) |
| 19:17:34 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 19:18:50 | × | mu__ quits (~mu@unaffiliated/mu) (Client Quit) |
| 19:19:38 | <koz_> | Noughtmare[m]: Thanks. That's really good. |
| 19:22:54 | → | BIG_JIMMY_D joins (~jim@108.61.185.76) |
| 19:23:42 | → | elcaro joins (~anonymous@45.32.191.75) |
| 19:24:11 | × | machinedgod quits (~machinedg@45.78.189.122) (Ping timeout: 240 seconds) |
| 19:24:28 | × | ryansmccoy quits (~ryansmcco@193.37.254.27) (Ping timeout: 260 seconds) |
| 19:25:12 | → | ryansmccoy joins (~ryansmcco@156.96.151.132) |
| 19:28:22 | <dolio> | I guess a counterpoint is that a lot of this advice is about accounting. If you're doing something else, it might be more acceptable to use doubles. |
| 19:28:42 | <dolio> | Like, some kind of statistical analysis of things involving money. |
| 19:28:46 | <geekosaur> | might be acceptable but there's still a lot to know about how to work around their issues |
| 19:28:46 | → | byte[]1 joins (~byte]@84.39.116.180) |
| 19:29:05 | <geekosaur> | which includes doing different things depending on what magnitudes are involved |
| 19:29:30 | <dolio> | Sure. |
| 19:31:31 | × | snakemasterflex quits (~snakemast@213.100.206.23) (Ping timeout: 260 seconds) |
| 19:31:45 | → | Stanley00 joins (~stanley00@unaffiliated/stanley00) |
| 19:31:48 | <dolio> | It's more that accounting has rules that make IEEE floating point impossible to use, whereas other scenarios it might be possible, but still difficult. :) |
| 19:32:22 | → | fredcy joins (fredcy@2600:3c03::f03c:91ff:febd:37d7) |
| 19:32:41 | × | fredcy quits (fredcy@2600:3c03::f03c:91ff:febd:37d7) (Client Quit) |
| 19:32:41 | fredcy- | is now known as fredcy |
| 19:34:16 | × | whiteline_ quits (~whiteline@unaffiliated/whiteline) (Read error: Connection reset by peer) |
| 19:34:19 | → | coot joins (~coot@37.30.59.210.nat.umts.dynamic.t-mobile.pl) |
| 19:34:34 | → | whiteline joins (~whiteline@unaffiliated/whiteline) |
| 19:35:29 | <monochrom> | There is an unhealthy dose of scaremongering against floating point. |
| 19:36:33 | × | jollygood2 quits (~bc815b99@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout)) |
| 19:36:39 | <monochrom> | The outcry is "it has errors!" but the blindspot is: compared to what? For the same number of bits, base-2 floating point is the least errorneous among all ways of using those bits. |
| 19:36:43 | × | Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 260 seconds) |
| 19:38:18 | <monochrom> | The real subtext is "it doesn't do intuitive decimal". |
| 19:38:49 | <monochrom> | as if decimal were the holy grail of accuracy. |
| 19:39:03 | <Noughtmare[m]> | The main point of the blog post is also that the errors should be explicit. |
| 19:39:16 | <Noughtmare[m]> | You can't just create or destroy money. |
| 19:39:26 | <monochrom> | That's a social construct. |
| 19:39:52 | <Cheery> | https://github.com/cheery/lijp |
| 19:39:53 | → | mu_ joins (~mu@unaffiliated/mu) |
| 19:39:56 | <geekosaur> | so is money |
| 19:40:07 | <monochrom> | Yeah :) |
| 19:40:10 | → | luke joins (~luke@bitnomial/staff/luke) |
| 19:40:21 | → | h joins (bdd4038e@189-212-3-142.static.axtel.net) |
| 19:40:24 | → | catkiki joins (~catkiki@m90-134-157-227.cust.tele2.hr) |
| 19:40:34 | <monochrom> | More seriously, I respect the accounting requirement of conservation of money. |
| 19:40:45 | h | is now known as Guest61881 |
| 19:40:57 | × | fredcy quits (fredcy@2600:3c00::f03c:91ff:feae:15ae) (Read error: Connection reset by peer) |
| 19:41:05 | × | Guest61881 quits (bdd4038e@189-212-3-142.static.axtel.net) (Remote host closed the connection) |
| 19:41:07 | <monochrom> | I disrepect "floating point has errors" as if the accounting requirement didn't have even worse errors. |
| 19:41:38 | <dolio> | I don't know. The thing about IEEE is that it has ways of dealing with the errors, but my understanding is that if you don't learn the right way, you probably won't accidentally write code that has good behavior with respect to error accumulation. |
| 19:41:58 | → | snakemasterflex joins (~snakemast@213.100.206.23) |
| 19:42:19 | <dolio> | So either the errors are completely irrelevant for whatever you're doing, or you still have to study non-trivial stuff. |
| 19:43:13 | <dolio> | A lot of people probably write code in the 'irrelevant' part, though. |
| 19:43:38 | → | voyons_calice joins (~dan@162.246.216.28) |
| 19:44:45 | <Chousuke> | The "inexactitude" of floating point is only a problem because it can be used by people who don't know better. If you use it and your application can deal with the potentially accumulated errors, then it's not wrong, and not a problem. |
| 19:45:04 | × | stree quits (~stree@50-108-126-14.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception) |
| 19:45:22 | → | stree joins (~stree@50-108-126-14.adr01.mskg.mi.frontiernet.net) |
| 19:45:28 | × | lucid_0x80 quits (~lucid_0x8@188.253.231.113) (Ping timeout: 260 seconds) |
| 19:45:46 | <Chousuke> | but lots of people will try to use a screwdriver as a hammer, and often it works, too :/ |
| 19:46:14 | × | voyons_osti quits (~dan@107-190-41-58.cpe.teksavvy.com) (Ping timeout: 256 seconds) |
| 19:46:47 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 19:47:13 | × | AlterEgo- quits (~ladew@124-198-158-163.dynamic.caiway.nl) (Quit: Leaving) |
| 19:47:15 | → | mu_ joins (~mu@unaffiliated/mu) |
| 19:48:18 | × | Guest18 quits (567e8866@gateway/web/cgi-irc/kiwiirc.com/ip.86.126.136.102) (Quit: Connection closed) |
| 19:50:11 | <sm[m]> | anecdote: hledger started with Double, for simplicity and speed. It wasn't a problem for normal accounting; it took years until somebody encountered a tiny rounding error. |
| 19:53:07 | × | chaosmasttter quits (~chaosmast@p200300c4a70aba01f8f8cb9b34fa26e3.dip0.t-ipconnect.de) (Quit: WeeChat 2.9) |
| 19:53:21 | → | machinedgod joins (~machinedg@d67-193-126-196.home3.cgocable.net) |
| 19:57:11 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 19:57:25 | → | jneira joins (501e65ce@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.101.206) |
| 19:57:25 | → | mu_ joins (~mu@unaffiliated/mu) |
| 19:57:53 | → | juuandyy joins (~juuandyy@90.166.144.65) |
| 19:58:10 | × | meck quits (~meck@li1809-18.members.linode.com) (Quit: ZNC 1.8.1 - https://znc.in) |
| 19:59:44 | × | fresheyeball quits (~isaac@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.7.1) |
| 20:00:19 | → | fredcy joins (~fredcy@mail.yankowski.com) |
| 20:01:50 | × | xff0x quits (~fox@2001:1a81:53b0:3c00:65ac:b49c:d7d6:af9b) (Remote host closed the connection) |
| 20:01:51 | → | meck joins (~meck@li1809-18.members.linode.com) |
| 20:02:10 | → | xff0x joins (~fox@2001:1a81:53b0:3c00:3d6a:e40e:1e13:6b86) |
| 20:02:59 | × | juuandyy quits (~juuandyy@90.166.144.65) (Quit: Konversation terminated!) |
| 20:06:23 | × | gxt quits (~gxt@gateway/tor-sasl/gxt) (Ping timeout: 240 seconds) |
| 20:06:28 | hackage | curl-runnings 0.15.0 - A framework for declaratively writing curl based API tests https://hackage.haskell.org/package/curl-runnings-0.15.0 (aviaviavi) |
| 20:06:38 | × | snakemasterflex quits (~snakemast@213.100.206.23) (Ping timeout: 256 seconds) |
| 20:06:54 | × | geekosaur quits (42d52102@66.213.33.2) (Remote host closed the connection) |
| 20:06:55 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 20:07:12 | <koz_> | If I do [minBound .. maxBound] :: [Char], will this effectively produce a string made of every Unicode code point? |
| 20:07:16 | → | mu_ joins (~mu@unaffiliated/mu) |
| 20:07:47 | <ski> | > filter isSpace [minBound .. maxBound] |
| 20:07:50 | <lambdabot> | "\t\n\v\f\r \160\5760\8192\8193\8194\8195\8196\8197\8198\8199\8200\8201\8202... |
| 20:07:59 | <sarahzrf> | > filter (not . isSpace) [minBound .. maxBound] |
| 20:08:03 | <lambdabot> | "\NUL\SOH\STX\ETX\EOT\ENQ\ACK\a\b\SO\SI\DLE\DC1\DC2\DC3\DC4\NAK\SYN\ETB\CAN\... |
| 20:08:12 | → | jakecraige joins (uid58205@gateway/web/irccloud.com/x-skwrvzxmtmlvbckx) |
| 20:08:17 | → | zacts joins (~zacts@dragora/developer/zacts) |
| 20:08:27 | <koz_> | Uhh, so, 'yes'? |
| 20:08:31 | <sarahzrf> | hehe |
| 20:08:45 | <koz_> | > length ([minBound .. maxBound] :: String) |
| 20:08:48 | <lambdabot> | 1114112 |
| 20:08:53 | <sarahzrf> | > filter isAlpha [minBound .. maxBound] |
| 20:08:53 | × | danvet_ quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds) |
| 20:08:55 | <lambdabot> | "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\170\181\186\192\193\19... |
| 20:09:00 | <ski> | > ord maxBound |
| 20:09:02 | <sarahzrf> | > text (filter isAlpha [minBound .. maxBound]) |
| 20:09:05 | jakecraige | is now known as constR |
| 20:09:07 | <lambdabot> | mueval-core: Time limit exceeded |
| 20:09:08 | <lambdabot> | ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzªµºÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔ... |
| 20:09:31 | <sarahzrf> | > ord (maxBound :: Char) -- ski |
| 20:09:35 | <lambdabot> | 1114111 |
| 20:09:50 | <ski> | > ord maxBound |
| 20:09:53 | <lambdabot> | 1114111 |
| 20:09:56 | <sarahzrf> | huh |
| 20:10:03 | <ski> | temporary fluke |
| 20:10:04 | <sarahzrf> | oh right, ord is monomorphic |
| 20:10:34 | → | gxt joins (~gxt@gateway/tor-sasl/gxt) |
| 20:10:49 | <ski> | koz_ : i guess it might be extended, later |
| 20:10:59 | <koz_> | ski: Possibly. |
| 20:13:07 | → | voyons_calisse joins (~dan@107-190-41-58.cpe.teksavvy.com) |
| 20:14:08 | → | grepp joins (bdd4038e@189-212-3-142.static.axtel.net) |
| 20:15:30 | <koz_> | Where can I find a function of type Int -> [a] -> [[a]]? This should chop the argument list into chunks of length specified by the Int argument. |
| 20:15:48 | × | voyons_calice quits (~dan@162.246.216.28) (Ping timeout: 260 seconds) |
| 20:15:59 | <hyperisco> | koz_, chunksOf |
| 20:16:04 | <ski> | @hoogle Int -> [a] -> [[a]] |
| 20:16:05 | <lambdabot> | Data.List.Split chunksOf :: Int -> [e] -> [[e]] |
| 20:16:05 | <lambdabot> | Data.List.Split.Internals chunksOf :: Int -> [e] -> [[e]] |
| 20:16:05 | <lambdabot> | Hedgehog.Internal.Shrink removes :: Int -> [a] -> [[a]] |
| 20:16:30 | × | heyj quits (sid171370@gateway/web/irccloud.com/x-etzhorqwefwzvcps) (Ping timeout: 258 seconds) |
| 20:16:39 | <ski> | @hackage split |
| 20:16:40 | <lambdabot> | https://hackage.haskell.org/package/split |
| 20:16:45 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 20:16:46 | <koz_> | Thanks! |
| 20:16:47 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 240 seconds) |
| 20:17:05 | → | fresheyeball joins (~isaac@c-71-237-105-37.hsd1.co.comcast.net) |
| 20:17:07 | → | heyj joins (sid171370@gateway/web/irccloud.com/x-dyelktlqaszoriye) |
| 20:17:15 | <ski> | > chunksOf 3 [0 .. 7] |
| 20:17:17 | → | mu_ joins (~mu@unaffiliated/mu) |
| 20:17:18 | <lambdabot> | [[0,1,2],[3,4,5],[6,7]] |
| 20:17:27 | <koz_> | Delicious chunky list. |
| 20:18:14 | → | notzmv` joins (~user@179.100.115.46) |
| 20:20:41 | → | sfvm joins (~sfvm@37.228.215.148) |
| 20:21:16 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
| 20:21:23 | × | notzmv quits (~user@unaffiliated/zmv) (Ping timeout: 240 seconds) |
| 20:22:14 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:b248:7aff:feea:34b6) (Quit: Quit.) |
| 20:22:45 | → | GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 20:22:46 | × | GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 20:22:46 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 20:22:46 | → | xcmw joins (~textual@dyn-72-33-0-89.uwnet.wisc.edu) |
| 20:22:52 | × | mirrorbird quits (~psutcliff@2a00:801:3fb:53b9:b09b:cd4e:4e4a:44a9) (Quit: Leaving) |
| 20:23:46 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:b248:7aff:feea:34b6) |
| 20:26:15 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Client Quit) |
| 20:26:23 | × | gxt quits (~gxt@gateway/tor-sasl/gxt) (Ping timeout: 240 seconds) |
| 20:26:38 | <monochrom> | koz_: Some of the numbers / "characters" in that range are not legal unicode codepoints, so be careful. |
| 20:26:44 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 20:26:57 | <koz_> | monochrom: How do I make sure I only have ones which are? |
| 20:27:15 | <koz_> | Is there some kind of 'I am a real boy^WUnicode codepoint' check? |
| 20:27:15 | → | mu_ joins (~mu@unaffiliated/mu) |
| 20:27:20 | <monochrom> | Let me check if Data.Char has some helpers |
| 20:27:32 | <koz_> | Thanks! |
| 20:27:33 | <dolio> | Isn't that system-dependent? |
| 20:27:36 | → | GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 20:27:36 | × | GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 20:27:36 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 20:28:02 | <EvanR> | there's various flavors of "not a valid character" |
| 20:28:15 | <EvanR> | very fun stuff |
| 20:28:31 | × | grepp quits (bdd4038e@189-212-3-142.static.axtel.net) (Remote host closed the connection) |
| 20:28:37 | <monochrom> | Perhaps generalCategory, and if you get NotAssigned it's a bad sign. Sometimes PrivateUse too, depending on what you want. |
| 20:28:38 | × | zacts quits (~zacts@dragora/developer/zacts) (Quit: leaving) |
| 20:28:53 | <koz_> | OK, thanks. |
| 20:28:57 | → | zacts joins (~zacts@dragora/developer/zacts) |
| 20:29:04 | × | sfvm quits (~sfvm@37.228.215.148) (Quit: off to the basement, mixing up the medicine) |
| 20:29:11 | → | gxt joins (~gxt@gateway/tor-sasl/gxt) |
| 20:29:41 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 20:29:49 | <monochrom> | NotAssigned would be "illegal today but maybe in 2025 it is a newly assigned emoji" |
| 20:30:16 | <monochrom> | To be sure, my wording "illegal" is lax. |
| 20:30:26 | <EvanR> | there's literally "not a character" like \uffff |
| 20:30:43 | <EvanR> | "FFFE and FFFF are not unassigned in the usual sense, but guaranteed not to be Unicode characters at all." |
| 20:30:43 | × | DirefulSalt quits (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection) |
| 20:31:10 | <monochrom> | But you don't go around sending unassigned codepoints to people :) |
| 20:31:14 | <dolio> | What is the purpose of that? |
| 20:31:17 | <dolio> | Terminating your strings? |
| 20:31:32 | <monochrom> | Ah, FFFE and FFFF would be Surrogate. You want to watch out for them especially. |
| 20:31:33 | <EvanR> | FFFE is used for detecting byte order in utf-16 |
| 20:31:41 | <EvanR> | FFFF not sure |
| 20:31:44 | <dolio> | Ah. |
| 20:32:10 | <monochrom> | Actually I am only sure that FFFE is surrogate. haven't checked FFFF, could be NotAssigned |
| 20:32:38 | <koz_> | @pl \i x -> foo (bar i) x |
| 20:32:38 | <lambdabot> | foo . bar |
| 20:34:18 | <monochrom> | Generally the whole surrogate block, from today's POV, is a relic of backward compatibility to utf-16. |
| 20:34:25 | <EvanR> | FEFF is a byte order mark |
| 20:34:42 | × | Kaiepi quits (~Kaiepi@nwcsnbsc03w-47-55-157-9.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection) |
| 20:35:22 | <EvanR> | so it's possible to see FFFE in utf-16 encoded bytes, so it can't be used as a character too |
| 20:36:36 | <EvanR> | surrogates are for doing stuff beyond FFFF |
| 20:36:48 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 20:37:16 | → | mu_ joins (~mu@unaffiliated/mu) |
| 20:38:19 | <monochrom> | oops, FFFE is NotAssigned |
| 20:38:49 | <EvanR> | NotAssignInFactNeverWillBeAssignedDueToReasons |
| 20:38:58 | <monochrom> | Yeah |
| 20:39:11 | × | ryansmccoy quits (~ryansmcco@156.96.151.132) (Ping timeout: 260 seconds) |
| 20:39:14 | <koz_> | Won'tAssign |
| 20:39:50 | → | ryansmccoy joins (~ryansmcco@156.96.151.132) |
| 20:39:58 | <monochrom> | Surrogates are the D8xx block and the DCxx block. |
| 20:41:31 | × | sw1nn quits (~sw1nn@host86-173-104-87.range86-173.btcentralplus.com) (Quit: WeeChat 2.9) |
| 20:41:37 | × | carldd1 quits (~carldd@90-224-49-113-no56.tbcn.telia.com) (Read error: Connection reset by peer) |
| 20:42:40 | <monochrom> | Ah, even that is inaccurate. (The two blocks are each much larger.) I'll shut up now. |
| 20:42:48 | → | sw1nn joins (~sw1nn@host86-173-104-87.range86-173.btcentralplus.com) |
| 20:42:51 | <EvanR> | the byte reversed surrogates are "non characters" |
| 20:43:04 | <EvanR> | according to this http://www.unicode.org/faq/private_use.html there are 66 non-characters |
| 20:44:17 | → | blissful joins (~azuline@unaffiliated/azuline) |
| 20:44:23 | × | raehik quits (~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net) (Ping timeout: 260 seconds) |
| 20:44:51 | → | raehik joins (~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net) |
| 20:45:04 | <monochrom> | fun stuff |
| 20:45:26 | <monochrom> | Math is so much easier. :) |
| 20:45:28 | <koz_> | Conclusion: Writing is hard, we should go back to being illiterate. |
| 20:45:31 | × | coot quits (~coot@37.30.59.210.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 20:45:37 | <monochrom> | I think we did? |
| 20:45:55 | <monochrom> | The whole reason why GUI and icons as opposed to CLI. |
| 20:47:03 | <monochrom> | It's like we decided that the Phoenician way (alphabet) is too hard, let's go back to the Egyptian way (icons). |
| 20:47:03 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 20:47:16 | → | mu__ joins (~mu@unaffiliated/mu) |
| 20:47:35 | <EvanR> | normal fractions are too hard, go back to egyptian fractions |
| 20:47:51 | → | systemhalted joins (~aqualogic@71-129-231-253.lightspeed.rcsntx.sbcglobal.net) |
| 20:47:55 | <koz_> | Normal construction is too hard, go back to Egyptian construction. |
| 20:48:05 | <koz_> | [insert the Ancient Aliens meme] |
| 20:48:38 | <koz_> | https://i.imgflip.com/4gq65v.jpg |
| 20:48:53 | <EvanR> | hey man, if i can learn some chinese after the age of 3 maybe there's hope for us all |
| 20:49:13 | <monochrom> | Good for you. |
| 20:49:33 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
| 20:49:39 | × | systemhalted quits (~aqualogic@71-129-231-253.lightspeed.rcsntx.sbcglobal.net) (Remote host closed the connection) |
| 20:49:55 | <monochrom> | But don't mistake your special gift for universal human trait. |
| 20:50:01 | <EvanR> | that's what i'm saying |
| 20:50:29 | → | carldd1 joins (~carldd@90-224-49-113-no56.tbcn.telia.com) |
| 20:50:52 | <EvanR> | somehow people can look at random squiggles and it means something |
| 20:50:57 | → | GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 20:50:57 | × | GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 20:50:57 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 20:51:19 | × | kw quits (ac4a6125@cpe-172-74-97-37.nc.res.rr.com) (Ping timeout: 245 seconds) |
| 20:52:19 | → | mtae joins (uid179115@gateway/web/irccloud.com/x-cumufbtgommkesrd) |
| 20:55:29 | × | mmohammadi9812 quits (~mmohammad@5.238.179.190) (Quit: I quit (╯°□°)╯︵ ┻━┻) |
| 20:56:56 | × | mu__ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 20:57:15 | → | mu_ joins (~mu@unaffiliated/mu) |
| 21:00:02 | × | byte[]1 quits (~byte]@84.39.116.180) () |
| 21:00:03 | → | isovector1 joins (~isovector@172.103.216.166.cable.tpia.cipherkey.com) |
| 21:00:33 | → | snakemasterflex joins (~snakemast@213.100.206.23) |
| 21:01:18 | × | mananamenos quits (~mananamen@84.122.202.215.dyn.user.ono.com) (Ping timeout: 260 seconds) |
| 21:01:33 | → | justsomeguy joins (~justsomeg@216.186.218.241) |
| 21:01:33 | × | justsomeguy quits (~justsomeg@216.186.218.241) (Changing host) |
| 21:01:33 | → | justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311) |
| 21:02:38 | → | thir joins (~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) |
| 21:04:23 | → | knupfer joins (~Thunderbi@200116b82c08f600492c838d09b9ddcd.dip.versatel-1u1.de) |
| 21:05:18 | → | bitmagie joins (~Thunderbi@200116b80673370090ed3453f880395e.dip.versatel-1u1.de) |
| 21:06:42 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
| 21:06:49 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 21:06:49 | × | snakemasterflex quits (~snakemast@213.100.206.23) (Ping timeout: 264 seconds) |
| 21:07:17 | → | mu_ joins (~mu@unaffiliated/mu) |
| 21:07:32 | × | luke quits (~luke@bitnomial/staff/luke) (Quit: sleep) |
| 21:09:02 | × | bitmagie quits (~Thunderbi@200116b80673370090ed3453f880395e.dip.versatel-1u1.de) (Client Quit) |
| 21:12:43 | → | mnrmnaughmnrgle joins (~mnrmnaugh@unaffiliated/mnrmnaugh) |
| 21:12:47 | → | borne joins (~fritjof@200116b864231000537d5cc8226f9d9f.dip.versatel-1u1.de) |
| 21:14:42 | × | thc202 quits (~thc202@unaffiliated/thc202) (Ping timeout: 260 seconds) |
| 21:14:51 | × | knupfer quits (~Thunderbi@200116b82c08f600492c838d09b9ddcd.dip.versatel-1u1.de) (Quit: knupfer) |
| 21:15:03 | → | knupfer joins (~Thunderbi@200116b82c08f600518a782c5c52e58a.dip.versatel-1u1.de) |
| 21:15:18 | × | hyperisco quits (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 260 seconds) |
| 21:17:03 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 21:17:17 | → | mu__ joins (~mu@unaffiliated/mu) |
| 21:20:28 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 21:24:04 | × | __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving) |
| 21:24:59 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
| 21:25:58 | → | hyperisco joins (~hyperisco@d192-186-117-226.static.comm.cgocable.net) |
| 21:26:49 | × | mu__ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 21:27:09 | → | dhil joins (~dhil@11.29.39.217.dyn.plus.net) |
| 21:27:24 | → | mu_ joins (~mu@unaffiliated/mu) |
| 21:28:07 | × | filwisher quits (~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 240 seconds) |
| 21:28:26 | hololeap | will build a colossal truncated dodecahedron out of peat moss |
| 21:28:50 | <pjb> | That's a plan. |
| 21:30:27 | × | knupfer quits (~Thunderbi@200116b82c08f600518a782c5c52e58a.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
| 21:30:36 | × | Ariakenom quits (~Ariakenom@h-82-196-111-138.NA.cust.bahnhof.se) (Quit: Leaving) |
| 21:31:56 | × | hyperisco quits (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 260 seconds) |
| 21:32:37 | → | Stanley00 joins (~stanley00@unaffiliated/stanley00) |
| 21:32:59 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 21:33:07 | × | hiroaki quits (~hiroaki@2a02:908:4b18:e20::a362) (Ping timeout: 272 seconds) |
| 21:33:58 | hackage | http-client-websockets 0.1.0.0 - Glue code for http-client and websockets https://hackage.haskell.org/package/http-client-websockets-0.1.0.0 (amesgen) |
| 21:36:14 | × | raehik quits (~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net) (Ping timeout: 258 seconds) |
| 21:36:15 | → | falafel_ joins (~falafel@2605:e000:1527:d491:f090:20fe:cddf:2a1a) |
| 21:36:50 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 21:36:50 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 21:37:01 | × | zacts quits (~zacts@dragora/developer/zacts) (Quit: leaving) |
| 21:37:15 | → | mu_ joins (~mu@unaffiliated/mu) |
| 21:37:40 | × | Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 272 seconds) |
| 21:38:43 | → | zacts joins (~zacts@dragora/developer/zacts) |
| 21:40:41 | → | filwisher joins (~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) |
| 21:43:50 | → | raehik joins (~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net) |
| 21:43:51 | × | zacts quits (~zacts@dragora/developer/zacts) (Quit: Lost terminal) |
| 21:44:12 | → | zacts joins (~zacts@dragora/developer/zacts) |
| 21:45:48 | → | Gokturk-Away joins (~Gokturk@ip232-88-173-82.adsl2.static.versatel.nl) |
| 21:46:14 | ← | Gokturk-Away parts (~Gokturk@ip232-88-173-82.adsl2.static.versatel.nl) () |
| 21:46:48 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 21:46:48 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 21:47:18 | → | mu_ joins (~mu@unaffiliated/mu) |
| 21:47:48 | × | st8less quits (~st8less@inet-167-224-197-181.isp.ozarksgo.net) (Ping timeout: 272 seconds) |
| 21:49:13 | → | ransom joins (~c4264035@undergraduate-jvossen-9690.mines.edu) |
| 21:49:25 | × | ryansmccoy quits (~ryansmcco@156.96.151.132) (Ping timeout: 240 seconds) |
| 21:49:39 | → | ryansmccoy joins (~ryansmcco@156.96.151.132) |
| 21:51:11 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds) |
| 21:51:47 | × | dhil quits (~dhil@11.29.39.217.dyn.plus.net) (Ping timeout: 240 seconds) |
| 21:52:07 | × | yogani quits (sid42623@gateway/web/irccloud.com/x-yikdyiyitctvugtr) (Ping timeout: 240 seconds) |
| 21:52:07 | × | gaze__ quits (sid387101@gateway/web/irccloud.com/x-rudberqzemjkvxug) (Ping timeout: 240 seconds) |
| 21:52:07 | × | conjunctive quits (sid433686@gateway/web/irccloud.com/x-aktdkimmtnwjggmi) (Ping timeout: 240 seconds) |
| 21:52:07 | × | gregberns_ quits (sid315709@gateway/web/irccloud.com/x-rlsbvnyekhpgzioc) (Ping timeout: 240 seconds) |
| 21:52:07 | × | hazard-pointer quits (sid331723@gateway/web/irccloud.com/x-emxsbfbbibuuxpjg) (Ping timeout: 240 seconds) |
| 21:52:08 | × | cstrahan quits (sid36118@gateway/web/irccloud.com/x-ykmbvasjrmtaqanw) (Ping timeout: 244 seconds) |
| 21:52:08 | × | pasukon quits (sid49097@gateway/web/irccloud.com/x-giisizmxehyuzjuk) (Ping timeout: 244 seconds) |
| 21:52:08 | × | alunduil quits (alunduil@gateway/web/irccloud.com/x-tbwasyjgdwlvrowc) (Ping timeout: 244 seconds) |
| 21:52:14 | × | Tritlo quits (sid58727@gateway/web/irccloud.com/x-bpkuocxqeatvohss) (Ping timeout: 246 seconds) |
| 21:52:14 | × | adius quits (sid321344@gateway/web/irccloud.com/x-uiqaepphrufnogik) (Ping timeout: 246 seconds) |
| 21:52:27 | × | benl23 quits (sid284234@gateway/web/irccloud.com/x-ghlogzbejlthcofn) (Ping timeout: 240 seconds) |
| 21:52:27 | × | drupol quits (sid117588@gateway/web/irccloud.com/x-awnbfxqpznoqpkyo) (Ping timeout: 240 seconds) |
| 21:52:27 | × | grfn quits (sid449115@gateway/web/irccloud.com/x-ydoemzyjkpbwqwwh) (Ping timeout: 240 seconds) |
| 21:52:35 | × | edmundnoble quits (sid229620@gateway/web/irccloud.com/x-oyzfxczakjbvmtnw) (Ping timeout: 246 seconds) |
| 21:52:37 | × | mcfilib quits (sid302703@gateway/web/irccloud.com/x-spscyafmbmiqsgji) (Ping timeout: 260 seconds) |
| 21:52:37 | × | dsal quits (sid13060@gateway/web/irccloud.com/x-ggesknpxulujswrk) (Ping timeout: 260 seconds) |
| 21:52:37 | × | alanz quits (sid110616@gateway/web/irccloud.com/x-nlebobwfaogucyez) (Ping timeout: 260 seconds) |
| 21:52:39 | × | dmj` quits (sid72307@gateway/web/irccloud.com/x-odngicoenfnwoyvu) (Ping timeout: 244 seconds) |
| 21:52:45 | × | thi quits (sid97277@gateway/web/irccloud.com/x-hnhbkpyrjaxopzwq) (Ping timeout: 272 seconds) |
| 21:52:45 | × | mpickering quits (sid78412@gateway/web/irccloud.com/x-qlfoyixpkacsyapm) (Ping timeout: 272 seconds) |
| 21:52:45 | × | buggymcbugfix quits (sid432603@gateway/web/irccloud.com/x-hztztfmfplqpnzth) (Ping timeout: 272 seconds) |
| 21:52:47 | × | liszt quits (sid336875@gateway/web/irccloud.com/x-jndphrjraiimjfeg) (Ping timeout: 240 seconds) |
| 21:52:47 | × | rodlogic__ quits (sid214676@gateway/web/irccloud.com/x-hqmucughwqwxderw) (Ping timeout: 240 seconds) |
| 21:52:47 | × | simony quits (sid226116@gateway/web/irccloud.com/x-fjezusljhbyijwij) (Ping timeout: 240 seconds) |
| 21:52:47 | × | gluegadget quits (sid22336@gateway/web/irccloud.com/x-lopxigkfhkxxekjc) (Ping timeout: 240 seconds) |
| 21:52:47 | × | hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-tjiavkhmuuynmiyn) (Ping timeout: 240 seconds) |
| 21:52:47 | × | alexknvl quits (sid259568@gateway/web/irccloud.com/x-iuotkcbnxquozzxj) (Ping timeout: 240 seconds) |
| 21:52:47 | × | bjs quits (sid190364@gateway/web/irccloud.com/x-avegidalgukhrltc) (Ping timeout: 240 seconds) |
| 21:52:47 | × | jackdk quits (sid373013@gateway/web/irccloud.com/x-jvxjcrsfdwntomgo) (Ping timeout: 240 seconds) |
| 21:52:57 | × | caasih quits (sid13241@gateway/web/irccloud.com/x-witsgvtavsidjabf) (Ping timeout: 246 seconds) |
| 21:52:57 | × | kozowu quits (uid44796@gateway/web/irccloud.com/x-hqvlesuvhveaoukp) (Ping timeout: 246 seconds) |
| 21:52:57 | × | kip quits (sid71464@gateway/web/irccloud.com/x-dfffpddexmzhpgky) (Ping timeout: 260 seconds) |
| 21:53:07 | × | constR quits (uid58205@gateway/web/irccloud.com/x-skwrvzxmtmlvbckx) (Ping timeout: 240 seconds) |
| 21:53:07 | × | joshmeredith quits (sid387798@gateway/web/irccloud.com/x-aoqdwycfabqpemvo) (Ping timeout: 240 seconds) |
| 21:53:07 | × | xyggos quits (uid216035@gateway/web/irccloud.com/x-gnstndpjgaocojtu) (Ping timeout: 240 seconds) |
| 21:53:10 | × | hamishmack quits (sid389057@gateway/web/irccloud.com/x-dpctrfmaydvjllku) (Ping timeout: 244 seconds) |
| 21:53:10 | × | nick_h quits (sid319833@gateway/web/irccloud.com/x-yxzkrhmigqhpumeq) (Ping timeout: 244 seconds) |
| 21:53:10 | × | bgavran quits (sid393312@gateway/web/irccloud.com/x-lpoihxszwcoufyws) (Ping timeout: 244 seconds) |
| 21:53:10 | × | ullbeking quits (sid5364@gateway/web/irccloud.com/x-tebupervehbjefqp) (Ping timeout: 244 seconds) |
| 21:53:10 | × | chpatrick quits (sid239395@gateway/web/irccloud.com/x-glesujyjgaborgwe) (Ping timeout: 244 seconds) |
| 21:53:12 | × | JSharp quits (sid4580@wikia/JSharp) (Ping timeout: 260 seconds) |
| 21:53:12 | × | koankeeper quits (sid216950@gateway/web/irccloud.com/x-yicffuughjxytvpv) (Ping timeout: 260 seconds) |
| 21:53:12 | × | ^[_ quits (sid43445@gateway/web/irccloud.com/x-fxdjmwbbnqygzcyt) (Ping timeout: 260 seconds) |
| 21:53:12 | × | enemeth79 quits (sid309041@gateway/web/irccloud.com/x-cpgsitkowcnhohsm) (Ping timeout: 260 seconds) |
| 21:53:12 | × | idnar quits (sid12240@gateway/web/irccloud.com/x-lgbnafawhmfrrtxy) (Ping timeout: 260 seconds) |
| 21:53:17 | × | jetpack_joe quits (sid146137@gateway/web/irccloud.com/x-ozvqusskhemoywnb) (Ping timeout: 246 seconds) |
| 21:53:17 | × | nlofaro quits (sid258233@gateway/web/irccloud.com/x-qhanesmmszvewqrk) (Ping timeout: 246 seconds) |
| 21:53:18 | × | tnks quits (sid412124@gateway/web/irccloud.com/x-efpfhxrycxbcbhjo) (Ping timeout: 246 seconds) |
| 21:53:18 | × | integral quits (sid296274@p3m/member/integral) (Ping timeout: 246 seconds) |
| 21:53:18 | × | tiru quits (tiru@gateway/web/irccloud.com/x-fjglewsekyfbnkaz) (Ping timeout: 246 seconds) |
| 21:53:18 | × | rdivyanshu quits (sid322626@gateway/web/irccloud.com/x-uzofhbgtemdbbxba) (Ping timeout: 246 seconds) |
| 21:53:18 | × | alehander92 quits (sid331460@gateway/web/irccloud.com/x-ozzrcywtgynyigrd) (Ping timeout: 246 seconds) |
| 21:53:23 | × | Shun131 quits (sid377723@gateway/web/irccloud.com/x-czgeyqhvuxkikuaz) (Ping timeout: 272 seconds) |
| 21:53:23 | × | AndreasK quits (sid320732@gateway/web/irccloud.com/x-swfhbbclpahktdbs) (Ping timeout: 272 seconds) |
| 21:53:23 | × | verlet64_ quits (sid261276@gateway/web/irccloud.com/x-siffhywpxdihuiyy) (Ping timeout: 272 seconds) |
| 21:53:23 | × | aristid quits (sid1599@gateway/web/irccloud.com/x-upybhzrqzplurklw) (Ping timeout: 272 seconds) |
| 21:53:23 | × | newhoggy quits (sid198874@gateway/web/irccloud.com/x-xognmkhlwjudtvku) (Ping timeout: 272 seconds) |
| 21:53:23 | × | fweht quits (uid404746@gateway/web/irccloud.com/x-rnrthvwccypgvabv) (Ping timeout: 272 seconds) |
| 21:53:23 | × | SrPx quits (sid108780@gateway/web/irccloud.com/x-setrbpmzwvmplhxx) (Ping timeout: 272 seconds) |
| 21:53:23 | × | edwardk quits (sid47016@haskell/developer/edwardk) (Ping timeout: 272 seconds) |
| 21:53:23 | × | graingert quits (sid128301@gateway/web/irccloud.com/x-oaiulwhfwjkhanpm) (Ping timeout: 272 seconds) |
| 21:53:23 | × | Kamuela quits (sid111576@gateway/web/irccloud.com/x-ffwzngkqaohtkylu) (Ping timeout: 272 seconds) |
| 21:53:27 | × | sgraf quits (sid326656@gateway/web/irccloud.com/x-jfxyumxhbkdnvfol) (Ping timeout: 240 seconds) |
| 21:53:27 | × | Nascha quits (sid212230@gateway/web/irccloud.com/x-jkdnlkimcaknykgu) (Ping timeout: 240 seconds) |
| 21:53:32 | × | rann quits (sid175221@gateway/web/irccloud.com/x-iiyrjbxtmscqghei) (Ping timeout: 260 seconds) |
| 21:53:32 | × | lexi-lambda quits (sid92601@gateway/web/irccloud.com/x-ejlceriojlkpcrvm) (Ping timeout: 260 seconds) |
| 21:53:32 | × | PoliticsII____ quits (sid193551@gateway/web/irccloud.com/x-ayjlnphasddeuyig) (Ping timeout: 260 seconds) |
| 21:53:32 | × | bitmapper quits (uid464869@gateway/web/irccloud.com/x-uvcgkpyqvrycitrg) (Ping timeout: 260 seconds) |
| 21:53:36 | → | yogani joins (sid42623@gateway/web/irccloud.com/x-dpwtitcwhdgbddrx) |
| 21:53:38 | × | ProofTechnique quits (sid79547@gateway/web/irccloud.com/x-oymjiupjrtcxewbp) (Ping timeout: 246 seconds) |
| 21:53:39 | × | J_Arcane quits (sid119274@gateway/web/irccloud.com/x-pttjdeuurfecvkvw) (Ping timeout: 246 seconds) |
| 21:53:41 | × | parseval quits (sid239098@gateway/web/irccloud.com/x-xpafjsslpgmpnfxd) (Ping timeout: 244 seconds) |
| 21:53:44 | → | gregberns_ joins (sid315709@gateway/web/irccloud.com/x-fewxfbpuqadmolrk) |
| 21:53:47 | × | aizen_s quits (sid462968@gateway/web/irccloud.com/x-qlcwmrqworrqgvap) (Ping timeout: 240 seconds) |
| 21:53:47 | × | Boarders quits (sid425905@gateway/web/irccloud.com/x-mwhqjtpnvbxsnunk) (Ping timeout: 240 seconds) |
| 21:53:47 | × | FMJz____ quits (sid279245@gateway/web/irccloud.com/x-ltdrvaqbqwgrgkpe) (Ping timeout: 260 seconds) |
| 21:53:47 | × | albethere quits (sid457088@gateway/web/irccloud.com/x-hxohvxvcjqpojjdv) (Ping timeout: 260 seconds) |
| 21:53:48 | × | higherorder quits (sid185221@gateway/web/irccloud.com/x-wazqaevutzmkbpnh) (Ping timeout: 260 seconds) |
| 21:53:48 | × | sclv quits (sid39734@haskell/developer/sclv) (Ping timeout: 260 seconds) |
| 21:53:48 | × | ibloom quits (sid350277@gateway/web/irccloud.com/x-otqdduodmhxboldg) (Ping timeout: 260 seconds) |
| 21:53:48 | × | dgpratt quits (sid193493@gateway/web/irccloud.com/x-scubtbcgbtduxhny) (Ping timeout: 260 seconds) |
| 21:53:48 | × | runeks quits (sid21167@gateway/web/irccloud.com/x-fmnyekuxeoeaxuso) (Ping timeout: 260 seconds) |
| 21:53:48 | × | glowcoil quits (sid3405@gateway/web/irccloud.com/x-aducpsaplmgukare) (Ping timeout: 260 seconds) |
| 21:53:59 | × | affinespaces quits (sid327561@gateway/web/irccloud.com/x-pmydnplqbvmshcfw) (Ping timeout: 246 seconds) |
| 21:53:59 | × | adamse quits (sid72084@gateway/web/irccloud.com/x-ngwbhkuzhtraadxk) (Ping timeout: 246 seconds) |
| 21:54:01 | × | heyj quits (sid171370@gateway/web/irccloud.com/x-dyelktlqaszoriye) (Ping timeout: 272 seconds) |
| 21:54:01 | × | Adeon quits (sid418992@gateway/web/irccloud.com/x-rzelteelnhmuqmnc) (Ping timeout: 272 seconds) |
| 21:54:01 | × | mankyKitty quits (sid31287@gateway/web/irccloud.com/x-rnrltkoeycimcfms) (Ping timeout: 272 seconds) |
| 21:54:01 | × | spew quits (uid195861@gateway/web/irccloud.com/x-pyehxyldfhezcjcx) (Ping timeout: 272 seconds) |
| 21:54:01 | × | drbrule quits (sid395654@gateway/web/irccloud.com/x-kdjmwhavsxqjkxzh) (Ping timeout: 272 seconds) |
| 21:54:01 | × | liquorice quits (sid267884@gateway/web/irccloud.com/x-doobozzftsutluns) (Ping timeout: 272 seconds) |
| 21:54:07 | × | pent quits (sid313808@gateway/web/irccloud.com/x-txvaiafqfamllvau) (Ping timeout: 260 seconds) |
| 21:54:07 | × | betawaffle quits (sid2730@gateway/web/irccloud.com/x-jtacgyvyddfakhzw) (Ping timeout: 260 seconds) |
| 21:54:07 | × | feepo quits (sid28508@gateway/web/irccloud.com/x-nwgrhdtytnogkuwe) (Ping timeout: 260 seconds) |
| 21:54:07 | × | kyagrd__ quits (sid102627@gateway/web/irccloud.com/x-cczxifxwkgykmgul) (Ping timeout: 260 seconds) |
| 21:54:07 | × | sethetter__ quits (sid17895@gateway/web/irccloud.com/x-mezhbcfrdugnnivw) (Ping timeout: 240 seconds) |
| 21:54:22 | × | carter quits (sid14827@gateway/web/irccloud.com/x-oplagrzaomanclrc) (Ping timeout: 260 seconds) |
| 21:54:22 | × | Aquazi quits (uid312403@gateway/web/irccloud.com/x-rxoskppdgceviaxb) (Ping timeout: 260 seconds) |
| 21:54:22 | × | jonrh quits (sid5185@gateway/web/irccloud.com/x-rdqetwxjttlljyjv) (Ping timeout: 260 seconds) |
| 21:54:22 | × | Cir0X quits (sid221743@gateway/web/irccloud.com/x-pbplgsntntnfncyd) (Ping timeout: 260 seconds) |
| 21:54:22 | × | bitonic quits (sid61915@gateway/web/irccloud.com/x-ttnjiqhzlxpwrect) (Ping timeout: 260 seconds) |
| 21:54:39 | × | dsturnbull quits (sid347899@gateway/web/irccloud.com/x-inyrzexxuloskcia) (Ping timeout: 272 seconds) |
| 21:54:39 | × | nh2 quits (sid309956@gateway/web/irccloud.com/x-iisiycrpvvmdqvri) (Ping timeout: 272 seconds) |
| 21:54:39 | × | cemerick quits (sid54985@gateway/web/irccloud.com/x-cavipfrpgeccrwhx) (Ping timeout: 272 seconds) |
| 21:54:39 | × | systemfault quits (sid267009@gateway/web/irccloud.com/x-wamvuwnhvmmhuwor) (Ping timeout: 272 seconds) |
| 21:54:39 | × | ReinH__ quits (sid179972@gateway/web/irccloud.com/x-iqviielvspfzhzdh) (Ping timeout: 272 seconds) |
| 21:54:39 | × | darthThorik quits (sid39589@gateway/web/irccloud.com/x-bheqtddrvymsaipm) (Ping timeout: 272 seconds) |
| 21:54:39 | × | srhb quits (sid400352@NixOS/user/srhb) (Ping timeout: 272 seconds) |
| 21:54:42 | × | Firedancer quits (sid336191@gateway/web/irccloud.com/x-sstfhgxjcldlniie) (Ping timeout: 260 seconds) |
| 21:54:42 | × | wildsebastian quits (sid324688@gateway/web/irccloud.com/x-fdvhisdzgkkbymer) (Ping timeout: 260 seconds) |
| 21:54:42 | × | jlpeters quits (sid25606@gateway/web/irccloud.com/x-asdpksetnctvsero) (Ping timeout: 260 seconds) |
| 21:54:50 | × | o1lo01ol1o quits (~o1lo01ol1@bl8-213-81.dsl.telepac.pt) (Read error: Connection reset by peer) |
| 21:55:01 | → | o1lo01ol1o joins (~o1lo01ol1@bl8-213-81.dsl.telepac.pt) |
| 21:55:07 | × | Orbstheorem quits (~roosember@hellendaal.orbstheorem.ch) (Ping timeout: 240 seconds) |
| 21:55:24 | × | elliott_ quits (~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
| 21:55:27 | → | priyesh joins (~priyesh@84.39.117.57) |
| 21:55:33 | → | adius joins (sid321344@gateway/web/irccloud.com/x-hdzjqmobobrptkzk) |
| 21:55:33 | → | kip joins (sid71464@gateway/web/irccloud.com/x-fjkihcelyqagzxka) |
| 21:55:33 | → | conjunctive joins (sid433686@gateway/web/irccloud.com/x-hgrhllzbreepikwl) |
| 21:55:35 | → | bjs joins (sid190364@gateway/web/irccloud.com/x-aabmdlfloeindmzc) |
| 21:55:38 | → | parseval joins (sid239098@gateway/web/irccloud.com/x-wfyohitmdltgloed) |
| 21:55:40 | → | pasukon joins (sid49097@gateway/web/irccloud.com/x-lvmzgpypnmechtdl) |
| 21:55:40 | → | koankeeper joins (sid216950@gateway/web/irccloud.com/x-khuknondgmnqwpfb) |
| 21:55:40 | → | Kamuela joins (sid111576@gateway/web/irccloud.com/x-kfraqxxakmiuotqp) |
| 21:55:41 | → | mpickering joins (sid78412@gateway/web/irccloud.com/x-gsxeeazgdrkchphy) |
| 21:55:42 | → | caasih joins (sid13241@gateway/web/irccloud.com/x-luakympvtdjyqgpe) |
| 21:55:43 | → | jetpack_joe joins (sid146137@gateway/web/irccloud.com/x-fcijrdwmdwvwvjor) |
| 21:55:43 | → | pent joins (sid313808@gateway/web/irccloud.com/x-yjtwetnkogukpzmx) |
| 21:55:48 | → | Aquazi joins (uid312403@gateway/web/irccloud.com/x-cicafdvoiqgnsxlq) |
| 21:55:51 | → | kozowu joins (uid44796@gateway/web/irccloud.com/x-mavyewbrkcrhqppw) |
| 21:55:53 | → | SrPx joins (sid108780@gateway/web/irccloud.com/x-okcdajrvcwspmiib) |
| 21:55:54 | → | sclv joins (sid39734@haskell/developer/sclv) |
| 21:55:54 | → | rann joins (sid175221@gateway/web/irccloud.com/x-hsipljbilyngvaij) |
| 21:55:55 | → | glowcoil joins (sid3405@gateway/web/irccloud.com/x-lstfnintbamvabrb) |
| 21:55:56 | → | dgpratt joins (sid193493@gateway/web/irccloud.com/x-wpigpkrirfdonsca) |
| 21:55:56 | → | mankyKitty joins (sid31287@gateway/web/irccloud.com/x-talstgcllctsrrfx) |
| 21:55:56 | → | gaze__ joins (sid387101@gateway/web/irccloud.com/x-qmornwhjznbupdqr) |
| 21:55:57 | → | nh2 joins (sid309956@gateway/web/irccloud.com/x-pqceayhznxhzktfg) |
| 21:55:58 | → | rdivyanshu joins (sid322626@gateway/web/irccloud.com/x-otfoczynxqkuwcfm) |
| 21:55:59 | → | idnar joins (sid12240@gateway/web/irccloud.com/x-mrabweihkflesyxk) |
| 21:56:00 | → | edmundnoble joins (sid229620@gateway/web/irccloud.com/x-xrnysnfynyaztlfh) |
| 21:56:00 | → | bgavran joins (sid393312@gateway/web/irccloud.com/x-utpuhsntfvyeuxwq) |
| 21:56:00 | → | enemeth79 joins (sid309041@gateway/web/irccloud.com/x-qzhpyccgmuuqsrsi) |
| 21:56:02 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds) |
| 21:56:03 | → | bitmapper joins (uid464869@gateway/web/irccloud.com/x-jdjhyordzkibihwa) |
| 21:56:04 | → | aizen_s joins (sid462968@gateway/web/irccloud.com/x-xinbndxmgepgligq) |
| 21:56:05 | → | chpatrick joins (sid239395@gateway/web/irccloud.com/x-enbwaldjayrccrvg) |
| 21:56:08 | → | hazard-pointer joins (sid331723@gateway/web/irccloud.com/x-neubmonftmwlbqas) |
| 21:56:10 | → | liquorice joins (sid267884@gateway/web/irccloud.com/x-hozrupsabnlghimn) |
| 21:56:10 | → | benl23 joins (sid284234@gateway/web/irccloud.com/x-mykntzjgnngsyngw) |
| 21:56:10 | → | edwardk joins (sid47016@haskell/developer/edwardk) |
| 21:56:10 | → | aristid joins (sid1599@gateway/web/irccloud.com/x-wgvcorkiyhxgnpel) |
| 21:56:12 | → | cstrahan joins (sid36118@gateway/web/irccloud.com/x-ceukpoxrsnzpwlkj) |
| 21:56:14 | → | AndreasK joins (sid320732@gateway/web/irccloud.com/x-degmzwhevcbnxqim) |
| 21:56:14 | → | albethere joins (sid457088@gateway/web/irccloud.com/x-kdubkdobgmtjdtxg) |
| 21:56:15 | → | drupol joins (sid117588@gateway/web/irccloud.com/x-rynwclhcvdkvjpek) |
| 21:56:15 | → | jlpeters joins (sid25606@gateway/web/irccloud.com/x-exhssvdoqfiaasbd) |
| 21:56:15 | → | higherorder joins (sid185221@gateway/web/irccloud.com/x-jdkrtrawpxzgiheg) |
| 21:56:16 | → | buggymcbugfix joins (sid432603@gateway/web/irccloud.com/x-fjvfxmicxyzmpfmg) |
| 21:56:17 | → | bitonic joins (sid61915@gateway/web/irccloud.com/x-qsklantsesnflaev) |
| 21:56:17 | → | tnks joins (sid412124@gateway/web/irccloud.com/x-ucsxwstjhtlsvuiy) |
| 21:56:18 | → | alunduil joins (alunduil@gateway/web/irccloud.com/x-upaxhaxxkezwifdm) |
| 21:56:21 | → | liszt joins (sid336875@gateway/web/irccloud.com/x-fgkyqbrdplybngov) |
| 21:56:23 | → | o1lo01ol_ joins (~o1lo01ol1@bl8-213-81.dsl.telepac.pt) |
| 21:56:23 | → | PoliticsII____ joins (sid193551@gateway/web/irccloud.com/x-hownnnwfspnbpudf) |
| 21:56:24 | → | xyggos joins (uid216035@gateway/web/irccloud.com/x-lhaarqbamcocycpv) |
| 21:56:24 | → | elliott_ joins (~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) |
| 21:56:26 | → | adamse joins (sid72084@gateway/web/irccloud.com/x-zzuaotsqlmzvumul) |
| 21:56:27 | → | nlofaro joins (sid258233@gateway/web/irccloud.com/x-yqtwjxxgifuvztsm) |
| 21:56:27 | → | joshmeredith joins (sid387798@gateway/web/irccloud.com/x-lhhtwrcyukiolswv) |
| 21:56:27 | → | darthThorik joins (sid39589@gateway/web/irccloud.com/x-sgyzfgzinerqmyki) |
| 21:56:29 | → | spew joins (uid195861@gateway/web/irccloud.com/x-fpkdkamqeywbdxvp) |
| 21:56:30 | → | heyj joins (sid171370@gateway/web/irccloud.com/x-lkawpqiwbkazqhbr) |
| 21:56:31 | → | alexknvl joins (sid259568@gateway/web/irccloud.com/x-shhushfytlhxjajz) |
| 21:56:31 | → | Shun131 joins (sid377723@gateway/web/irccloud.com/x-dfpyabbpewgqppso) |
| 21:56:31 | → | srhb joins (sid400352@NixOS/user/srhb) |
| 21:56:32 | → | FMJz____ joins (sid279245@gateway/web/irccloud.com/x-fkwwfjqdqgntnoof) |
| 21:56:33 | → | feepo joins (sid28508@gateway/web/irccloud.com/x-pklyfcxlyitgyefj) |
| 21:56:35 | → | hamishmack joins (sid389057@gateway/web/irccloud.com/x-joqbkxseaudzewuy) |
| 21:56:36 | → | carter joins (sid14827@gateway/web/irccloud.com/x-ulfazeqjsbkemqzk) |
| 21:56:36 | → | ReinH__ joins (sid179972@gateway/web/irccloud.com/x-vgpjckyigmgjdwtk) |
| 21:56:38 | → | wildsebastian joins (sid324688@gateway/web/irccloud.com/x-erwaomugptysqssz) |
| 21:56:38 | → | drbrule joins (sid395654@gateway/web/irccloud.com/x-cqgwchvakrtjjklm) |
| 21:56:39 | → | constR joins (uid58205@gateway/web/irccloud.com/x-szdnojhbzltywegh) |
| 21:56:39 | → | Boarders joins (sid425905@gateway/web/irccloud.com/x-hphcbtvbxebihmwg) |
| 21:56:40 | → | ^[_ joins (sid43445@gateway/web/irccloud.com/x-eiyktghegavpjkto) |
| 21:56:43 | → | Adeon joins (sid418992@gateway/web/irccloud.com/x-abdgcghyselnrphw) |
| 21:56:46 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 21:56:47 | → | J_Arcane joins (sid119274@gateway/web/irccloud.com/x-onnffueiprgvpemg) |
| 21:56:48 | × | elliott_ quits (~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
| 21:56:48 | → | systemfault joins (sid267009@gateway/web/irccloud.com/x-dhvxgxaiixztrssx) |
| 21:56:49 | → | Cir0X joins (sid221743@gateway/web/irccloud.com/x-evcopvnmbvtlefpi) |
| 21:56:49 | → | fweht joins (uid404746@gateway/web/irccloud.com/x-tjcgtmdwgfjwwrvb) |
| 21:56:50 | → | jonrh joins (sid5185@gateway/web/irccloud.com/x-kooeapdfcwrhfwoh) |
| 21:56:52 | → | dmj` joins (sid72307@gateway/web/irccloud.com/x-svykqxbmoatuuexu) |
| 21:56:54 | → | alanz joins (sid110616@gateway/web/irccloud.com/x-xxwlmdhgwfiixuer) |
| 21:56:55 | → | tiru joins (tiru@gateway/web/irccloud.com/x-gfuwglvcfdlytqib) |
| 21:56:56 | → | dsal joins (sid13060@gateway/web/irccloud.com/x-xyknplqixjlyzxrc) |
| 21:56:56 | → | verlet64_ joins (sid261276@gateway/web/irccloud.com/x-wqinasijpftynmsg) |
| 21:56:56 | → | JSharp joins (sid4580@wikia/JSharp) |
| 21:57:00 | → | Nascha joins (sid212230@gateway/web/irccloud.com/x-qojdwpoczxkroamg) |
| 21:57:01 | → | wroathe joins (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) |
| 21:57:02 | → | ullbeking joins (sid5364@gateway/web/irccloud.com/x-uurdaxugthoxygpu) |
| 21:57:04 | → | thi joins (sid97277@gateway/web/irccloud.com/x-mxfhyckwttphlfps) |
| 21:57:05 | → | grfn joins (sid449115@gateway/web/irccloud.com/x-wfhscjdtkvezcxxr) |
| 21:57:05 | → | kyagrd__ joins (sid102627@gateway/web/irccloud.com/x-ueauikqbfiitnall) |
| 21:57:05 | → | rodlogic__ joins (sid214676@gateway/web/irccloud.com/x-amlajdzmxjyobgrq) |
| 21:57:07 | → | integral joins (sid296274@p3m/member/integral) |
| 21:57:13 | → | cemerick joins (sid54985@gateway/web/irccloud.com/x-latpmrffuxrdviie) |
| 21:57:14 | → | hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-arhqczabjmakjtmj) |
| 21:57:14 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 21:57:16 | → | mu_ joins (~mu@unaffiliated/mu) |
| 21:57:16 | → | sethetter__ joins (sid17895@gateway/web/irccloud.com/x-igokhppslfuoizhb) |
| 21:57:22 | → | lexi-lambda joins (sid92601@gateway/web/irccloud.com/x-jxufrnuiocmjeutw) |
| 21:57:23 | → | nick_h joins (sid319833@gateway/web/irccloud.com/x-utxytiydddaakjtw) |
| 21:57:28 | → | alehander92 joins (sid331460@gateway/web/irccloud.com/x-nsbojrlduleyvwek) |
| 21:57:29 | → | graingert joins (sid128301@gateway/web/irccloud.com/x-bllwrkosbcfwbepb) |
| 21:57:30 | → | jackdk joins (sid373013@gateway/web/irccloud.com/x-zfxvkywjzvccpywo) |
| 21:57:33 | → | ibloom joins (sid350277@gateway/web/irccloud.com/x-sdzgxluappwccdwo) |
| 21:57:33 | → | newhoggy joins (sid198874@gateway/web/irccloud.com/x-ajbxvvzkmwoozmcf) |
| 21:57:33 | → | runeks joins (sid21167@gateway/web/irccloud.com/x-goodnfpseiwfywis) |
| 21:57:36 | → | sgraf joins (sid326656@gateway/web/irccloud.com/x-xhygnbznyfdcpzbn) |
| 21:57:50 | → | elliott_ joins (~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) |
| 21:57:52 | → | ProofTechnique joins (sid79547@gateway/web/irccloud.com/x-kqyovfdcbjptkkuq) |
| 21:58:19 | → | mcfilib joins (sid302703@gateway/web/irccloud.com/x-rynmppnojynjznyn) |
| 21:58:22 | → | dsturnbull joins (sid347899@gateway/web/irccloud.com/x-xjhlceifjqvpqvdm) |
| 21:58:25 | → | betawaffle joins (sid2730@gateway/web/irccloud.com/x-orjomwskylmorsde) |
| 21:58:32 | → | Firedancer joins (sid336191@gateway/web/irccloud.com/x-cywbocoitmzxkenh) |
| 21:58:34 | × | filwisher quits (~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 272 seconds) |
| 21:59:11 | → | affinespaces joins (sid327561@gateway/web/irccloud.com/x-vnawyltnmuxsidss) |
| 21:59:38 | × | o1lo01ol1o quits (~o1lo01ol1@bl8-213-81.dsl.telepac.pt) (Ping timeout: 260 seconds) |
| 22:00:21 | → | simony joins (sid226116@gateway/web/irccloud.com/x-dmnnvhhbweuqxcvx) |
| 22:00:27 | × | falafel_ quits (~falafel@2605:e000:1527:d491:f090:20fe:cddf:2a1a) (Ping timeout: 240 seconds) |
| 22:01:25 | × | elliott_ quits (~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
| 22:01:40 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
| 22:02:16 | → | elliott_ joins (~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) |
| 22:02:22 | → | gluegadget joins (sid22336@gateway/web/irccloud.com/x-xozlpymtatjtbivu) |
| 22:03:02 | × | thir quits (~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 22:03:30 | → | thir joins (~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) |
| 22:03:47 | × | nbloomf quits (~nbloomf@2600:1700:83e0:1f40:1912:3cad:d0f5:3993) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 22:04:39 | → | Tritlo joins (sid58727@gateway/web/irccloud.com/x-vuffzyrxnybrguux) |
| 22:05:44 | × | wroathe quits (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Quit: leaving) |
| 22:05:58 | × | ystael quits (~ystael@209.6.50.55) (Ping timeout: 246 seconds) |
| 22:06:04 | → | bitmagie joins (~Thunderbi@200116b80673370090ed3453f880395e.dip.versatel-1u1.de) |
| 22:07:11 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 22:07:17 | → | mu__ joins (~mu@unaffiliated/mu) |
| 22:07:26 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 22:07:28 | × | elliott_ quits (~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
| 22:07:47 | × | thir quits (~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 22:08:22 | → | elliott_ joins (~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) |
| 22:08:47 | × | fendor quits (~fendor@77.119.130.118.wireless.dyn.drei.com) (Remote host closed the connection) |
| 22:10:13 | × | xcmw quits (~textual@dyn-72-33-0-89.uwnet.wisc.edu) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 22:11:46 | × | mu__ quits (~mu@unaffiliated/mu) (Ping timeout: 265 seconds) |
| 22:11:55 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds) |
| 22:13:57 | × | bitmagie quits (~Thunderbi@200116b80673370090ed3453f880395e.dip.versatel-1u1.de) (Quit: bitmagie) |
| 22:15:40 | × | elliott_ quits (~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
| 22:16:49 | notzmv` | is now known as notzmv |
| 22:16:57 | × | notzmv quits (~user@179.100.115.46) (Changing host) |
| 22:16:57 | → | notzmv joins (~user@unaffiliated/zmv) |
| 22:17:28 | × | constR quits (uid58205@gateway/web/irccloud.com/x-szdnojhbzltywegh) (Quit: Connection closed for inactivity) |
| 22:17:28 | hackage | free-categories 0.2.0.1 - free categories https://hackage.haskell.org/package/free-categories-0.2.0.1 (echatav) |
| 22:18:25 | → | elliott_ joins (~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) |
| 22:19:46 | → | filwisher joins (~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) |
| 22:22:27 | → | o1lo01ol1o joins (~o1lo01ol1@bl8-213-81.dsl.telepac.pt) |
| 22:22:29 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 22:22:47 | × | o1lo01ol_ quits (~o1lo01ol1@bl8-213-81.dsl.telepac.pt) (Read error: Connection reset by peer) |
| 22:26:40 | → | mu_ joins (~mu@unaffiliated/mu) |
| 22:31:38 | × | quinn quits (~quinn@c-73-223-224-163.hsd1.ca.comcast.net) (Ping timeout: 256 seconds) |
| 22:31:45 | × | sagax quits (~sagax_nb@213.138.71.146) (Remote host closed the connection) |
| 22:32:01 | → | wroathe joins (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) |
| 22:32:29 | × | zacts quits (~zacts@dragora/developer/zacts) (Quit: leaving) |
| 22:35:26 | → | quinn joins (~quinn@c-73-223-224-163.hsd1.ca.comcast.net) |
| 22:37:43 | × | mu_ quits (~mu@unaffiliated/mu) (Ping timeout: 260 seconds) |
| 22:40:10 | → | thir joins (~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) |
| 22:41:18 | × | Jesin quits (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving) |
| 22:42:24 | × | abdullah__ quits (~LeghariK@37.111.129.221) (Quit: Leaving) |
| 22:46:11 | × | son0p quits (~son0p@181.136.122.143) (Remote host closed the connection) |
| 22:46:21 | → | ces joins (~ces@52d3ce3c.dynamic-ip.k-net.dk) |
| 22:47:03 | → | somek joins (b55ebc21@181.94.188.33) |
| 22:47:12 | <somek> | hello |
| 22:48:07 | × | thir quits (~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 22:48:53 | → | snakemasterflex joins (~snakemast@213.100.206.23) |
| 22:48:53 | <ski> | hello |
| 22:49:32 | <koz_> | hello |
| 22:49:41 | → | Jesin joins (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) |
| 22:50:11 | × | ransom quits (~c4264035@undergraduate-jvossen-9690.mines.edu) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 22:50:46 | → | falafel_ joins (~falafel@2605:e000:1527:d491:f090:20fe:cddf:2a1a) |
| 22:50:46 | × | madjestic quits (~madjestic@86-88-72-244.fixed.kpn.net) (Ping timeout: 246 seconds) |
| 22:51:37 | ski | looks at somek |
| 22:52:12 | → | mu_ joins (~mu@unaffiliated/mu) |
| 22:52:54 | × | elliott_ quits (~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) (Ping timeout: 258 seconds) |
| 22:53:35 | × | snakemasterflex quits (~snakemast@213.100.206.23) (Ping timeout: 260 seconds) |
| 22:55:08 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 22:55:20 | → | mu_ joins (~mu@unaffiliated/mu) |
| 22:56:11 | × | cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving) |
| 22:57:42 | koz_ | looks at somek |
| 22:59:06 | → | elliott_ joins (~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) |
| 22:59:16 | × | int-e quits (~noone@int-e.eu) (Remote host closed the connection) |
| 23:00:18 | → | int-e joins (~noone@int-e.eu) |
| 23:01:26 | → | tmciver joins (~tmciver@cpe-172-101-40-226.maine.res.rr.com) |
| 23:04:22 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:b248:7aff:feea:34b6) (Ping timeout: 260 seconds) |
| 23:04:47 | × | filwisher quits (~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 258 seconds) |
| 23:04:49 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 23:04:52 | × | lambdabot quits (~lambdabot@haskell/bot/lambdabot) (Remote host closed the connection) |
| 23:05:12 | → | mu_ joins (~mu@unaffiliated/mu) |
| 23:05:21 | → | lambdabot joins (~lambdabot@silicon.int-e.eu) |
| 23:05:21 | × | lambdabot quits (~lambdabot@silicon.int-e.eu) (Changing host) |
| 23:05:21 | → | lambdabot joins (~lambdabot@haskell/bot/lambdabot) |
| 23:05:25 | × | DavidEichmann quits (~david@43.240.198.146.dyn.plus.net) (Ping timeout: 240 seconds) |
| 23:05:42 | × | xerox_ quits (~xerox@unaffiliated/xerox) (Ping timeout: 272 seconds) |
| 23:09:05 | × | somek quits (b55ebc21@181.94.188.33) (Remote host closed the connection) |
| 23:10:44 | × | isovector1 quits (~isovector@172.103.216.166.cable.tpia.cipherkey.com) (Read error: Connection reset by peer) |
| 23:10:49 | → | isovector1_ joins (~isovector@172.103.216.166.cable.tpia.cipherkey.com) |
| 23:11:52 | → | carter01 joins (47b896d8@pool-71-184-150-216.bstnma.fios.verizon.net) |
| 23:12:46 | <carter01> | Hello! Does anyone use Coc with the haskell language server? I can get codelenses to appear but I don't know how to apply them. Does anyone know how? Is there another vim setting that allows this? |
| 23:13:08 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 23:16:27 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 23:16:40 | → | mu_ joins (~mu@unaffiliated/mu) |
| 23:20:56 | × | mtae quits (uid179115@gateway/web/irccloud.com/x-cumufbtgommkesrd) (Quit: Connection closed for inactivity) |
| 23:24:28 | hackage | free-categories 0.2.0.2 - free categories https://hackage.haskell.org/package/free-categories-0.2.0.2 (echatav) |
| 23:24:32 | × | xff0x quits (~fox@2001:1a81:53b0:3c00:3d6a:e40e:1e13:6b86) (Ping timeout: 260 seconds) |
| 23:24:52 | → | zacts joins (~zacts@dragora/developer/zacts) |
| 23:24:52 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 23:25:12 | → | mu_ joins (~mu@unaffiliated/mu) |
| 23:25:44 | → | xff0x joins (~fox@2001:1a81:53b0:3c00:e98b:1e53:4e8a:cb9b) |
| 23:29:51 | → | Stanley00 joins (~stanley00@unaffiliated/stanley00) |
| 23:31:56 | × | Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
| 23:32:00 | × | josh_ quits (~josh@c-67-164-104-206.hsd1.ca.comcast.net) (Read error: Connection reset by peer) |
| 23:32:39 | → | josh_ joins (~josh@c-67-164-104-206.hsd1.ca.comcast.net) |
| 23:32:56 | × | ryansmccoy quits (~ryansmcco@156.96.151.132) (Ping timeout: 272 seconds) |
| 23:33:12 | → | ryansmccoy joins (~ryansmcco@156.96.151.132) |
| 23:33:18 | → | sfvm joins (~sfvm@37.228.215.148) |
| 23:33:52 | × | falafel_ quits (~falafel@2605:e000:1527:d491:f090:20fe:cddf:2a1a) (Ping timeout: 260 seconds) |
| 23:34:35 | × | Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 240 seconds) |
| 23:34:47 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 23:35:12 | → | mu_ joins (~mu@unaffiliated/mu) |
| 23:35:42 | × | fweht quits (uid404746@gateway/web/irccloud.com/x-tjcgtmdwgfjwwrvb) (Quit: Connection closed for inactivity) |
| 23:37:07 | × | borne quits (~fritjof@200116b864231000537d5cc8226f9d9f.dip.versatel-1u1.de) (Ping timeout: 240 seconds) |
| 23:37:27 | → | borne joins (~fritjof@200116b864231000537d5cc8226f9d9f.dip.versatel-1u1.de) |
| 23:38:50 | → | xerox_ joins (~xerox@unaffiliated/xerox) |
| 23:40:11 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 23:40:39 | → | filwisher joins (~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) |
| 23:42:00 | × | Wuzzy quits (~Wuzzy@p5790e6f5.dip0.t-ipconnect.de) (Quit: Wuzzy) |
| 23:44:11 | × | elliott_ quits (~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
| 23:45:36 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
| 23:45:52 | → | mu__ joins (~mu@unaffiliated/mu) |
| 23:46:04 | × | mu_ quits (~mu@unaffiliated/mu) (Read error: Connection reset by peer) |
| 23:46:14 | × | filwisher quits (~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 272 seconds) |
| 23:47:43 | × | mnrmnaughmnrgle quits (~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 258 seconds) |
| 23:48:07 | × | mnrmnaugh quits (~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 260 seconds) |
| 23:53:11 | → | mnrmnaughmnrgle joins (~mnrmnaugh@unaffiliated/mnrmnaugh) |
| 23:53:49 | → | mnrmnaugh joins (~mnrmnaugh@unaffiliated/mnrmnaugh) |
| 23:54:04 | × | carter01 quits (47b896d8@pool-71-184-150-216.bstnma.fios.verizon.net) (Remote host closed the connection) |
| 23:54:09 | → | Orbstheorem joins (~roosember@hellendaal.orbstheorem.ch) |
| 23:55:36 | → | elliott_ joins (~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) |
| 23:56:29 | → | glguy_ joins (x@freenode/staff/haskell.developer.glguy) |
| 23:56:29 | glguy | is now known as Guest84590 |
| 23:56:29 | × | Guest84590 quits (x@freenode/staff/haskell.developer.glguy) (Killed (weber.freenode.net (Nickname regained by services))) |
| 23:56:29 | glguy_ | is now known as glguy |
| 23:57:03 | × | mu__ quits (~mu@unaffiliated/mu) (Ping timeout: 260 seconds) |
| 23:57:47 | × | solonarv quits (~solonarv@astrasbourg-653-1-252-112.w92-161.abo.wanadoo.fr) (Ping timeout: 240 seconds) |
All times are in UTC on 2020-09-29.