2021/02/21

2021-02-21 00:00:03 +0100 <dolio> Not that it's a serious problem.
2021-02-21 00:00:28 +0100 <merijn> dolio: ANything is a good excuse if you're not getting paid to work on something :p
2021-02-21 00:00:34 +0100fendor(~fendor@91.141.3.212.wireless.dyn.drei.com) (Remote host closed the connection)
2021-02-21 00:00:39 +0100 <sclv> merijn: i only know because i've run into it. also like configure --help lists -j which is a build only option etc. basically all the v2 commands list all the v2 options i think :-/
2021-02-21 00:00:50 +0100 <monochrom> command-(ir)relevant flags, I think the intention is still command-relevant flags but maybe there are a few bugs lying around.
2021-02-21 00:00:58 +0100 <dolio> I mean, if you don't want to figure out the terminal width somehow, it could just be formatted at fewer than 100+ characters wide.
2021-02-21 00:01:04 +0100polyrain(~polyrain@2001:8003:e4d8:4101:d1d2:4fc1:88fa:56)
2021-02-21 00:01:07 +0100 <merijn> sclv: For sure not all of them
2021-02-21 00:01:14 +0100 <dolio> Something more like 70.
2021-02-21 00:01:16 +0100 <merijn> sclv: Because v2-build doens't list --repl-options :)
2021-02-21 00:01:41 +0100 <merijn> dolio: It is less wide than 100 here, though?
2021-02-21 00:01:57 +0100 <dolio> Well, whatever it is, it's consistently wider than I run most terminals.
2021-02-21 00:01:58 +0100 <merijn> It linewraps before the end of my terminal at least
2021-02-21 00:02:00 +0100 <sclv> true enough, but its still got a big mess. anyway that's my really only gripe with --help
2021-02-21 00:02:47 +0100 <monochrom> But, most flags for configure are now relevant to build, run, exec, install too because the semantics of configure has changed (it just saves flags to cabal.project.local) and you don't require you to "configure", you can specify config at the build command etc.
2021-02-21 00:03:18 +0100frozenErebus(~frozenEre@94.128.219.166)
2021-02-21 00:03:41 +0100Tario(~Tario@201.192.165.173)
2021-02-21 00:03:44 +0100 <monochrom> Actually, that could use some clarification by v1- and v2- prefixes
2021-02-21 00:04:13 +0100 <monochrom> But, most flags for v1-configure are now relevant to v2-build, v2-run, v2-exec, v2-install too because the semantics of configure has changed (it just saves flags to cabal.project.local) and you don't require you to "v2-configure", you can specify config at the v2-build command etc.
2021-02-21 00:05:40 +0100 <monochrom> v2-configure -j also just saves the equiv of -j to cabal.project.local so you don't have to repeat it when you v2-build. This is why -j can be legit for v2-configure.
2021-02-21 00:06:12 +0100 <merijn> -j *is* legit for v2-configure
2021-02-21 00:06:17 +0100 <monochrom> It's a paradigm change from v1 to v2. It's why I think that most flags are justified and relevant.
2021-02-21 00:06:18 +0100 <merijn> In fact, I use it in my build system
2021-02-21 00:06:52 +0100 <monochrom> s/change/shift/ # more idiomatic
2021-02-21 00:07:05 +0100 <merijn> sclv: ^^ I glossed over that in your comment, -j is totally valid in configure
2021-02-21 00:07:15 +0100 <dolio> It's also wide just because it's not using space efficiently, because a couple flags are super long, so you get a big blank space in the middle.
2021-02-21 00:07:31 +0100 <monochrom> I think I did find a few flags that's effectless. But I chalk it up as bugs. And they're few.
2021-02-21 00:07:36 +0100 <merijn> sclv: "cabal configure -jN" ends up adding "jobs: N" to your cabal.project.local
2021-02-21 00:07:53 +0100 <sclv> ok, well shows what i know :-P
2021-02-21 00:07:56 +0100frozenErebus(~frozenEre@94.128.219.166) (Ping timeout: 240 seconds)
2021-02-21 00:08:35 +0100 <merijn> I run "cabal configure -j24" in my makefile to ensure any following cabal build calls are fast :p
2021-02-21 00:08:36 +0100knupfer(~Thunderbi@mue-88-130-61-090.dsl.tropolys.de) (Ping timeout: 240 seconds)
2021-02-21 00:09:37 +0100 <monochrom> [deep bass movie trailer voice] "You unlearned C when you learned Haskell. Now you have to unlearn v1 when you learn v2." >:)
2021-02-21 00:10:10 +0100 <monochrom> You have much RAM too? That's the real bottleneck usually...
2021-02-21 00:10:23 +0100 <merijn> monochrom: 192 GB in the cluster headnode ;)
2021-02-21 00:10:54 +0100 <monochrom> OK you'll do fine.
2021-02-21 00:11:02 +0100 <monochrom> I mean that's epic.
2021-02-21 00:11:15 +0100 <merijn> monochrom: I once nearly OOmed the machine using Chart >.>
2021-02-21 00:11:20 +0100Deide(~Deide@217.155.19.23) (Quit: Seeee yaaaa)
2021-02-21 00:11:46 +0100 <merijn> Pro-tip: Chart-cairo does *not* deal well with trying to plot scatter plots involving a few billion points >.>
2021-02-21 00:12:04 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-02-21 00:12:52 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
2021-02-21 00:14:27 +0100 <dolio> Although strictly speaking, the right hand column could benefit from being wider if the long flag didn't take up so much space on the left hand. But I think it would really just be better not beinig a table.
2021-02-21 00:14:57 +0100fosterite(~fosterite@2600:6c46:7800:fecf:8018:3f0e:7ad8:4be9)
2021-02-21 00:15:39 +0100usr25(~usr25@unaffiliated/usr25)
2021-02-21 00:16:09 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
2021-02-21 00:17:24 +0100Tario(~Tario@201.192.165.173) (Ping timeout: 246 seconds)
2021-02-21 00:20:56 +0100mirrorbird(~psutcliff@2a00:801:44d:603d:d116:d5a1:4a2f:a08f) (Quit: Leaving)
2021-02-21 00:24:16 +0100pera(~pera@unaffiliated/pera) (Ping timeout: 240 seconds)
2021-02-21 00:24:26 +0100 <monochrom> Is Chart written in Haskell? That may be why...
2021-02-21 00:24:49 +0100 <merijn> monochrom: It is, then again, matplotlib doesn't act any more graceful
2021-02-21 00:26:37 +0100dunj3(~dunj3@p200300f61714a6752268fca81a1a85c0.dip0.t-ipconnect.de) (Remote host closed the connection)
2021-02-21 00:27:24 +0100ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Remote host closed the connection)
2021-02-21 00:28:23 +0100ep1ctetus(~epictetus@ip72-194-215-136.sb.sd.cox.net)
2021-02-21 00:28:45 +0100 <Tordek> so, I have this: https://paste.tomsmeding.com/xodHLX3D; 2 questions: 1. can a "Device" monad be extracted so that instead of "Device (Write 1) (\busState -> foo" I can do "busState <- tick (Write 1)"?
2021-02-21 00:29:46 +0100 <Tordek> and 2: some Devices would need IO, is there an easy way to convert "BusState -> Device" into "BusState-> IO Device"?
2021-02-21 00:30:01 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-02-21 00:30:40 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2021-02-21 00:31:51 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-21 00:32:14 +0100 <monochrom> My finger memory is broken. I tried to type "chmod", I kept typing "ghcmod".
2021-02-21 00:33:40 +0100 <dolio> The true danger of using IDE tools.
2021-02-21 00:34:06 +0100 <monochrom> No, I never used ghcmod.
2021-02-21 00:34:13 +0100Tario(~Tario@200.119.185.160)
2021-02-21 00:34:39 +0100 <monochrom> Instead, I always used ghc, and my brain decided "you typed 'ch', surely you mean 'ghc', let me correct that for you..."
2021-02-21 00:34:53 +0100 <monochrom> So, the true danger of not using IDE tools haha.
2021-02-21 00:35:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-02-21 00:35:57 +0100 <MarcelineVQ> ghroot
2021-02-21 00:36:41 +0100 <ski> (i've noticed i've typoed "typo" as "type", at times)
2021-02-21 00:36:54 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 260 seconds)
2021-02-21 00:36:58 +0100 <monochrom> dependent typo \∩/
2021-02-21 00:37:16 +0100 <ski> that would be the other way around :)
2021-02-21 00:37:27 +0100 <divVerent> I am ghroot
2021-02-21 00:38:06 +0100 <divVerent> Typoing the word "typo" is worthy of a Haskell programmer
2021-02-21 00:40:02 +0100bbear(~znc@21212.s.t4vps.eu)
2021-02-21 00:41:16 +0100 <bbear> Hello, can you help me ? http://pastie.org/p/4gxzEMMmV01kkmWJCO2Rjn
2021-02-21 00:42:10 +0100 <ski> apply the suggested fix
2021-02-21 00:42:19 +0100 <hyiltiz> bbear: it seems it is saying it clearly
2021-02-21 00:42:39 +0100 <hyiltiz> i.e. you are saying u can always Prelude.+ anything (anything <=> forall.a)
2021-02-21 00:42:48 +0100 <bbear> I don't understand context
2021-02-21 00:42:58 +0100 <hyiltiz> but you actually wanted to make sure it is at least a number
2021-02-21 00:43:01 +0100 <ski> you have an explicit type signature for `sum0', yes ?
2021-02-21 00:43:05 +0100loli(~loli@024-171-017-003.res.spectrum.com) (Quit: WeeChat 3.0)
2021-02-21 00:43:08 +0100 <monochrom> "context" means listing out the type classes you need
2021-02-21 00:43:14 +0100 <bbear> I have sum0 :: [a] -> a
2021-02-21 00:43:30 +0100 <hyiltiz> tell it that a is a number
2021-02-21 00:43:37 +0100 <bbear> Prelude.Num a
2021-02-21 00:43:39 +0100 <bbear> ha yes
2021-02-21 00:43:39 +0100 <hyiltiz> [Int] -> Int should work
2021-02-21 00:43:52 +0100 <hyiltiz> or give the context properly
2021-02-21 00:43:59 +0100 <bbear> I did sum0 :: Prelude.Num a => [a] -> a
2021-02-21 00:44:01 +0100 <bbear> it worked
2021-02-21 00:44:03 +0100 <ski> bbear : that signature promises to work for *all* types `a'. but your implementation only works when `a' is a numeric type (since it uses `0' and `+' for that type)
2021-02-21 00:44:04 +0100 <hyiltiz> yup :p
2021-02-21 00:44:11 +0100 <bbear> thanks
2021-02-21 00:44:29 +0100 <hyiltiz> now generalize that code for monoids :D
2021-02-21 00:44:37 +0100 <ski> by adding that type class constraint to the signature, you're only promising to work for all types `a', that happen to be instances of `Prelude.Num'
2021-02-21 00:45:41 +0100 <bbear> sum0 :: (Prelude.Num a, Prelude.Foldable t) => t a -> a ?
2021-02-21 00:45:44 +0100Mrbuck(~Mrbuck@gateway/tor-sasl/mrbuck)
2021-02-21 00:46:00 +0100 <ski> no, that's not what hyiltiz had in mind
2021-02-21 00:46:32 +0100 <ski> > getSum (mconcat [Sum n | n <- [2,3,5,7]])
2021-02-21 00:46:34 +0100 <lambdabot> 17
2021-02-21 00:46:48 +0100 <bbear> sorry I have to sleep
2021-02-21 00:46:56 +0100 <bbear> will be back for monoids
2021-02-21 00:47:15 +0100ski. o O ( "Monoids? In my programming language?" )
2021-02-21 00:47:18 +0100loli(~loli@024-171-017-003.res.spectrum.com)
2021-02-21 00:47:19 +0100 <Mrbuck> No please practise without sleeping
2021-02-21 00:47:55 +0100 <monochrom> Yeah monoid is a long story for another day.
2021-02-21 00:48:09 +0100polyrain(~polyrain@2001:8003:e4d8:4101:d1d2:4fc1:88fa:56) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-21 00:49:05 +0100 <ski> @quote associate.with
2021-02-21 00:49:05 +0100 <lambdabot> cmccann says: < cmccann> shachaf: nobody will associate with someone who breaks the monoid laws! < shachaf> cmccann: That's why I go by a secret identity.
2021-02-21 00:50:26 +0100acidjnk_new(~acidjnk@p200300d0c7390972b9ca7ed3a5659a38.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2021-02-21 00:51:28 +0100 <monochrom> hahaha
2021-02-21 00:56:47 +0100Kaiepi(~Kaiepi@47.54.252.148)
2021-02-21 00:57:04 +0100slack1256(~slack1256@dvc-186-186-101-190.movil.vtr.net)
2021-02-21 00:58:56 +0100Tario(~Tario@200.119.185.160) (Read error: Connection reset by peer)
2021-02-21 00:59:39 +0100alx741(~alx741@186.178.109.47)
2021-02-21 00:59:46 +0100Tario(~Tario@201.192.165.173)
2021-02-21 01:00:17 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-02-21 01:01:28 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-02-21 01:01:41 +0100frozenErebus(~frozenEre@94.128.219.166)
2021-02-21 01:01:47 +0100heatsink(~heatsink@2600:1700:bef1:5e10:2c3b:7c69:7266:b507)
2021-02-21 01:09:16 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-21 01:09:32 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-21 01:10:29 +0100 <koala_man> # ghc --version $(seq 1 93) -> The Glorious Glasgow Haskell Compilation System, version 8.8.4. # ghc --version $(seq 1 94) -> 3Error while loading /bin/s: No such file or directory
2021-02-21 01:10:35 +0100 <koala_man> man, no wonder my builds are failing randomly
2021-02-21 01:12:54 +0100 <monochrom> Hrm, that's strange, I don't get any failure with ghc --version $(seq 1 94). (bash, ubuntu)
2021-02-21 01:13:17 +0100 <monochrom> strange thing to do but even 1000 doesn't pose a problem.
2021-02-21 01:13:34 +0100 <koala_man> yeah it's undoubtedly due to my qemu-arm-static user mode emulation setup
2021-02-21 01:13:48 +0100 <koala_man> but it weirdly only happens for ghc, not ls
2021-02-21 01:13:50 +0100 <monochrom> Ah OK
2021-02-21 01:13:56 +0100 <monochrom> heh
2021-02-21 01:13:56 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
2021-02-21 01:14:39 +0100 <hyiltiz> Any optimization suggestions to make this more pleasant to look at/more general/more modular etc.?
2021-02-21 01:14:40 +0100 <hyiltiz> http://ix.io/2Q8k/haskell
2021-02-21 01:14:41 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-02-21 01:14:56 +0100 <koala_man> all my attempts at cross-compiling to armv7 have failed so I'm trying to emulate the whole armv7 userspace now, but then I get this weird thing that causes sufficiently long ghc invocations to fail
2021-02-21 01:16:24 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-21 01:17:35 +0100heatsink(~heatsink@2600:1700:bef1:5e10:2c3b:7c69:7266:b507) (Remote host closed the connection)
2021-02-21 01:18:38 +0100 <monochrom> koala_man, I suddenly recall that this may be a factor. GHC itself is a GHC-generated exe. All GHC exes may modify, not just read from, its argv, for the purpose of going through +RTS stuff and then removing that stuff.
2021-02-21 01:19:33 +0100 <monochrom> tldr GHC-generated exe can do something unusual to argv.
2021-02-21 01:21:27 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 265 seconds)
2021-02-21 01:22:19 +0100 <ski> hyiltiz : it would be possible not to have the repetition of the `15' case
2021-02-21 01:24:59 +0100 <hyiltiz> hmm, but that leads to an uglier plumbing later tho, no?
2021-02-21 01:25:23 +0100mirrorbird(~psutcliff@2a00:801:44d:603d:d116:d5a1:4a2f:a08f)
2021-02-21 01:25:32 +0100 <hyiltiz> right now it is essentially a map and filter
2021-02-21 01:25:33 +0100heatsink(~heatsink@2600:1700:bef1:5e10:2c3b:7c69:7266:b507)
2021-02-21 01:25:47 +0100 <hyiltiz> removing 15 would introduce a join somewhere
2021-02-21 01:26:32 +0100 <ski> a `concat', yes .. or an extra generator in a list comprehension
2021-02-21 01:26:49 +0100 <hyiltiz> anyway, the idea is: given this stupid question, what would "the most competitive candidate" would submit for review
2021-02-21 01:27:05 +0100 <ski> (not sure what later uglier plumbing you're having in mind)
2021-02-21 01:27:33 +0100 <ski> dunno what "most competitive" means, in this context
2021-02-21 01:28:21 +0100 <hyiltiz> ok; we are using questions like this to filter applications for a job training workshop
2021-02-21 01:28:37 +0100 <ski> (i could show the list comprehension i wrote. but perhaps you'd rather me not spoiling it, i dunno)
2021-02-21 01:29:08 +0100alx741(~alx741@186.178.109.47) (Quit: alx741)
2021-02-21 01:29:39 +0100 <ski> anyway, i think avoiding the separate handling of the `15' case would make it "more pleasant to look at" and "more modular" (applying DRY)
2021-02-21 01:30:12 +0100 <ski> (since clearly it's no coincidence that `15' is `3*5' here)
2021-02-21 01:30:54 +0100m0rphism1(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 246 seconds)
2021-02-21 01:31:01 +0100 <hyiltiz> i am still debating in my head which I'd prefer. OTOH: I'd rather not someone pre-compute in their head 3*5 and hard-code that into the program; OTOH, I rather like map and filter approach
2021-02-21 01:31:34 +0100 <ski> and if you wanted to generalize it, by allowing more factors than `3' and `5' .. possibly ones that are not necessarily coprime .. then i think my suggested change would probably help with that
2021-02-21 01:31:47 +0100 <hyiltiz> agreed ^
2021-02-21 01:32:13 +0100CMCDragonkai1(~Thunderbi@120.17.5.119)
2021-02-21 01:33:03 +0100stree(~stree@68.36.8.116) (Ping timeout: 265 seconds)
2021-02-21 01:33:21 +0100 <ski> i'm slightly annoyed by the filter .. but i guess there's not really any getting around it, in a nice way, given the problem statement
2021-02-21 01:33:46 +0100 <ski> (i guess one could cobble something up with `catMaybes', but it'd probably look worse)
2021-02-21 01:34:12 +0100 <ski> (er, specifically, annoyed by the filtering for non-empty)
2021-02-21 01:34:12 +0100jedws(~jedws@101.184.202.248) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-21 01:34:26 +0100 <hyiltiz> Yeah the filter exists purely as a side effect of not specifying exactly how to deal with non-primes
2021-02-21 01:34:37 +0100tsaka__(~torstein@2a02:587:1b14:d00:5ec3:abec:812c:b3e2) (Ping timeout: 260 seconds)
2021-02-21 01:34:51 +0100 <ski> non-primes ?
2021-02-21 01:35:00 +0100 <ephemient> > [join ys | x <- [1..100], let ys = ["Crackle" | x `mod` 5 == 0] <> ["Pop" | x `mod` 3 == 0], not $ null ys]
2021-02-21 01:35:02 +0100 <lambdabot> ["Pop","Crackle","Pop","Pop","Crackle","Pop","CracklePop","Pop","Crackle","P...
2021-02-21 01:35:04 +0100CMCDragonkai1(~Thunderbi@120.17.5.119) (Remote host closed the connection)
2021-02-21 01:35:23 +0100 <ephemient> something like that might look neat
2021-02-21 01:35:25 +0100jedws(~jedws@101.184.202.248)
2021-02-21 01:35:44 +0100 <edwardk> i'm about to use backpack to compile 1224 combinations of modules. i might have gone a little insane. maybe there is a better way
2021-02-21 01:35:56 +0100hexfive(~hexfive@50.35.83.177)
2021-02-21 01:36:17 +0100heatsink(~heatsink@2600:1700:bef1:5e10:2c3b:7c69:7266:b507) (Remote host closed the connection)
2021-02-21 01:36:34 +0100 <hyiltiz> ephemient: that smells "I'm a smart and I write code I expect only I can understand"
2021-02-21 01:36:51 +0100heatsink(~heatsink@2600:1700:bef1:5e10:2c3b:7c69:7266:b507)
2021-02-21 01:36:54 +0100 <MarcelineVQ> hard to say. the phrase "i might have gone a little insane. maybe there is a better way" seems like a perfectly normal human thing to say for most occasions
2021-02-21 01:37:54 +0100 <ski> > [s | n <- [1 .. 100],let s = [c | (d,s) <- [(3,"Crackle"),(5,"Pop")],n `mod` d == 0,c <- s],not (null s)] -- fwiw
2021-02-21 01:37:56 +0100 <lambdabot> ["Crackle","Pop","Crackle","Crackle","Pop","Crackle","CracklePop","Crackle",...
2021-02-21 01:37:59 +0100 <edwardk> trying to avoid a 5k line cabal file
2021-02-21 01:38:02 +0100 <MarcelineVQ> I say that about making tea for example, everyone's different
2021-02-21 01:39:01 +0100 <ski> edwardk : the factors being ?
2021-02-21 01:39:04 +0100 <MarcelineVQ> ski: what this problem really calls for is a semiring
2021-02-21 01:39:10 +0100 <monochrom> If ys is a list, you stand to make "join ys" more accessible by "concat ys".
2021-02-21 01:39:12 +0100 <edwardk> :info GHC.Types.RuntimeRep
2021-02-21 01:39:23 +0100 <edwardk> @info GHC.Types.RuntimeRep
2021-02-21 01:39:23 +0100 <lambdabot> GHC.Types.RuntimeRep
2021-02-21 01:39:27 +0100 <edwardk> blah
2021-02-21 01:39:33 +0100 <ski> % :i GHC.Types.RuntimeRep
2021-02-21 01:39:33 +0100 <yahb> ski: type RuntimeRep :: *; data RuntimeRep = VecRep VecCount VecElem | TupleRep [RuntimeRep] | SumRep [RuntimeRep] | LiftedRep | UnliftedRep | GHC.Exts.IntRep | Int8Rep | Int16Rep | Int32Rep | Int64Rep | WordRep | Word8Rep | Word16Rep | Word32Rep | Word64Rep | AddrRep | GHC.Exts.FloatRep | DoubleRep; -- Defined in `GHC.Types'; instance Show RuntimeRep -- Defined in `GHC.Show'; instance Lift a => Lift (#
2021-02-21 01:39:34 +0100 <edwardk> can't get that to print the number of constructors
2021-02-21 01:39:39 +0100 <edwardk> there we go
2021-02-21 01:39:57 +0100 <edwardk> i'm backpacking one for each of the first order constructors there. except VecRep
2021-02-21 01:40:10 +0100 <edwardk> and then starting in on TupleRep and SumRep
2021-02-21 01:40:32 +0100 <ski> MarcelineVQ : elaborate ?
2021-02-21 01:40:44 +0100 <edwardk> if we denote by T3... the tuple with 3 parameters ... and catenate the results, we can come up with a crappy name mangling scheme for packages
2021-02-21 01:40:56 +0100heatsink(~heatsink@2600:1700:bef1:5e10:2c3b:7c69:7266:b507) (Ping timeout: 240 seconds)
2021-02-21 01:41:23 +0100 <edwardk> e.g. S2T0I8 -- being a 2-ary sum of a 0-tuple and a Int8Rep 'SumRep [ 'TupleRep '[], Int8Rep ]
2021-02-21 01:41:23 +0100ski. o O ( luvly jubly )
2021-02-21 01:41:37 +0100 <MarcelineVQ> ski: just goofing
2021-02-21 01:41:46 +0100skinods
2021-02-21 01:41:48 +0100 <edwardk> which is for instance the runtime rep behind Maybe# (4 :: Int8) in unlifted
2021-02-21 01:41:53 +0100 <ephemient> 1224 == 2^3 * 3^2 * 17
2021-02-21 01:42:01 +0100 <edwardk> er Maybe# (4 :: Int8#)
2021-02-21 01:42:09 +0100 <edwardk> 1224 = 34*34+34+34
2021-02-21 01:42:19 +0100 <edwardk> which is a bit wrong
2021-02-21 01:42:29 +0100 <edwardk> > 34*34 +34 + 17
2021-02-21 01:42:31 +0100 <lambdabot> 1207
2021-02-21 01:42:37 +0100 <edwardk> is the actual number. my bad =)
2021-02-21 01:42:39 +0100rajivr(uid269651@gateway/web/irccloud.com/x-ynjnwyqyqdgpqega)
2021-02-21 01:42:47 +0100 <edwardk> basically just trying to get all combinations of tuples up to length 2
2021-02-21 01:43:10 +0100 <monochrom> Wait a second, fizzbuzz has become cracklepop now?
2021-02-21 01:43:24 +0100 <mniip> I've faced a similar issue
2021-02-21 01:43:32 +0100 <edwardk> so i have a few options.
2021-02-21 01:43:40 +0100 <ski> monochrom, apparently yea
2021-02-21 01:43:47 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:b8ec:2ccc:b56e:5cb:43cd)
2021-02-21 01:44:00 +0100 <mniip> edwardk, did you know GHC.Prim uses tuples of length 4
2021-02-21 01:44:03 +0100 <edwardk> the benefit of using backpack is this. it holds orphan instances... safely
2021-02-21 01:44:05 +0100skiidly wonders how often it's connected to inclusion-exclusion
2021-02-21 01:44:12 +0100 <mniip> c.f. https://hackage.haskell.org/package/box-tuples-0.2.0.4/docs/Data-Tuple-Unboxed-Rep.html
2021-02-21 01:44:42 +0100 <dolio> The better way is to only instantiate your proofs of concept for a couple representative examples.
2021-02-21 01:44:52 +0100Guest77289(89dc78de@137.220.120.222) (Quit: Connection closed)
2021-02-21 01:45:03 +0100 <edwardk> dolio: but then i'm not me
2021-02-21 01:45:19 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:c8d5:cb5d:4bef:8854)
2021-02-21 01:45:42 +0100stree(~stree@68.36.8.116)
2021-02-21 01:45:52 +0100 <edwardk> i might well retrench here and not export all the k-ary combinations by default. but it feels like admitting defeat
2021-02-21 01:46:25 +0100byteflame(~byteflame@c-71-238-150-97.hsd1.ar.comcast.net)
2021-02-21 01:47:09 +0100mastarija(~mastarija@93-136-104-186.adsl.net.t-com.hr)
2021-02-21 01:47:41 +0100 <monochrom> The most competitive solution may be https://themonadreader.files.wordpress.com/2014/04/fizzbuzz.pdf
2021-02-21 01:50:17 +0100 <ski> was it submitted to SIGBOVIK ?
2021-02-21 01:50:30 +0100 <monochrom> I don't know. But it's The Monad Reader.
2021-02-21 01:50:58 +0100 <ski> i like that it references Dijkstra
2021-02-21 01:52:19 +0100 <monochrom> Well, about that, it is not a relevant reference. It has "skip" and "halt", so it cites "Dijsktra has skip and abort, oh but abort doesn't mean halt anyway".
2021-02-21 01:52:57 +0100 <ski> hm, yea
2021-02-21 01:53:50 +0100 <monochrom> And I don't think "skip" needs citing either, everyone already knows how to write for example "{ ; }" without needing to pay tribute to Dijkstra.
2021-02-21 01:54:27 +0100 <hyiltiz> monochrom: apparently too many buzz words pop up in crack heads for them to fuzzing around with :p
2021-02-21 01:54:37 +0100 <monochrom> haha
2021-02-21 01:55:22 +0100 <ephemient> > filter (not . null) $ (zipWith (<>) `on` take 100 . drop 1 . cycle) ("Crackle" : replicate 2 "") ("Pop" : replicate 4 "")
2021-02-21 01:55:23 +0100 <lambdabot> ["Crackle","Pop","Crackle","Crackle","Pop","Crackle","CracklePop","Crackle",...
2021-02-21 01:55:36 +0100ymherklotz(~user@2a00:23c7:e28c:6001:5460:47fb:6d9:8e42)
2021-02-21 01:55:44 +0100 <ephemient> ... yeah that's more obtuse isn't it
2021-02-21 01:58:10 +0100gadtrider(~username@dvc-186-186-101-190.movil.vtr.net)
2021-02-21 01:58:14 +0100 <monochrom> zipWith (++) (cycle ["f", "", ""]) (cycle ["b", "", "", "", ""])
2021-02-21 01:58:37 +0100justsomeguyidly wonders why people don't call type errors typos?
2021-02-21 01:59:13 +0100 <monochrom> Mine is incomplete. But it nails the most annoying part of the problem. You can extend this idea to complete it.
2021-02-21 01:59:22 +0100frozenErebus(~frozenEre@94.128.219.166) (Ping timeout: 272 seconds)
2021-02-21 01:59:55 +0100ski. o O ( Eratosthenes )
2021-02-21 02:00:02 +0100 <monochrom> yeah heh
2021-02-21 02:01:55 +0100 <monochrom> Now, for the grown-ups: How about "fizz" for sums of 3 primes, "buzz" for sums of 5 primes, "fizzbuzz" for both?
2021-02-21 02:02:19 +0100 <monochrom> Does Project Euler have something similar to that?
2021-02-21 02:03:11 +0100swarmcollectivewas hoping oeis had a sequence for fizzbuzz, but no. Oh well.
2021-02-21 02:03:39 +0100 <monochrom> OEIS doesn't have sequences of strings >:)
2021-02-21 02:03:41 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-02-21 02:04:13 +0100 <swarmcollective> @oeis A026317
2021-02-21 02:04:13 +0100 <lambdabot> https://oeis.org/A026317 Nonnegative integers k such that |cos(k)| > |sin(k+...
2021-02-21 02:04:13 +0100 <lambdabot> [0,2,3,5,6,9,12,15,18,19,21,22,24,25,27,28,31,34,37,40,41,43,44,46,47,49,50,...
2021-02-21 02:04:16 +0100gadtrider(~username@dvc-186-186-101-190.movil.vtr.net) (Remote host closed the connection)
2021-02-21 02:04:19 +0100 <monochrom> But perhaps if you Gödel-encode "fizz" and "buzz", they may be interested.
2021-02-21 02:04:42 +0100 <swarmcollective> drop 2 and you get the beginning, but it falls down quickly.
2021-02-21 02:04:44 +0100gadtrider(~gadtrider@dvc-186-186-101-190.movil.vtr.net)
2021-02-21 02:04:58 +0100 <monochrom> Hah I have long forgotten that lambdabot has an oeis command.
2021-02-21 02:05:04 +0100 <boxscape> presumably if you find OEIS sequences for numbers that are sums of 3 primes and numbers that are sums of 5 primes, the rest of the problem is fairly easy, no?
2021-02-21 02:05:24 +0100 <monochrom> Yes.
2021-02-21 02:05:28 +0100 <swarmcollective> That was my hope. :)
2021-02-21 02:05:32 +0100 <monochrom> Are you allowed IO?
2021-02-21 02:05:44 +0100 <ephemient> https://oeis.org/A051037 is a similar and common interview question... I assume, given the quantity of blogs about hamming sequences, but I've never encountered it in an interview
2021-02-21 02:07:14 +0100 <monochrom> Maybe I should put it on the exam. >:)
2021-02-21 02:07:41 +0100ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-02-21 02:09:25 +0100 <monochrom> Hah I accidentally solved Hamming sequence when I was solving a different problem.
2021-02-21 02:09:43 +0100 <swarmcollective> I like this one:
2021-02-21 02:09:47 +0100 <swarmcollective> @metar KSFO
2021-02-21 02:09:48 +0100 <lambdabot> KSFO 210056Z 30017KT 10SM FEW023 FEW045 13/07 A3037 RMK AO2 SLP282 T01330072
2021-02-21 02:09:58 +0100 <monochrom> The different problem is Doug McIlroy's "enumerate all regexes from short to long"
2021-02-21 02:10:28 +0100 <edwardk> that feeling when you get 3/4 of the way through a big refactor then look away for a minute, look back, go OH MY EYES, and git stash.
2021-02-21 02:10:51 +0100 <swarmcollective> haha edwardk
2021-02-21 02:11:04 +0100 <monochrom> hahah
2021-02-21 02:11:16 +0100conal(~conal@64.71.133.70)
2021-02-21 02:12:01 +0100Narinas(~Narinas@189.223.59.23.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-21 02:12:17 +0100Narinas(~Narinas@189.223.59.23.dsl.dyn.telnor.net)
2021-02-21 02:12:24 +0100ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 256 seconds)
2021-02-21 02:12:28 +0100 <swarmcollective> My mod for metar produces: "KSFO: Sits at 2.0 meters above sea level at (latitude, longitude) of (37.62, -122.37). Current temperature is 13.3C with a dewpoint of 7.2C. Over the last two hours, the precipitation was Zero inches. Visibility is 10.0 miles with a West North West wind of 17 miles per hour."
2021-02-21 02:14:02 +0100 <monochrom> So McIlroy uses two tools: merge two sorted lists in sorted order; a kind of "liftA2" for two sorted lists except that the output is sorted, but you get help from the guarantee that the user gives you a monotonic function to liftA2 with.
2021-02-21 02:16:19 +0100thunderrd(~thunderrd@183.182.115.128)
2021-02-21 02:16:29 +0100 <monochrom> With those tools, you just have to "powersOf2 ⊗ powersOf3 ⊗ powersOf5" where ⊗ is McIlroy's modified liftA2 with (*)
2021-02-21 02:17:07 +0100 <monochrom> (merging two sorted lists is useful for implementing McIlroy's modified liftA2)
2021-02-21 02:17:35 +0100 <monochrom> (not to mentional also doubly reused for the rest of enumerating regexes)
2021-02-21 02:17:43 +0100 <monochrom> s/mentional/mentioned/
2021-02-21 02:18:06 +0100 <monochrom> Yes I can put that on the exam now.
2021-02-21 02:18:16 +0100 <monochrom> (I put it on homework last time.)
2021-02-21 02:18:38 +0100cur8or(~cur8or@72canterbury.cybersmart.co.za) (Ping timeout: 260 seconds)
2021-02-21 02:19:01 +0100 <monochrom> Let me see if I can find you a link to the paper.
2021-02-21 02:19:08 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye)
2021-02-21 02:19:30 +0100 <ephemient> thinking. not immediately obvious to me if that can be applied to list sum-of-3-primes if you want 3 distinct primes for each
2021-02-21 02:19:35 +0100 <monochrom> https://www.cs.dartmouth.edu/~doug/nfa.pdf
2021-02-21 02:19:39 +0100fosterite(~fosterite@2600:6c46:7800:fecf:8018:3f0e:7ad8:4be9) ()
2021-02-21 02:20:07 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2021-02-21 02:20:17 +0100 <monochrom> Ah no, my sum-of-3/5-primes was a joke. And unrelated to the Hamming sequence.
2021-02-21 02:20:31 +0100 <monochrom> Hamming sequence is much more doable, yes.
2021-02-21 02:21:09 +0100 <monochrom> sum-of-foo-primes is like you go to math grad school and you specifically go into number theory and then you have a chance. >:)
2021-02-21 02:21:26 +0100 <monochrom> I mean if you don't want to brute-force.
2021-02-21 02:23:15 +0100 <ephemient> I suppose filter $ primes ⊕ primes ⊕ primes could work. lots of duplicated work but not as much as complete brute force
2021-02-21 02:23:32 +0100 <monochrom> Ah yeah.
2021-02-21 02:24:02 +0100 <monochrom> IIRC when mathematicians say "sum of foo primes" they're OK with e.g. 2+2+2.
2021-02-21 02:24:31 +0100 <monochrom> OK so you've got it, no need to go to grad school.
2021-02-21 02:24:39 +0100 <edwardk> what is mcilroy's liftA2, i think i missed this
2021-02-21 02:25:10 +0100 <monochrom> In his paper he calls it xprod
2021-02-21 02:25:25 +0100 <edwardk> trying to understand, two sorted lists combined with a function that is monotone in elements from both?
2021-02-21 02:25:38 +0100Tario(~Tario@201.192.165.173)
2021-02-21 02:25:56 +0100 <edwardk> got it
2021-02-21 02:25:59 +0100 <monochrom> You're given [a], [b], f :: (a -> b -> c), Ord a, Ord b, Ord c, the f :: (a->b->c) is monotonic (or else the user is a moron)
2021-02-21 02:26:25 +0100 <monochrom> Output cartesian product [c], sorted.
2021-02-21 02:26:27 +0100 <swarmcollective> map cracklePop $ sort $ [3,6..100] ++ [5,10..100]
2021-02-21 02:26:43 +0100 <monochrom> (The [a] and [b] are already sorted, or else the user is you get the idea)
2021-02-21 02:27:05 +0100 <swarmcollective> Still would be nice to get rid of the x `mod` 15 == 0 = 'CracklePop'
2021-02-21 02:27:14 +0100 <monochrom> (Actually even stronger, the [a] and [b] are strictly increasing. Think of representing ordered sets.)
2021-02-21 02:27:57 +0100 <edwardk> took me a minute to parse LOL as length ordered list rather than list of list or er.. LOL
2021-02-21 02:28:08 +0100 <monochrom> :)
2021-02-21 02:28:57 +0100 <monochrom> It is a mediumly old paper. I have a feeling that it predates LOL.
2021-02-21 02:29:05 +0100 <edwardk> yeah
2021-02-21 02:29:09 +0100 <edwardk> my thought exactly
2021-02-21 02:29:28 +0100 <ephemient> didn't read the paper. I guess it's something along the lines of `fold merge [map (f a) bs | a <- as]`... but it would have to be smarter, since needs to make use of the fact that the heads are also increasing
2021-02-21 02:30:17 +0100polyrain(~polyrain@2001:8003:e4d8:4101:d1d2:4fc1:88fa:56)
2021-02-21 02:31:08 +0100 <ephemient> oh now I read it. that's more straightforward than I was thinking. neat
2021-02-21 02:31:24 +0100 <monochrom> :)
2021-02-21 02:33:19 +0100ddellacosta(~ddellacos@86.106.143.124)
2021-02-21 02:33:38 +0100jedws(~jedws@101.184.202.248) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-21 02:36:12 +0100 <edwardk> i kinda want some free tree like thing rather than a list of lists with a bunch of common crap at the front. hrmm
2021-02-21 02:36:37 +0100 <monochrom> So I didn't solve this regex enumeration problem. I learned McIlroy's solution. But I was giving it as homework (and simplifying, just enumerate binary trees so it's less distracting), so I had to thought up another application of xprod for students to check their xprod implementation in isolation before integrating everything together.
2021-02-21 02:36:48 +0100jedws(~jedws@101.184.202.248)
2021-02-21 02:37:25 +0100 <monochrom> So I thought up "here is another motivation explanation. Consider xprod (*) powersOf2 powersOf3. Do your code give the correct answer?"
2021-02-21 02:37:34 +0100heatsink(~heatsink@2600:1700:bef1:5e10:2c3b:7c69:7266:b507)
2021-02-21 02:37:40 +0100 <monochrom> Right there I solved the Hamming sequence before I knew. :)
2021-02-21 02:37:54 +0100 <ski> monochrom : you can give an exercise to define `primes' and `composites' (mutually recursively), in terms of it ?
2021-02-21 02:38:24 +0100 <monochrom> that sounds like too good to be true...
2021-02-21 02:38:36 +0100 <ski> (you'll also need an ordered difference)
2021-02-21 02:38:39 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-02-21 02:38:46 +0100 <monochrom> Yeah.
2021-02-21 02:38:54 +0100 <monochrom> Ah that may help.
2021-02-21 02:39:40 +0100 <ski> primes are non-composite integers greater than one. composites are products of primes and integers greater than one
2021-02-21 02:39:41 +0100 <monochrom> We will call it the Santa Claus Sieve.
2021-02-21 02:40:04 +0100 <monochrom> Post it on haskell-cafe and start another war over "is this sieving?"
2021-02-21 02:40:08 +0100 <ski> that's basically it, apart from needing a small bootstrap (two is a prime, to start it kicking)
2021-02-21 02:42:25 +0100polyrain(~polyrain@2001:8003:e4d8:4101:d1d2:4fc1:88fa:56) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-21 02:44:53 +0100usr25(~usr25@unaffiliated/usr25) (Read error: Connection reset by peer)
2021-02-21 02:45:47 +0100conal(~conal@64.71.133.70)
2021-02-21 02:45:53 +0100ddellacosta(~ddellacos@86.106.143.124) (Remote host closed the connection)
2021-02-21 02:48:16 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-adcpijikdquvbocl) (Quit: Connection closed for inactivity)
2021-02-21 02:49:16 +0100conal(~conal@64.71.133.70) (Client Quit)
2021-02-21 02:50:57 +0100Rudd0(~Rudd0@185.189.115.103) (Ping timeout: 264 seconds)
2021-02-21 02:51:09 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2021-02-21 02:51:52 +0100jchia(~jchia@218.80.126.10)
2021-02-21 02:53:54 +0100conal(~conal@64.71.133.70)
2021-02-21 02:54:02 +0100heatsink(~heatsink@2600:1700:bef1:5e10:2c3b:7c69:7266:b507) (Ping timeout: 264 seconds)
2021-02-21 02:55:03 +0100heatsink(~heatsink@2600:1700:bef1:5e10:2c3b:7c69:7266:b507)
2021-02-21 02:58:23 +0100conal(~conal@64.71.133.70) (Client Quit)
2021-02-21 03:02:34 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:c8d5:cb5d:4bef:8854) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-21 03:02:41 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-zkqjuggkajftiwsq)
2021-02-21 03:04:47 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-21 03:04:50 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
2021-02-21 03:05:29 +0100 <ephemient> with (\\\) for ordered difference, my first thought was `primes = 2 : [3..] \\\ composites; composites = xprod (*) primes composites`, which of course doesn't work
2021-02-21 03:06:11 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving)
2021-02-21 03:06:11 +0100 <ephemient> after futzing around with trying to seed composites, I realized you probably meant something more like `xprod (*) [2..] primes` which makes more sense anyhow
2021-02-21 03:07:18 +0100 <ephemient> so yeah. fun example
2021-02-21 03:08:56 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
2021-02-21 03:10:08 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-21 03:10:12 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-21 03:10:48 +0100 <ski> i used `2 : tail (...)', but yes
2021-02-21 03:11:27 +0100xff0x(~xff0x@2001:1a81:5288:8c00:b017:dd71:5231:84a2) (Ping timeout: 272 seconds)
2021-02-21 03:12:06 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:c8d5:cb5d:4bef:8854)
2021-02-21 03:13:00 +0100xff0x(~xff0x@2001:1a81:52c4:2f00:7050:c685:507:da9a)
2021-02-21 03:14:36 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
2021-02-21 03:17:09 +0100mirrorbird(~psutcliff@2a00:801:44d:603d:d116:d5a1:4a2f:a08f) (Ping timeout: 272 seconds)
2021-02-21 03:19:55 +0100oisdk(~oisdk@2001:bb6:3329:d100:3d8b:3b0b:d75b:3a22) (Quit: oisdk)
2021-02-21 03:25:37 +0100ymherklotz(~user@2a00:23c7:e28c:6001:5460:47fb:6d9:8e42) (Quit: ERC (IRC client for Emacs 27.1))
2021-02-21 03:26:29 +0100 <sm[m]> wow, https://play.rust-lang.org is pretty nice
2021-02-21 03:26:40 +0100 <sm[m]> we should steal it
2021-02-21 03:29:23 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:c8d5:cb5d:4bef:8854) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-21 03:29:28 +0100conal(~conal@64.71.133.70)
2021-02-21 03:32:23 +0100minoru_shiraeesh(~shiraeesh@46.34.206.204)
2021-02-21 03:32:42 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-tzqvxzijqucxtwmt) (Quit: Connection closed for inactivity)
2021-02-21 03:34:35 +0100average(uid473595@gateway/web/irccloud.com/x-tvekuqggzzxphzcd) (Quit: Connection closed for inactivity)
2021-02-21 03:34:47 +0100Lord_of_Life_(~Lord@unaffiliated/lord-of-life/x-0885362)
2021-02-21 03:35:18 +0100 <glguy> I'll update the /topic; we can be a Rust channel now :nod:
2021-02-21 03:36:05 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 240 seconds)
2021-02-21 03:36:09 +0100Lord_of_Life_Lord_of_Life
2021-02-21 03:36:30 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-02-21 03:36:45 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-21 03:37:16 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 240 seconds)
2021-02-21 03:37:36 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-02-21 03:38:59 +0100Mrbuck(~Mrbuck@gateway/tor-sasl/mrbuck) (Quit: WeeChat 1.9.1)
2021-02-21 03:39:31 +0100 <karasu1[m]> After the discussion today, it was said by edwardk and the other ops of #haskell that they don't care how welcome me or other newcomers feel at #haskell. I expected #haskell to be a welcoming community for Haskellers of all background, experienced or inexperienced, but clearly this is not the case. I no longer wish to be a part of such a community, and I am leaving. Goodbye.
2021-02-21 03:39:34 +0100karasu1[m](karasu1mat@gateway/shell/matrix.org/x-jlvtwpjoszohpwuo) ("User left")
2021-02-21 03:40:05 +0100hekkaidekapus{(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds)
2021-02-21 03:41:37 +0100 <edwardk> well that went about as well as expected.
2021-02-21 03:41:56 +0100hekkaidekapus{(~tchouri@gateway/tor-sasl/hekkaidekapus)
2021-02-21 03:42:10 +0100 <edwardk> monochrom: note to self you were right, i was wrong
2021-02-21 03:43:54 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-02-21 03:43:57 +0100mirrorbird(~psutcliff@2a00:801:44d:603d:d116:d5a1:4a2f:a08f)
2021-02-21 03:44:28 +0100ChanServ+o edwardk
2021-02-21 03:45:10 +0100alx741(~alx741@186.178.109.47)
2021-02-21 03:45:16 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-02-21 03:45:54 +0100gadtrider(~gadtrider@dvc-186-186-101-190.movil.vtr.net) (Remote host closed the connection)
2021-02-21 03:46:03 +0100skisighs
2021-02-21 03:46:32 +0100conal(~conal@64.71.133.70)
2021-02-21 03:46:55 +0100nhs(~nhs@c-67-180-177-103.hsd1.ca.comcast.net)
2021-02-21 03:47:43 +0100mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh) (Remote host closed the connection)
2021-02-21 03:47:44 +0100mastarija(~mastarija@93-136-104-186.adsl.net.t-com.hr) (Quit: Leaving)
2021-02-21 03:48:02 +0100awk(~mnrmnaugh@unaffiliated/mnrmnaugh)
2021-02-21 03:48:59 +0100edwardk+b *!karasu1mat@gateway/shell/matrix*
2021-02-21 03:49:06 +0100edwardk-o edwardk
2021-02-21 03:49:31 +0100toorevitimirp(~tooreviti@117.182.181.253)
2021-02-21 03:51:05 +0100nhs(~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2021-02-21 03:51:57 +0100Narinas(~Narinas@189.223.59.23.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-21 03:52:11 +0100Narinas(~Narinas@189.223.59.23.dsl.dyn.telnor.net)
2021-02-21 03:52:45 +0100byteflame(~byteflame@c-71-238-150-97.hsd1.ar.comcast.net) (Ping timeout: 240 seconds)
2021-02-21 03:54:00 +0100stree(~stree@68.36.8.116) (Ping timeout: 272 seconds)
2021-02-21 03:54:11 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds)
2021-02-21 03:55:55 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-02-21 03:55:58 +0100Narinas(~Narinas@189.223.59.23.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-21 03:56:15 +0100Narinas(~Narinas@189.223.59.23.dsl.dyn.telnor.net)
2021-02-21 03:56:58 +0100 <tapas> lmao get rekt
2021-02-21 03:58:06 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-02-21 04:01:57 +0100viluon(uid453725@gateway/web/irccloud.com/x-xtfekalitxpxoctj) (Quit: Connection closed for inactivity)
2021-02-21 04:04:26 +0100kadoban_(~mud@unaffiliated/kadoban) (Read error: Connection reset by peer)
2021-02-21 04:05:00 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-21 04:06:46 +0100stree(~stree@68.36.8.116)
2021-02-21 04:09:12 +0100 <MarcelineVQ> I still feel like there's a semiring lurking behind fizzbuzz
2021-02-21 04:09:25 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
2021-02-21 04:09:56 +0100 <MarcelineVQ> https://www.cs.dartmouth.edu/~doug/nfa.pdf makes me even more suspicious about it
2021-02-21 04:12:00 +0100 <monochrom> I think I was using (++) as a semiring operation when I did zipWith (++) (cycle ["f", "", ""]) (cycle ["b", "", "", "", ""])
2021-02-21 04:12:02 +0100 <MarcelineVQ> a closed semiring
2021-02-21 04:13:04 +0100 <MarcelineVQ> does anyone have a link to a publicly available "Fun with Semirings: A functional pearl on the abuse of linear algebra" ? I already have it but it was a scihub grab
2021-02-21 04:13:24 +0100 <MarcelineVQ> Just wondering if it exists openly/publicly
2021-02-21 04:13:27 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-chohypbdngwsxena)
2021-02-21 04:13:57 +0100heatsink(~heatsink@2600:1700:bef1:5e10:2c3b:7c69:7266:b507) (Remote host closed the connection)
2021-02-21 04:16:17 +0100mud(kadobanemp@gateway/shell/matrix.org/x-hsvwcnlpdlaahtsv)
2021-02-21 04:18:23 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-21 04:19:38 +0100Tops2(~Tobias@dyndsl-095-033-024-179.ewe-ip-backbone.de)
2021-02-21 04:22:34 +0100nhs(~nhs@c-67-180-177-103.hsd1.ca.comcast.net)
2021-02-21 04:23:36 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-mhgdpyndfuhwydwb) (Quit: Connection closed for inactivity)
2021-02-21 04:23:46 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 272 seconds)
2021-02-21 04:23:46 +0100FinnElija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
2021-02-21 04:23:46 +0100finn_elijaGuest86149
2021-02-21 04:23:46 +0100FinnElijafinn_elija
2021-02-21 04:25:46 +0100hekkaidekapus}(~tchouri@gateway/tor-sasl/hekkaidekapus)
2021-02-21 04:25:50 +0100hekkaidekapus{(~tchouri@gateway/tor-sasl/hekkaidekapus) (Remote host closed the connection)
2021-02-21 04:26:45 +0100nhs(~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2021-02-21 04:28:11 +0100Guest86149(~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 268 seconds)
2021-02-21 04:30:30 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-21 04:33:12 +0100awkmnrmnaugh
2021-02-21 04:34:52 +0100spoonm(~spoonm@2602:ffd5:1:119::1) (Ping timeout: 260 seconds)
2021-02-21 04:35:45 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-02-21 04:36:01 +0100ddellacosta(~ddellacos@86.106.143.215)
2021-02-21 04:36:33 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds)
2021-02-21 04:39:13 +0100jollygood2(~bc8134e3@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout))
2021-02-21 04:39:25 +0100heatsink(~heatsink@2600:1700:bef1:5e10:2c3b:7c69:7266:b507)
2021-02-21 04:40:30 +0100ddellacosta(~ddellacos@86.106.143.215) (Ping timeout: 260 seconds)
2021-02-21 04:41:08 +0100alx741(~alx741@186.178.109.47) (Quit: alx741)
2021-02-21 04:41:10 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-02-21 04:46:14 +0100 <minoru_shiraeesh> it's a shame that karasu1[m] decided to leave because he thinks that people here don't care about how welcome do newcomers feel here.
2021-02-21 04:47:13 +0100 <minoru_shiraeesh> when you answer questions, you have to be patient and careful, but you also have to be patient and careful when you ask questions
2021-02-21 04:51:17 +0100 <minoru_shiraeesh> one of the problems I noticed is
2021-02-21 04:51:20 +0100 <shapr> Hey, what's the best Haskell for Python programmer's book to buy these days?
2021-02-21 04:52:12 +0100 <minoru_shiraeesh> when you ask a question and several people answer at the same time, you get an information overload at that moment
2021-02-21 04:52:54 +0100 <minoru_shiraeesh> if you decide to focus on one person's answer, it may seem like you ignore other people's answers
2021-02-21 04:54:05 +0100theDon(~td@94.134.91.113) (Ping timeout: 240 seconds)
2021-02-21 04:54:18 +0100 <minoru_shiraeesh> so you feel like you have to do that because people don't have time to wait for you to read all the answers and meditate on them
2021-02-21 04:55:07 +0100 <minoru_shiraeesh> like "hey, you're too slow for us"
2021-02-21 04:55:10 +0100 <monochrom> minoru_shiraeesh, your point is true for other cases but not this one.
2021-02-21 04:55:23 +0100nhs(~nhs@c-67-180-177-103.hsd1.ca.comcast.net)
2021-02-21 04:55:45 +0100dijonmustard(~My_user_n@2600:6c56:3f:decc:367d:f6ff:feba:7eb2)
2021-02-21 04:56:13 +0100theDon(~td@94.134.91.187)
2021-02-21 04:56:25 +0100 <monochrom> Hell, make it "true for very old cases" but at some point of time in the past the regulars here have realized the "too many chefs" problems and no longer think like that.
2021-02-21 04:57:11 +0100 <monochrom> Today's regulars' behaviour is: many answerers answer, but when they see the asker has chosen one person to engage with, the other answerers stop and don't muddle it.
2021-02-21 05:00:01 +0100alexelcu_(~alexelcu@142.93.180.198) (Quit: ZNC 1.8.2 - https://znc.in)
2021-02-21 05:00:42 +0100 <minoru_shiraeesh> otoh more answers are better, so you get an information overload when you discuss a topic, but they may give a valuable insight when you re-read the discussion later
2021-02-21 05:00:56 +0100alexelcu(~alexelcu@142.93.180.198)
2021-02-21 05:02:44 +0100 <ephemient> more answers might be worse sometimes... paradox of choice. but I hope that usually, at least one of the answers sticks and works
2021-02-21 05:03:27 +0100Tario(~Tario@201.192.165.173)
2021-02-21 05:03:28 +0100 <monochrom> When karasu1[m] replied to dolio with "sometimes I fixated on one answer and appear to ignore others", that would be referring to the one-pass repmin-like conversation about 24 hours ago.
2021-02-21 05:03:31 +0100 <glguy> this seems highly dependent upon the particular question asked.
2021-02-21 05:03:43 +0100 <ski> @quote @quote.stereo
2021-02-21 05:03:43 +0100 <lambdabot> shachaf says: I remember when I joined #haskell and everyone would @quote stereo.
2021-02-21 05:03:43 +0100dijonmustard(~My_user_n@2600:6c56:3f:decc:367d:f6ff:feba:7eb2) (Quit: WeeChat 3.0)
2021-02-21 05:04:12 +0100 <monochrom> In that actual converation, karasu1[m] replied to all answers from everyone. There was no ignore.
2021-02-21 05:04:16 +0100Rudd0(~Rudd0@185.189.115.103)
2021-02-21 05:04:16 +0100nhs(~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2021-02-21 05:04:44 +0100 <slack1256> Who was stereo?
2021-02-21 05:04:48 +0100 <ski> no
2021-02-21 05:04:55 +0100 <MarcelineVQ> what was the mission
2021-02-21 05:05:04 +0100 <monochrom> Therefore, dolio's description "you are not reading carefully" is the accurate one. There was no ignore. Only misinterpretation reflecting deeply entrenched presumptions and putting words into others' mouths.
2021-02-21 05:05:17 +0100 <slack1256> Oh, I thought it was a nick from a regular back then.
2021-02-21 05:05:24 +0100 <ski> @quote stereo
2021-02-21 05:05:24 +0100 <lambdabot> shachaf says: I remember when I joined #haskell and everyone would @quote stereo.
2021-02-21 05:05:37 +0100 <ski> @botsmack
2021-02-21 05:05:37 +0100 <lambdabot> :)
2021-02-21 05:05:52 +0100 <slack1256> @slap ski
2021-02-21 05:05:52 +0100lambdabotmoulds ski into a delicous cookie, and places it in her oven
2021-02-21 05:05:59 +0100 <slack1256> don't bully lambdabot
2021-02-21 05:06:05 +0100 <glguy> Another of the regulars took to removing that quote from lambdabot when it would get added back in
2021-02-21 05:06:05 +0100 <monochrom> Meta-ly, I recommend you check out the actual conversations, not trust a self-proclaimed-victim's one-sided selectively forgetful summary of it.
2021-02-21 05:06:14 +0100 <ski> `@quote stereo' will randomly select a quote including the word "stereo"
2021-02-21 05:06:28 +0100raym(~ray@45.64.220.142)
2021-02-21 05:06:40 +0100skihopes it's a bitterkoekje
2021-02-21 05:06:40 +0100 <glguy> @quote
2021-02-21 05:06:40 +0100 <lambdabot> lament says: gentle like gangrape
2021-02-21 05:06:52 +0100 <glguy> Let's remember how to unquote
2021-02-21 05:06:53 +0100 <slack1256> @quote html5
2021-02-21 05:06:53 +0100 <lambdabot> No quotes match. It can only be attributed to human error.
2021-02-21 05:06:57 +0100 <MarcelineVQ> :>
2021-02-21 05:07:08 +0100 <ski> @quote majestic
2021-02-21 05:07:08 +0100 <lambdabot> hpc says: here in #haskell we are aware that reading scrollback is hard, that's why we always answer in majestic stereo
2021-02-21 05:07:27 +0100 <ski> glguy : `@forget <id> <message>'
2021-02-21 05:07:34 +0100 <glguy> got it
2021-02-21 05:08:06 +0100 <ski> (i suspect that might have been in response to a certain tutorial being mentioned)
2021-02-21 05:08:36 +0100 <monochrom> @quote fugue
2021-02-21 05:08:38 +0100 <lambdabot> monochrom says: Welcome to #haskell, where your questions are answered in contrapuntal fugues.
2021-02-21 05:08:52 +0100 <slack1256> @quote chocolate
2021-02-21 05:08:52 +0100 <lambdabot> psychobot says: Source not found, so this package chocolate cake mix.
2021-02-21 05:09:03 +0100 <ski> @quote contravariant
2021-02-21 05:09:03 +0100 <lambdabot> pjd says: welcome to #haskell, where your questions are answered in contravariant functors
2021-02-21 05:09:07 +0100 <monochrom> I think someone (but not me) liked my quote more and deleted the stereo version.
2021-02-21 05:09:08 +0100 <glguy> ski, I can guess which you mean; I'm happy that the quote is gone nonetheless
2021-02-21 05:09:09 +0100Tops2(~Tobias@dyndsl-095-033-024-179.ewe-ip-backbone.de) (Read error: Connection reset by peer)
2021-02-21 05:09:20 +0100 <monochrom> But no, wait, I have a simpler, more likely theory.
2021-02-21 05:09:45 +0100 <ski> glguy : yes. in that context, it might have been acceptable. out of context, it's confusing, and not really amusing
2021-02-21 05:10:03 +0100 <monochrom> lambdabot did suffer a few incidents of data loss over so many years. More likely the quote was loss due to one of those total data loss. Unintentional. No one deleted it.
2021-02-21 05:10:21 +0100theelous3(~theelous3@unaffiliated/theelous3) (Read error: Connection reset by peer)
2021-02-21 05:10:23 +0100 <glguy> ?quote glguy
2021-02-21 05:10:23 +0100 <lambdabot> glguy says: libraries@ serves an important role of stopping changes from being introduced to the libraries
2021-02-21 05:10:38 +0100 <ski> iirc, there was someone who got tired of being mentioned by lambdabot everytime someone would pull up the quote
2021-02-21 05:10:40 +0100 <minoru_shiraeesh> yeah, a stereo-answer sounds like the right word for that thing and yeah, a stereo-answer may overwhelm a newbie
2021-02-21 05:10:50 +0100 <monochrom> Still, I like fugues better. "stereo" can't do it justice anyway.
2021-02-21 05:10:55 +0100 <shachaf> One time lambdabot state was lost entirely, and I scanned the logs for all @remembers and made a new quote file out of them.
2021-02-21 05:11:01 +0100 <MarcelineVQ> maybe the real deletion were the​we made along the way
2021-02-21 05:12:22 +0100 <monochrom> Um wait chocolate cake mix package?
2021-02-21 05:12:39 +0100 <monochrom> "IO is a chocolate cake mix recipe" may work.
2021-02-21 05:12:47 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-21 05:12:56 +0100 <ski> @quote socratic
2021-02-21 05:12:56 +0100 <lambdabot> chrisdone says: It's actually impossible to employ the socratic method in here. Ask a newbie a question and it *will* be answered by someone else.
2021-02-21 05:13:09 +0100 <monochrom> heh
2021-02-21 05:13:21 +0100 <monochrom> but that hasn't happened for a long time either. People now know.
2021-02-21 05:13:34 +0100 <ski> mostly
2021-02-21 05:13:36 +0100 <shachaf> Nowadays your questions are barely answered in mono.
2021-02-21 05:14:00 +0100 <monochrom> Well the questions have changed a lot.
2021-02-21 05:14:05 +0100 <ephemient> I'll answer after the newbie leaves, if it's interesting (why do they always leave instead of sticking around)
2021-02-21 05:14:26 +0100 <ski> not being used to IRC, thinking it's like IM
2021-02-21 05:14:51 +0100 <glguy> It's like how if your webpage doesn't load in a fraction of a second people forget what webpage they were trying to open and move on
2021-02-21 05:14:57 +0100 <monochrom> The really Haskell learning questions like "how to do this by recursion?" is the marginalized minority.
2021-02-21 05:15:54 +0100 <monochrom> The vast dominating eclipsing majority of questions is "I'm doing scotty on nix with stack on arm inside a docker..."
2021-02-21 05:16:24 +0100 <monochrom> So if you are not well-versed with all five of scotty nix stack arm docker, you need not apply.
2021-02-21 05:16:48 +0100 <shachaf> I wouldn't want to apply!
2021-02-21 05:17:00 +0100 <monochrom> And that's how most questions are barely answered.
2021-02-21 05:17:05 +0100 <glguy> shachaf, maybe you're not a function?
2021-02-21 05:17:16 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
2021-02-21 05:17:17 +0100 <shachaf> Hmm, I thought you applied functions to things.
2021-02-21 05:17:17 +0100 <MarcelineVQ> howdareyou.jpg
2021-02-21 05:17:21 +0100raym(~ray@45.64.220.142) (Quit: leaving)
2021-02-21 05:17:27 +0100 <glguy> shachaf, I do!
2021-02-21 05:19:01 +0100skiidly wonders who's the officiant
2021-02-21 05:20:36 +0100darjeeling_(~darjeelin@122.245.216.187) (Ping timeout: 240 seconds)
2021-02-21 05:25:59 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:b8ec:2ccc:b56e:5cb:43cd) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-21 05:28:53 +0100Wuzzy(~Wuzzy@p5b0df3df.dip0.t-ipconnect.de) (Remote host closed the connection)
2021-02-21 05:29:16 +0100ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex) (Remote host closed the connection)
2021-02-21 05:29:39 +0100ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex)
2021-02-21 05:39:18 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-02-21 05:40:09 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-21 05:42:57 +0100drbean(~drbean@TC210-63-209-29.static.apol.com.tw)
2021-02-21 05:44:39 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 246 seconds)
2021-02-21 05:45:25 +0100conal(~conal@64.71.133.70)
2021-02-21 05:49:05 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood)
2021-02-21 05:49:57 +0100conal(~conal@64.71.133.70) (Client Quit)
2021-02-21 05:50:23 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-02-21 05:50:32 +0100conal(~conal@64.71.133.70)
2021-02-21 05:57:03 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-21 05:57:05 +0100boxscape(4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) (Ping timeout: 240 seconds)
2021-02-21 05:58:17 +0100xff0x(~xff0x@2001:1a81:52c4:2f00:7050:c685:507:da9a) (Ping timeout: 260 seconds)
2021-02-21 05:59:16 +0100xff0x(~xff0x@port-92-193-195-86.dynamic.as20676.net)
2021-02-21 05:59:58 +0100HarveyPwca(~HarveyPwc@2601:246:c180:a570:29df:3b00:ad0e:3a06) (Quit: Leaving)
2021-02-21 06:00:56 +0100berberman_(~berberman@unaffiliated/berberman) (Ping timeout: 240 seconds)
2021-02-21 06:01:22 +0100berberman(~berberman@unaffiliated/berberman)
2021-02-21 06:01:55 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 272 seconds)
2021-02-21 06:02:25 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net) (Ping timeout: 256 seconds)
2021-02-21 06:03:34 +0100darjeeling_(~darjeelin@122.245.216.187)
2021-02-21 06:11:15 +0100forgottenone(~forgotten@176.42.28.68)
2021-02-21 06:11:16 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds)
2021-02-21 06:11:27 +0100spoonm(~spoonm@2602:ffd5:1:119::1)
2021-02-21 06:12:44 +0100rkk95(41bf0bfc@065-191-011-252.inf.spectrum.com)
2021-02-21 06:13:23 +0100 <rkk95> When I install haskell extension in VSCode, I get ghcide executable missing, please make sure it is installed, see https://github.com/digital-asset/ghcide , I thought extensions supposed to download the binaires as noted here : https://hackage.haskell.org/package/ghcide
2021-02-21 06:13:31 +0100ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-02-21 06:14:56 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 256 seconds)
2021-02-21 06:15:19 +0100stree(~stree@68.36.8.116) (Ping timeout: 265 seconds)
2021-02-21 06:17:45 +0100ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds)
2021-02-21 06:22:14 +0100minoru_shiraeesh(~shiraeesh@46.34.206.204) (Ping timeout: 260 seconds)
2021-02-21 06:25:09 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz)
2021-02-21 06:25:18 +0100iqubic(~user@2601:602:9500:4870:af71:936d:31cf:2ae7)
2021-02-21 06:25:31 +0100iqubic(~user@2601:602:9500:4870:af71:936d:31cf:2ae7) ()
2021-02-21 06:26:13 +0100rkk95(41bf0bfc@065-191-011-252.inf.spectrum.com) (Quit: Connection closed)
2021-02-21 06:27:54 +0100stree(~stree@68.36.8.116)
2021-02-21 06:29:09 +0100juri_(~juri@178.63.35.222) (Ping timeout: 272 seconds)
2021-02-21 06:29:20 +0100zebrag(~inkbottle@aaubervilliers-654-1-4-36.w83-200.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-02-21 06:31:23 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-21 06:33:25 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-02-21 06:34:40 +0100Tario(~Tario@201.192.165.173)
2021-02-21 06:35:48 +0100jedws(~jedws@101.184.202.248) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-21 06:36:37 +0100nhs(~nhs@c-67-180-177-103.hsd1.ca.comcast.net)
2021-02-21 06:40:45 +0100nhs(~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2021-02-21 06:40:53 +0100 <swarmcollective> rkk95, did you previously install ghcide on the machine? It could be that it exists, but it is an incompatible version?
2021-02-21 06:41:12 +0100 <swarmcollective> (sigh, missed them)
2021-02-21 06:43:26 +0100jedws(~jedws@101.184.202.248)
2021-02-21 06:44:58 +0100h2017(~h2017@bras-base-clbaon0201w-grc-32-142-114-145-140.dsl.bell.ca) (Quit: Leaving)
2021-02-21 06:45:18 +0100minoru_shiraeesh(~shiraeesh@46.34.206.204)
2021-02-21 06:48:52 +0100Saukk(~Saukk@83-148-239-3.dynamic.lounea.fi)
2021-02-21 06:51:02 +0100ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-02-21 06:51:02 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-21 06:53:09 +0100jedws(~jedws@101.184.202.248) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-21 06:53:23 +0100heatsink(~heatsink@2600:1700:bef1:5e10:2c3b:7c69:7266:b507) (Remote host closed the connection)
2021-02-21 06:55:05 +0100tromp_(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-21 06:55:16 +0100ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds)
2021-02-21 06:55:45 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 272 seconds)
2021-02-21 06:56:34 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net)
2021-02-21 06:57:38 +0100cur8or(~cur8or@72canterbury.cybersmart.co.za)
2021-02-21 06:59:47 +0100tromp_(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 265 seconds)
2021-02-21 07:02:37 +0100cur8or_(~cur8or@196.41.98.130)
2021-02-21 07:03:57 +0100idhugo(~idhugo@80-62-117-97-mobile.dk.customer.tdc.net)
2021-02-21 07:04:37 +0100cur8or(~cur8or@72canterbury.cybersmart.co.za) (Ping timeout: 272 seconds)
2021-02-21 07:04:45 +0100klixto(~klixto@49.188.43.94)
2021-02-21 07:04:49 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 268 seconds)
2021-02-21 07:05:38 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-02-21 07:11:37 +0100verement(~anonymous@cpe-76-167-229-223.san.res.rr.com) (Read error: Connection reset by peer)
2021-02-21 07:12:15 +0100Sgeo_(~Sgeo@ool-18b98aa4.dyn.optonline.net)
2021-02-21 07:12:39 +0100 <arahael> So nice being able to go back to an old, ancient script. Modify it to do some dramatic new feature. And the first time you run it, it just works. Even for a "dodgy script that uses System.Process and crap".
2021-02-21 07:13:38 +0100 <arahael> I blame haskell for that. :)
2021-02-21 07:16:00 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net) (Ping timeout: 246 seconds)
2021-02-21 07:16:22 +0100vgtw_(~vgtw@gateway/tor-sasl/vgtw)
2021-02-21 07:16:56 +0100jedws(~jedws@101.184.202.248)
2021-02-21 07:17:09 +0100vgtw(~vgtw@gateway/tor-sasl/vgtw) (Ping timeout: 268 seconds)
2021-02-21 07:17:10 +0100vgtw_vgtw
2021-02-21 07:17:31 +0100 <ski> @quote just.works
2021-02-21 07:17:31 +0100 <lambdabot> erisco says: well at least I do not have to deal with a type system. everything just works
2021-02-21 07:17:35 +0100 <ski> @quote bug.theory
2021-02-21 07:17:35 +0100 <lambdabot> dons says: so i suspect dynamically typed langs, that just work (bugs and all) will always be more popular with the masses since most people don't understand bug theory ;)
2021-02-21 07:17:47 +0100Tario(~Tario@201.192.165.173) (Ping timeout: 256 seconds)
2021-02-21 07:18:12 +0100 <arahael> Right. :(
2021-02-21 07:18:35 +0100 <arahael> I've had one highly experienced software dev swear that he prefers javascript because... "It doesn't have types"
2021-02-21 07:19:30 +0100cur8or_(~cur8or@196.41.98.130) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-21 07:20:08 +0100 <ski> @quote writing.code
2021-02-21 07:20:08 +0100 <lambdabot> roconnor says: writing incorrect programs in Haskell is hard. but writing correct programs is hard in every langauge. therefore, writing code in Haskell is hard. <EvanR> everything is hard in
2021-02-21 07:20:09 +0100 <lambdabot> haskell ;) <kmc> that's a pretty good summary
2021-02-21 07:20:32 +0100kini(~kini@unaffiliated/kini) (Quit: bye)
2021-02-21 07:22:06 +0100ddellacosta(~ddellacos@86.106.143.59)
2021-02-21 07:26:25 +0100ddellacosta(~ddellacos@86.106.143.59) (Ping timeout: 240 seconds)
2021-02-21 07:30:16 +0100kini(~kini@unaffiliated/kini)
2021-02-21 07:30:55 +0100 <ukari> is it possible to re-export a function `foo` from module `Foo` in module `Bar` and `Baz` with different document?
2021-02-21 07:31:41 +0100 <ukari> and `import Bar(foo)` and `Baz(foo)` will not cause ambiguous occurrence
2021-02-21 07:32:23 +0100 <ukari> I tried {-# inline foo #-} but not work
2021-02-21 07:34:04 +0100Saukk(~Saukk@83-148-239-3.dynamic.lounea.fi) (Remote host closed the connection)
2021-02-21 07:34:32 +0100ukari(~ukari@unaffiliated/ukari) (Remote host closed the connection)
2021-02-21 07:34:49 +0100 <ski> dunno what you mean by "with different document"
2021-02-21 07:34:56 +0100ukari(~ukari@unaffiliated/ukari)
2021-02-21 07:34:57 +0100 <ski> dunno what you mean by "with different document"
2021-02-21 07:35:16 +0100 <ski> but reexporting via multiple import paths should work, i think
2021-02-21 07:35:58 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2021-02-21 07:37:29 +0100Varis(~Tadas@unaffiliated/varis)
2021-02-21 07:38:02 +0100 <ukari> ski, different document example https://gist.github.com/ukari/f3266ac1ea71bfb5864ce2f7ef8020b2
2021-02-21 07:38:48 +0100 <ukari> but this example will cause an ambiguous occurrence
2021-02-21 07:39:00 +0100 <ski> ukari : don't define `foo' in `Bar' and `Baz'. just reexport it
2021-02-21 07:39:36 +0100 <ukari> but just reexport it , I can't add different document
2021-02-21 07:39:56 +0100 <ski> (perhaps you'll need to type `Foo.foo' in the export list, since you're doing `qualified')
2021-02-21 07:40:14 +0100 <ski> i still have no idea what you mean by "document"
2021-02-21 07:40:30 +0100 <ski> oh .. maybe you mean (Haddock) documentation ?
2021-02-21 07:40:58 +0100 <ukari> yes
2021-02-21 07:41:20 +0100 <ski> i'm not sure, but i think you can't update or attach new Haddock docs to the identifier, when you're reexporting it
2021-02-21 07:42:02 +0100 <ukari> thanks you, ski, I decide to give up the impossible trying
2021-02-21 07:42:10 +0100 <ski> (why not attach that doc talking about `bar foo'/`baz foo' to `bar'/`baz', instead ?)
2021-02-21 07:42:21 +0100urodna(~urodna@unaffiliated/urodna) (Quit: urodna)
2021-02-21 07:43:15 +0100jedws(~jedws@101.184.202.248) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-21 07:44:20 +0100 <ukari> because in logical, the `Bar` and `Baz` module dependent on `Foo` module, so the `Foo` module should knows nothing about `Bar`, `Baz` or `Bax`...
2021-02-21 07:44:58 +0100kini(~kini@unaffiliated/kini) (Quit: bye)
2021-02-21 07:46:43 +0100 <ski> yea, but i was talking about documentation regarding `Bar' and `Baz', not regarding `Foo'
2021-02-21 07:48:01 +0100 <ski> "usage @bar foo@" seems to suggest to me that you're supposed to be able to employ `foo' when invoking `bar'. and since `Bar' depends on `Foo' (and reexports `foo'), it seems to me this documentation example belongs to `bar', not to `foo', no ?
2021-02-21 07:48:31 +0100 <minoru_shiraeesh> I've stumbled upon a quote earlier in this chat, but can't find it, something about type system, someone was saying something along the lines of that the type system forces you to write the whole program before you even run it for the first time.
2021-02-21 07:49:08 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-21 07:49:11 +0100 <minoru_shiraeesh> and now I see a quote about not having to deal with a type system and that everything just works.
2021-02-21 07:49:28 +0100 <minoru_shiraeesh> here is a thought
2021-02-21 07:49:55 +0100 <ski> (or rather, everything appearing to work, i would say was the understatement, there)
2021-02-21 07:50:15 +0100 <minoru_shiraeesh> it would be cool to write a first version of a program in a dynamically typed language
2021-02-21 07:50:26 +0100 <minoru_shiraeesh> and then to translate it to a statically typed one
2021-02-21 07:50:36 +0100 <ukari> ski, yes, you are right, acutally `Bar' and `Baz' should not export `foo`
2021-02-21 07:50:56 +0100 <ski> ukari : hm, ok. maybe that makes a difference then. or maybe not
2021-02-21 07:50:57 +0100 <minoru_shiraeesh> what if one language gave the opportunity to write in both styles?
2021-02-21 07:51:46 +0100kini(~kini@unaffiliated/kini)
2021-02-21 07:51:52 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8871:e949:6c7d:3254:7bc2:5a9d)
2021-02-21 07:52:20 +0100 <minoru_shiraeesh> when you compile a program, you specify a flag that says "I'm just experimenting with an idea, I want to compile it like it's a dynamically typed language"
2021-02-21 07:52:34 +0100 <minoru_shiraeesh> and later you gradually make it more strict
2021-02-21 07:52:43 +0100 <ski> minoru_shiraeesh : with an expressive enough type system (that you can rely on to flag certain kinds of mistakes, possibly also including warnings (non-exhaustive matching, say)), people sometimes develop a style of coding, "typeful programming", in which they rely more on the types, trying to express things in a way so that more potential mistakes manifest as type errors
2021-02-21 07:53:11 +0100nhs(~nhs@c-67-180-177-103.hsd1.ca.comcast.net)
2021-02-21 07:53:27 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 246 seconds)
2021-02-21 07:53:47 +0100heatsink(~heatsink@2600:1700:bef1:5e10:2c3b:7c69:7266:b507)
2021-02-21 07:54:12 +0100 <monochrom> "f = undefined" satisfies the type system alright. I can't think of that as being forced to write the whole program upfront.
2021-02-21 07:54:28 +0100average(uid473595@gateway/web/irccloud.com/x-ajbakqsurwmqkezd)
2021-02-21 07:55:01 +0100 <ukari> ski, I meet this problem because I want to provide the same glsl both in`GLSL/Glslang(glsl, vert .. mesh)`, `GLSL/Shaderc(glsl, vert .. mesh)`to support both glslang and shaderc. for example https://github.com/expipiplus1/vulkan/blob/5f2daf5f1b7167c75b8195d66d09c4d1307db5ac/utils/src/Vulk…
2021-02-21 07:55:13 +0100 <monochrom> -fdefer-type-errors can take that further and look the other way for certain type errors.
2021-02-21 07:55:24 +0100 <ski> minoru_shiraeesh : also, sometimes, with types ("following the types"), it can feel a little bit like you're balancing, blindfolded, on a jagged high mountain ridge, with steep falls on both sides. however, the types provide an alarm system that warns you when you're about to step out into the nothing. so, the effect is that, with the type system, you're able to express somewhat tricky type "balancing"
2021-02-21 07:55:30 +0100 <ski> feats, that you'd probably have gotten wrong in a dynamically typed language, and where it might be much harder to detect and diagnose the problem
2021-02-21 07:56:32 +0100 <ukari> so that the usage could be simply `import Vulkan.Utils.GLSL.Glslang` instead of `import Vulkan.Utils.GLSL(glsl) \newline import Vulkan.Utils.GLSL.Glslang`
2021-02-21 07:57:30 +0100nhs(~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
2021-02-21 07:57:56 +0100heatsink(~heatsink@2600:1700:bef1:5e10:2c3b:7c69:7266:b507) (Ping timeout: 240 seconds)
2021-02-21 07:58:28 +0100 <ukari> and if `glsl` is in `Vulkan.Utils.GLSL`, there couldn't be an example about `$(compileShaderQ Nothing "frag" Nothing [glsl| ... |]` because `compileShaderQ` is different between shaderc and glslang
2021-02-21 07:58:43 +0100 <ski> minoru_shiraeesh : that said, there's `-fdefer-typed-holes',`-fdefer-out-of-scope-variables',`-fdefer-type-errors'
2021-02-21 07:59:51 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2021-02-21 08:00:06 +0100 <ski> ukari : it might be a reasonable feature request, for Haddock
2021-02-21 08:00:16 +0100ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-02-21 08:01:19 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-21 08:01:47 +0100 <ukari> ski, thanks for suggestion
2021-02-21 08:03:56 +0100slack1256(~slack1256@dvc-186-186-101-190.movil.vtr.net) (Ping timeout: 240 seconds)
2021-02-21 08:04:21 +0100totoro2023(~t@unaffiliated/totoro2021) (Remote host closed the connection)
2021-02-21 08:04:25 +0100ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds)
2021-02-21 08:08:19 +0100 <minoru_shiraeesh> I don't have experience of creating big projects in haskell and don't know how they evolve
2021-02-21 08:09:16 +0100 <minoru_shiraeesh> so I don't know is this really a problem? I mean a type system forcing you to write the whole program upfront
2021-02-21 08:09:32 +0100desophos(~desophos@2601:249:1680:a570:d500:73bc:696a:d401)
2021-02-21 08:09:43 +0100 <minoru_shiraeesh> but I can imagine it to be the case
2021-02-21 08:09:58 +0100 <minoru_shiraeesh> or to add friction to the refactoring process
2021-02-21 08:10:32 +0100pavonia^\_^\(~user@unaffiliated/siracusa) (Quit: Bye!)
2021-02-21 08:11:33 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-02-21 08:11:55 +0100 <swarmcollective> Why do you have to write the whole program up-front? I just write some, test it, write some, test it. It is pretty easy to write a few functions and see that they do what I expect them to.
2021-02-21 08:11:56 +0100 <minoru_shiraeesh> like, deciding that something is "nullable" is easy in some languages (but it can backfire later), but if you make that decision in haskell, you have to add Maybe to the monad stack, right?
2021-02-21 08:12:21 +0100danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
2021-02-21 08:13:07 +0100 <swarmcollective> You can just have some pure function return Maybe, it doesn't need to be part of the Monad stack.
2021-02-21 08:13:32 +0100 <ephemient> and that refactoring is easier in Haskell than making sure various bit of code is null-safe
2021-02-21 08:13:39 +0100 <swarmcollective> Try to write as much of the code in pure functions as possible. It is more portable / reusable that way anyway.
2021-02-21 08:13:40 +0100 <minoru_shiraeesh> but you have to put those functions together at some point
2021-02-21 08:14:47 +0100 <ephemient> so put them together one way or another, and if you have to change the types later, you can do that
2021-02-21 08:15:22 +0100 <swarmcollective> Also, you can write `plugin` style composing your solution just like most languages. Its an option if you need it.
2021-02-21 08:15:32 +0100 <ski> lack of side-effects, and the increase in "reasonability"/"predictive power" that gives (also other things contribute, e.g. pattern-matching with multiple defining equations) tends to ease the refactoring process. and also make it easier to test things in isolation
2021-02-21 08:16:05 +0100mirrorbird(~psutcliff@2a00:801:44d:603d:d116:d5a1:4a2f:a08f) (Ping timeout: 272 seconds)
2021-02-21 08:19:11 +0100 <minoru_shiraeesh> I'm investigating this subject, trying to figure out how do you compose monads, and also I heard about free monads. For now I imagine the process as building a monad stack and the expressing the logic in terms of that stack.
2021-02-21 08:19:29 +0100 <minoru_shiraeesh> *and then expressing
2021-02-21 08:19:30 +0100 <ski> often changes will ripple through the code to the relevant places (`-Wincomplete-uni-patterns',`-Wincomplete-patterns',`-Wincomplete-record-updates' help)
2021-02-21 08:21:26 +0100coeus(~coeus@p200300d02716f600092ef689065f6814.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2021-02-21 08:22:10 +0100Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2021-02-21 08:22:28 +0100 <minoru_shiraeesh> I think one thing would be hugely helpful for beginners
2021-02-21 08:22:48 +0100 <minoru_shiraeesh> creating a design pattern dictionary
2021-02-21 08:22:57 +0100frozenErebus(~frozenEre@94.128.219.166)
2021-02-21 08:23:20 +0100 <minoru_shiraeesh> like, "a global mutable variable translates to the state monad"
2021-02-21 08:23:30 +0100 <minoru_shiraeesh> etc
2021-02-21 08:23:32 +0100 <ephemient> for high-level application architecture? I'm not sure there's much community consensus on that
2021-02-21 08:24:48 +0100 <minoru_shiraeesh> or even listing various techniques you can use when translating from one paradigm to another
2021-02-21 08:25:15 +0100 <dolio> Shouldn't it just say not to use global mutable variables?
2021-02-21 08:25:42 +0100 <minoru_shiraeesh> I think the information is out there somewhere, but it is written in advances language, but that's just a guess
2021-02-21 08:26:31 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-21 08:27:00 +0100 <minoru_shiraeesh> dolio: I mean, you can create a global mutable variable, and later you can move it somewhere, encapsulate it, and the process is more or less clear
2021-02-21 08:27:26 +0100 <minoru_shiraeesh> when you deal with dynamically typed languages
2021-02-21 08:27:27 +0100ski. o O ( "Pattern Languages of Functional Programs" <http://www.cs.uni.edu/~wallingf/patterns/functional/> )
2021-02-21 08:30:03 +0100 <ski> (also note that "pattern" in the sense of GoF sometimes have a negative connotation in an FP context, such patterns/idioms being seen as manifestations of limitations of a language, that with a more expressive language, or a language with more proper abstractions/concepts, one wouldn't feel that much of a need to talk about and identify the pattern, or at least not make a big deal out of it. it would "just
2021-02-21 08:30:09 +0100 <ski> be a library or part thereof")
2021-02-21 08:31:13 +0100 <minoru_shiraeesh> like, when you are playing with an idea, you can write bad code with global vars
2021-02-21 08:31:18 +0100 <minoru_shiraeesh> and refactor later
2021-02-21 08:32:16 +0100 <ski> anyway .. state monad doesn't give global extent in quite the same fashion, although it is global to the "state thread" in question (unlike say things like stream processors, and probably at least some of the various stream processing libraries)
2021-02-21 08:32:26 +0100 <minoru_shiraeesh> do haskellers use that approach? "write bad code when starting and gradually improve it later"
2021-02-21 08:32:58 +0100 <ski> (iiuc, in Lua you'd carry all your context around in parameters, is that right ?)
2021-02-21 08:33:28 +0100 <dolio> Well, not code that uses global mutable variables.
2021-02-21 08:33:39 +0100 <dolio> Because that doesn't exist.
2021-02-21 08:33:54 +0100 <dolio> I mean, technically it can, but it's way too much of a mess.
2021-02-21 08:34:00 +0100 <ski> minoru_shiraeesh : in some regards, surely yes. one can start with an elegant but inefficient implementation, and then either massage it into being more efficient, or jump into another more efficient implementation
2021-02-21 08:34:06 +0100 <swarmcollective> IORef FTW
2021-02-21 08:34:11 +0100coeus(~coeus@p200300d0274c930028b50fb1d864e965.dip0.t-ipconnect.de)
2021-02-21 08:34:21 +0100 <ephemient> you could have a ReaderT MyGlobalEnv IO where data MyGlobalEnv = MyGlobalEnv { myGlobalVar :: IORef a } or something like that, and it's actually reasonable to use
2021-02-21 08:34:23 +0100 <ski> you still need to pass the `IORef' to where it's to be used
2021-02-21 08:35:29 +0100 <ski> being able to have run-time generated modules as first-class values might be interesting. then a module could e.g. close over some `IORef'
2021-02-21 08:35:49 +0100 <ski> (OCaml allows this)
2021-02-21 08:36:10 +0100stree(~stree@68.36.8.116) (Ping timeout: 260 seconds)
2021-02-21 08:36:12 +0100 <swarmcollective> It (IORef) is great for one way read-only information passing between threads, among other use cases. However, I could imagine someone just declaring everything via IORef and updating them at random.
2021-02-21 08:36:15 +0100 <dolio> Having a global IORef still means you need to use IO to access it, which is also a mess.
2021-02-21 08:36:48 +0100 <monochrom> I write bad code at the beginning. But people look at my bad code and think it's good code. Does that count?
2021-02-21 08:37:24 +0100 <swarmcollective> but your bad code monochrom is likely much less bad than my bad code. ;)
2021-02-21 08:37:33 +0100 <dolio> Basically, 'start with a global variable and clean it up later' is not something that ever enters into my head.
2021-02-21 08:37:35 +0100 <ephemient> in my heart, me going the other way around counts, so yours should count too ;)
2021-02-21 08:37:54 +0100 <dolio> It is just more work.
2021-02-21 08:37:54 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz)
2021-02-21 08:38:42 +0100 <dolio> But I also disagree with the sentiments behind the original quotation, I think.
2021-02-21 08:38:51 +0100 <dolio> Thinking about types up front is not a burden to me.
2021-02-21 08:39:11 +0100 <ephemient> I mean, yeah cleaning up a top-level {-# NOINLINE #-} unsafePerformIO $ newIORef is not great
2021-02-21 08:39:15 +0100 <swarmcollective> When people ask me why I like Haskell, I explain it this way: 1) If I read the code and it looks like it is going to do what I want, and 2) it compiles... the likelihood that it is going to do what I want is very high.
2021-02-21 08:39:16 +0100drbean(~drbean@TC210-63-209-29.static.apol.com.tw) (Ping timeout: 240 seconds)
2021-02-21 08:39:19 +0100 <dolio> It is a fundamental and natural part of conceptualizing the problem.
2021-02-21 08:39:28 +0100 <ephemient> but if you're not doing that I think most other refactorings are fine
2021-02-21 08:40:30 +0100 <swarmcollective> In many other languages, I spend a lot more time saying "Yeah, this looks right." and it compiles, but does not produce the exptected outcome.
2021-02-21 08:40:43 +0100kuribas(~user@ptr-25vy0i9d8ddz063tr0c.18120a2.ip6.access.telenet.be)
2021-02-21 08:40:51 +0100 <monochrom> I don't understand the obsession with global variables. Even in C you wouldn't do it.
2021-02-21 08:41:09 +0100 <swarmcollective> The difference is whether you spend your time producing code that compiles, or spend your time trying to figure out why the code that compiled fails to work as expected.
2021-02-21 08:41:13 +0100 <dolio> Yeah, same.
2021-02-21 08:41:14 +0100 <monochrom> Basically you would only do it in BASIC and it is only because there is no local variable there so you have no choice.
2021-02-21 08:41:30 +0100vchlup(~vchlup@nat.brnet.cz) (Read error: Connection reset by peer)
2021-02-21 08:41:58 +0100vchlup(~vchlup@nat.brnet.cz)
2021-02-21 08:42:31 +0100 <monochrom> Basically you look at even 1st-year students they naturally go for function parameters and local variables.
2021-02-21 08:43:05 +0100 <dolio> Anyhow, there is plenty of research on 'graudal types' and stuff for having a system that has parts that aren't type checked and stuff. But personally I don't get the appeal.
2021-02-21 08:43:08 +0100vchlup(~vchlup@nat.brnet.cz) (Remote host closed the connection)
2021-02-21 08:43:16 +0100 <ephemient> I was cleaning up some (Kotlin) code earlier this week at work because somebody stored a continuation in a global variable, making a piece of code crash on reentrance. I am not sure where they got that bright idea from.
2021-02-21 08:43:24 +0100ski. o O ( "Re: Mercury in academic teaching?" by Richard A. O'Keefe in 2006-10-(09|10) at <https://lists.mercurylang.org/archives/users/2006-October/004000.html>,<https://lists.mercurylang.org/archives/users/2006-October/004011.html> )
2021-02-21 08:43:27 +0100vchlup(~vchlup@nat.brnet.cz)
2021-02-21 08:44:07 +0100totoro2021(~t@unaffiliated/totoro2021)
2021-02-21 08:44:09 +0100 <monochrom> continuation in a global variable. That's setjmp and longjmp right there. :)
2021-02-21 08:44:23 +0100 <ski> were they implementing delimited continuations ?
2021-02-21 08:44:56 +0100 <ephemient> they just wanted to get a callback from the UI >_<
2021-02-21 08:44:56 +0100vchlup(~vchlup@nat.brnet.cz) (Read error: Connection reset by peer)
2021-02-21 08:45:19 +0100vchlup(~vchlup@nat.brnet.cz)
2021-02-21 08:45:22 +0100 <monochrom> When I learned Lisp I wrote type signatures in comments for my sanity.
2021-02-21 08:45:22 +0100 <ski> "Becket: Mercury has a much steeper learning curve, but in many cases the compiler tells you when your program is not going to do what you thought it would."
2021-02-21 08:45:33 +0100 <monochrom> That's how much untypedness hinders me.
2021-02-21 08:46:13 +0100 <ski> "O'Keefe: That's not a \"but\", it's really a \"because\". Mercury has a much steeper learning curve, BECAUSE in many cases the compiler tells you when your program is not going to do what you thought it would, and you never get to find out what would have happened, so you don't understand what the compiler is trying to tell you."
2021-02-21 08:46:17 +0100 <monochrom> static or dynamic, you make a mistake you will pay for it.
2021-02-21 08:46:49 +0100 <ephemient> well, if it's dynamic you have the option of making your customers pay for it instead of you ;)
2021-02-21 08:47:01 +0100 <ski> "Over the years, one of the top complaints that I have heard from people who have taken programming courses and found them very hard going is \"I could never make sense of the compiler error messages.\"."
2021-02-21 08:47:03 +0100 <swarmcollective> minoru_shiraeesh, one pattern I can see being applicable in Haskell for complex systems would be CQRS.
2021-02-21 08:47:14 +0100 <monochrom> if you're allowed to run your buggy code prematurely, you will be confused as hell where is the bug.
2021-02-21 08:47:27 +0100 <monochrom> and then you ask about "why is there no debugger???!!!!"
2021-02-21 08:47:29 +0100 <ski> "Come to think of it, one of the things that drives me up the wall is 3rd year students handing in C programs with obvious problems that the C compiler DID tell them about, but they weren't EXPECTING to understand anything the compiler said, so they didn't bother looking at what it did say or even the particular lines it was talking about."
2021-02-21 08:47:34 +0100 <monochrom> Static typing is my debuggers.
2021-02-21 08:48:44 +0100stree(~stree@68.36.8.116)
2021-02-21 08:49:15 +0100ski. o O ( Buddha is dead .. )
2021-02-21 08:49:47 +0100 <dolio> I guess the secret is to learn Agda. Program in that for a while trying to actually prove things about any non-trivial program, and then come back and the rudimentary type checking in Haskell seems simple.
2021-02-21 08:49:50 +0100 <monochrom> I killed Buddha. And Dijsktra.
2021-02-21 08:50:10 +0100 <kuribas> swarmcollective: isn't CQRS just separating IO from pure functions, though?
2021-02-21 08:50:15 +0100ski. o O ( <https://web.archive.org/web/20091122221642/http://ww2.cs.mu.oz.au:80/~bjpop/buddha/> )
2021-02-21 08:51:05 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2021-02-21 08:51:23 +0100 <monochrom> I proved a little theorem and gave a talk, and it contained an ugly generatlization I needed to get the job done, and I wanted to express that no one could stop me. So I paraphrased that quote about...
2021-02-21 08:51:32 +0100 <dolio> Yeah, I wish something like buddha shipped with GHC.
2021-02-21 08:51:38 +0100 <swarmcollective> kuribas, interesting! That makes sense.
2021-02-21 08:51:39 +0100 <monochrom> "If you see Buddha, kill Buddha. If you see Dijkstra, kill Dijkstra."
2021-02-21 08:51:40 +0100 <dolio> It'd be a lot nicer than tracing.
2021-02-21 08:52:02 +0100 <kuribas> swarmcollective: well, I suppose you can have queries that do IO, but otherwise don't change any state...
2021-02-21 08:52:53 +0100 <ski> monochrom : yea, i had that quote in mind, from the start :)
2021-02-21 08:53:34 +0100ski. o O ( <https://catonmat.net/wp-content/uploads/2008/11/edsger-dijkstra-quick-and-dirty.jpg> )
2021-02-21 08:53:54 +0100 <desophos> hi, i'm using `classify` to implement a simple histogram for my quickcheck test results and i'd like to collect some conditional statistics about the results (e.g. avg other values for results in a certain range), but it seems like quickcheck only has functions for overall distribution reporting. is there a way i can access individual test case results or any clever way to go about this?
2021-02-21 08:54:11 +0100 <minoru_shiraeesh> here is an article about high-level architecture in haskell: https://www.parsonsmatt.org/2018/03/22/three_layer_haskell_cake.html
2021-02-21 08:54:13 +0100 <swarmcollective> I'm trying to build a container to build ghc in (based on gregweber/ghc-haskell-dev) and first it complained because the referenced ghc (8.4.4) was too old, so I updated it to 8.10.2 and it complained that ghc 7.0.x or greater is required, but not found. *sigh*
2021-02-21 08:54:45 +0100 <minoru_shiraeesh> when I first tried reading it, it seemed to advanced for me
2021-02-21 08:54:59 +0100 <minoru_shiraeesh> *too
2021-02-21 08:55:02 +0100heatsink(~heatsink@2600:1700:bef1:5e10:2c3b:7c69:7266:b507)
2021-02-21 08:55:37 +0100 <minoru_shiraeesh> so I decided to take a step back and learn simpler stuff first
2021-02-21 08:55:47 +0100 <kuribas> I don't quite agree with the three layer cake, that you should write your functions polymorphically.
2021-02-21 08:56:18 +0100 <kuribas> IMO avoiding polymorphic functions, but using adapters is the cleaner approach.
2021-02-21 08:58:30 +0100 <ephemient> desophos: does the distribution reported by using `label`/`tabulate` not work for you?
2021-02-21 08:59:12 +0100 <desophos> ephemient, no, because i want to know the distributions *within* certain ranges
2021-02-21 08:59:44 +0100 <desophos> e.g. for results with 10 < x < 20, what is the distribution of y
2021-02-21 09:00:02 +0100heatsink(~heatsink@2600:1700:bef1:5e10:2c3b:7c69:7266:b507) (Ping timeout: 264 seconds)
2021-02-21 09:00:39 +0100shad0w_(a0ca24f4@160.202.36.244)
2021-02-21 09:01:44 +0100 <ephemient> label (if 10 < x && x < 20 then "y = " ++ show y else "(ignored)") no good?
2021-02-21 09:02:00 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-21 09:02:22 +0100 <swarmcollective> kuribas, I'm interested in CQRS for the ability to easily extend it to asynchronous distributed systems and the ability to implement undo, redo, and replication via the commands inherent in the paradigm.
2021-02-21 09:03:33 +0100 <desophos> no, because i want to see the statistical distribution of y, not just individual values
2021-02-21 09:04:34 +0100 <desophos> i was thinking i could label test cases with all their individual values so that the quickcheck Result has one test case with each set of values, then collect and analyze them from there
2021-02-21 09:05:07 +0100 <ephemient> hmm. I guess quickcheck doesn't really help with that out of the box
2021-02-21 09:05:26 +0100 <kuribas> swarmcollective: yeah, implementing messages in haskell using ADTs is very nice.
2021-02-21 09:05:34 +0100 <desophos> i mean, each set of values would have only one test case associated with it
2021-02-21 09:05:51 +0100 <kuribas> swarmcollective: as you can easily serialize, they are immutable, etc...
2021-02-21 09:05:59 +0100 <ephemient> the Result will have a map of all the labels/tables from all the test cases, and you could parse it back out from there
2021-02-21 09:06:15 +0100 <desophos> yes, that's what i was thinking, but i was wondering if there's a less roundabout way to do it
2021-02-21 09:06:40 +0100 <ephemient> I can't think of anything cleaner. good question though, maybe somebody else may have an idea...
2021-02-21 09:06:48 +0100klixto(~klixto@49.188.43.94) (Quit: WeeChat 3.0)
2021-02-21 09:08:17 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-zkqjuggkajftiwsq) (Quit: Connection closed for inactivity)
2021-02-21 09:11:26 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-02-21 09:16:45 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
2021-02-21 09:20:59 +0100CMCDragonkai1(~Thunderbi@60-242-118-130.tpgi.com.au)
2021-02-21 09:21:37 +0100mirrorbird(~psutcliff@2a00:801:44d:603d:d116:d5a1:4a2f:a08f)
2021-02-21 09:22:36 +0100Varis(~Tadas@unaffiliated/varis)
2021-02-21 09:23:21 +0100CMCDragonkai1(~Thunderbi@60-242-118-130.tpgi.com.au) (Client Quit)
2021-02-21 09:23:22 +0100 <desophos> oof, especially since i'll have to parse the data back from the String label...
2021-02-21 09:24:55 +0100totoro2021(~t@unaffiliated/totoro2021) (Read error: Connection reset by peer)
2021-02-21 09:25:02 +0100totoro2022(~t@unaffiliated/totoro2021)
2021-02-21 09:25:51 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2021-02-21 09:26:17 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Client Quit)
2021-02-21 09:26:33 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2021-02-21 09:33:31 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-02-21 09:34:36 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz) (Remote host closed the connection)
2021-02-21 09:35:25 +0100tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2021-02-21 09:36:22 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-02-21 09:36:32 +0100torax(~torax@178.239.168.171) (Remote host closed the connection)
2021-02-21 09:37:05 +0100frozenErebus(~frozenEre@94.128.219.166) (Ping timeout: 240 seconds)
2021-02-21 09:38:42 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2021-02-21 09:44:11 +0100jedws(~jedws@101.184.202.248)
2021-02-21 09:46:11 +0100jedws(~jedws@101.184.202.248) (Client Quit)
2021-02-21 09:47:25 +0100jedws(~jedws@101.184.202.248)
2021-02-21 09:48:14 +0100jedws(~jedws@101.184.202.248) (Client Quit)
2021-02-21 09:48:14 +0100dansho(~dansho@ec2-54-248-10-133.ap-northeast-1.compute.amazonaws.com)
2021-02-21 09:49:26 +0100minoru_shiraeesh(~shiraeesh@46.34.206.204) (Ping timeout: 260 seconds)
2021-02-21 09:53:33 +0100wei2912(~wei2912@unaffiliated/wei2912)
2021-02-21 09:56:02 +0100jksafjkal(56032b47@cpc68308-cdif16-2-0-cust838.5-1.cable.virginm.net) (Ping timeout: 240 seconds)
2021-02-21 09:56:11 +0100kini(~kini@unaffiliated/kini) (Remote host closed the connection)
2021-02-21 09:57:09 +0100vicfred(~vicfred@unaffiliated/vicfred) (Quit: Leaving)
2021-02-21 09:57:24 +0100hekkaidekapus[(~tchouri@gateway/tor-sasl/hekkaidekapus)
2021-02-21 09:57:31 +0100kini(~kini@unaffiliated/kini)
2021-02-21 09:58:30 +0100dyeplexer(~lol@unaffiliated/terpin)
2021-02-21 10:00:07 +0100noIOBeforeBedtim(dissatisfi@gateway/shell/matrix.org/x-fhbburjijoemebwr) (Quit: Idle for 30+ days)
2021-02-21 10:00:34 +0100hekkaidekapus}(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds)
2021-02-21 10:02:38 +0100bitmagie(~Thunderbi@200116b80623f200a9e3bc151af959a1.dip.versatel-1u1.de)
2021-02-21 10:04:27 +0100kini(~kini@unaffiliated/kini) (Ping timeout: 260 seconds)
2021-02-21 10:04:43 +0100kini(~kini@unaffiliated/kini)
2021-02-21 10:05:28 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz)
2021-02-21 10:09:27 +0100shad0w_(a0ca24f4@160.202.36.244) (Quit: Connection closed)
2021-02-21 10:10:00 +0100hendursa1(~weechat@gateway/tor-sasl/hendursaga)
2021-02-21 10:11:03 +0100hendursaga(~weechat@gateway/tor-sasl/hendursaga) (Ping timeout: 268 seconds)
2021-02-21 10:14:28 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-02-21 10:16:42 +0100kw(d4662d5d@212.102.45.93) (Ping timeout: 240 seconds)
2021-02-21 10:19:44 +0100p-core(~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) (Quit: p-core)
2021-02-21 10:22:06 +0100ddellacosta(~ddellacos@83.143.246.103)
2021-02-21 10:23:07 +0100fendor(~fendor@91.141.1.5.wireless.dyn.drei.com)
2021-02-21 10:23:30 +0100Ishutin_(~ishutin@84-236-3-155.pool.digikabel.hu) (Ping timeout: 272 seconds)
2021-02-21 10:26:25 +0100ddellacosta(~ddellacos@83.143.246.103) (Ping timeout: 240 seconds)
2021-02-21 10:29:20 +0100_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-02-21 10:29:46 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-21 10:29:58 +0100Ishutin(~ishutin@92-249-193-15.pool.digikabel.hu)
2021-02-21 10:32:09 +0100Narinas(~Narinas@189.223.59.23.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-21 10:32:28 +0100Narinas(~Narinas@189.223.59.23.dsl.dyn.telnor.net)
2021-02-21 10:34:24 +0100L29Ah(~L29Ah@unaffiliated/l29ah) (Quit: Gateway shutdown)
2021-02-21 10:34:54 +0100Kaiepi(~Kaiepi@47.54.252.148) (Remote host closed the connection)
2021-02-21 10:38:45 +0100Narinas(~Narinas@189.223.59.23.dsl.dyn.telnor.net) (Ping timeout: 240 seconds)
2021-02-21 10:40:20 +0100acidjnk_new(~acidjnk@p200300d0c7390943ecdc1b863cacb0c3.dip0.t-ipconnect.de)
2021-02-21 10:43:12 +0100sablib(~sablib@59.173.154.87)
2021-02-21 10:45:56 +0100danso(~dan@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 240 seconds)
2021-02-21 10:46:06 +0100jedws(~jedws@101.184.202.248)
2021-02-21 10:46:30 +0100danso(~dan@2001:1970:52e7:d000:96b8:6dff:feb3:c009)
2021-02-21 10:46:47 +0100Kaiepi(~Kaiepi@47.54.252.148)
2021-02-21 10:49:53 +0100jamm_(~jamm@unaffiliated/jamm)
2021-02-21 10:51:08 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
2021-02-21 10:52:39 +0100Narinas(~Narinas@189.223.59.23.dsl.dyn.telnor.net)
2021-02-21 10:54:20 +0100 <tomsmeding> desophos: it sounds like 'tabulate (if 10 < x && x < 20 then "in" else "out") [show y]' would do the job, would it not?
2021-02-21 10:54:30 +0100tsaka__(~torstein@athedsl-258913.home.otenet.gr)
2021-02-21 10:54:47 +0100 <tomsmeding> except if you want some binning of the y-histogram
2021-02-21 10:55:50 +0100Kaiepi(~Kaiepi@47.54.252.148) (Remote host closed the connection)
2021-02-21 10:56:11 +0100 <desophos> well, y is usually unique, plus i actually have multiple values i want to analyze
2021-02-21 10:56:20 +0100heatsink(~heatsink@2600:1700:bef1:5e10:2c3b:7c69:7266:b507)
2021-02-21 10:56:53 +0100Kaiepi(~Kaiepi@47.54.252.148)
2021-02-21 10:57:06 +0100stree(~stree@68.36.8.116) (Ping timeout: 260 seconds)
2021-02-21 10:57:39 +0100jedws(~jedws@101.184.202.248) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-21 10:57:58 +0100 <desophos> that tabulate call would be good if y only had a few values, but i have several variables with wide ranges
2021-02-21 10:58:17 +0100 <desophos> so i do want binning
2021-02-21 10:59:23 +0100 <desophos> i'm surprised this isn't a common use case; what do people normally do when they want to analyze program results?
2021-02-21 11:00:56 +0100Kaiepi(~Kaiepi@47.54.252.148) (Ping timeout: 240 seconds)
2021-02-21 11:01:14 +0100heatsink(~heatsink@2600:1700:bef1:5e10:2c3b:7c69:7266:b507) (Ping timeout: 264 seconds)
2021-02-21 11:02:16 +0100tsaka__(~torstein@athedsl-258913.home.otenet.gr) (Ping timeout: 240 seconds)
2021-02-21 11:06:32 +0100Kaiepi(~Kaiepi@47.54.252.148)
2021-02-21 11:07:41 +0100Kaiepi(~Kaiepi@47.54.252.148) (Remote host closed the connection)
2021-02-21 11:08:19 +0100Kaiepi(~Kaiepi@47.54.252.148)
2021-02-21 11:09:23 +0100son0p(~son0p@181.58.39.182)
2021-02-21 11:09:38 +0100stree(~stree@68.36.8.116)
2021-02-21 11:12:34 +0100wtw(~wtw@unaffiliated/wtw) ()
2021-02-21 11:12:36 +0100Kaiepi(~Kaiepi@47.54.252.148) (Ping timeout: 246 seconds)
2021-02-21 11:16:05 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8871:e949:6c7d:3254:7bc2:5a9d) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-21 11:16:29 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-02-21 11:16:40 +0100shatriff(~vitaliish@protective.remission.volia.net) (Remote host closed the connection)
2021-02-21 11:17:12 +0100shatriff(~vitaliish@protective.remission.volia.net)
2021-02-21 11:19:26 +0100jamm_(~jamm@unaffiliated/jamm)
2021-02-21 11:19:42 +0100frozenErebus(~frozenEre@94.128.219.166)
2021-02-21 11:19:59 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-02-21 11:20:53 +0100Kaiepi(~Kaiepi@47.54.252.148)
2021-02-21 11:21:40 +0100sablib(~sablib@59.173.154.87) (Quit: WeeChat 3.0)
2021-02-21 11:24:45 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2021-02-21 11:27:26 +0100jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 240 seconds)
2021-02-21 11:29:41 +0100knupfer(~Thunderbi@200116b82c1930006881d3fffe8bfe6f.dip.versatel-1u1.de)
2021-02-21 11:30:34 +0100haritz(~hrtz@unaffiliated/haritz) (Ping timeout: 256 seconds)
2021-02-21 11:30:44 +0100knupfer(~Thunderbi@200116b82c1930006881d3fffe8bfe6f.dip.versatel-1u1.de) (Remote host closed the connection)
2021-02-21 11:31:20 +0100haritz(~hrtz@62.3.70.206)
2021-02-21 11:31:20 +0100haritz(~hrtz@62.3.70.206) (Changing host)
2021-02-21 11:31:20 +0100haritz(~hrtz@unaffiliated/haritz)
2021-02-21 11:32:36 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-21 11:34:35 +0100Sgeo_(~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
2021-02-21 11:36:04 +0100ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-02-21 11:36:13 +0100ymherklotz(~user@2a00:23c7:e28c:6001:5460:47fb:6d9:8e42)
2021-02-21 11:40:36 +0100ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 246 seconds)
2021-02-21 11:40:44 +0100pera(~pera@unaffiliated/pera)
2021-02-21 11:41:39 +0100drbean(~drbean@TC210-63-209-186.static.apol.com.tw)
2021-02-21 11:42:04 +0100bitmagie(~Thunderbi@200116b80623f200a9e3bc151af959a1.dip.versatel-1u1.de) (Quit: bitmagie)
2021-02-21 11:43:19 +0100CMCDragonkai1(~Thunderbi@60-242-118-130.tpgi.com.au)
2021-02-21 11:43:38 +0100pera(~pera@unaffiliated/pera) (Read error: Connection reset by peer)
2021-02-21 11:44:00 +0100jedws(~jedws@101.184.202.248)
2021-02-21 11:44:20 +0100jedws(~jedws@101.184.202.248) (Client Quit)
2021-02-21 11:45:48 +0100pera(~pera@unaffiliated/pera)
2021-02-21 11:52:42 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-chohypbdngwsxena) (Quit: Connection closed for inactivity)
2021-02-21 11:53:03 +0100Deide(~Deide@217.155.19.23)
2021-02-21 11:53:39 +0100dansho(~dansho@ec2-54-248-10-133.ap-northeast-1.compute.amazonaws.com) (Ping timeout: 265 seconds)
2021-02-21 11:56:48 +0100pyx(~pyx@unaffiliated/pyx)
2021-02-21 11:56:55 +0100pyx(~pyx@unaffiliated/pyx) (Client Quit)
2021-02-21 11:57:46 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-02-21 11:59:35 +0100ymherklotz_(~ymherklot@2a0c:5bc0:40:107b:fdfc:4d2d:898a:f9f5)
2021-02-21 12:01:37 +0100redcherri(bab72682@186.183.38.130)
2021-02-21 12:01:39 +0100shatriff(~vitaliish@protective.remission.volia.net) (Remote host closed the connection)
2021-02-21 12:01:51 +0100shatriff(~vitaliish@protective.remission.volia.net)
2021-02-21 12:02:00 +0100desophos(~desophos@2601:249:1680:a570:d500:73bc:696a:d401) (Read error: Connection reset by peer)
2021-02-21 12:02:54 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2021-02-21 12:02:56 +0100ymherklotz(~user@2a00:23c7:e28c:6001:5460:47fb:6d9:8e42) (Quit: ERC (IRC client for Emacs 27.1))
2021-02-21 12:06:11 +0100ymherklotz_ymherklotz
2021-02-21 12:06:47 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-02-21 12:07:13 +0100ubert1(~Thunderbi@p200300ecdf25d903e6b318fffe838f33.dip0.t-ipconnect.de)
2021-02-21 12:07:20 +0100ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-02-21 12:11:36 +0100ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds)
2021-02-21 12:11:56 +0100zaquest(~notzaques@5.128.210.178) (Remote host closed the connection)
2021-02-21 12:13:56 +0100zaquest(~notzaques@5.128.210.178)
2021-02-21 12:15:08 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-21 12:15:30 +0100Franciman(~francesco@host-82-49-79-189.retail.telecomitalia.it)
2021-02-21 12:15:55 +0100mouseghost(~draco@87-206-9-185.dynamic.chello.pl)
2021-02-21 12:15:55 +0100mouseghost(~draco@87-206-9-185.dynamic.chello.pl) (Changing host)
2021-02-21 12:15:55 +0100mouseghost(~draco@wikipedia/desperek)
2021-02-21 12:19:00 +0100jamm_(~jamm@unaffiliated/jamm)
2021-02-21 12:23:26 +0100jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
2021-02-21 12:23:56 +0100_bo(~bo@178.150.122.153) (Ping timeout: 240 seconds)
2021-02-21 12:25:18 +0100frozenErebus(~frozenEre@94.128.219.166) (Ping timeout: 260 seconds)
2021-02-21 12:27:56 +0100CMCDragonkai1(~Thunderbi@60-242-118-130.tpgi.com.au) (Ping timeout: 240 seconds)
2021-02-21 12:33:38 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-02-21 12:38:19 +0100jedws(~jedws@101.184.202.248)
2021-02-21 12:38:33 +0100arw(~arw@impulse.informatik.uni-erlangen.de) (Quit: screen update)
2021-02-21 12:39:21 +0100ddellacosta(~ddellacos@86.106.143.111)
2021-02-21 12:39:58 +0100frozenErebus(~frozenEre@94.128.219.166)
2021-02-21 12:40:25 +0100arw(~arw@impulse.informatik.uni-erlangen.de)
2021-02-21 12:40:45 +0100idhugo(~idhugo@80-62-117-97-mobile.dk.customer.tdc.net) (Ping timeout: 240 seconds)
2021-02-21 12:41:14 +0100 <tomsmeding> I've wanted it in the past too :p
2021-02-21 12:41:30 +0100 <tomsmeding> Rudimentary binnning can be achieved by tabulating 'round (y / 10)'
2021-02-21 12:41:50 +0100 <tomsmeding> oh desophos is gone
2021-02-21 12:43:05 +0100mrchampion(~mrchampio@38.18.109.23) (Ping timeout: 240 seconds)
2021-02-21 12:44:16 +0100frozenErebus(~frozenEre@94.128.219.166) (Ping timeout: 240 seconds)
2021-02-21 12:44:21 +0100ddellacosta(~ddellacos@86.106.143.111) (Ping timeout: 264 seconds)
2021-02-21 12:45:46 +0100redcherri(bab72682@186.183.38.130) ()
2021-02-21 12:45:52 +0100frozenErebus(~frozenEre@94.128.219.166)
2021-02-21 12:45:58 +0100L29Ah(~L29Ah@unaffiliated/l29ah)
2021-02-21 12:46:03 +0100jedws(~jedws@101.184.202.248) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-21 12:48:42 +0100dunj3(~dunj3@p200300f61714a6752268fca81a1a85c0.dip0.t-ipconnect.de)
2021-02-21 12:56:14 +0100polyrain(~polyrain@2001:8003:e4d8:4101:d1d2:4fc1:88fa:56)
2021-02-21 12:57:48 +0100heatsink(~heatsink@2600:1700:bef1:5e10:2c3b:7c69:7266:b507)
2021-02-21 12:59:45 +0100fendor(~fendor@91.141.1.5.wireless.dyn.drei.com) (Remote host closed the connection)
2021-02-21 13:00:36 +0100juri_(~juri@178.63.35.222)
2021-02-21 13:03:02 +0100heatsink(~heatsink@2600:1700:bef1:5e10:2c3b:7c69:7266:b507) (Ping timeout: 264 seconds)
2021-02-21 13:03:38 +0100m0rphism1(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
2021-02-21 13:08:10 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
2021-02-21 13:11:30 +0100frozenErebus(~frozenEre@94.128.219.166) (Ping timeout: 260 seconds)
2021-02-21 13:14:48 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:b8ec:ecd4:c92c:f02:3202)
2021-02-21 13:17:33 +0100stree(~stree@68.36.8.116) (Ping timeout: 246 seconds)
2021-02-21 13:18:23 +0100shatriff(~vitaliish@protective.remission.volia.net) (Remote host closed the connection)
2021-02-21 13:19:00 +0100shatriff(~vitaliish@protective.remission.volia.net)
2021-02-21 13:24:14 +0100__monty__(~toonn@unaffiliated/toonn)
2021-02-21 13:30:54 +0100stree(~stree@68.36.8.116)
2021-02-21 13:31:12 +0100geekosaur(ac3a5762@172.58.87.98)
2021-02-21 13:36:11 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Remote host closed the connection)
2021-02-21 13:36:31 +0100jedws(~jedws@101.184.202.248)
2021-02-21 13:38:31 +0100jedws(~jedws@101.184.202.248) (Client Quit)
2021-02-21 13:40:26 +0100polyrain(~polyrain@2001:8003:e4d8:4101:d1d2:4fc1:88fa:56) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-21 13:41:25 +0100geekosaur(ac3a5762@172.58.87.98) (Quit: Connection closed)
2021-02-21 13:42:02 +0100geekosaur(ac3a5409@172.58.84.9)
2021-02-21 13:46:00 +0100poscat(~poscat@2408:8207:4825:b3e0::1)
2021-02-21 13:48:53 +0100ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-02-21 13:53:25 +0100ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds)
2021-02-21 13:55:28 +0100frozenErebus(~frozenEre@94.128.219.166)
2021-02-21 13:56:00 +0100jamm_(~jamm@unaffiliated/jamm)
2021-02-21 13:59:13 +0100heatsink(~heatsink@2600:1700:bef1:5e10:2c3b:7c69:7266:b507)
2021-02-21 14:00:16 +0100frozenErebus(~frozenEre@94.128.219.166) (Ping timeout: 240 seconds)
2021-02-21 14:00:16 +0100ixlun(~user@213.205.241.100)
2021-02-21 14:00:38 +0100jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
2021-02-21 14:01:14 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection)
2021-02-21 14:01:18 +0100 <ixlun> Hi all. Is it possible to have a case of two values, e.g. `case x y of', or do I need to enclose it in a tuple?
2021-02-21 14:01:47 +0100 <mniip> you need to enclose it in a tuple
2021-02-21 14:02:48 +0100 <ixlun> Thanks, is there a performance penalty for that, or can the compiler optimize it out?
2021-02-21 14:03:38 +0100heatsink(~heatsink@2600:1700:bef1:5e10:2c3b:7c69:7266:b507) (Ping timeout: 264 seconds)
2021-02-21 14:04:46 +0100 <maerwald> that doesn't seem like a thing to worry about
2021-02-21 14:07:32 +0100juri_(~juri@178.63.35.222) (Ping timeout: 265 seconds)
2021-02-21 14:07:55 +0100jamm_(~jamm@unaffiliated/jamm)
2021-02-21 14:10:47 +0100DavidEichmann(~david@234.109.45.217.dyn.plus.net)
2021-02-21 14:11:56 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
2021-02-21 14:12:46 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-02-21 14:14:05 +0100frozenErebus(~frozenEre@94.128.219.166)
2021-02-21 14:15:16 +0100DavidEichmann(~david@234.109.45.217.dyn.plus.net) (Ping timeout: 240 seconds)
2021-02-21 14:15:38 +0100swarmcollective(~joseph@cpe-65-31-18-174.insight.res.rr.com) (Quit: WeeChat 2.8)
2021-02-21 14:16:15 +0100leo__(~leo@cpc96810-rdng27-2-0-cust409.15-3.cable.virginm.net)
2021-02-21 14:18:43 +0100mrchampion(~mrchampio@38.18.109.23)
2021-02-21 14:19:09 +0100frozenErebus(~frozenEre@94.128.219.166) (Ping timeout: 246 seconds)
2021-02-21 14:20:37 +0100jollygood2(~bc8134e3@217.29.117.252)
2021-02-21 14:21:17 +0100 <jollygood2> hi. is there half round away function in haskell?
2021-02-21 14:21:25 +0100 <jollygood2> > round 2.5
2021-02-21 14:21:27 +0100 <lambdabot> 2
2021-02-21 14:21:35 +0100 <jollygood2> I want this to be 3
2021-02-21 14:22:01 +0100 <kuribas> > round 3.5
2021-02-21 14:22:04 +0100 <lambdabot> 4
2021-02-21 14:22:16 +0100 <jollygood2> yes, I don't like that behavior
2021-02-21 14:22:22 +0100geekosaur(ac3a5409@172.58.84.9) (Ping timeout: 240 seconds)
2021-02-21 14:22:28 +0100 <ephemient> Haskell's rounding follows banker's rounding: round to even, in case of tie
2021-02-21 14:22:29 +0100 <jollygood2> odd half away, even half down
2021-02-21 14:23:39 +0100 <jollygood2> so I take it there's no other rounding function?
2021-02-21 14:25:17 +0100son0p(~son0p@181.58.39.182) (Quit: leaving)
2021-02-21 14:25:50 +0100 <ephemient> not built-in
2021-02-21 14:26:09 +0100 <ephemient> well, I suppose truncate/floor/ceiling count as rounding functions, but they don't do what you want either
2021-02-21 14:26:11 +0100 <jollygood2> and in third party packages?
2021-02-21 14:26:33 +0100 <ephemient> but floor (x + 0.5) would get you to your desired behavior, I believe
2021-02-21 14:27:11 +0100 <jollygood2> yes, for positive numbers. it should be -0.5 for negative
2021-02-21 14:27:47 +0100 <ephemient> oh you want rounding that's biased both ways
2021-02-21 14:28:28 +0100 <ephemient> I guess truncate (x + signum x * 0.5) or something would do that
2021-02-21 14:28:46 +0100frozenErebus(~frozenEre@94.128.219.166)
2021-02-21 14:31:25 +0100 <ephemient> hmm. thinking about it, `let (a, b) = properFraction x in a - round (-b)` might work too
2021-02-21 14:31:46 +0100swarmcollective(~joseph@cpe-65-31-18-174.insight.res.rr.com)
2021-02-21 14:33:36 +0100 <ephemient> hmm nope
2021-02-21 14:33:38 +0100frozenErebus(~frozenEre@94.128.219.166) (Ping timeout: 265 seconds)
2021-02-21 14:33:55 +0100juri_(~juri@178.63.35.222)
2021-02-21 14:34:58 +0100 <merijn> Note that banker's rounding is the default rounding method as specified by IEEE-754
2021-02-21 14:36:01 +0100 <merijn> Athas: Oh, look what I found!
2021-02-21 14:36:03 +0100 <merijn> Athas: https://hackage.haskell.org/package/altfloat-0.3.1
2021-02-21 14:36:16 +0100 <jollygood2> this seems to work. https://pastebin.com/nEchDxgy
2021-02-21 14:36:31 +0100 <merijn> jollygood2: That library lets you control the rounding mode
2021-02-21 14:36:33 +0100 <ephemient> > [a + if abs b < 0.5 then 0 else truncate (2 * b) | x <- [-1.75, -1.5 .. 1.75], let (a, b) = properFraction x]
2021-02-21 14:36:34 +0100 <lambdabot> [-2,-2,-1,-1,-1,-1,0,0,0,1,1,1,1,2,2]
2021-02-21 14:37:00 +0100 <jollygood2> merijn, cool, I'll take a look
2021-02-21 14:37:09 +0100 <ephemient> Prelude's round/etc. are implemented in terms of properFraction anyhow
2021-02-21 14:37:16 +0100 <merijn> jollygood2: Looks like it's fairly verbose, though
2021-02-21 14:42:19 +0100p-core(~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515)
2021-02-21 14:42:23 +0100p-core(~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) (Remote host closed the connection)
2021-02-21 14:44:01 +0100 <ephemient> interesting. it goes through C FFI, which makes sense... not sure there's better options. I don't see any use of ieee_flags() to set rounding mode though
2021-02-21 14:46:06 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:c8d5:cb5d:4bef:8854)
2021-02-21 14:46:53 +0100 <merijn> ephemient: It's using fesetround
2021-02-21 14:46:53 +0100idhugo(~idhugo@80-62-117-97-mobile.dk.customer.tdc.net)
2021-02-21 14:47:01 +0100 <Athas> merijn: does that still work?
2021-02-21 14:47:07 +0100 <merijn> Athas: Who knows!
2021-02-21 14:47:48 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-02-21 14:48:02 +0100 <merijn> There's some...debatable choices, but it doesn't seem like it'd be hard to fix up if it doesn't work
2021-02-21 14:48:08 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-02-21 14:48:38 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-jfcqcaqnxdwadhys)
2021-02-21 14:49:13 +0100 <merijn> tbh, I'm not even convinced it always works
2021-02-21 14:49:49 +0100 <merijn> For the single-threaded RTS it works for sure, for the threaded there's...some questions I have
2021-02-21 14:51:46 +0100 <merijn> Specifically, what if you trigger GC, your thread gets pre-empted and then work stolen to another capability
2021-02-21 14:52:45 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
2021-02-21 14:52:45 +0100drbean(~drbean@TC210-63-209-186.static.apol.com.tw) (Ping timeout: 246 seconds)
2021-02-21 14:55:11 +0100oisdk(~oisdk@2001:bb6:3329:d100:3d8b:3b0b:d75b:3a22)
2021-02-21 14:56:57 +0100hexfive(~hexfive@50.35.83.177) (Quit: i must go. my people need me.)
2021-02-21 14:57:41 +0100wei2912(~wei2912@unaffiliated/wei2912) (Remote host closed the connection)
2021-02-21 14:58:25 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 240 seconds)
2021-02-21 14:59:56 +0100heatsink(~heatsink@2600:1700:bef1:5e10:2c3b:7c69:7266:b507)
2021-02-21 15:00:30 +0100akay(akay@unaffiliated/akay)
2021-02-21 15:01:19 +0100 <ephemient> if it was all in a single FFI call, then that wouldn't be a possibility, but it's a Haskell function making multiple calls, so yeah getting pre-empted does sound like a danger...
2021-02-21 15:01:39 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-02-21 15:02:04 +0100geekosaur(ac3a8840@172.58.136.64)
2021-02-21 15:02:50 +0100 <akay> Hi, any update on apple silicon support? i saw angerman working on a backport for 8.10 - is there an ETA when this will be officially published?
2021-02-21 15:03:10 +0100ddellacosta(~ddellacos@86.106.143.100)
2021-02-21 15:03:49 +0100hendursa1(~weechat@gateway/tor-sasl/hendursaga) (Quit: hendursa1)
2021-02-21 15:04:06 +0100hendursaga(~weechat@gateway/tor-sasl/hendursaga)
2021-02-21 15:04:50 +0100heatsink(~heatsink@2600:1700:bef1:5e10:2c3b:7c69:7266:b507) (Ping timeout: 264 seconds)
2021-02-21 15:07:04 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-02-21 15:07:56 +0100 <merijn> akay: "soon" :p
2021-02-21 15:07:57 +0100ddellacosta(~ddellacos@86.106.143.100) (Ping timeout: 265 seconds)
2021-02-21 15:08:37 +0100 <merijn> akay: Also depends on how you define support. iirc 9.0 x64 version should "Just Work", just no native codegen
2021-02-21 15:09:03 +0100 <akay> you mean by using rosetta i assume?
2021-02-21 15:09:07 +0100 <merijn> Yeah
2021-02-21 15:09:23 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-02-21 15:09:55 +0100 <merijn> akay: I think native codegen is planned for 9.2, but that'll still be experimental stages. I recall angerman saying he didn't expect native codegen to be truly robust until 9.4-9.6
2021-02-21 15:10:10 +0100 <akay> i dont want to sound like an elitist but i'm trying to live rosetta-free - which has been working great for 2 months now :) there is really only one thing missing for me and that is pandoc, thats why i'm so eager to try the backport
2021-02-21 15:10:10 +0100carlomagno(~cararell@148.87.23.12) (Remote host closed the connection)
2021-02-21 15:10:40 +0100 <merijn> akay: You can't live without rosetta anyway, as the 8.10 backport is just RTS fixes, iirc. It's definitely not native codegen
2021-02-21 15:10:43 +0100 <angerman> well, let's see how far I get with whack-a-mole on 8.10. next week.
2021-02-21 15:10:56 +0100 <akay> merijn: oh :(
2021-02-21 15:11:11 +0100 <merijn> Unless angerman tells me my memory is faulty :p
2021-02-21 15:11:14 +0100 <angerman> the 8.10 branch *does* run validate on aarch64-darwin, *but* there are some segfault in iserv... and they are on darwin *AND* linux.
2021-02-21 15:11:19 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-02-21 15:11:26 +0100 <akay> angerman: Thank you so much for your great work!
2021-02-21 15:11:37 +0100 <angerman> so we might see an 8.10.5 with aarch64-darwin support soon'ish. 9.0 would be forward ports of that is in 8.10 by then.
2021-02-21 15:11:51 +0100sMuNiX(~sMuNiX@lnsm2-montreal02-142-118-236-120.internet.virginmobile.ca) (Quit: WeeChat 3.0)
2021-02-21 15:11:58 +0100 <angerman> 9.2 should have the NCG... again, I need some compiler to validate against, hence the 8.10 one.
2021-02-21 15:12:04 +0100 <merijn> angerman: Right, but that's just RTS issues due to memory ordering, right? Not NCG
2021-02-21 15:12:05 +0100 <angerman> but it's been *a lot* of work.
2021-02-21 15:12:16 +0100 <angerman> merijn: memory ordering is in 8.10.3 already.
2021-02-21 15:12:19 +0100 <merijn> ah
2021-02-21 15:12:36 +0100 <angerman> this is likely some other bug, I haven't figured out yet. and lldb didn't play ball when attaching to iserv... so meh.
2021-02-21 15:12:43 +0100 <merijn> akay: Anyway, in short, definitely stuck with Rosetta for haskell until 9.2 ;)
2021-02-21 15:13:03 +0100 <angerman> not really. 8.10.5 will have aarch64-darwin native via LLVM.
2021-02-21 15:13:10 +0100 <akay> *_*
2021-02-21 15:13:28 +0100 <akay> ill stick to using pandoc in a VM until there's a native version
2021-02-21 15:13:50 +0100 <akay> arch64 VM's run GREAT btw on apple silicon. like its a charm to use them
2021-02-21 15:14:29 +0100fendor(~fendor@91.141.1.5.wireless.dyn.drei.com)
2021-02-21 15:14:43 +0100carlomagno(~cararell@148.87.23.5)
2021-02-21 15:16:35 +0100ubert1(~Thunderbi@p200300ecdf25d903e6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 258 seconds)
2021-02-21 15:19:19 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-02-21 15:19:41 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-02-21 15:24:22 +0100geekosaur(ac3a8840@172.58.136.64) (Ping timeout: 240 seconds)
2021-02-21 15:29:55 +0100mirrorbird(~psutcliff@2a00:801:44d:603d:d116:d5a1:4a2f:a08f) (Ping timeout: 272 seconds)
2021-02-21 15:30:54 +0100dsrt^(~hph@ip98-184-89-2.mc.at.cox.net) ()
2021-02-21 15:32:23 +0100 <akay> /exit
2021-02-21 15:32:43 +0100nlbh^(~hph@ip98-184-89-2.mc.at.cox.net)
2021-02-21 15:33:12 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-02-21 15:33:31 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-02-21 15:34:43 +0100Mrbuck(~Mrbuck@gateway/tor-sasl/mrbuck)
2021-02-21 15:39:20 +0100stree(~stree@68.36.8.116) (Ping timeout: 256 seconds)
2021-02-21 15:40:44 +0100minoru_shiraeesh(~shiraeesh@46.34.206.204)
2021-02-21 15:41:41 +0100ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-02-21 15:44:56 +0100sMuNiX(~sMuNiX@lnsm2-montreal02-142-118-236-120.internet.virginmobile.ca)
2021-02-21 15:46:45 +0100ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 264 seconds)
2021-02-21 15:47:03 +0100ph88^(~ph88@2a02:8109:9e00:7e5c:1c31:ba91:4135:5f73)
2021-02-21 15:47:05 +0100jchia(~jchia@218.80.126.10) (Ping timeout: 240 seconds)
2021-02-21 15:49:43 +0100frozenErebus(~frozenEre@94.128.219.166)
2021-02-21 15:50:57 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2021-02-21 15:51:27 +0100ph88_(~ph88@2a02:8109:9e00:7e5c:f5fc:c65e:8298:c839) (Ping timeout: 272 seconds)
2021-02-21 15:51:33 +0100stree(~stree@68.36.8.116)
2021-02-21 15:55:56 +0100minoru_shiraeesh(~shiraeesh@46.34.206.204) (Ping timeout: 240 seconds)
2021-02-21 15:56:55 +0100son0p(~son0p@181.136.122.143)
2021-02-21 15:56:59 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-02-21 15:57:19 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-02-21 15:58:06 +0100neiluj(~jco@unaffiliated/neiluj) (Quit: Lost terminal)
2021-02-21 16:05:39 +0100geekosaur(ae68c070@cpe-174-104-192-112.neo.res.rr.com)
2021-02-21 16:06:12 +0100urodna(~urodna@unaffiliated/urodna)
2021-02-21 16:10:42 +0100dunj4(~dunj3@p200300f61714a6134d9f693459962ab2.dip0.t-ipconnect.de)
2021-02-21 16:12:05 +0100dftxbs3e(~dftxbs3e@unaffiliated/dftxbs3e)
2021-02-21 16:13:19 +0100dunj3(~dunj3@p200300f61714a6752268fca81a1a85c0.dip0.t-ipconnect.de) (Ping timeout: 258 seconds)
2021-02-21 16:14:08 +0100minoru_shiraeesh(~shiraeesh@46.34.206.204)
2021-02-21 16:15:56 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:c8d5:cb5d:4bef:8854) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-21 16:16:46 +0100rob01(~rob0@195.140.213.38)
2021-02-21 16:17:21 +0100hekkaidekapus[(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds)
2021-02-21 16:19:01 +0100jamm_(~jamm@unaffiliated/jamm)
2021-02-21 16:20:10 +0100nbloomf(~nbloomf@76.217.43.73)
2021-02-21 16:20:10 +0100hekkaidekapus[(~tchouri@gateway/tor-sasl/hekkaidekapus)
2021-02-21 16:25:17 +0100MichaelHoffmannb(brisadmozi@gateway/shell/matrix.org/x-hyjjcdilatzwtwgu)
2021-02-21 16:26:12 +0100pera(~pera@unaffiliated/pera) (Ping timeout: 246 seconds)
2021-02-21 16:26:21 +0100pera(pera@gateway/vpn/mullvad/pera)
2021-02-21 16:27:15 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-02-21 16:27:36 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-02-21 16:28:20 +0100zebrag(~inkbottle@aaubervilliers-654-1-4-36.w83-200.abo.wanadoo.fr)
2021-02-21 16:31:16 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
2021-02-21 16:31:31 +0100Tario(~Tario@201.192.165.173)
2021-02-21 16:31:56 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
2021-02-21 16:33:17 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-02-21 16:33:34 +0100pera(pera@gateway/vpn/mullvad/pera) (Ping timeout: 260 seconds)
2021-02-21 16:33:44 +0100kam1(~kam1@37.129.135.98)
2021-02-21 16:34:45 +0100nbloomf(~nbloomf@76.217.43.73) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-21 16:35:09 +0100kw(88388c02@136.56.140.2)
2021-02-21 16:35:36 +0100DataComputist(~lumeng@50.43.26.251) (Ping timeout: 240 seconds)
2021-02-21 16:36:24 +0100 <kw> My brain is not working great right now. I want to monadically map over state. Is there a way to use `modify` to do the equivalent of `get >>= f >>= put` ?
2021-02-21 16:38:11 +0100 <tomsmeding> kw: what about modifyKW f = get >>= f >>= put
2021-02-21 16:38:12 +0100 <tomsmeding> :p
2021-02-21 16:38:33 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:c8d5:cb5d:4bef:8854)
2021-02-21 16:39:03 +0100 <tomsmeding> possibly 'join . gets'
2021-02-21 16:39:59 +0100 <kw> tomsmeding: Thanks, and I guess that's a 'no'.
2021-02-21 16:40:16 +0100 <Clint> what's the type of f?
2021-02-21 16:41:16 +0100 <kw> The type of `f` is `s -> m s`, where `s` is the state of `m` .
2021-02-21 16:41:20 +0100DataComputist(~lumeng@50.43.26.251)
2021-02-21 16:42:20 +0100pera(~pera@unaffiliated/pera)
2021-02-21 16:42:29 +0100 <kw> :t \ f -> get >>= f >>= put
2021-02-21 16:42:30 +0100 <lambdabot> MonadState s m => (s -> m s) -> m ()
2021-02-21 16:43:07 +0100 <kw> In this case the function does NOT alter state.
2021-02-21 16:43:31 +0100 <kw> But it does use other monadic effects.
2021-02-21 16:43:45 +0100tmciver(~tmciver@cpe-172-101-40-226.maine.res.rr.com) (Ping timeout: 240 seconds)
2021-02-21 16:43:57 +0100 <tomsmeding> kw: is 'StateT' the top layer in the monadic stack?
2021-02-21 16:44:10 +0100 <kw> tomsmeding: Nope.
2021-02-21 16:44:12 +0100 <tomsmeding> well actually that doesn't really matter
2021-02-21 16:44:24 +0100 <tomsmeding> it would've allowed you to statically ensure that 'f' doesn't manipulate the state
2021-02-21 16:44:36 +0100 <tomsmeding> but if you don't care for that, there's no point :p
2021-02-21 16:44:43 +0100 <tomsmeding> I'd write your own modify
2021-02-21 16:44:59 +0100boxscape(4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243)
2021-02-21 16:45:47 +0100 <kw> Honestly, I think I'm fine with `get >>= f >>= put` . In the end it's pretty clear and not that noisy.
2021-02-21 16:45:59 +0100tmciver(~tmciver@cpe-172-101-40-226.maine.res.rr.com)
2021-02-21 16:46:19 +0100ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-02-21 16:46:43 +0100 <kw> Thanks for helping me not define a crazy new function. :9
2021-02-21 16:47:54 +0100 <tomsmeding> o/
2021-02-21 16:48:58 +0100nhs(~nhs@c-67-180-177-103.hsd1.ca.comcast.net)
2021-02-21 16:49:02 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-uhoorvvzjdpjkavt)
2021-02-21 16:50:09 +0100kw(88388c02@136.56.140.2) (Quit: Connection closed)
2021-02-21 16:51:10 +0100Mrbuck(~Mrbuck@gateway/tor-sasl/mrbuck) (Quit: WeeChat 1.9.1)
2021-02-21 16:51:24 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-02-21 16:52:56 +0100nhs(~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2021-02-21 16:55:36 +0100frozenErebus(~frozenEre@94.128.219.166) (Ping timeout: 240 seconds)
2021-02-21 16:57:07 +0100gitgood(~gitgood@80-44-13-166.dynamic.dsl.as9105.com)
2021-02-21 16:57:28 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:c8d5:cb5d:4bef:8854) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-21 17:01:40 +0100heatsink(~heatsink@2600:1700:bef1:5e10:2c3b:7c69:7266:b507)
2021-02-21 17:04:58 +0100kam1(~kam1@37.129.135.98) (Read error: Connection reset by peer)
2021-02-21 17:05:50 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-02-21 17:05:56 +0100heatsink(~heatsink@2600:1700:bef1:5e10:2c3b:7c69:7266:b507) (Ping timeout: 240 seconds)
2021-02-21 17:06:10 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-02-21 17:08:21 +0100heatsink(~heatsink@2600:1700:bef1:5e10:2c3b:7c69:7266:b507)
2021-02-21 17:08:40 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-02-21 17:09:12 +0100conal(~conal@64.71.133.70)
2021-02-21 17:10:56 +0100acidjnk_new(~acidjnk@p200300d0c7390943ecdc1b863cacb0c3.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2021-02-21 17:11:00 +0100teardown(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-02-21 17:11:08 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
2021-02-21 17:12:05 +0100idhugo(~idhugo@80-62-117-97-mobile.dk.customer.tdc.net) (Ping timeout: 240 seconds)
2021-02-21 17:13:44 +0100hugo(znc@verdigris.lysator.liu.se)
2021-02-21 17:14:51 +0100 <hugo> Hi! What's the recommended way to convert between Strings and ByteStrings? I hoped there would be something like (encode UTF8 "A string"), and the inverse decode procedure
2021-02-21 17:16:00 +0100 <hugo> But I don't find anything which seems though through
2021-02-21 17:16:08 +0100 <geekosaur> there is but it goes via Text, which is a better choice than String in general
2021-02-21 17:17:18 +0100 <Clint> there are also libraries like utf8-string
2021-02-21 17:17:24 +0100 <geekosaur> othrwise there's ... that package
2021-02-21 17:18:04 +0100 <hugo> "that package"?
2021-02-21 17:18:13 +0100 <hugo> But using Text instead of Strings could work
2021-02-21 17:18:29 +0100ADG1089__(~aditya@122.163.128.29)
2021-02-21 17:19:58 +0100DavidEichmann(~david@234.109.45.217.dyn.plus.net)
2021-02-21 17:20:26 +0100 <ij> is there some shorter way to write this by any chance? "if cond then f else id"
2021-02-21 17:21:06 +0100 <ADG1089__> flip flip id . flip if'
2021-02-21 17:21:40 +0100 <ADG1089__> @pl \c f -> if c then f else id
2021-02-21 17:21:40 +0100 <lambdabot> flip flip id . if'
2021-02-21 17:22:54 +0100 <merijn> hugo: I would certainly recommend going via Text, since "String -> Text" is just "Text.pack"
2021-02-21 17:23:02 +0100 <merijn> @hoogle encodeUtf8
2021-02-21 17:23:02 +0100 <lambdabot> Data.Text.Encoding encodeUtf8 :: Text -> ByteString
2021-02-21 17:23:02 +0100 <lambdabot> Data.Text.Lazy.Encoding encodeUtf8 :: Text -> ByteString
2021-02-21 17:23:02 +0100 <lambdabot> Data.Conduit.Combinators encodeUtf8 :: (Monad m, Utf8 text binary) => ConduitT text binary m ()
2021-02-21 17:23:32 +0100 <ij> ADG1089__, id is mzero, but I don't think there's anything shorter while remaining comprehensible
2021-02-21 17:24:04 +0100 <merijn> This looks like another case of my favourite monoid functio
2021-02-21 17:24:12 +0100 <merijn> Which, sadly still doesn't exist in base :p
2021-02-21 17:24:21 +0100 <ij> what is it?
2021-02-21 17:24:50 +0100 <merijn> "mif b v = if b then v else mempty"
2021-02-21 17:25:04 +0100 <ij> that _is_ nice
2021-02-21 17:25:10 +0100 <merijn> The id version is just one Endo away
2021-02-21 17:25:18 +0100 <merijn> :t Endo
2021-02-21 17:25:19 +0100 <lambdabot> (a -> a) -> Endo a
2021-02-21 17:25:25 +0100toorevitimirp(~tooreviti@117.182.181.253) (Remote host closed the connection)
2021-02-21 17:26:08 +0100 <ij> > fold [Just (+1), Nothing]
2021-02-21 17:26:10 +0100 <lambdabot> error:
2021-02-21 17:26:10 +0100 <lambdabot> • No instance for (Typeable a0)
2021-02-21 17:26:10 +0100 <lambdabot> arising from a use of ‘show_M48185729036923407258’
2021-02-21 17:26:58 +0100 <ij> @hoogle Endo
2021-02-21 17:26:58 +0100 <lambdabot> Data.Monoid newtype Endo a
2021-02-21 17:26:58 +0100 <lambdabot> Data.Monoid Endo :: (a -> a) -> Endo a
2021-02-21 17:26:58 +0100 <lambdabot> Data.Semigroup newtype Endo a
2021-02-21 17:27:22 +0100son0p(~son0p@181.136.122.143) (Quit: Lost terminal)
2021-02-21 17:28:40 +0100 <ij> > appEndo (foldMap fold [Just (Endo (+1)), Nothing]) 1
2021-02-21 17:28:42 +0100 <lambdabot> 2
2021-02-21 17:28:56 +0100 <ij> cool
2021-02-21 17:29:16 +0100 <merijn> ij: Not as cool as the regular monoid for functions, though :p
2021-02-21 17:29:30 +0100 <falsifian> @hoogle mif
2021-02-21 17:29:31 +0100 <lambdabot> Network.AWS.EMR.ModifyInstanceFleet mifClusterId :: Lens' ModifyInstanceFleet Text
2021-02-21 17:29:31 +0100 <lambdabot> Network.AWS.EMR.ModifyInstanceFleet mifInstanceFleet :: Lens' ModifyInstanceFleet InstanceFleetModifyConfig
2021-02-21 17:29:31 +0100 <lambdabot> Distribution.SPDX Mif_exception :: LicenseExceptionId
2021-02-21 17:29:35 +0100 <ij> fold for Maybe kind of is the mif
2021-02-21 17:29:38 +0100 <merijn> falsifian: It doesn't exist
2021-02-21 17:29:41 +0100m4lvin(~m4lvin@w4eg.de) (Quit: m4lvin)
2021-02-21 17:29:47 +0100 <merijn> ij: You don't even need the fold, I think
2021-02-21 17:30:00 +0100m4lvin(~m4lvin@w4eg.de)
2021-02-21 17:30:23 +0100 <ij> merijn, if you fold them, you get Maybe (Endo a)
2021-02-21 17:30:24 +0100 <merijn> > appEndo (mconcat [Just (Endo (+1)), Nothing]) 1
2021-02-21 17:30:26 +0100 <lambdabot> error:
2021-02-21 17:30:26 +0100 <lambdabot> • Couldn't match expected type ‘Endo a’
2021-02-21 17:30:26 +0100 <lambdabot> with actual type ‘Maybe (Endo a0)’
2021-02-21 17:30:31 +0100 <merijn> oh, yeah
2021-02-21 17:31:20 +0100 <merijn> ij: The regular function instance is "instance Monoid r => Monoid (a -> r)" (which applies recursively!)
2021-02-21 17:32:26 +0100 <ij> satisfying
2021-02-21 17:33:47 +0100 <merijn> > sortBy (comparing snd <> comparing fst) [(5,1),(1,4),(5,2),(1,5)]
2021-02-21 17:33:49 +0100 <lambdabot> [(5,1),(5,2),(1,4),(1,5)]
2021-02-21 17:34:50 +0100nlbh^(~hph@ip98-184-89-2.mc.at.cox.net) ()
2021-02-21 17:35:18 +0100ekleog(~ii@prologin/ekleog) (Quit: WeeChat 2.9)
2021-02-21 17:36:09 +0100 <ij> I am dense enough to spot the ((<>) `on` comparing)) snd fst
2021-02-21 17:36:55 +0100 <kuribas> > (Product 3, Sum 5) <> (Product 2, Sum 2)
2021-02-21 17:36:56 +0100 <lambdabot> (Product {getProduct = 6},Sum {getSum = 7})
2021-02-21 17:37:33 +0100 <kuribas> I find all these instance on function a bit dubious. They can be handy often, but also hide many errors.
2021-02-21 17:37:34 +0100 <ij> I'd done foldMaps with tuple monoid at work
2021-02-21 17:38:06 +0100zebrag(~inkbottle@aaubervilliers-654-1-4-36.w83-200.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-02-21 17:38:28 +0100zebrag(~inkbottle@aaubervilliers-654-1-4-36.w83-200.abo.wanadoo.fr)
2021-02-21 17:38:31 +0100 <ij> (not in haskell, but the idea is the same)
2021-02-21 17:38:56 +0100ekleog(~ii@prologin/ekleog)
2021-02-21 17:39:01 +0100 <merijn> ij: That sounds like a great way to get lynched at work
2021-02-21 17:39:24 +0100 <merijn> kuribas: "many errors" like what?
2021-02-21 17:39:27 +0100 <ij> well, you just accumulate on two instead of one variable, it doesn't seem that weird
2021-02-21 17:40:02 +0100 <kuribas> merijn: like something which typechecks, but shouldn't
2021-02-21 17:40:17 +0100 <merijn> kuribas: Give one example for the Monoid instance
2021-02-21 17:40:34 +0100 <hugo> About Data.Text. How do I encode to Latin1?
2021-02-21 17:40:38 +0100 <merijn> kuribas: I mean, the Num instance of functions is notorious for that, but that's not actually in base or any sane package
2021-02-21 17:41:00 +0100 <kuribas> merijn: there was a article on reddit about that. Though maybe not the monoid instance...
2021-02-21 17:41:16 +0100 <merijn> hugo: For more obscure (i.e. non UTF-N encodings) you want the encoding package
2021-02-21 17:41:19 +0100 <merijn> @hackage encoding
2021-02-21 17:41:19 +0100 <lambdabot> https://hackage.haskell.org/package/encoding
2021-02-21 17:41:23 +0100ADG1089__(~aditya@122.163.128.29) (Remote host closed the connection)
2021-02-21 17:41:29 +0100 <merijn> kuribas: That was probably about Foldable
2021-02-21 17:41:36 +0100 <merijn> kuribas: So not about functions at all
2021-02-21 17:41:48 +0100 <merijn> Like
2021-02-21 17:41:54 +0100 <merijn> > length ('a', True)
2021-02-21 17:41:56 +0100 <lambdabot> 1
2021-02-21 17:42:17 +0100 <kuribas> for one, the monad instance of (->) is obfuscating in 99% of cases.
2021-02-21 17:42:51 +0100 <merijn> "Monad instance for (->) is confusing" seems like a weird argument against the Monoid instance, though >.>
2021-02-21 17:43:25 +0100 <ij> well, the list monad was also a bit confusing, before thoroughly grasped it
2021-02-21 17:43:35 +0100 <ij> (it's simple, I know)
2021-02-21 17:43:45 +0100 <merijn> I use the monoid for functions in tons of places, you can pry it for my cold, dead hands >.>
2021-02-21 17:43:56 +0100teardown(~user@gateway/tor-sasl/mrush)
2021-02-21 17:44:17 +0100 <ij> merijn, do you understand what "f >>= (,)" does immediately? :)
2021-02-21 17:44:20 +0100 <merijn> ij: In your defense there's two valid Applicatives and if you're intuitively thinking of the "wrong" one the Monad is confusing
2021-02-21 17:44:39 +0100 <merijn> ij: Yes
2021-02-21 17:44:53 +0100 <merijn> ij: If by "what it does" you meant "give me a headache"
2021-02-21 17:44:59 +0100 <ij> haha
2021-02-21 17:45:27 +0100dsrt^(dsrt@ip98-184-89-2.mc.at.cox.net)
2021-02-21 17:46:11 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2021-02-21 17:46:13 +0100 <ij> but it's such an intersting combination
2021-02-21 17:47:36 +0100 <ij> hot take: if your code is split up properly, the implementation isn't so important, because of proper naming, so then one could get away with almost anything
2021-02-21 17:48:51 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2021-02-21 17:48:51 +0100 <ij> clarification, I meant: if split up proplerly, with proper naming, then it isn't so imprtant...
2021-02-21 17:49:03 +0100ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 256 seconds)
2021-02-21 17:49:54 +0100MVQq(~anja@198.254.199.42)
2021-02-21 17:52:39 +0100MarcelineVQ(~anja@198.254.199.42) (Ping timeout: 246 seconds)
2021-02-21 17:52:54 +0100minoru_shiraeesh(~shiraeesh@46.34.206.204) (Ping timeout: 260 seconds)
2021-02-21 17:52:56 +0100leo__(~leo@cpc96810-rdng27-2-0-cust409.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
2021-02-21 17:54:21 +0100mirrorbird(~psutcliff@2a00:801:446:6dfc:fadb:e310:6ed2:16d)
2021-02-21 17:55:43 +0100bi_functor(~bi_functo@192-0-134-138.cpe.teksavvy.com)
2021-02-21 17:55:49 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:c8d5:cb5d:4bef:8854)
2021-02-21 17:57:02 +0100 <monochrom> Almost immediately for me. But I expand to "f >>= \x -> (,) x" first.
2021-02-21 17:58:02 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:b8ec:ecd4:c92c:f02:3202) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-21 17:59:57 +0100stree(~stree@68.36.8.116) (Ping timeout: 264 seconds)
2021-02-21 18:03:08 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-02-21 18:03:11 +0100ADG1089__(~aditya@122.163.128.29)
2021-02-21 18:04:19 +0100bi_functor(~bi_functo@192-0-134-138.cpe.teksavvy.com) (Quit: leaving)
2021-02-21 18:05:19 +0100 <tomsmeding> for me after a while, after I remembered this is the reader monad
2021-02-21 18:06:17 +0100 <monochrom> It is still independent to whether I write code like that.
2021-02-21 18:06:47 +0100 <monochrom> I write code like that when and only when making exam questions and interview questions. So there.
2021-02-21 18:07:32 +0100 <shapr> So I went with the most recently published of Richard Bird's books.
2021-02-21 18:07:52 +0100 <shapr> I hope that was a good choice. I bought one for myself and my friend who's learning Haskell and we're going through it together.
2021-02-21 18:08:33 +0100 <monochrom> But people make too much fuzz about "readable code", in the sense that they think there is one single standard that fits all, thus why the heated debate with very loud shouting.
2021-02-21 18:09:19 +0100 <monochrom> Accept the fact that people are partitioned into disjoint echo chambers, and all you can do is pick one echo chamber and write code that they, only they, understand.
2021-02-21 18:09:42 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-02-21 18:10:44 +0100shaprwrites for his echo chamber
2021-02-21 18:11:52 +0100 <dolio> Or try things out and form your own opinions.
2021-02-21 18:12:17 +0100 <monochrom> :)
2021-02-21 18:12:27 +0100 <dolio> A radical concept for programmers. :)
2021-02-21 18:12:40 +0100juuandyy(~juuandyy@90.106.228.121)
2021-02-21 18:12:49 +0100stree(~stree@68.36.8.116)
2021-02-21 18:12:57 +0100 <monochrom> That's kind of covered: put yourself alone in a echo chamber...
2021-02-21 18:13:16 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-02-21 18:13:36 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-02-21 18:13:58 +0100mouseghost(~draco@wikipedia/desperek) (Quit: mew wew)
2021-02-21 18:15:23 +0100 <monochrom> There are now courses teaching social interaction phenomena to computer science students. I went to sit in in one. (I'm ineligible to take in because I already graduated.) I recommend taking it and getting a holistic perspective of how communities work.
2021-02-21 18:15:46 +0100 <monochrom> s/take in/take it/
2021-02-21 18:17:23 +0100oisdk(~oisdk@2001:bb6:3329:d100:3d8b:3b0b:d75b:3a22) (Quit: oisdk)
2021-02-21 18:21:09 +0100kam1(~kam1@5.126.207.133)
2021-02-21 18:21:13 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2021-02-21 18:22:03 +0100rajivr(uid269651@gateway/web/irccloud.com/x-ynjnwyqyqdgpqega) (Quit: Connection closed for inactivity)
2021-02-21 18:22:21 +0100 <monochrom> Don't worry that it's one of those social science essay-a-lot courses. There will be game theory. There will be using graph theory to model people. There will be simulations and theorems.
2021-02-21 18:22:55 +0100 <monochrom> (Or, do worry that there will be game theory and graph theory, if that's not your cup of tea.)
2021-02-21 18:25:00 +0100pavonia^\_^\(~user@unaffiliated/siracusa)
2021-02-21 18:26:14 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Ping timeout: 268 seconds)
2021-02-21 18:27:59 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2021-02-21 18:29:26 +0100ADG1089__(~aditya@122.163.128.29) (Quit: Konversation terminated!)
2021-02-21 18:33:24 +0100alx741(~alx741@186.178.109.47)
2021-02-21 18:35:19 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-02-21 18:35:40 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-02-21 18:38:42 +0100_bo(~bo@178.150.122.153)
2021-02-21 18:39:29 +0100boxscape(4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) (Ping timeout: 256 seconds)
2021-02-21 18:40:25 +0100seliopou(seliopou@entropy.tmok.com) (Ping timeout: 240 seconds)
2021-02-21 18:43:38 +0100seliopou(seliopou@entropy.tmok.com)
2021-02-21 18:47:57 +0100seliopou(seliopou@entropy.tmok.com) (Ping timeout: 246 seconds)
2021-02-21 18:48:48 +0100boxscape(4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243)
2021-02-21 18:51:44 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-02-21 18:52:01 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net)
2021-02-21 18:54:20 +0100seliopou(seliopou@entropy.tmok.com)
2021-02-21 18:58:27 +0100Wuzzy(~Wuzzy@p5b0df3df.dip0.t-ipconnect.de)
2021-02-21 18:58:36 +0100seliopou(seliopou@entropy.tmok.com) (Ping timeout: 240 seconds)
2021-02-21 19:01:08 +0100kupi(uid212005@gateway/web/irccloud.com/x-pssuakftcukcxfkk)
2021-02-21 19:01:43 +0100 <shapr> The 20th birthday of #haskell is in about ten weeks!
2021-02-21 19:01:49 +0100 <shapr> I want to have an IRC party of some sort...
2021-02-21 19:02:08 +0100 <Uniaika> shapr: oh yeah nice
2021-02-21 19:02:08 +0100 <Uniaika> :)
2021-02-21 19:02:51 +0100shapris excited
2021-02-21 19:02:51 +0100seliopou(seliopou@entropy.tmok.com)
2021-02-21 19:02:56 +0100boxscape(4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) (Ping timeout: 240 seconds)
2021-02-21 19:03:09 +0100 <shapr> I'm tempted to dig up the oldest #haskell logs and see who was active then
2021-02-21 19:04:02 +0100usr25(~usr25@unaffiliated/usr25)
2021-02-21 19:04:27 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-02-21 19:05:46 +0100conal(~conal@64.71.133.70)
2021-02-21 19:06:14 +0100kav(~kari@dsl-hkibng42-56733f-225.dhcp.inet.fi) (Ping timeout: 265 seconds)
2021-02-21 19:06:55 +0100jamm_(~jamm@unaffiliated/jamm)
2021-02-21 19:08:18 +0100 <mniip> I was about 3
2021-02-21 19:09:01 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:c8d5:cb5d:4bef:8854) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-21 19:09:11 +0100 <monochrom> Yikes time flies like an arrow.
2021-02-21 19:09:25 +0100 <gitgood> mniip that's no excuse for not having been active
2021-02-21 19:09:32 +0100 <monochrom> hahaha
2021-02-21 19:09:47 +0100 <mniip> fruit flies like a banana
2021-02-21 19:09:55 +0100 <monochrom> But perhaps parent control blocked IRC access. Can't do much about that.
2021-02-21 19:10:03 +0100 <mniip> yeah definitely
2021-02-21 19:10:03 +0100 <shapr> #haskell was started on April 30th 2001 according to chanserv, so April 30th 2021 will be the TWENTY YEAR BIRTHDAY!
2021-02-21 19:10:07 +0100 <monochrom> syntax rules like a macro
2021-02-21 19:10:16 +0100 <monochrom> @quote monochrom syntax.rule
2021-02-21 19:10:16 +0100 <lambdabot> monochrom says: Time leaks like an arrow. Syntax rules like a macro.
2021-02-21 19:10:40 +0100 <shapr> That's about two months from today
2021-02-21 19:10:42 +0100 <monochrom> (Why does time leak like an arrow? Because -XArrows. :) )
2021-02-21 19:10:45 +0100 <gitgood> "Oh look, Timmy's gonna say his first words!"
2021-02-21 19:10:48 +0100 <gitgood> "M-m-mother let me on IRC"
2021-02-21 19:10:56 +0100jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 240 seconds)
2021-02-21 19:11:22 +0100 <monochrom> There is another one.
2021-02-21 19:11:29 +0100 <monochrom> @quote monochrom fruit.fl
2021-02-21 19:11:29 +0100 <lambdabot> monochrom says: Time flies like an arrow. Fruit flies like a banana. Syntax rules like a macro.
2021-02-21 19:12:19 +0100 <monochrom> I thought M-m-mother was an emacs command.
2021-02-21 19:12:28 +0100 <Athas> merijn: I don't think I do enough numerical computation in Haskell to invest in such a library.
2021-02-21 19:12:42 +0100dyeplexer(~lol@unaffiliated/terpin) (Remote host closed the connection)
2021-02-21 19:12:47 +0100 <Athas> I'll just continue being grumpy whenever the floating-point weirdness bites me.
2021-02-21 19:12:58 +0100seliopou(seliopou@entropy.tmok.com) (Ping timeout: 272 seconds)
2021-02-21 19:13:06 +0100 <shapr> Don't trust floating point numbers.
2021-02-21 19:13:15 +0100mirrorbird(~psutcliff@2a00:801:446:6dfc:fadb:e310:6ed2:16d) (Quit: Leaving)
2021-02-21 19:13:16 +0100 <shapr> That's why type-defaulting becomes an error with -Werror
2021-02-21 19:13:48 +0100amerigo(uid331857@gateway/web/irccloud.com/x-yxxhsaxuybcqvhua)
2021-02-21 19:14:42 +0100 <mniip> we should've switched to sinking point numbers a long time ago
2021-02-21 19:14:52 +0100 <Uniaika> heya mniip
2021-02-21 19:15:00 +0100 <mniip> hello
2021-02-21 19:15:07 +0100 <mniip> did you see the sporadic kmett stream
2021-02-21 19:15:10 +0100kav(~kari@dsl-hkibng42-56733f-225.dhcp.inet.fi)
2021-02-21 19:16:21 +0100seliopou(seliopou@entropy.tmok.com)
2021-02-21 19:16:56 +0100kam1(~kam1@5.126.207.133) (Ping timeout: 240 seconds)
2021-02-21 19:17:17 +0100oisdk(~oisdk@2001:bb6:3329:d100:c73:1525:4623:7479)
2021-02-21 19:17:50 +0100juuandyy(~juuandyy@90.106.228.121) (Ping timeout: 260 seconds)
2021-02-21 19:20:20 +0100integral(sid296274@p3m/member/integral) (Read error: Connection reset by peer)
2021-02-21 19:20:20 +0100kip(sid71464@gateway/web/irccloud.com/x-tfvbswgodgxcvsru) (Read error: Connection reset by peer)
2021-02-21 19:20:28 +0100ajmcmiddlin(sid284402@gateway/web/irccloud.com/x-jwmpjrkspajvogem) (Read error: Connection reset by peer)
2021-02-21 19:20:31 +0100integral(sid296274@p3m/member/integral)
2021-02-21 19:20:31 +0100kip(sid71464@gateway/web/irccloud.com/x-zelcijuvyrhuduhl)
2021-02-21 19:20:34 +0100pent(sid313808@gateway/web/irccloud.com/x-gnnpwsdgtfefuwbh) (Read error: Connection reset by peer)
2021-02-21 19:20:37 +0100ajmcmiddlin(sid284402@gateway/web/irccloud.com/x-envrayjafctqomyi)
2021-02-21 19:20:52 +0100pent(sid313808@gateway/web/irccloud.com/x-wkrelvmhvdeipyxz)
2021-02-21 19:21:36 +0100mozzarella(~sam@unaffiliated/sam113101) (Remote host closed the connection)
2021-02-21 19:22:46 +0100rkk95(41bf0bfc@065-191-011-252.inf.spectrum.com)
2021-02-21 19:23:00 +0100mozzarella(~sam@unaffiliated/sam113101)
2021-02-21 19:23:03 +0100 <rkk95> How do I downgrade my GHC version from 8.10.4 to 8.10.3 on windows?
2021-02-21 19:24:36 +0100 <geekosaur> if you used ghcup you should be able to install it if necessary and select 8.10.3 as the active version
2021-02-21 19:24:46 +0100 <rkk95> Sorry, should've specified. I'm using Stack
2021-02-21 19:24:53 +0100frozenErebus(~frozenEre@94.128.219.166)
2021-02-21 19:24:58 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.0)
2021-02-21 19:25:49 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-02-21 19:26:22 +0100 <edwardk> it was a clubhouse session that spilled over onto discord because i wanted to share my screen
2021-02-21 19:26:29 +0100shatriff(~vitaliish@protective.remission.volia.net) (Remote host closed the connection)
2021-02-21 19:26:45 +0100shatriff(~vitaliish@protective.remission.volia.net)
2021-02-21 19:26:51 +0100 <geekosaur> rkk95, usually you select a resolver that has 8.10.3 as its associated compiler
2021-02-21 19:27:08 +0100shatriff(~vitaliish@protective.remission.volia.net) (Remote host closed the connection)
2021-02-21 19:27:23 +0100shatriff(~vitaliish@protective.remission.volia.net)
2021-02-21 19:27:29 +0100 <geekosaur> if you have some specific project that needs 8.10.3 you can change the resolver for just that project
2021-02-21 19:27:55 +0100shatriff(~vitaliish@protective.remission.volia.net) (Remote host closed the connection)
2021-02-21 19:28:13 +0100shatriff(~vitaliish@protective.remission.volia.net)
2021-02-21 19:28:17 +0100 <rkk95> geekosaur thanks, I was able to change the resolver. Do you know where the ghc executable is so I can add it to the path
2021-02-21 19:28:26 +0100gioyik(~gioyik@gateway/tor-sasl/gioyik)
2021-02-21 19:28:43 +0100shatriff(~vitaliish@protective.remission.volia.net) (Remote host closed the connection)
2021-02-21 19:28:50 +0100graingert(sid128301@gateway/web/irccloud.com/x-kqkgwbfzuayatuma) (Ping timeout: 264 seconds)
2021-02-21 19:28:53 +0100 <geekosaur> you probably should not do that with stack
2021-02-21 19:28:58 +0100shatriff(~vitaliish@protective.remission.volia.net)
2021-02-21 19:29:16 +0100 <geekosaur> and no, I don't know where it is on Windows or how you'd determine it
2021-02-21 19:29:26 +0100kozowu(uid44796@gateway/web/irccloud.com/x-mirfwtuhrmimndjb) (Ping timeout: 264 seconds)
2021-02-21 19:29:30 +0100shatriff(~vitaliish@protective.remission.volia.net) (Remote host closed the connection)
2021-02-21 19:30:02 +0100lolmac(sid171216@gateway/web/irccloud.com/x-hckmunyonklvauje) (Ping timeout: 264 seconds)
2021-02-21 19:30:20 +0100graingert(sid128301@gateway/web/irccloud.com/x-vwzoafonxaqqvvrv)
2021-02-21 19:30:47 +0100 <tomsmeding> geekosaur: kind of tangential, but ghcup isn't a thing on windows
2021-02-21 19:30:52 +0100kozowu(uid44796@gateway/web/irccloud.com/x-wlfxxlfkkrrqlsqe)
2021-02-21 19:30:59 +0100 <geekosaur> still? sad
2021-02-21 19:31:15 +0100lolmac(sid171216@gateway/web/irccloud.com/x-dswidkrvjmjmjdpe)
2021-02-21 19:31:16 +0100 <maerwald> geekosaur: no one yet told me how to correctly handle msys2
2021-02-21 19:31:36 +0100 <maerwald> until that day, probably nothing is gonna happen, lol
2021-02-21 19:31:59 +0100 <tomsmeding> rkk95: compile a large library with stack, go in task manager, search for GHC, and right click -> show folder?
2021-02-21 19:32:02 +0100dunj4(~dunj3@p200300f61714a6134d9f693459962ab2.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2021-02-21 19:32:03 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer)
2021-02-21 19:32:07 +0100 <tomsmeding> YMMV :p
2021-02-21 19:32:10 +0100 <maerwald> Taneb said stack handles it incorrectly, but I could never figure out why etc
2021-02-21 19:32:38 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-21 19:33:34 +0100 <maerwald> and then again... WSL
2021-02-21 19:33:41 +0100 <maerwald> is it even worth the trouble
2021-02-21 19:33:46 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-02-21 19:33:54 +0100 <yushyin> `stack path' will list (among other things) the ghc path
2021-02-21 19:34:59 +0100 <rkk95> @yus
2021-02-21 19:34:59 +0100 <lambdabot> Maybe you meant: yow run bug
2021-02-21 19:35:07 +0100 <tomsmeding> @yow
2021-02-21 19:35:07 +0100 <lambdabot> Hmmm ... A hash-singer and a cross-eyed guy were SLEEPING on a deserted
2021-02-21 19:35:07 +0100 <lambdabot> island, when ...
2021-02-21 19:35:08 +0100 <rkk95> yushyin so add whatevers at ghc-paths: to my windows PATH?
2021-02-21 19:35:16 +0100tomsmedingwonders what that's about
2021-02-21 19:35:46 +0100 <yushyin> rkk95: I don't know why you would want to do that
2021-02-21 19:35:47 +0100 <tomsmeding> rkk95: you... can, but that's not what you're "supposed" to do with stack
2021-02-21 19:36:08 +0100 <rkk95> so its just better to do stack new and create a project and do it that way?
2021-02-21 19:36:16 +0100 <tomsmeding> that's the idea, yes
2021-02-21 19:36:26 +0100 <geekosaur> tomsmeding: yow's not supposed to make sense
2021-02-21 19:36:30 +0100 <tomsmeding> I see
2021-02-21 19:36:33 +0100 <geekosaur> ("zippy the pinhead")
2021-02-21 19:37:07 +0100jollygood2(~bc8134e3@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout))
2021-02-21 19:37:10 +0100 <tomsmeding> rkk95: if you really want a standalone global ghc, one way is to use the chocolatey method
2021-02-21 19:37:38 +0100 <tomsmeding> can attest that that works, but I don't know enough about windows to be able to say how much cruft that puts on your system
2021-02-21 19:38:04 +0100 <geekosaur> I think chocolatey has uninstall abilities
2021-02-21 19:39:07 +0100 <justsomeguy> Last time I used chocolately it had to resort to automating installs by driving gui wizards with AutoIt scripts for some packages.
2021-02-21 19:40:06 +0100 <justsomeguy> Other things were more streamlined -- Cli apps installed like any sane package manager. So the quality of packages varied a lot.
2021-02-21 19:40:23 +0100mirrorbird(~psutcliff@2a00:801:446:6dfc:fadb:e310:6ed2:16d)
2021-02-21 19:40:51 +0100 <tomsmeding> ghc installs sanely :)
2021-02-21 19:40:59 +0100conal(~conal@64.71.133.70)
2021-02-21 19:41:18 +0100darjeeling_(~darjeelin@122.245.216.187) (Ping timeout: 256 seconds)
2021-02-21 19:42:04 +0100 <justsomeguy> :D
2021-02-21 19:43:57 +0100mirrorbird(~psutcliff@2a00:801:446:6dfc:fadb:e310:6ed2:16d) (Client Quit)
2021-02-21 19:44:35 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-02-21 19:44:55 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-02-21 19:45:30 +0100rkk95(41bf0bfc@065-191-011-252.inf.spectrum.com) (Quit: Connection closed)
2021-02-21 19:49:45 +0100perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.0)
2021-02-21 19:50:17 +0100MVQq(~anja@198.254.199.42) (Quit: q)
2021-02-21 19:50:45 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds)
2021-02-21 19:50:51 +0100MarcelineVQ(~anja@198.254.199.42)
2021-02-21 19:50:58 +0100hexfive(~hexfive@50.35.83.177)
2021-02-21 19:51:15 +0100dragestil_(~quassel@fsf/member/dragestil)
2021-02-21 19:52:35 +0100dragestil(~quassel@fsf/member/dragestil) (Ping timeout: 256 seconds)
2021-02-21 19:54:27 +0100 <ij> can I compose two lenses to update both? Lens s t a1 b1 + Lens s t a2 b2 = s t (a1, a1) (b1, b2)
2021-02-21 19:54:37 +0100darjeeling_(~darjeelin@122.245.217.214)
2021-02-21 19:55:06 +0100zebrag(~inkbottle@aaubervilliers-654-1-4-36.w83-200.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-02-21 19:55:08 +0100 <ij> a yes/no also works
2021-02-21 19:57:10 +0100 <ij> I'm leaning towards no, because f is a functor and you'll have two fs, which would have to be combined
2021-02-21 19:57:55 +0100viluon(uid453725@gateway/web/irccloud.com/x-vfqtytiryjprhruz)
2021-02-21 19:58:53 +0100 <ij> and that's something the applicative has, not necessarily functor
2021-02-21 19:59:01 +0100perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2021-02-21 20:00:02 +0100desophos(~desophos@2601:249:1680:a570:d500:73bc:696a:d401)
2021-02-21 20:01:02 +0100zebrag(~inkbottle@aaubervilliers-654-1-4-36.w83-200.abo.wanadoo.fr)
2021-02-21 20:02:35 +0100jollygood2(~bc8134e3@217.29.117.252)
2021-02-21 20:02:36 +0100jollygood2(~bc8134e3@217.29.117.252) (Excess Flood)
2021-02-21 20:03:17 +0100jollygood2(~bc8134e3@217.29.117.252)
2021-02-21 20:03:32 +0100berberman_(~berberman@unaffiliated/berberman)
2021-02-21 20:03:32 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-02-21 20:03:34 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-02-21 20:03:52 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-02-21 20:04:47 +0100berberman(~berberman@unaffiliated/berberman) (Ping timeout: 272 seconds)
2021-02-21 20:05:31 +0100denisse(~spaceCat@gateway/tor-sasl/alephzer0) (Ping timeout: 268 seconds)
2021-02-21 20:06:47 +0100 <jollygood2> hi. what image recognition libraries are there for haskell? I found OpenCV on hackage, but it has not been updated since 2018
2021-02-21 20:06:56 +0100 <jollygood2> anything else?
2021-02-21 20:07:04 +0100 <maerwald> use C++ :p
2021-02-21 20:07:30 +0100 <jollygood2> that's my last option
2021-02-21 20:07:58 +0100jollygood2(~bc8134e3@217.29.117.252) (Quit: http://www.okay.uz/ (EOF))
2021-02-21 20:08:27 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
2021-02-21 20:08:42 +0100xff0x(~xff0x@port-92-193-195-86.dynamic.as20676.net) (Ping timeout: 260 seconds)
2021-02-21 20:08:55 +0100denisse(~spaceCat@gateway/tor-sasl/alephzer0)
2021-02-21 20:10:12 +0100h2017(~h2017@bras-base-clbaon0201w-grc-32-142-114-145-140.dsl.bell.ca)
2021-02-21 20:10:13 +0100 <h2017> hi
2021-02-21 20:10:20 +0100Mrbuck(~Mrbuck@gateway/tor-sasl/mrbuck)
2021-02-21 20:10:28 +0100 <h2017> i'm trying to print some unicode stuff and it's coming out in my terminal as some garbage
2021-02-21 20:10:35 +0100xff0x(xff0x@gateway/vpn/mullvad/xff0x)
2021-02-21 20:10:45 +0100 <h2017> (\"e\"\8712\"e\") is an example of some output
2021-02-21 20:11:00 +0100Rudd0(~Rudd0@185.189.115.103) (Ping timeout: 265 seconds)
2021-02-21 20:11:03 +0100 <Taneb> maerwald: I think you had me mixed up with someone else there? I don't use Windows and barely use stack
2021-02-21 20:11:06 +0100 <h2017> there you see \8712 that's supposed to be the set membership symbol
2021-02-21 20:11:20 +0100 <maerwald> Taneb: Tamara, right
2021-02-21 20:11:23 +0100 <maerwald> or something
2021-02-21 20:11:31 +0100 <h2017> what am i doing wrong? i don't want to see numeric codes in my terminal output
2021-02-21 20:11:36 +0100 <maerwald> the chocolatey maintainer
2021-02-21 20:11:45 +0100jollygood2(~bc8134e3@217.29.117.252)
2021-02-21 20:12:01 +0100 <geekosaur> h2017, use putStrLn instead of print
2021-02-21 20:12:17 +0100 <geekosaur> print invokes show which converts non-ASCII to escape sequences
2021-02-21 20:12:39 +0100 <jollygood2> OpenCV requires base (>=4.8 && <5), what latest GCC version matches that requirement? https://hackage.haskell.org/package/opencv
2021-02-21 20:13:05 +0100 <maerwald> jollygood2: 9.0.1
2021-02-21 20:13:08 +0100 <h2017> thanks geekosaur. it's working now
2021-02-21 20:13:33 +0100 <maerwald> there's no base-5 yet
2021-02-21 20:13:44 +0100teardown(~user@gateway/tor-sasl/mrush) (Remote host closed the connection)
2021-02-21 20:13:51 +0100 <geekosaur> assuming you meant ghc, pretty nmuch any ghc since 8.0 fits that constraint
2021-02-21 20:13:56 +0100 <jollygood2> ok, then what ghc was pre 2018-01-01
2021-02-21 20:14:03 +0100teardown(~user@gateway/tor-sasl/mrush)
2021-02-21 20:14:39 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-02-21 20:15:25 +0100 <monochrom> probably 8.6.something or even 8.4.something
2021-02-21 20:15:51 +0100teardown(~user@gateway/tor-sasl/mrush) (Remote host closed the connection)
2021-02-21 20:17:10 +0100heatsink(~heatsink@2600:1700:bef1:5e10:2c3b:7c69:7266:b507) (Remote host closed the connection)
2021-02-21 20:17:24 +0100Pickchea(~private@unaffiliated/pickchea)
2021-02-21 20:17:47 +0100ddellacosta(~ddellacos@86.106.143.10)
2021-02-21 20:17:57 +0100ukari(~ukari@unaffiliated/ukari) (Ping timeout: 264 seconds)
2021-02-21 20:19:06 +0100teardown(~user@gateway/tor-sasl/mrush)
2021-02-21 20:19:08 +0100verement(~anonymous@cpe-76-167-229-223.san.res.rr.com)
2021-02-21 20:19:27 +0100xff0x(xff0x@gateway/vpn/mullvad/xff0x) (Ping timeout: 272 seconds)
2021-02-21 20:20:39 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
2021-02-21 20:20:47 +0100xff0x(~xff0x@2001:1a81:52c4:2f00:8c9d:1c49:2ec6:afff)
2021-02-21 20:20:50 +0100stree(~stree@68.36.8.116) (Ping timeout: 260 seconds)
2021-02-21 20:21:55 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2021-02-21 20:22:36 +0100ddellacosta(~ddellacos@86.106.143.10) (Ping timeout: 265 seconds)
2021-02-21 20:23:07 +0100fissureman(~quassel@c-73-201-159-163.hsd1.dc.comcast.net)
2021-02-21 20:23:19 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit)
2021-02-21 20:23:20 +0100vicfred(vicfred@gateway/vpn/mullvad/vicfred)
2021-02-21 20:23:33 +0100 <jollygood2> what are my other options? is there any other image recognition library for haskell?
2021-02-21 20:23:58 +0100ukari(~ukari@unaffiliated/ukari)
2021-02-21 20:24:00 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2021-02-21 20:24:33 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit)
2021-02-21 20:24:55 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-02-21 20:25:24 +0100 <geekosaur> my guess is you get to bind to some C / C++ library
2021-02-21 20:25:37 +0100Aquazi(uid312403@gateway/web/irccloud.com/x-pjlkokppvykdzkgr)
2021-02-21 20:26:57 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2021-02-21 20:30:52 +0100Tops2(~Tobias@dyndsl-095-033-094-064.ewe-ip-backbone.de)
2021-02-21 20:32:14 +0100conal(~conal@64.71.133.70)
2021-02-21 20:33:26 +0100sMuNiX(~sMuNiX@lnsm2-montreal02-142-118-236-120.internet.virginmobile.ca) (Ping timeout: 260 seconds)
2021-02-21 20:33:42 +0100stree(~stree@68.36.8.116)
2021-02-21 20:35:02 +0100conal(~conal@64.71.133.70) (Client Quit)
2021-02-21 20:37:03 +0100sMuNiX(~sMuNiX@lnsm2-montreal02-142-118-236-120.internet.virginmobile.ca)
2021-02-21 20:41:17 +0100hexo(~hexo@gateway/tor-sasl/hexo) (Ping timeout: 268 seconds)
2021-02-21 20:42:03 +0100 <jollygood2> can haskell even interface with a C++ library?
2021-02-21 20:42:31 +0100srk(~sorki@gateway/tor-sasl/sorki) (Ping timeout: 268 seconds)
2021-02-21 20:42:47 +0100srk(~sorki@gateway/tor-sasl/sorki)
2021-02-21 20:42:47 +0100hexo(~hexo@gateway/tor-sasl/hexo)
2021-02-21 20:43:00 +0100ezrakilty(~ezrakilty@97-113-55-149.tukw.qwest.net)
2021-02-21 20:43:19 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:d4c9:fc31:dde3:18c9)
2021-02-21 20:43:35 +0100nut(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-02-21 20:43:51 +0100 <nut> what does default () mean in the haskell source code?
2021-02-21 20:45:39 +0100 <monochrom> No, you have to do the extern "C" thing.
2021-02-21 20:46:08 +0100 <geekosaur> nut, disables type defaulting (so for example you have to specify explicitly the type of many numeric calculations)
2021-02-21 20:46:54 +0100 <GreyFaceNoSpace> back with another question guys. the <- removes IO from a given variable of type IO a. correct?
2021-02-21 20:47:31 +0100 <GreyFaceNoSpace> and so : x <- v means that x::a
2021-02-21 20:47:45 +0100 <GreyFaceNoSpace> assuming v :: IO a
2021-02-21 20:47:53 +0100 <geekosaur> https://www.haskell.org/onlinereport/haskell2010/haskellch4.html#x10-790004.3.4
2021-02-21 20:48:20 +0100 <geekosaur> you could say it does so temporarily, provided you put it back in IO when you're done
2021-02-21 20:48:42 +0100ezrakilty(~ezrakilty@97-113-55-149.tukw.qwest.net) (Remote host closed the connection)
2021-02-21 20:49:02 +0100 <nut> How to makeClassy a type with a type variable?
2021-02-21 20:49:34 +0100 <GreyFaceNoSpace> whats wrong with this code then? https://pastebin.com/89f1A7B0
2021-02-21 20:49:43 +0100 <nut> makeClassy ''MyType , where data MyType a = MyType a
2021-02-21 20:49:46 +0100 <Cale> GreyFaceNoSpace: Yeah, though it's perhaps more helpful to say that x <- v means to execute the action v, and name its result x
2021-02-21 20:50:09 +0100 <Cale> GreyFaceNoSpace: So, naturally, if v was an IO action whose result will have type a, then x will indeed have type a
2021-02-21 20:50:32 +0100 <geekosaur> GreyFaceNoSpace, you ignored the "provided that" part
2021-02-21 20:50:34 +0100 <Cale> GreyFaceNoSpace: The do-block as a whole will itself be an IO action
2021-02-21 20:50:44 +0100 <geekosaur> you don't get to arbitrarily remove something from IO
2021-02-21 20:50:51 +0100 <Cale> GreyFaceNoSpace: and its result will be the result of the last action in the do-block
2021-02-21 20:50:59 +0100 <geekosaur> you can do so temporarily but you *must* put it back
2021-02-21 20:51:12 +0100ezrakilty(~ezrakilty@97-113-55-149.tukw.qwest.net)
2021-02-21 20:51:27 +0100 <Cale> The second line of your do-block there is a list, which it can't be, since you executed the IO action x on the previous line
2021-02-21 20:51:53 +0100 <monochrom> "<- removes IO" is a comforting model that has only 2 minutes of predictive power.
2021-02-21 20:51:55 +0100 <Cale> (every statement of your do-block must be of the same monad)
2021-02-21 20:52:46 +0100 <monochrom> My http://www.vex.net/~trebla/haskell/IO.xhtml is a non-nonsense IO tutorial.
2021-02-21 20:52:58 +0100Moyst(~moyst@212-149-213-144.bb.dnainternet.fi)
2021-02-21 20:53:33 +0100 <Cale> Also, this entire right hand side can't be correct, since the type signature of your function is [IO a] -> [a], and so you're meant to produce a list. A do-block which executes IO actions will itself be an IO action, and not a list.
2021-02-21 20:53:39 +0100 <GreyFaceNoSpace> so if i want to write a function f :: [IO a] -> IO [a]
2021-02-21 20:53:53 +0100 <Cale> That's a more interesting and useful type
2021-02-21 20:54:29 +0100 <Cale> You could then construct an action that will execute the IO actions in the given list
2021-02-21 20:54:35 +0100 <Cale> and collect up their results
2021-02-21 20:55:32 +0100ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-02-21 20:55:40 +0100someaspie(565024ca@86-80-36-202.fixed.kpn.net)
2021-02-21 20:56:15 +0100 <Cale> With something like [IO a] -> [a], you're sort of stuck -- you have to produce a list, but you can't execute the IO actions in the given list, so you have no way to get interesting values of type a, and so the result is either going to be an empty list, or a bunch of bottom values (infinite loops or errors)
2021-02-21 20:56:44 +0100someaspie(565024ca@86-80-36-202.fixed.kpn.net) (Client Quit)
2021-02-21 20:57:58 +0100 <GreyFaceNoSpace> so if i fold on xs :: [IO a] with foldl id [] xs
2021-02-21 20:58:12 +0100 <Cale> That wouldn't typecheck
2021-02-21 20:58:25 +0100 <GreyFaceNoSpace> hmm
2021-02-21 20:58:38 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-02-21 20:58:41 +0100 <Cale> But don't worry about folding before you've figured out what you want to do in a recursive way for now
2021-02-21 20:58:47 +0100 <jollygood2> that function already exists, it is called sequence. but writing it yourself is a useful excercise
2021-02-21 20:59:06 +0100 <Cale> If you want, I can walk you through how it's done
2021-02-21 20:59:15 +0100 <GreyFaceNoSpace> no let me think about it for a bit
2021-02-21 20:59:27 +0100 <GreyFaceNoSpace> i wanna know what i am screwing up
2021-02-21 20:59:39 +0100 <GreyFaceNoSpace> im gonna get it right eventually
2021-02-21 20:59:56 +0100 <Cale> In English, the idea should be that if the list is empty, you want to produce an action that does nothing except to produce an empty list when you execute it.
2021-02-21 21:00:02 +0100ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 260 seconds)
2021-02-21 21:00:09 +0100 <GreyFaceNoSpace> so return []
2021-02-21 21:00:12 +0100 <Cale> yep
2021-02-21 21:00:29 +0100 <GreyFaceNoSpace> yes i tried that but it failed for some reason
2021-02-21 21:00:38 +0100 <Cale> If the list is nonempty, then you want to execute the first action, and then you want to execute all the others, and combine the result of the first action with the list of results of the others
2021-02-21 21:02:18 +0100nhs(~nhs@c-67-180-177-103.hsd1.ca.comcast.net)
2021-02-21 21:03:02 +0100 <GreyFaceNoSpace> this is what i have now: https://pastebin.com/FDwzg3Df
2021-02-21 21:03:08 +0100 <GreyFaceNoSpace> but its still not working
2021-02-21 21:03:43 +0100 <Cale> Your base case is still wrong -- you got it right before, it should be return []
2021-02-21 21:03:57 +0100 <GreyFaceNoSpace> oh
2021-02-21 21:04:04 +0100 <Cale> [] is an empty list
2021-02-21 21:04:18 +0100 <Cale> return [] is an action that if you run it will do nothing, but produce an empty list as its result
2021-02-21 21:04:36 +0100DataComputist(~lumeng@50.43.26.251) (Ping timeout: 240 seconds)
2021-02-21 21:05:03 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
2021-02-21 21:05:05 +0100petersen(~petersen@redhat/juhp) (Ping timeout: 240 seconds)
2021-02-21 21:05:22 +0100nullniverse(~null@unaffiliated/nullniverse)
2021-02-21 21:05:22 +0100 <GreyFaceNoSpace> but now. at some point i will execute a step : return $ (a: [] :: IO [a])
2021-02-21 21:05:38 +0100 <Cale> (a:[]) :: [a]
2021-02-21 21:05:43 +0100 <Cale> return (a:[]) :: IO [a]
2021-02-21 21:06:10 +0100 <GreyFaceNoSpace> but the case for f [] = return [] thats of type IO [a]
2021-02-21 21:06:15 +0100 <Cale> yep
2021-02-21 21:06:19 +0100 <Cale> which is correct
2021-02-21 21:06:36 +0100 <Cale> a:[] is definitely a list and not an IO action
2021-02-21 21:06:42 +0100 <GreyFaceNoSpace> so what i have is : return $ (a : return [])
2021-02-21 21:06:45 +0100 <Cale> no
2021-02-21 21:07:01 +0100ezrakilty(~ezrakilty@97-113-55-149.tukw.qwest.net) (Remote host closed the connection)
2021-02-21 21:07:06 +0100 <monochrom> I think you're reading too much into the function name "return".
2021-02-21 21:07:06 +0100 <Cale> Remember that as <- f xs means that as is the result of executing f xs
2021-02-21 21:07:10 +0100 <jollygood2> your code should work, just fix your base case for an empty list
2021-02-21 21:07:29 +0100 <Cale> So, in the case where xs is the empty list
2021-02-21 21:07:34 +0100 <GreyFaceNoSpace> i did fix it. I am just trying to understand why its working
2021-02-21 21:07:35 +0100 <Cale> that will become as <- return []
2021-02-21 21:07:42 +0100 <GreyFaceNoSpace> yes
2021-02-21 21:07:42 +0100MarcelineVQ(~anja@198.254.199.42) (Remote host closed the connection)
2021-02-21 21:07:44 +0100 <GreyFaceNoSpace> aaaah
2021-02-21 21:07:47 +0100 <GreyFaceNoSpace> now i get it
2021-02-21 21:07:51 +0100petersen(~petersen@redhat/juhp)
2021-02-21 21:07:53 +0100 <Cale> and so as = []
2021-02-21 21:07:56 +0100 <GreyFaceNoSpace> yes yes
2021-02-21 21:08:01 +0100 <GreyFaceNoSpace> i get it now
2021-02-21 21:08:01 +0100 <GreyFaceNoSpace> haha
2021-02-21 21:08:13 +0100 <jollygood2> return doesn't return from the function, btw. it just turns a into IO a
2021-02-21 21:08:17 +0100 <GreyFaceNoSpace> hmm interesting
2021-02-21 21:08:17 +0100Pickchea(~private@unaffiliated/pickchea) (Quit: Leaving)
2021-02-21 21:08:33 +0100 <GreyFaceNoSpace> jollygood2, yes i understand that. i was just confused
2021-02-21 21:08:33 +0100MarcelineVQ(~anja@198.254.199.42)
2021-02-21 21:09:25 +0100 <jollygood2> btw, there's another, more concise, way to write that function, with liftA2 or <$> and <*>
2021-02-21 21:09:30 +0100 <GreyFaceNoSpace> the fact that do makes everything happen sequentially confused me.
2021-02-21 21:09:41 +0100DataComputist(~lumeng@50.43.26.251)
2021-02-21 21:09:42 +0100 <GreyFaceNoSpace> i still havent done monads
2021-02-21 21:09:55 +0100 <merijn> I doesn't make anything happen sequentially
2021-02-21 21:09:58 +0100 <jollygood2> you just did it with monads :)
2021-02-21 21:10:02 +0100 <merijn> It makes things happen via >>=
2021-02-21 21:10:04 +0100 <geekosaur> do doesn't do as much as you think, rither
2021-02-21 21:10:08 +0100 <jollygood2> liftA2 and <$> <*> are Applicatives
2021-02-21 21:10:08 +0100 <geekosaur> either*
2021-02-21 21:10:08 +0100 <merijn> What that means depends on the monad
2021-02-21 21:10:16 +0100gioyik(~gioyik@gateway/tor-sasl/gioyik) (Ping timeout: 268 seconds)
2021-02-21 21:10:25 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:d4c9:fc31:dde3:18c9) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-21 21:10:43 +0100 <jollygood2> :t liftA2
2021-02-21 21:10:44 +0100 <lambdabot> Applicative f => (a -> b -> c) -> f a -> f b -> f c
2021-02-21 21:11:04 +0100 <jollygood2> f (x:xs) = liftA2 (:) x (g xs)
2021-02-21 21:11:20 +0100 <jollygood2> g (x:xs) = liftA2 (:) x (f xs), even
2021-02-21 21:11:28 +0100 <monochrom> merijn, https://xkcd.com/1818/ applies
2021-02-21 21:11:29 +0100 <jollygood2> f (x:xs) = liftA2 (:) x (f xs), even
2021-02-21 21:11:32 +0100jollygood2calls it a day
2021-02-21 21:11:49 +0100 <monochrom> Since do-notation is equivalent to >>=, if >>= causes sequencing then so does do-notation.
2021-02-21 21:12:09 +0100 <monochrom> But as usual, both are equally wrong.
2021-02-21 21:12:18 +0100 <monochrom> IO causes sequencing.
2021-02-21 21:12:53 +0100Entertainment(~entertain@104.246.145.85)
2021-02-21 21:13:11 +0100gienah(~mwright@gentoo/developer/gienah) (Quit: leaving)
2021-02-21 21:14:21 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds)
2021-02-21 21:15:59 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-02-21 21:18:04 +0100heatsink(~heatsink@2600:1700:bef1:5e10:2c3b:7c69:7266:b507)
2021-02-21 21:19:20 +0100 <merijn> monochrom: Sure, but that assumes beginners *know* it is equivalent
2021-02-21 21:19:45 +0100mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 240 seconds)
2021-02-21 21:21:06 +0100conal(~conal@64.71.133.70)
2021-02-21 21:21:22 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-02-21 21:21:39 +0100slack1256(~slack1256@dvc-186-186-101-190.movil.vtr.net)
2021-02-21 21:22:50 +0100heatsink(~heatsink@2600:1700:bef1:5e10:2c3b:7c69:7266:b507) (Ping timeout: 264 seconds)
2021-02-21 21:24:59 +0100acidjnk_new(~acidjnk@pd9e0bf4a.dip0.t-ipconnect.de)
2021-02-21 21:26:38 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2021-02-21 21:27:15 +0100mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh)
2021-02-21 21:27:34 +0100nut(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 260 seconds)
2021-02-21 21:28:28 +0100slack1256(~slack1256@dvc-186-186-101-190.movil.vtr.net) (Remote host closed the connection)
2021-02-21 21:28:46 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 268 seconds)
2021-02-21 21:32:23 +0100Entertainment(~entertain@104.246.145.85) ()
2021-02-21 21:36:36 +0100mirrorbird(~psutcliff@2a00:801:446:6dfc:fadb:e310:6ed2:16d)
2021-02-21 21:38:18 +0100nullniv4(~null@unaffiliated/nullniverse)
2021-02-21 21:40:45 +0100frozenErebus(~frozenEre@94.128.219.166) (Ping timeout: 264 seconds)
2021-02-21 21:42:21 +0100nullniverse(~null@unaffiliated/nullniverse) (Ping timeout: 265 seconds)
2021-02-21 21:42:47 +0100kuribas(~user@ptr-25vy0i9d8ddz063tr0c.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
2021-02-21 21:44:18 +0100xcmw(~textual@dyn-72-33-2-47.uwnet.wisc.edu)
2021-02-21 21:45:56 +0100nullniverse(~null@unaffiliated/nullniverse)
2021-02-21 21:46:30 +0100nullniv4(~null@unaffiliated/nullniverse) (Read error: Connection reset by peer)
2021-02-21 21:46:50 +0100nullniv72(~null@unaffiliated/nullniverse)
2021-02-21 21:47:14 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-02-21 21:50:05 +0100xcmw(~textual@dyn-72-33-2-47.uwnet.wisc.edu) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-21 21:50:16 +0100edwinb(sid69486@gateway/web/irccloud.com/x-ahfrajgjspekgwex) (Read error: Connection reset by peer)
2021-02-21 21:50:16 +0100dsturnbull(sid347899@gateway/web/irccloud.com/x-vrnzpijbgungjari) (Read error: Connection reset by peer)
2021-02-21 21:50:26 +0100kupi(uid212005@gateway/web/irccloud.com/x-pssuakftcukcxfkk) (Ping timeout: 240 seconds)
2021-02-21 21:50:30 +0100nullniverse(~null@unaffiliated/nullniverse) (Ping timeout: 256 seconds)
2021-02-21 21:50:53 +0100PoliticsII______(sid193551@gateway/web/irccloud.com/x-ahjdxgzhinwgmulm) (Read error: Connection reset by peer)
2021-02-21 21:51:01 +0100SanchayanMaity(sid478177@gateway/web/irccloud.com/x-emqjrggggxtjzmmc) (Ping timeout: 256 seconds)
2021-02-21 21:51:02 +0100dsturnbull(sid347899@gateway/web/irccloud.com/x-asyraowfziwxkufz)
2021-02-21 21:51:03 +0100edwinb(sid69486@gateway/web/irccloud.com/x-qvjalasgpdxobhmu)
2021-02-21 21:51:11 +0100average(uid473595@gateway/web/irccloud.com/x-ajbakqsurwmqkezd) (Ping timeout: 272 seconds)
2021-02-21 21:51:11 +0100gluegadget(sid22336@gateway/web/irccloud.com/x-nsgcjsqinyltxtco) (Ping timeout: 272 seconds)
2021-02-21 21:51:24 +0100PoliticsII______(sid193551@gateway/web/irccloud.com/x-slpupmeuvesxhpke)
2021-02-21 21:51:41 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-atwsihcjqkpkjann)
2021-02-21 21:51:48 +0100frozenErebus(~frozenEre@94.128.219.166)
2021-02-21 21:51:55 +0100gluegadget(sid22336@gateway/web/irccloud.com/x-aztbcwiepgvjkpoz)
2021-02-21 21:52:03 +0100SanchayanMaity(sid478177@gateway/web/irccloud.com/x-qrhxnevmgmdapsbs)
2021-02-21 21:52:09 +0100average(uid473595@gateway/web/irccloud.com/x-vjticfovgmrwoddf)
2021-02-21 21:52:35 +0100kupi(uid212005@gateway/web/irccloud.com/x-mbplkmlzcjbllchc)
2021-02-21 21:53:14 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 260 seconds)
2021-02-21 21:55:10 +0100 <monochrom> merijn: When students listen to me exclusively, I don't even bring up the do-notation. But on #haskell beginners are not my exclusive students, they look all over the place on the Internet, and the Internet is full of do-notation all over the place. Hell, even the textbooks that I recommend, they switch from >>= to do in like 5 seconds. (Like I have a choice in recommending a textbook that doesn't do this.)
2021-02-21 21:55:58 +0100 <monochrom> If a beginner here is already knee-deep in do-notation, we may as well go with it and not get into a fight.
2021-02-21 21:56:46 +0100 <monochrom> We can recommend them to work more with >>=, but it's their call.
2021-02-21 21:57:07 +0100 <MarcelineVQ> I just link your do/IO tutorial and go back to reading shitty mangas
2021-02-21 21:57:13 +0100 <maerwald> lol
2021-02-21 21:57:17 +0100 <monochrom> heh
2021-02-21 22:00:33 +0100Natch(~Natch@c-b471e255.014-297-73746f25.bbcust.telenor.se) (Remote host closed the connection)
2021-02-21 22:02:29 +0100Guest19(88982c94@gateway/web/cgi-irc/kiwiirc.com/ip.136.152.44.148)
2021-02-21 22:02:40 +0100 <Guest19> quick! how does one define fucntions in the interpreter on haskell.org?
2021-02-21 22:02:50 +0100 <Guest19> getting parse error on =
2021-02-21 22:02:57 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-02-21 22:02:58 +0100 <Guest19> addMaybe x y = Just(x + y)
2021-02-21 22:03:01 +0100amerigo(uid331857@gateway/web/irccloud.com/x-yxxhsaxuybcqvhua) (Quit: Connection closed for inactivity)
2021-02-21 22:03:15 +0100_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-02-21 22:03:19 +0100 <MarcelineVQ> try let, eg. :let foo x = x + 3 dunno though, haven't used it
2021-02-21 22:03:38 +0100 <Guest19> oh there are interpreter commands prefixed by colon? haven't used haskell in... boy, over five years
2021-02-21 22:03:54 +0100 <maerwald> didn't know there's an interpreter on haskell.org lol
2021-02-21 22:03:58 +0100 <Guest19> got a parse error grrr
2021-02-21 22:03:59 +0100 <MarcelineVQ> appearantly not, guess this things a little limited :>
2021-02-21 22:04:04 +0100 <Guest19> noooo!
2021-02-21 22:04:14 +0100 <Guest19> I could use let but will it let me do multiline input? >:(
2021-02-21 22:04:27 +0100forgottenone(~forgotten@176.42.28.68) (Read error: Connection reset by peer)
2021-02-21 22:04:33 +0100 <MarcelineVQ> it doesn't like where either :(
2021-02-21 22:04:45 +0100nullniv72(~null@unaffiliated/nullniverse) (Quit: -a- IRC for Android 2.1.59)
2021-02-21 22:04:48 +0100 <Guest19> apparently not. let me find a different interpreter
2021-02-21 22:04:49 +0100 <MarcelineVQ> it being this page
2021-02-21 22:05:05 +0100 <MarcelineVQ> ghci is the defacto haskell interpreter if you're on a system that can have a ghc install
2021-02-21 22:05:20 +0100nullniverse(~null@unaffiliated/nullniverse)
2021-02-21 22:05:21 +0100 <Guest19> I'm not going to install anything today sorry
2021-02-21 22:05:31 +0100 <MarcelineVQ> np :>
2021-02-21 22:06:19 +0100 <Guest19> getting "no location info" for let blah... grr
2021-02-21 22:06:52 +0100 <MarcelineVQ> oh I'm a dummy, this is just for expressions, so you need to use in
2021-02-21 22:07:03 +0100Rufflewind(6b80d677@107-128-214-119.lightspeed.sntcca.sbcglobal.net)
2021-02-21 22:07:17 +0100 <MarcelineVQ> let f x = x + 3 in f 1
2021-02-21 22:07:57 +0100son0p(~son0p@181.136.122.143)
2021-02-21 22:07:59 +0100 <MarcelineVQ> I discovered this by doing the tutorial to the right of the interpreter :>
2021-02-21 22:08:01 +0100 <Guest19> found an online interpreter with ghci hanks y'all
2021-02-21 22:08:17 +0100Guest19(88982c94@gateway/web/cgi-irc/kiwiirc.com/ip.136.152.44.148) (Quit: Connection closed)
2021-02-21 22:08:44 +0100perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.0)
2021-02-21 22:08:53 +0100 <MarcelineVQ> I feel silly since it plainly says it too "Type Haskell expressions in here."
2021-02-21 22:10:02 +0100Natch(~natch@c-b471e255.014-297-73746f25.bbcust.telenor.se)
2021-02-21 22:10:13 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-21 22:10:18 +0100perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2021-02-21 22:13:14 +0100gioyik(~gioyik@gateway/tor-sasl/gioyik)
2021-02-21 22:17:12 +0100geekosaur(ae68c070@cpe-174-104-192-112.neo.res.rr.com) (Quit: Connection closed)
2021-02-21 22:19:05 +0100heatsink(~heatsink@2600:1700:bef1:5e10:2c3b:7c69:7266:b507)
2021-02-21 22:23:00 +0100 <monochrom> Error messages contain "<hint>: ..." so that's an insider hint on what that prompt really does.
2021-02-21 22:23:32 +0100heatsink(~heatsink@2600:1700:bef1:5e10:2c3b:7c69:7266:b507) (Ping timeout: 260 seconds)
2021-02-21 22:23:44 +0100 <monochrom> In retrospect it's confusing because beginners don't know that our "hint" has a different meaning.
2021-02-21 22:24:07 +0100 <monochrom> Well, too late to change now.
2021-02-21 22:24:46 +0100 <MarcelineVQ> heterogeneous int?
2021-02-21 22:26:13 +0100 <monochrom> http://hackage.haskell.org/package/hint
2021-02-21 22:26:30 +0100 <monochrom> Today's lambdabot uses mueval, but there was a time it used hint.
2021-02-21 22:27:53 +0100gioyik(~gioyik@gateway/tor-sasl/gioyik) (Remote host closed the connection)
2021-02-21 22:28:51 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:d4c9:fc31:dde3:18c9)
2021-02-21 22:31:02 +0100gioyik(~gioyik@gateway/tor-sasl/gioyik)
2021-02-21 22:32:08 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
2021-02-21 22:33:19 +0100pera(~pera@unaffiliated/pera) (Quit: leaving)
2021-02-21 22:33:50 +0100frozenErebus(~frozenEre@94.128.219.166) (Ping timeout: 260 seconds)
2021-02-21 22:34:04 +0100ddellacosta(~ddellacos@86.106.143.124)
2021-02-21 22:39:56 +0100Kaiepi(~Kaiepi@47.54.252.148) (Ping timeout: 240 seconds)
2021-02-21 22:40:35 +0100danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds)
2021-02-21 22:42:01 +0100stree(~stree@68.36.8.116) (Ping timeout: 256 seconds)
2021-02-21 22:43:44 +0100dale(dale@unaffiliated/dale) (Remote host closed the connection)
2021-02-21 22:43:48 +0100ddellacosta(~ddellacos@86.106.143.124) (Remote host closed the connection)
2021-02-21 22:48:10 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-02-21 22:49:43 +0100gienah(~mwright@gentoo/developer/gienah)
2021-02-21 22:52:52 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:d4c9:fc31:dde3:18c9) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-21 22:53:21 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
2021-02-21 22:54:51 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 265 seconds)
2021-02-21 22:55:04 +0100stree(~stree@68.36.8.116)
2021-02-21 22:55:13 +0100Franciman(~francesco@host-82-49-79-189.retail.telecomitalia.it) (Quit: Leaving)
2021-02-21 22:55:51 +0100nullniverse(~null@unaffiliated/nullniverse) (Remote host closed the connection)
2021-02-21 22:58:26 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:d4c9:fc31:dde3:18c9)
2021-02-21 22:58:38 +0100heatsink(~heatsink@2600:1700:bef1:5e10:2c3b:7c69:7266:b507)
2021-02-21 23:02:06 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
2021-02-21 23:06:33 +0100ph88^(~ph88@2a02:8109:9e00:7e5c:1c31:ba91:4135:5f73) (Ping timeout: 272 seconds)
2021-02-21 23:08:44 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-02-21 23:12:46 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-02-21 23:12:51 +0100nullniverse(~null@unaffiliated/nullniverse)
2021-02-21 23:16:26 +0100nullniverse(~null@unaffiliated/nullniverse) (Read error: Connection reset by peer)
2021-02-21 23:16:55 +0100nullniverse(~null@unaffiliated/nullniverse)
2021-02-21 23:17:22 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:d4c9:fc31:dde3:18c9) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-21 23:20:12 +0100Rufflewind(6b80d677@107-128-214-119.lightspeed.sntcca.sbcglobal.net) (Quit: Connection closed)
2021-02-21 23:25:02 +0100rob01(~rob0@195.140.213.38) (Remote host closed the connection)
2021-02-21 23:27:16 +0100Rudd0(~Rudd0@185.189.115.103)
2021-02-21 23:30:33 +0100shatriff(~vitaliish@protective.remission.volia.net)
2021-02-21 23:32:50 +0100Kaiepi(~Kaiepi@47.54.252.148)
2021-02-21 23:34:04 +0100kam1(~kam1@5.125.10.108)
2021-02-21 23:34:21 +0100minoru_shiraeesh(~shiraeesh@109.166.57.22)
2021-02-21 23:34:27 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2021-02-21 23:35:41 +0100mirrorbird(~psutcliff@2a00:801:446:6dfc:fadb:e310:6ed2:16d) (Ping timeout: 272 seconds)
2021-02-21 23:36:42 +0100loller_(uid358106@gateway/web/irccloud.com/x-kbcihpyfexgxmziw)
2021-02-21 23:38:58 +0100notzmv(~user@unaffiliated/zmv) (Remote host closed the connection)
2021-02-21 23:39:19 +0100dale(dale@unaffiliated/dale)
2021-02-21 23:40:37 +0100notzmv(~user@unaffiliated/zmv)
2021-02-21 23:42:01 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:e027:ed4b:9a92:9af6)
2021-02-21 23:43:07 +0100notzmv(~user@unaffiliated/zmv) (Remote host closed the connection)
2021-02-21 23:43:43 +0100xcmw(~textual@dyn-72-33-2-47.uwnet.wisc.edu)
2021-02-21 23:43:45 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-02-21 23:43:52 +0100notzmv(~user@unaffiliated/zmv)
2021-02-21 23:47:22 +0100nullniv93(~null@unaffiliated/nullniverse)
2021-02-21 23:47:59 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-21 23:49:14 +0100Mrbuck(~Mrbuck@gateway/tor-sasl/mrbuck) (Quit: WeeChat 1.9.1)
2021-02-21 23:49:36 +0100nullniverse(~null@unaffiliated/nullniverse) (Ping timeout: 240 seconds)
2021-02-21 23:49:56 +0100kam1(~kam1@5.125.10.108) (Ping timeout: 240 seconds)
2021-02-21 23:50:17 +0100kam1(~kam1@37.129.135.98)
2021-02-21 23:50:28 +0100ddellacosta(~ddellacos@86.106.143.46)
2021-02-21 23:51:38 +0100Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2021-02-21 23:53:16 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-02-21 23:55:51 +0100ph88(~ph88@ip5f5af71a.dynamic.kabel-deutschland.de)
2021-02-21 23:56:21 +0100DavidEichmann(~david@234.109.45.217.dyn.plus.net) (Remote host closed the connection)
2021-02-21 23:57:53 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-atwsihcjqkpkjann) (Quit: Connection closed for inactivity)
2021-02-21 23:58:29 +0100mirrorbird(~psutcliff@2a00:801:446:6dfc:fadb:e310:6ed2:16d)