Home liberachat/#haskell: Logs Calendar

Logs on 2021-11-08 (liberachat/#haskell)

00:00:00 <hpc> because [] has that api already
00:00:03 <EvanR> making the distinction even less
00:00:23 <awpr> these vectors are implemented by `SmallArray#`, which takes `Int` indices
00:00:43 <EvanR> Int, whatever
00:00:48 <awpr> it is `Int`
00:03:47 <EvanR> the good news is your vectors index cannot represent locations outside the vector, the bad news is you can't do operations on it anymore xD
00:04:03 <awpr> I don't follow. I've done plenty of operations on them.
00:04:05 <EvanR> without at least some theorem proving
00:04:21 <awpr> yeah, the type level arithmetic can be annoying
00:04:38 × cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Ping timeout: 260 seconds)
00:04:51 <EvanR> and the amount of such operations in e.g. DSP code is... great
00:06:02 <awpr> which operations? proof obligations mostly tend to come from splitting, concatenating, reshaping vectors
00:06:23 <awpr> I would've expected stuff in DSP to be mostly mapping and convolving types of things
00:06:50 <EvanR> +1, -1
00:07:04 <EvanR> divide my 2
00:07:08 <EvanR> by
00:07:10 <hpc> there's a lot of operations in DSP that operate on small slices of the stream
00:08:18 <EvanR> at the level of slice, map, convolution then you don't even have the index
00:08:23 <EvanR> it's an implementation detail
00:08:43 <awpr> right, that's why those sorts of operations don't require proving things about indices
00:08:57 Guest27 joins (~Guest27@2601:281:d480:2ce0::93bd)
00:09:09 <EvanR> with not indices the point is moot!
00:09:24 <awpr> great!
00:09:43 <EvanR> if I work with billiard balls I need not concern myself with the subatomic particles... maybe
00:10:34 <awpr> we're discussing whether writing DSP code with length-indexed vectors would involve an unbearable amount of proof obligation, right?
00:11:14 <hololeap> could I get some help with these errors? http://sprunge.us/Dg0EMD
00:11:25 <hololeap> the code is at the top, the errors are commented out underneath
00:12:16 <hololeap> I know there is a lot to unpack
00:13:37 <hololeap> but what can I do to assure the compiler that since ('Node lt k rt) is an instance of KnownTree, lt and rt are as well?
00:13:51 × Guest27 quits (~Guest27@2601:281:d480:2ce0::93bd) (Ping timeout: 256 seconds)
00:15:52 <awpr> these sorts of things tend to be easier when written with a type like `SingTree t -> Path t -> Index (TreeSize t)`
00:16:01 <EvanR> awpr, er my original joke involved no longer being able to do operations on the indexes themselves
00:16:09 <EvanR> not whole vectors
00:16:19 <awpr> since then you can just pattern-match the singleton and pass in the left and right subtrees as needed
00:16:51 <awpr> EvanR: ok, popping the stack back to that: all the operations you want are available; it's just that none of them have the name `(+)`
00:17:00 <hololeap> awpr: how is that different from what I'm doing?
00:17:48 <awpr> hololeap: putting that as a constraint means you have less control and less visibility into how the recursive call gets its type information
00:18:44 <hololeap> `go` is the recursive call, not pathToIndex
00:19:07 <hololeap> go :: forall t'. (KnownTreeR t', KnownTree t') => Int -> SingTree t' -> Path t' -> Int
00:19:36 <awpr> it has KnownTree constraints, though, which aren't solved just by having `SingTree` in scope
00:20:40 <hololeap> oh, ha, getting rid of those constraints did get rid of the erros
00:20:44 <hololeap> *erros
00:20:48 <hololeap> *ERRORS
00:20:52 <geekosaur> heh
00:21:57 <hololeap> that was a bit ironic heh
00:23:09 <hololeap> working with heavy type-level stuff is confusing where sometimes you want to add constraints everywhere, and sometimes you need to omit them
00:23:33 × acidjnk_new quits (~acidjnk@p200300d0c7404a39d4d6bc989f421ded.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
00:24:35 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds)
00:24:42 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
00:24:51 <hololeap> I'm still getting used to it
00:26:00 Lord_of_Life_ is now known as Lord_of_Life
00:26:15 <hololeap> awpr++
00:26:26 × ystael quits (~ystael@user/ystael) (Quit: Lost terminal)
00:30:54 <hololeap> so my big confusion was that I have `KnownTree lt` and `KnownTree rt` constraints on my `KnownTree ('Node lt '(ls,rs) rt)` instance definition
00:32:07 <hololeap> so why couldn't it deduce that if I have (KnownTree t) and it knows that t = ('Node lt '(ls,rs) rt) from my pattern match, that there it satifies the KnownTree constraint on both lt and rt?
00:34:42 <awpr> oh
00:35:14 <hololeap> I even tried writing a KnownTreeR type family to help out
00:35:38 <awpr> looks like because KnownTreeR only implies KnownTree of its subtrees once you can prove which constructor they are
00:36:35 <awpr> maybe something like `type KnownTreeR t = (KnownTree t, KnownTreeRTF t)` and `type family KnownTreeRTF t where ... = (KnownTreeR lt, ...)`
00:36:48 <hololeap> there aren't any subtrees if the constructor is Leaf
00:37:10 <awpr> but the error is in a context where the constructor is not Leaf?
00:37:34 <awpr> what that constraint gives you is that `KnownTreeR lt`
00:37:37 <hololeap> that's true
00:37:54 <awpr> without knowing recursively what `lt` is, that can't be expanded to discover it implies `KnownTree lt`
00:38:22 <awpr> so the thing I wrote is meant to hoist that `KnownTree` up one level out of that
00:38:49 <hololeap> what about the KnownTree constraints for lt and rt on the KnownTree instance for 'Node?
00:39:14 <awpr> instance contexts are not made available by having that instance in scope; only class contexts are
00:39:30 <hololeap> oh
00:39:44 <hololeap> that explains a lot
00:41:21 × Tuplanolla quits (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
00:43:04 Guest70 joins (~Guest70@75.76.54.207)
00:46:23 × Guest70 quits (~Guest70@75.76.54.207) (Client Quit)
00:50:42 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 268 seconds)
00:51:11 Typedfern joins (~Typedfern@171.red-83-51-60.dynamicip.rima-tde.net)
01:02:06 notzmv joins (~zmv@user/notzmv)
01:16:56 yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net)
01:26:26 ssssssyd joins (~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net)
01:30:57 × bitmapper quits (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity)
01:31:07 <remexre> is there some way to get the (==) function `deriving Eq` would generate, _without_ defining an Eq instance for the type
01:33:02 emanuel_ joins (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
01:33:08 × unit73e quits (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Read error: Connection reset by peer)
01:33:17 <monochrom> https://hackage.haskell.org/package/generic-deriving contains something equivalent.
01:33:46 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 260 seconds)
01:35:56 × wolfshappen_ quits (~waff@irc.furworks.de) (Quit: later)
01:36:28 <remexre> ah, so I just want GEq from there? thanks!
01:36:40 <c_wraith> well, you probably want https://hackage.haskell.org/package/generic-deriving-1.14.1/docs/Generics-Deriving-Eq.html#v:geqdefault
01:39:33 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
01:39:58 × Guest41 quits (~Guest41@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: Client closed)
01:46:26 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
01:50:10 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
01:50:10 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
01:50:10 wroathe joins (~wroathe@user/wroathe)
01:54:49 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 268 seconds)
01:59:49 × fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 256 seconds)
02:00:21 × yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
02:07:35 × ees quits (~user@pool-108-18-30-46.washdc.fios.verizon.net) (Ping timeout: 264 seconds)
02:08:36 <remexre> hm, looks like that isn't working because stuff from containers doesn't have instances (and I don't see a way in the docs to make it use Eq for those types)
02:11:05 darkstardev13 joins (~darkstard@50.39.114.152)
02:12:49 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
02:13:25 lavaman joins (~lavaman@98.38.249.169)
02:13:56 × darkstarx quits (~darkstard@gateway/vpn/pia/darkstardevx) (Ping timeout: 268 seconds)
02:14:36 <remexre> I suppose I'll just define those as orphan instances that forward to the real ones :P
02:14:41 emf_ joins (~emf@c-73-97-137-43.hsd1.wa.comcast.net)
02:14:42 × emf quits (~emf@2620:10d:c090:400::5:d546) (Read error: Connection reset by peer)
02:17:27 × kupi quits (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
02:17:35 <awpr> it's probably easier to write your own Generic Eq instance tbh
02:17:55 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
02:18:10 × Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 260 seconds)
02:18:10 <awpr> those ones are intentionally written against separate classes for educational purposes
02:18:38 <awpr> this looks better too: https://hackage.haskell.org/package/generic-data-0.9.2.1/docs/Generic-Data.html#v:geq
02:19:38 <remexre> I couldn't get that to build, strangely; generic-lens (one of its test deps?) fails...
02:20:54 pony parts (sid524992@smol/hors) ()
02:21:23 <awpr> hmm, maybe GHC 9.2?
02:21:37 <awpr> in any case, rolling your own is probably 10-15 lines of code
02:21:45 <remexre> yeah
02:22:34 <awpr> another option: rename to `MyType'`, derive `Eq` for that, and make the exported type `newtype MyType = MyType MyType'` without forwarding the instance
02:23:19 <remexre> oh, yeah, and I can just PatternSynonyms the constructors; might do that instead actually
02:27:40 Guest27 joins (~Guest27@2601:281:d480:2ce0::93bd)
02:28:44 × Guest99 quits (~Guest99@pool-100-8-45-127.nwrknj.fios.verizon.net) (Ping timeout: 256 seconds)
02:39:23 × sa quits (sid1055@id-1055.tinside.irccloud.com) (Ping timeout: 264 seconds)
02:39:50 × bbhoss quits (sid18216@id-18216.tinside.irccloud.com) (Ping timeout: 268 seconds)
02:39:51 × taktoa[c] quits (sid282096@id-282096.tinside.irccloud.com) (Ping timeout: 268 seconds)
02:39:51 × agander_m quits (sid407952@2a03:5180:f::6:3990) (Ping timeout: 268 seconds)
02:39:59 × SanchayanMaity quits (sid478177@2a03:5180:f:4::7:4be1) (Ping timeout: 264 seconds)
02:39:59 × NiKaN quits (sid385034@2a03:5180:f:1::5:e00a) (Ping timeout: 264 seconds)
02:40:27 × econo quits (uid147250@user/econo) (Ping timeout: 268 seconds)
02:40:27 × alanz quits (sid110616@2a03:5180:f:5::1:b018) (Ping timeout: 268 seconds)
02:40:27 × edmundnoble quits (sid229620@2a03:5180:f:1::3:80f4) (Ping timeout: 268 seconds)
02:40:27 × ephemient quits (uid407513@2a03:5180:f:2::6:37d9) (Ping timeout: 268 seconds)
02:40:27 × truckasaurus quits (sid457088@id-457088.helmsley.irccloud.com) (Ping timeout: 268 seconds)
02:40:27 × scav quits (sid309693@id-309693.helmsley.irccloud.com) (Ping timeout: 268 seconds)
02:40:28 × ehamberg quits (sid18208@id-18208.hampstead.irccloud.com) (Ping timeout: 268 seconds)
02:40:28 × aarchi quits (sid486183@2a03:5180:f:5::7:6b27) (Ping timeout: 268 seconds)
02:40:28 × mcfilib quits (sid302703@user/mcfilib) (Ping timeout: 268 seconds)
02:40:28 × gonz___ quits (sid304396@2a03:5180:f:2::4:a50c) (Ping timeout: 268 seconds)
02:40:28 × servytor quits (uid525486@2a03:5180:f:4::8:4ae) (Ping timeout: 268 seconds)
02:40:28 × JSharp quits (sid4580@id-4580.lymington.irccloud.com) (Ping timeout: 268 seconds)
02:40:28 × aristid quits (sid1599@id-1599.uxbridge.irccloud.com) (Ping timeout: 268 seconds)
02:40:35 × whatsupdoc quits (uid509081@id-509081.hampstead.irccloud.com) (Ping timeout: 264 seconds)
02:40:35 × rubin55 quits (sid175221@2a03:5180:f:4::2:ac75) (Ping timeout: 264 seconds)
02:40:35 × cbarrett quits (sid192934@2a03:5180:f:1::2:f1a6) (Ping timeout: 264 seconds)
02:40:35 × S11001001 quits (sid42510@id-42510.ilkley.irccloud.com) (Ping timeout: 264 seconds)
02:40:35 × hubvu quits (sid495858@user/hubvu) (Ping timeout: 264 seconds)
02:40:35 × lightandlight quits (sid135476@id-135476.helmsley.irccloud.com) (Ping timeout: 264 seconds)
02:41:04 × tritlo quits (sid58727@user/tritlo) (Ping timeout: 268 seconds)
02:41:04 × b20n quits (sid115913@2a03:5180:f:5::1:c4c9) (Ping timeout: 268 seconds)
02:41:04 × tnks quits (sid412124@2a03:5180:f:1::6:49dc) (Ping timeout: 268 seconds)
02:41:04 × christiaanb quits (sid84827@id-84827.lymington.irccloud.com) (Ping timeout: 268 seconds)
02:41:04 × bjs quits (sid190364@user/bjs) (Ping timeout: 268 seconds)
02:41:05 × eruditass quits (uid248673@id-248673.uxbridge.irccloud.com) (Ping timeout: 268 seconds)
02:41:05 × hamishmack quits (sid389057@2a03:5180:f:4::5:efc1) (Ping timeout: 268 seconds)
02:41:05 × hendi quits (sid489601@id-489601.lymington.irccloud.com) (Ping timeout: 268 seconds)
02:41:05 × vito quits (sid1962@user/vito) (Ping timeout: 268 seconds)
02:41:11 × carter quits (sid14827@id-14827.helmsley.irccloud.com) (Ping timeout: 264 seconds)
02:41:11 × hongminhee quits (sid295@id-295.tinside.irccloud.com) (Ping timeout: 264 seconds)
02:41:21 hubvu joins (sid495858@user/hubvu)
02:41:35 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
02:41:41 × integral quits (sid296274@user/integral) (Ping timeout: 268 seconds)
02:41:41 × nrr_ quits (sid20938@id-20938.lymington.irccloud.com) (Ping timeout: 268 seconds)
02:41:42 × stevenxl quits (sid133530@2a03:5180:f:5::2:99a) (Ping timeout: 268 seconds)
02:41:42 × idnar quits (sid12240@debian/mithrandi) (Ping timeout: 268 seconds)
02:41:42 × Pent quits (sid313808@2a03:5180:f:2::4:c9d0) (Ping timeout: 268 seconds)
02:41:42 × dsal quits (sid13060@id-13060.lymington.irccloud.com) (Ping timeout: 268 seconds)
02:41:47 × Firedancer quits (sid336191@2a03:5180:f:4::5:213f) (Ping timeout: 264 seconds)
02:41:47 × pepeiborra quits (sid443799@2a03:5180:f:3::6:c597) (Ping timeout: 264 seconds)
02:41:47 × kaychaks__ quits (sid236345@2a03:5180:f:1::3:9b39) (Ping timeout: 264 seconds)
02:41:47 × systemfault quits (sid267009@2a03:5180:f:5::4:1301) (Ping timeout: 264 seconds)
02:41:47 × rtpg quits (sid443069@2a03:5180:f:3::6:c2bd) (Ping timeout: 264 seconds)
02:41:51 wolfshappen joins (~waff@irc.furworks.de)
02:41:59 taktoa[c] joins (sid282096@tinside.irccloud.com)
02:42:01 hongminhee joins (sid295@tinside.irccloud.com)
02:42:13 mcfilib joins (sid302703@user/mcfilib)
02:42:13 econo joins (uid147250@user/econo)
02:42:15 bjs joins (sid190364@user/bjs)
02:42:16 lightandlight joins (sid135476@helmsley.irccloud.com)
02:42:17 systemfault joins (sid267009@uxbridge.irccloud.com)
02:42:18 kaychaks__ joins (sid236345@helmsley.irccloud.com)
02:42:18 pepeiborra joins (sid443799@ilkley.irccloud.com)
02:42:18 × sa1 quits (sid7690@id-7690.ilkley.irccloud.com) (Ping timeout: 268 seconds)
02:42:18 × NemesisD quits (sid24071@id-24071.lymington.irccloud.com) (Ping timeout: 268 seconds)
02:42:18 × parseval quits (sid239098@id-239098.helmsley.irccloud.com) (Ping timeout: 268 seconds)
02:42:19 × pjlsergeant quits (sid143467@2a03:5180:f:4::2:306b) (Ping timeout: 268 seconds)
02:42:19 × jakesyl_ quits (sid56879@2a03:5180:f:4::de2f) (Ping timeout: 268 seconds)
02:42:19 × obviyus quits (sid415299@user/obviyus) (Ping timeout: 268 seconds)
02:42:19 × ysh quits (sid6017@id-6017.ilkley.irccloud.com) (Ping timeout: 268 seconds)
02:42:21 alanz joins (sid110616@uxbridge.irccloud.com)
02:42:22 sa1_ joins (sid7690@ilkley.irccloud.com)
02:42:22 rtpg joins (sid443069@ilkley.irccloud.com)
02:42:24 S11001001 joins (sid42510@ilkley.irccloud.com)
02:42:26 ysh joins (sid6017@ilkley.irccloud.com)
02:42:36 NemesisD joins (sid24071@lymington.irccloud.com)
02:42:40 ephemient joins (uid407513@lymington.irccloud.com)
02:42:42 christiaanb joins (sid84827@lymington.irccloud.com)
02:42:45 integral joins (sid296274@user/integral)
02:42:46 pjlsergeant joins (sid143467@hampstead.irccloud.com)
02:42:47 servytor joins (uid525486@hampstead.irccloud.com)
02:42:51 hamishmack joins (sid389057@hampstead.irccloud.com)
02:42:52 ehamberg joins (sid18208@hampstead.irccloud.com)
02:42:52 nrr_ joins (sid20938@lymington.irccloud.com)
02:43:01 eruditass joins (uid248673@uxbridge.irccloud.com)
02:43:10 jakesyl_ joins (sid56879@hampstead.irccloud.com)
02:43:16 whatsupdoc joins (uid509081@hampstead.irccloud.com)
02:43:18 tritlo joins (sid58727@user/tritlo)
02:43:18 × xff0x quits (~xff0x@2001:1a81:52ec:e600:16f0:b06d:ec81:fca7) (Ping timeout: 260 seconds)
02:43:20 rubin55 joins (sid175221@hampstead.irccloud.com)
02:43:21 SanchayanMaity joins (sid478177@hampstead.irccloud.com)
02:43:22 Firedancer joins (sid336191@hampstead.irccloud.com)
02:43:26 edmundnoble joins (sid229620@helmsley.irccloud.com)
02:43:26 tnks joins (sid412124@helmsley.irccloud.com)
02:43:26 truckasaurus joins (sid457088@helmsley.irccloud.com)
02:43:28 scav joins (sid309693@helmsley.irccloud.com)
02:43:29 vito joins (sid1962@user/vito)
02:43:36 b20n joins (sid115913@uxbridge.irccloud.com)
02:43:39 aarchi joins (sid486183@uxbridge.irccloud.com)
02:43:43 stevenxl joins (sid133530@uxbridge.irccloud.com)
02:43:46 carter joins (sid14827@helmsley.irccloud.com)
02:43:57 gonz___ joins (sid304396@lymington.irccloud.com)
02:43:58 idnar joins (sid12240@debian/mithrandi)
02:44:01 agander_m joins (sid407952@tinside.irccloud.com)
02:44:06 JSharp joins (sid4580@lymington.irccloud.com)
02:44:33 sa joins (sid1055@tinside.irccloud.com)
02:44:38 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
02:44:46 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 260 seconds)
02:44:58 cbarrett joins (sid192934@helmsley.irccloud.com)
02:45:02 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit)
02:45:06 xff0x joins (~xff0x@2001:1a81:532b:d400:5d59:4d8a:f670:7fef)
02:45:11 aristid joins (sid1599@uxbridge.irccloud.com)
02:45:26 NiKaN joins (sid385034@helmsley.irccloud.com)
02:45:35 dsal joins (sid13060@lymington.irccloud.com)
02:45:35 hendi joins (sid489601@lymington.irccloud.com)
02:45:36 Pent joins (sid313808@lymington.irccloud.com)
02:45:41 × mmhat quits (~mmh@55d4aeaa.access.ecotel.net) (Ping timeout: 256 seconds)
02:45:47 bbhoss joins (sid18216@tinside.irccloud.com)
02:46:16 <remexre> hm, pattern synonyms also fail without view patterns...
02:46:23 Guest|88 joins (~Guest|88@bras-base-toroon0628w-grc-55-174-95-82-110.dsl.bell.ca)
02:46:38 parseval joins (sid239098@helmsley.irccloud.com)
02:46:47 × Guest|88 quits (~Guest|88@bras-base-toroon0628w-grc-55-174-95-82-110.dsl.bell.ca) (Client Quit)
02:49:42 × Guest27 quits (~Guest27@2601:281:d480:2ce0::93bd) (Ping timeout: 256 seconds)
02:50:09 × SethTisue__ quits (sid14912@ilkley.irccloud.com) (Read error: Connection reset by peer)
02:50:09 × pepeiborra quits (sid443799@ilkley.irccloud.com) (Read error: Connection reset by peer)
02:50:13 × angerman quits (sid209936@ilkley.irccloud.com) (Read error: Connection reset by peer)
02:50:21 × caasih quits (sid13241@ilkley.irccloud.com) (Read error: Connection reset by peer)
02:50:28 × ProofTechnique quits (sid79547@ilkley.irccloud.com) (Read error: Connection reset by peer)
02:50:28 × edwardk quits (sid47016@haskell/developer/edwardk) (Write error: Connection reset by peer)
02:50:38 × tapas quits (sid467876@ilkley.irccloud.com) (Read error: Connection reset by peer)
02:50:47 × gmc quits (sid58314@ilkley.irccloud.com) (Ping timeout: 256 seconds)
02:50:47 × mrianbloom quits (sid350277@ilkley.irccloud.com) (Ping timeout: 256 seconds)
02:50:50 × rune quits (sid21167@ilkley.irccloud.com) (Read error: Connection reset by peer)
02:50:54 × supersven quits (sid501114@ilkley.irccloud.com) (Read error: Connection reset by peer)
02:50:55 × hook54321 quits (sid149355@user/hook54321) (Ping timeout: 260 seconds)
02:50:58 × rtpg quits (sid443069@ilkley.irccloud.com) (Read error: Connection reset by peer)
02:51:02 × jonrh quits (sid5185@ilkley.irccloud.com) (Read error: Connection reset by peer)
02:51:04 × ysh quits (sid6017@ilkley.irccloud.com) (Read error: Connection reset by peer)
02:51:06 × S11001001 quits (sid42510@ilkley.irccloud.com) (Read error: Connection reset by peer)
02:51:06 × sa1_ quits (sid7690@ilkley.irccloud.com) (Read error: Connection reset by peer)
02:51:06 × bw quits (sid2730@user/betawaffle) (Read error: Connection reset by peer)
02:51:06 × cln quits (sid336875@ilkley.irccloud.com) (Read error: Connection reset by peer)
02:56:15 beka joins (~beka@104.193.170.240)
02:56:53 × neurocyte0132889 quits (~neurocyte@user/neurocyte) (Ping timeout: 244 seconds)
02:58:15 obviyus joins (sid415299@user/obviyus)
02:59:53 mmhat joins (~mmh@55d4bfe6.access.ecotel.net)
03:04:39 edwardk joins (sid47016@haskell/developer/edwardk)
03:04:39 ysh joins (sid6017@id-6017.ilkley.irccloud.com)
03:04:42 mrianbloom joins (sid350277@id-350277.ilkley.irccloud.com)
03:04:45 × lemonsnicks quits (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Quit: ZNC 1.8.2 - https://znc.in)
03:05:02 pepeiborra joins (sid443799@id-443799.ilkley.irccloud.com)
03:05:02 S11001001 joins (sid42510@id-42510.ilkley.irccloud.com)
03:05:06 caasih joins (sid13241@id-13241.ilkley.irccloud.com)
03:05:09 angerman joins (sid209936@id-209936.ilkley.irccloud.com)
03:05:20 supersven joins (sid501114@id-501114.ilkley.irccloud.com)
03:05:37 <remexre> oh just realized I need alpha-equivalence anyway
03:05:41 SethTisue__ joins (sid14912@id-14912.ilkley.irccloud.com)
03:05:50 <remexre> so nothing deriving-shaped will prolly help
03:05:53 tapas joins (sid467876@id-467876.ilkley.irccloud.com)
03:06:13 gmc joins (sid58314@id-58314.ilkley.irccloud.com)
03:06:17 ProofTechnique joins (sid79547@id-79547.ilkley.irccloud.com)
03:06:19 jonrh joins (sid5185@id-5185.ilkley.irccloud.com)
03:06:24 sa1_ joins (sid7690@id-7690.ilkley.irccloud.com)
03:06:42 rune joins (sid21167@id-21167.ilkley.irccloud.com)
03:07:17 bw joins (sid2730@user/betawaffle)
03:07:25 rtpg joins (sid443069@id-443069.ilkley.irccloud.com)
03:07:36 cln joins (sid336875@id-336875.ilkley.irccloud.com)
03:08:45 hook54321 joins (sid149355@user/hook54321)
03:10:41 × mmhat quits (~mmh@55d4bfe6.access.ecotel.net) (Quit: WeeChat 3.3)
03:14:11 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
03:14:59 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit)
03:17:02 lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
03:17:27 × cln quits (sid336875@id-336875.ilkley.irccloud.com) (Ping timeout: 268 seconds)
03:17:27 × ysh quits (sid6017@id-6017.ilkley.irccloud.com) (Ping timeout: 268 seconds)
03:17:28 × ProofTechnique quits (sid79547@id-79547.ilkley.irccloud.com) (Ping timeout: 268 seconds)
03:17:28 × pepeiborra quits (sid443799@id-443799.ilkley.irccloud.com) (Ping timeout: 268 seconds)
03:17:28 × S11001001 quits (sid42510@id-42510.ilkley.irccloud.com) (Ping timeout: 268 seconds)
03:17:47 × caasih quits (sid13241@id-13241.ilkley.irccloud.com) (Ping timeout: 264 seconds)
03:18:04 × SethTisue__ quits (sid14912@id-14912.ilkley.irccloud.com) (Ping timeout: 268 seconds)
03:18:04 × edwardk quits (sid47016@haskell/developer/edwardk) (Ping timeout: 268 seconds)
03:18:05 × rtpg quits (sid443069@id-443069.ilkley.irccloud.com) (Ping timeout: 268 seconds)
03:18:05 × bw quits (sid2730@user/betawaffle) (Ping timeout: 268 seconds)
03:18:05 × supersven quits (sid501114@id-501114.ilkley.irccloud.com) (Ping timeout: 268 seconds)
03:18:05 × angerman quits (sid209936@id-209936.ilkley.irccloud.com) (Ping timeout: 268 seconds)
03:18:23 × sa1_ quits (sid7690@id-7690.ilkley.irccloud.com) (Ping timeout: 264 seconds)
03:18:41 × gmc quits (sid58314@id-58314.ilkley.irccloud.com) (Ping timeout: 268 seconds)
03:18:42 × jonrh quits (sid5185@id-5185.ilkley.irccloud.com) (Ping timeout: 268 seconds)
03:18:59 × rune quits (sid21167@id-21167.ilkley.irccloud.com) (Ping timeout: 264 seconds)
03:19:18 × tapas quits (sid467876@id-467876.ilkley.irccloud.com) (Ping timeout: 268 seconds)
03:19:19 × hook54321 quits (sid149355@user/hook54321) (Ping timeout: 268 seconds)
03:19:35 × mrianbloom quits (sid350277@id-350277.ilkley.irccloud.com) (Ping timeout: 264 seconds)
03:19:44 edwardk joins (sid47016@haskell/developer/edwardk)
03:19:47 SethTisue__ joins (sid14912@ilkley.irccloud.com)
03:19:48 rune joins (sid21167@ilkley.irccloud.com)
03:19:49 ysh joins (sid6017@ilkley.irccloud.com)
03:19:50 caasih joins (sid13241@ilkley.irccloud.com)
03:19:52 tapas joins (sid467876@ilkley.irccloud.com)
03:19:53 pepeiborra joins (sid443799@ilkley.irccloud.com)
03:20:57 jonrh joins (sid5185@ilkley.irccloud.com)
03:20:58 sa1_ joins (sid7690@ilkley.irccloud.com)
03:21:02 mrianbloom joins (sid350277@ilkley.irccloud.com)
03:21:02 rtpg joins (sid443069@ilkley.irccloud.com)
03:21:04 cln joins (sid336875@ilkley.irccloud.com)
03:21:06 angerman joins (sid209936@ilkley.irccloud.com)
03:22:37 ProofTechnique joins (sid79547@ilkley.irccloud.com)
03:22:38 gmc joins (sid58314@ilkley.irccloud.com)
03:22:43 S11001001 joins (sid42510@ilkley.irccloud.com)
03:22:43 supersven joins (sid501114@ilkley.irccloud.com)
03:22:45 falafel joins (~falafel@cpe-76-168-195-162.socal.res.rr.com)
03:22:49 bw joins (sid2730@user/betawaffle)
03:25:14 kupi joins (uid212005@hampstead.irccloud.com)
03:25:17 mbuf joins (~Shakthi@182.77.100.170)
03:26:21 × falafel quits (~falafel@cpe-76-168-195-162.socal.res.rr.com) (Read error: Connection reset by peer)
03:26:42 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
03:27:07 falafel joins (~falafel@cpe-76-168-195-162.socal.res.rr.com)
03:29:11 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 264 seconds)
03:34:53 hook54321 joins (sid149355@user/hook54321)
03:37:30 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
03:37:30 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
03:37:30 finn_elija is now known as FinnElija
03:59:47 yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net)
04:00:06 × Taneb quits (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0) (Quit: I seem to have stopped.)
04:00:48 yauhsien_ joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net)
04:00:48 × yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Read error: Connection reset by peer)
04:01:13 Taneb joins (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0)
04:01:59 × kupi quits (uid212005@hampstead.irccloud.com) (Ping timeout: 244 seconds)
04:01:59 × angerman quits (sid209936@ilkley.irccloud.com) (Ping timeout: 244 seconds)
04:01:59 × pepeiborra quits (sid443799@ilkley.irccloud.com) (Ping timeout: 244 seconds)
04:01:59 × ysh quits (sid6017@ilkley.irccloud.com) (Ping timeout: 244 seconds)
04:01:59 × rune quits (sid21167@ilkley.irccloud.com) (Ping timeout: 244 seconds)
04:01:59 × SethTisue__ quits (sid14912@ilkley.irccloud.com) (Ping timeout: 244 seconds)
04:01:59 × idnar quits (sid12240@debian/mithrandi) (Ping timeout: 244 seconds)
04:01:59 × rubin55 quits (sid175221@hampstead.irccloud.com) (Ping timeout: 244 seconds)
04:01:59 × lightandlight quits (sid135476@helmsley.irccloud.com) (Ping timeout: 244 seconds)
04:02:11 × enemeth79 quits (sid309041@lymington.irccloud.com) (Ping timeout: 245 seconds)
04:02:11 × conjunctive quits (sid433686@helmsley.irccloud.com) (Ping timeout: 245 seconds)
04:02:11 × PotatoGim quits (sid99505@lymington.irccloud.com) (Ping timeout: 245 seconds)
04:02:11 × cln quits (sid336875@ilkley.irccloud.com) (Ping timeout: 256 seconds)
04:02:11 × sa1_ quits (sid7690@ilkley.irccloud.com) (Ping timeout: 256 seconds)
04:02:11 × vito quits (sid1962@user/vito) (Ping timeout: 256 seconds)
04:02:11 × ephemient quits (uid407513@lymington.irccloud.com) (Ping timeout: 256 seconds)
04:02:11 × eruditass quits (uid248673@uxbridge.irccloud.com) (Ping timeout: 256 seconds)
04:02:11 × kaychaks__ quits (sid236345@helmsley.irccloud.com) (Ping timeout: 256 seconds)
04:02:14 × JSharp quits (sid4580@lymington.irccloud.com) (Ping timeout: 260 seconds)
04:02:14 × bjs quits (sid190364@user/bjs) (Ping timeout: 260 seconds)
04:02:14 × awpr quits (uid446117@lymington.irccloud.com) (Ping timeout: 260 seconds)
04:02:14 × glowcoil quits (sid3405@tinside.irccloud.com) (Ping timeout: 260 seconds)
04:02:14 × joel135 quits (sid136450@hampstead.irccloud.com) (Ping timeout: 260 seconds)
04:02:24 × grfn quits (sid449115@helmsley.irccloud.com) (Ping timeout: 260 seconds)
04:02:28 × caasih quits (sid13241@ilkley.irccloud.com) (Ping timeout: 268 seconds)
04:02:28 × whez quits (sid470288@lymington.irccloud.com) (Ping timeout: 268 seconds)
04:02:30 × S11001001 quits (sid42510@ilkley.irccloud.com) (Ping timeout: 244 seconds)
04:02:30 × supersven quits (sid501114@ilkley.irccloud.com) (Ping timeout: 244 seconds)
04:02:30 × b20n quits (sid115913@uxbridge.irccloud.com) (Ping timeout: 244 seconds)
04:02:30 × edmundnoble quits (sid229620@helmsley.irccloud.com) (Ping timeout: 244 seconds)
04:02:30 × hamishmack quits (sid389057@hampstead.irccloud.com) (Ping timeout: 244 seconds)
04:02:36 × degraafk quits (sid71464@lymington.irccloud.com) (Ping timeout: 245 seconds)
04:02:36 × saolsen quits (sid26430@lymington.irccloud.com) (Ping timeout: 245 seconds)
04:02:40 × philpax_ quits (sid516926@lymington.irccloud.com) (Ping timeout: 260 seconds)
04:02:40 × sclv quits (sid39734@haskell/developer/sclv) (Ping timeout: 260 seconds)
04:02:40 × SrPx quits (sid108780@uxbridge.irccloud.com) (Ping timeout: 260 seconds)
04:02:42 × sa quits (sid1055@tinside.irccloud.com) (Ping timeout: 260 seconds)
04:02:42 × ehamberg quits (sid18208@hampstead.irccloud.com) (Ping timeout: 260 seconds)
04:02:42 × econo quits (uid147250@user/econo) (Ping timeout: 260 seconds)
04:02:42 × dpratt_ quits (sid193493@helmsley.irccloud.com) (Ping timeout: 260 seconds)
04:02:42 × elvishjerricco quits (sid237756@helmsley.irccloud.com) (Ping timeout: 260 seconds)
04:02:45 × hendi quits (sid489601@lymington.irccloud.com) (Ping timeout: 256 seconds)
04:02:45 × SanchayanMaity quits (sid478177@hampstead.irccloud.com) (Ping timeout: 256 seconds)
04:02:45 × christiaanb quits (sid84827@lymington.irccloud.com) (Ping timeout: 256 seconds)
04:02:45 × alanz quits (sid110616@uxbridge.irccloud.com) (Ping timeout: 256 seconds)
04:02:45 × systemfault quits (sid267009@uxbridge.irccloud.com) (Ping timeout: 256 seconds)
04:02:45 × alinab quits (sid468903@helmsley.irccloud.com) (Ping timeout: 256 seconds)
04:02:47 × typetetris quits (sid275937@tinside.irccloud.com) (Ping timeout: 268 seconds)
04:02:47 pepeiborra joins (sid443799@ilkley.irccloud.com)
04:02:49 rune joins (sid21167@id-21167.ilkley.irccloud.com)
04:02:51 vito joins (sid1962@user/vito)
04:02:52 angerman joins (sid209936@ilkley.irccloud.com)
04:02:54 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
04:02:56 SethTisue__ joins (sid14912@ilkley.irccloud.com)
04:02:56 enemeth79 joins (sid309041@id-309041.lymington.irccloud.com)
04:03:01 × mrianbloom quits (sid350277@ilkley.irccloud.com) (Ping timeout: 244 seconds)
04:03:01 × tapas quits (sid467876@ilkley.irccloud.com) (Ping timeout: 244 seconds)
04:03:01 × pjlsergeant quits (sid143467@hampstead.irccloud.com) (Ping timeout: 244 seconds)
04:03:01 × NemesisD quits (sid24071@lymington.irccloud.com) (Ping timeout: 244 seconds)
04:03:01 × hongminhee quits (sid295@tinside.irccloud.com) (Ping timeout: 244 seconds)
04:03:01 × T_S_ quits (sid501726@uxbridge.irccloud.com) (Ping timeout: 245 seconds)
04:03:01 × davetapley quits (sid666@uxbridge.irccloud.com) (Ping timeout: 245 seconds)
04:03:01 × jmct_ quits (sid160793@tinside.irccloud.com) (Ping timeout: 245 seconds)
04:03:01 × acertain quits (sid470584@hampstead.irccloud.com) (Ping timeout: 245 seconds)
04:03:01 × kaizen quits (sid501599@helmsley.irccloud.com) (Ping timeout: 245 seconds)
04:03:01 × mustafa quits (sid502723@rockylinux/releng/mustafa) (Ping timeout: 245 seconds)
04:03:05 × ProofTechnique quits (sid79547@ilkley.irccloud.com) (Ping timeout: 268 seconds)
04:03:05 × bw quits (sid2730@user/betawaffle) (Ping timeout: 268 seconds)
04:03:05 × edwardk quits (sid47016@haskell/developer/edwardk) (Ping timeout: 268 seconds)
04:03:10 × NiKaN quits (sid385034@helmsley.irccloud.com) (Ping timeout: 260 seconds)
04:03:10 × truckasaurus quits (sid457088@helmsley.irccloud.com) (Ping timeout: 260 seconds)
04:03:10 × etrepum quits (sid763@uxbridge.irccloud.com) (Ping timeout: 260 seconds)
04:03:19 × Pent quits (sid313808@lymington.irccloud.com) (Ping timeout: 256 seconds)
04:03:19 × agander_m quits (sid407952@tinside.irccloud.com) (Ping timeout: 256 seconds)
04:03:19 × Firedancer quits (sid336191@hampstead.irccloud.com) (Ping timeout: 256 seconds)
04:03:19 × servytor quits (uid525486@hampstead.irccloud.com) (Ping timeout: 256 seconds)
04:03:19 × taktoa[c] quits (sid282096@tinside.irccloud.com) (Ping timeout: 256 seconds)
04:03:19 × jackdk quits (sid373013@cssa/jackdk) (Ping timeout: 256 seconds)
04:03:19 × meinside quits (uid24933@helmsley.irccloud.com) (Ping timeout: 256 seconds)
04:03:19 cln joins (sid336875@id-336875.ilkley.irccloud.com)
04:03:23 × hook54321 quits (sid149355@user/hook54321) (Ping timeout: 264 seconds)
04:03:26 conjunctive joins (sid433686@id-433686.helmsley.irccloud.com)
04:03:26 × iphy quits (sid67735@lymington.irccloud.com) (Ping timeout: 245 seconds)
04:03:32 × parseval quits (sid239098@helmsley.irccloud.com) (Ping timeout: 244 seconds)
04:03:32 × aarchi quits (sid486183@uxbridge.irccloud.com) (Ping timeout: 244 seconds)
04:03:35 ysh joins (sid6017@id-6017.ilkley.irccloud.com)
04:03:37 idnar joins (sid12240@debian/mithrandi)
04:03:38 × hubvu quits (sid495858@user/hubvu) (Ping timeout: 260 seconds)
04:03:38 × astra` quits (sid289983@user/amish) (Ping timeout: 260 seconds)
04:03:38 lightandlight joins (sid135476@2a03:5180:f:1::2:1134)
04:03:46 × beka quits (~beka@104.193.170.240) (Read error: Connection reset by peer)
04:03:51 kupi joins (uid212005@id-212005.hampstead.irccloud.com)
04:03:51 rubin55 joins (sid175221@2a03:5180:f:4::2:ac75)
04:03:53 × gmc quits (sid58314@ilkley.irccloud.com) (Ping timeout: 256 seconds)
04:03:53 × dsal quits (sid13060@lymington.irccloud.com) (Ping timeout: 256 seconds)
04:03:53 × cbarrett quits (sid192934@helmsley.irccloud.com) (Ping timeout: 256 seconds)
04:03:53 × scav quits (sid309693@helmsley.irccloud.com) (Ping timeout: 256 seconds)
04:03:53 × tnks quits (sid412124@helmsley.irccloud.com) (Ping timeout: 256 seconds)
04:03:53 × integral quits (sid296274@user/integral) (Ping timeout: 256 seconds)
04:03:54 NemesisD joins (sid24071@2a03:5180:f:2::5e07)
04:03:57 typetetris joins (sid275937@2a03:5180:f::4:35e1)
04:03:58 hamishmack joins (sid389057@2a03:5180:f:4::5:efc1)
04:03:59 sclv joins (sid39734@haskell/developer/sclv)
04:03:59 edmundnoble joins (sid229620@2a03:5180:f:1::3:80f4)
04:04:01 SrPx joins (sid108780@id-108780.uxbridge.irccloud.com)
04:04:02 b20n joins (sid115913@2a03:5180:f:5::1:c4c9)
04:04:02 pjlsergeant joins (sid143467@id-143467.hampstead.irccloud.com)
04:04:02 glowcoil joins (sid3405@id-3405.tinside.irccloud.com)
04:04:03 eruditass joins (uid248673@id-248673.uxbridge.irccloud.com)
04:04:04 tapas joins (sid467876@2a03:5180:f:3::7:23a4)
04:04:05 elvishjerricco joins (sid237756@2a03:5180:f:1::3:a0bc)
04:04:05 econo joins (uid147250@user/econo)
04:04:06 supersven joins (sid501114@id-501114.ilkley.irccloud.com)
04:04:06 × stevenxl quits (sid133530@uxbridge.irccloud.com) (Ping timeout: 260 seconds)
04:04:06 × nrr_ quits (sid20938@lymington.irccloud.com) (Ping timeout: 260 seconds)
04:04:06 × mcfilib quits (sid302703@user/mcfilib) (Ping timeout: 260 seconds)
04:04:07 bjs joins (sid190364@user/bjs)
04:04:07 mrianbloom joins (sid350277@2a03:5180:f:3::5:5845)
04:04:08 parseval joins (sid239098@2a03:5180:f:1::3:a5fa)
04:04:11 aarchi joins (sid486183@id-486183.uxbridge.irccloud.com)
04:04:11 awpr joins (uid446117@id-446117.lymington.irccloud.com)
04:04:12 astra` joins (sid289983@user/amish)
04:04:13 S11001001 joins (sid42510@2a03:5180:f:3::a60e)
04:04:13 hongminhee joins (sid295@id-295.tinside.irccloud.com)
04:04:15 JSharp joins (sid4580@id-4580.lymington.irccloud.com)
04:04:16 ehamberg joins (sid18208@id-18208.hampstead.irccloud.com)
04:04:19 kaizen joins (sid501599@id-501599.helmsley.irccloud.com)
04:04:21 truckasaurus joins (sid457088@id-457088.helmsley.irccloud.com)
04:04:21 stevenxl joins (sid133530@id-133530.uxbridge.irccloud.com)
04:04:23 joel135 joins (sid136450@2a03:5180:f:4::2:1502)
04:04:25 etrepum joins (sid763@id-763.uxbridge.irccloud.com)
04:04:25 SanchayanMaity joins (sid478177@id-478177.hampstead.irccloud.com)
04:04:26 degraafk joins (sid71464@id-71464.lymington.irccloud.com)
04:04:27 caasih joins (sid13241@id-13241.ilkley.irccloud.com)
04:04:27 acertain joins (sid470584@id-470584.hampstead.irccloud.com)
04:04:28 servytor joins (uid525486@id-525486.hampstead.irccloud.com)
04:04:28 PotatoGim joins (sid99505@id-99505.lymington.irccloud.com)
04:04:29 Firedancer joins (sid336191@id-336191.hampstead.irccloud.com)
04:04:32 cbarrett joins (sid192934@id-192934.helmsley.irccloud.com)
04:04:32 systemfault joins (sid267009@id-267009.uxbridge.irccloud.com)
04:04:33 nrr_ joins (sid20938@id-20938.lymington.irccloud.com)
04:04:35 alinab joins (sid468903@id-468903.helmsley.irccloud.com)
04:04:35 hendi joins (sid489601@id-489601.lymington.irccloud.com)
04:04:36 meinside joins (uid24933@id-24933.helmsley.irccloud.com)
04:04:36 ephemient joins (uid407513@id-407513.lymington.irccloud.com)
04:04:36 gmc joins (sid58314@id-58314.ilkley.irccloud.com)
04:04:36 jmct_ joins (sid160793@2a03:5180:f::2:7419)
04:04:37 whez joins (sid470288@id-470288.lymington.irccloud.com)
04:04:39 bw joins (sid2730@user/betawaffle)
04:04:39 mustafa joins (sid502723@rockylinux/releng/mustafa)
04:04:39 Pent joins (sid313808@id-313808.lymington.irccloud.com)
04:04:40 sa1_ joins (sid7690@id-7690.ilkley.irccloud.com)
04:04:40 kaychaks__ joins (sid236345@id-236345.helmsley.irccloud.com)
04:04:41 jackdk joins (sid373013@cssa/jackdk)
04:04:41 ProofTechnique joins (sid79547@id-79547.ilkley.irccloud.com)
04:04:41 agander_m joins (sid407952@id-407952.tinside.irccloud.com)
04:04:42 dsal joins (sid13060@id-13060.lymington.irccloud.com)
04:04:43 integral joins (sid296274@user/integral)
04:04:43 iphy joins (sid67735@id-67735.lymington.irccloud.com)
04:04:43 davetapley joins (sid666@id-666.uxbridge.irccloud.com)
04:04:45 saolsen joins (sid26430@id-26430.lymington.irccloud.com)
04:04:45 tnks joins (sid412124@id-412124.helmsley.irccloud.com)
04:04:45 scav joins (sid309693@id-309693.helmsley.irccloud.com)
04:04:46 taktoa[c] joins (sid282096@id-282096.tinside.irccloud.com)
04:04:46 dpratt_ joins (sid193493@id-193493.helmsley.irccloud.com)
04:04:46 mcfilib joins (sid302703@user/mcfilib)
04:04:46 edwardk joins (sid47016@haskell/developer/edwardk)
04:04:47 alanz joins (sid110616@id-110616.uxbridge.irccloud.com)
04:04:48 christiaanb joins (sid84827@id-84827.lymington.irccloud.com)
04:04:49 T_S_ joins (sid501726@id-501726.uxbridge.irccloud.com)
04:05:02 sa joins (sid1055@id-1055.tinside.irccloud.com)
04:05:16 NiKaN joins (sid385034@id-385034.helmsley.irccloud.com)
04:05:48 philpax_ joins (sid516926@id-516926.lymington.irccloud.com)
04:05:49 hook54321 joins (sid149355@user/hook54321)
04:06:04 hubvu joins (sid495858@user/hubvu)
04:11:13 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
04:11:28 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
04:14:02 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
04:15:09 × emf_ quits (~emf@c-73-97-137-43.hsd1.wa.comcast.net) (Read error: Connection reset by peer)
04:17:23 grfn joins (sid449115@id-449115.helmsley.irccloud.com)
04:19:45 × yauhsien_ quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
04:43:01 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
04:45:27 × cjb quits (~cjbayliss@user/cjb) ()
04:57:18 × dsrt^ quits (~dsrt@h50.174.139.63.static.ip.windstream.net) (Ping timeout: 260 seconds)
04:57:32 Evenless joins (~Evenless@107.181.155.110)
04:58:37 × EvanR quits (~evan@user/evanr) (Quit: WeeChat 3.3)
05:00:39 × ddb quits (~ddb@ipv6two.tilde.club) (Quit: WeeChat 3.3)
05:02:39 <Inst> when you give up @[exa] on trying to get nativefiledialog to work and decide to learn C just to reimplement the thing for a FFI
05:13:09 keep_learning joins (~keep_lear@103.12.191.19)
05:15:27 deadmarshal joins (~deadmarsh@95.38.230.72)
05:17:44 × keep_learning quits (~keep_lear@103.12.191.19) (Quit: Leaving)
05:19:02 keep_learning joins (~keep_lear@103.12.191.19)
05:19:06 × slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving)
05:21:54 vicfred joins (~vicfred@user/vicfred)
05:24:14 <keep_learning> Hi everyone, I am trying to install GHC on Apple M1, but getting this error: ➜ ~ stack ghci
05:24:14 <keep_learning> I don't know how to install GHC for (OSX,AArch64), please install manually
05:24:53 <keep_learning> Any idea about installing it on Apple M1?
05:30:03 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds)
05:35:58 michael1 joins (~michael@2600:1700:7c02:3180::14)
05:36:14 × michael1 quits (~michael@2600:1700:7c02:3180::14) (Client Quit)
05:37:11 × xff0x quits (~xff0x@2001:1a81:532b:d400:5d59:4d8a:f670:7fef) (Ping timeout: 245 seconds)
05:38:18 xff0x joins (~xff0x@2001:1a81:532b:d400:367d:ebe:3403:82f3)
05:41:07 x6C697370 joins (~michael@2600:1700:7c02:3180::14)
05:43:56 <dsal> I'm running it out of nix.
05:47:02 yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net)
05:50:04 × kupi quits (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
05:53:41 takuan joins (~takuan@178-116-218-225.access.telenet.be)
05:55:15 × APic quits (apic@apic.name) (Ping timeout: 260 seconds)
05:55:33 APic joins (~apic@apic.name)
05:59:27 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
05:59:27 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
05:59:27 wroathe joins (~wroathe@user/wroathe)
06:04:59 × NinjaTrappeur quits (~ninja@user/ninjatrappeur) (*.net *.split)
06:04:59 × xerox quits (~edi@user/edi) (*.net *.split)
06:04:59 × jchia[m] quits (~jchiamatr@2001:470:69fc:105::c50b) (*.net *.split)
06:04:59 × zwro[m] quits (~zwromatri@2001:470:69fc:105::1d4) (*.net *.split)
06:04:59 × mstruebing quits (~maex@2001:41d0:8:93c7::1) (*.net *.split)
06:04:59 × bwe quits (~bwe@2a01:4f8:1c1c:4878::2) (*.net *.split)
06:04:59 × codedmart quits (codedmart@2600:3c01::f03c:92ff:fefe:8511) (*.net *.split)
06:04:59 × dkeohane2 quits (~dkeohane@ec2-18-189-29-140.us-east-2.compute.amazonaws.com) (*.net *.split)
06:04:59 × Aleksejs quits (~Aleksejs@haskell.lv) (*.net *.split)
06:04:59 × jakalx quits (~jakalx@base.jakalx.net) (*.net *.split)
06:04:59 × dispater quits (~dispater@user/brprice) (*.net *.split)
06:05:00 × Putonlalla quits (~sapekiis@it-cyan.it.jyu.fi) (*.net *.split)
06:05:00 × mikko quits (~mikko@2a02:7b40:d418:6a61::1) (*.net *.split)
06:05:00 × reda_ quits (~reda@user/reda) (*.net *.split)
06:05:00 × bah quits (~bah@l1.tel) (*.net *.split)
06:05:07 bwe joins (~bwe@2a01:4f8:1c1c:4878::2)
06:05:07 xerox joins (~edi@user/edi)
06:05:12 Aleksejs joins (~Aleksejs@haskell.lv)
06:05:13 bah joins (~bah@l1.tel)
06:05:14 reda joins (~reda@user/reda)
06:05:15 codedmart joins (codedmart@2600:3c01::f03c:92ff:fefe:8511)
06:05:16 mstruebing joins (~maex@2001:41d0:8:93c7::1)
06:05:20 Putonlalla joins (~sapekiis@it-cyan.it.jyu.fi)
06:05:22 mikko joins (~mikko@2a02:7b40:d418:6a61::1)
06:05:26 dispater joins (~dispater@user/brprice)
06:05:32 NinjaTrappeur joins (~ninja@user/ninjatrappeur)
06:05:44 dkeohane2 joins (~dkeohane@ec2-18-189-29-140.us-east-2.compute.amazonaws.com)
06:05:51 zwro[m] joins (~zwromatri@2001:470:69fc:105::1d4)
06:05:58 × yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Remote host closed the connection)
06:06:13 jchia[m] joins (~jchiamatr@2001:470:69fc:105::c50b)
06:08:54 yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net)
06:11:47 hololeap_ joins (~hololeap@user/hololeap)
06:12:53 × ppseafield[m] quits (~elementpp@2001:470:69fc:105::1:250a) (*.net *.split)
06:12:53 × puffnfresh[m] quits (~puffnfres@2001:470:69fc:105::1:22da) (*.net *.split)
06:12:53 × Orbstheorem quits (~orbstheor@2001:470:69fc:105::a56) (*.net *.split)
06:12:53 × stoicswe[m] quits (~deadlette@2001:470:69fc:105::d277) (*.net *.split)
06:12:53 × Tavi[m] quits (~factoidde@2001:470:69fc:105::1:819) (*.net *.split)
06:12:53 × Artem[m] quits (~artemtype@2001:470:69fc:105::75b) (*.net *.split)
06:12:53 × ManofLetters[m] quits (~manoflett@2001:470:69fc:105::3be) (*.net *.split)
06:12:53 × Deide quits (~deide@user/deide) (*.net *.split)
06:12:53 × zfnmxt quits (~zfnmxtzfn@user/zfnmxt) (*.net *.split)
06:12:53 × Tisoxin quits (~ikosit@user/ikosit) (*.net *.split)
06:12:53 × drlkf quits (~drlkf@2001:41d0:a:62bb::1) (*.net *.split)
06:12:53 × shane quits (~shane@ana.rch.ist) (*.net *.split)
06:12:53 × duckonomy quits (~duckonomy@177.ip-144-217-84.net) (*.net *.split)
06:12:53 × djanatyn quits (~djanatyn@vps-7f49a6b0.vps.ovh.ca) (*.net *.split)
06:12:53 × Inoperable quits (~PLAYER_1@fancydata.science) (*.net *.split)
06:12:53 × alp quits (~alp@user/alp) (*.net *.split)
06:12:53 × guibou quits (~guibou@mail.fmap.fr) (*.net *.split)
06:12:53 × marienz quits (~marienz@libera/staff/marienz) (*.net *.split)
06:12:53 × ajb_ quits (~ajb@cupid.whatbox.ca) (*.net *.split)
06:12:53 × shachaf quits (~shachaf@user/shachaf) (*.net *.split)
06:12:53 × spoonm quits (spoonm@inaba.spoonm.org) (*.net *.split)
06:12:53 × Clint quits (~Clint@user/clint) (*.net *.split)
06:12:53 × dragestil quits (~znc@user/dragestil) (*.net *.split)
06:12:53 × chronon quits (~chronon@user/chronon) (*.net *.split)
06:12:53 × edr quits (~edr@user/edr) (*.net *.split)
06:12:53 × kosmikus quits (~kosmikus@nullzig.kosmikus.org) (*.net *.split)
06:12:53 × np quits (~nerdypepp@user/nerdypepper) (*.net *.split)
06:12:53 × Philonous_ quits (~Philonous@user/philonous) (*.net *.split)
06:12:54 × skn quits (~znc@sec.nimmagadda.net) (*.net *.split)
06:12:54 × loonycyborg quits (~loonycybo@wesnoth/developer/loonycyborg) (*.net *.split)
06:12:54 × mcfrdy quits (~mcfrdy@user/mcfrdy) (*.net *.split)
06:12:54 × dy quits (~dy@user/dy) (*.net *.split)
06:12:54 × PigDude quits (~PigDude@159.203.16.199) (*.net *.split)
06:12:54 × statusfailed quits (~statusfai@statusfailed.com) (*.net *.split)
06:12:54 × ldlework quits (~hexeme@user/hexeme) (*.net *.split)
06:13:00 shachaf joins (~shachaf@user/shachaf)
06:13:02 ajb joins (~ajb@cupid.whatbox.ca)
06:13:03 PigDude joins (~PigDude@159.203.16.199)
06:13:03 Clint joins (~Clint@user/clint)
06:13:04 shane joins (~shane@ana.rch.ist)
06:13:05 kosmikus joins (~kosmikus@nullzig.kosmikus.org)
06:13:05 statusfailed joins (~statusfai@statusfailed.com)
06:13:05 marienz joins (~marienz@libera/staff/marienz)
06:13:06 edr joins (~edr@enlo.co)
06:13:06 spoonm joins (spoonm@inaba.spoonm.org)
06:13:07 chronon joins (~chronon@user/chronon)
06:13:07 loonycyborg joins (~loonycybo@chantal.wesnoth.org)
06:13:07 × loonycyborg quits (~loonycybo@chantal.wesnoth.org) (Changing host)
06:13:07 loonycyborg joins (~loonycybo@wesnoth/developer/loonycyborg)
06:13:10 drlkf joins (~drlkf@2001:41d0:a:62bb::1)
06:13:14 djanatyn joins (~djanatyn@vps-7f49a6b0.vps.ovh.ca)
06:13:17 × edr quits (~edr@enlo.co) (Changing host)
06:13:17 edr joins (~edr@user/edr)
06:13:39 dragestil joins (~znc@user/dragestil)
06:13:39 skn joins (~znc@sec.nimmagadda.net)
06:13:44 duckonomy joins (~duckonomy@177.ip-144-217-84.net)
06:13:46 Philonous joins (~Philonous@user/philonous)
06:13:47 dy joins (~dy@user/dy)
06:13:49 hexeme joins (~hexeme@user/hexeme)
06:13:50 mcfrdy joins (~mcfrdy@user/mcfrdy)
06:13:51 nerdypepper joins (~nerdypepp@user/nerdypepper)
06:14:08 guibou joins (~guibou@mail.fmap.fr)
06:14:37 aleator joins (~aleator@37-136-225-173.rev.dnainternet.fi)
06:14:38 alp joins (~alp@mail.fmap.fr)
06:14:54 × hololeap quits (~hololeap@user/hololeap) (Ping timeout: 276 seconds)
06:15:03 lavaman joins (~lavaman@98.38.249.169)
06:15:30 zfnmxt joins (~zfnmxtzfn@2001:470:69fc:105::2b32)
06:15:53 ManofLetters[m] joins (~manoflett@2001:470:69fc:105::3be)
06:16:33 Inoperable joins (~PLAYER_1@fancydata.science)
06:16:53 Deide joins (~deide@user/deide)
06:17:21 Tisoxin joins (~ikosit@user/ikosit)
06:18:01 × deadmarshal quits (~deadmarsh@95.38.230.72) (Ping timeout: 245 seconds)
06:18:50 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
06:19:25 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 244 seconds)
06:19:58 Artem[m] joins (~artemtype@2001:470:69fc:105::75b)
06:20:01 ppseafield[m] joins (~elementpp@2001:470:69fc:105::1:250a)
06:20:40 <jneira[m]> <keep_learning> "Any idea about installing it..." <- you could use ghcup to install it
06:21:01 × APic quits (~apic@apic.name) (Ping timeout: 256 seconds)
06:21:01 vysn joins (~vysn@user/vysn)
06:21:13 APic joins (apic@apic.name)
06:21:20 puffnfresh[m] joins (~puffnfres@2001:470:69fc:105::1:22da)
06:21:46 × xff0x quits (~xff0x@2001:1a81:532b:d400:367d:ebe:3403:82f3) (Ping timeout: 245 seconds)
06:22:14 <jneira[m]> and then change stack config to tell it use that ghc
06:22:44 xff0x joins (~xff0x@2001:1a81:532b:d400:67c6:a1f5:dcda:511e)
06:22:55 <jneira[m]> I think you could use brew as well
06:25:08 Tavi[m] joins (~factoidde@2001:470:69fc:105::1:819)
06:25:13 deadmarshal joins (~deadmarsh@95.38.230.72)
06:26:08 × falafel quits (~falafel@cpe-76-168-195-162.socal.res.rr.com) (Ping timeout: 244 seconds)
06:26:35 stoicswe[m] joins (~deadlette@2001:470:69fc:105::d277)
06:26:59 Orbstheorem joins (~orbstheor@2001:470:69fc:105::a56)
06:29:48 falafel joins (~falafel@cpe-76-168-195-162.socal.res.rr.com)
06:33:29 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
06:33:37 <keep_learning> jneira[m], Thanks for the brew suggestion.
06:34:24 × APic quits (apic@apic.name) (Ping timeout: 244 seconds)
06:36:04 <keep_learning> My next question is assuming that I install GHC using 'brew install ghc', how can I point the stack to get it when I am running 'stack ghci'?
06:37:36 × shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 245 seconds)
06:40:17 <dsal> I don't think "brew install" is super high up in the list of recommended methods, but there's a flag for using your system ghc.
06:40:17 <jneira[m]> the usual way is tell stack to use the "system" ghc (the ghc on PATH) with `system-ghc: true` in the project `stack.yaml` or in the global config `$STACK_ROOT/config.yml` (with `install-ghc: false` as stack is not able to download a suited one for now)
06:40:24 <jneira[m]> https://docs.haskellstack.org/en/stable/yaml_configuration/#system-ghc
06:40:33 <jneira[m]> https://docs.haskellstack.org/en/stable/yaml_configuration/#install-ghc
06:40:51 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
06:40:57 <dsal> Assuming you have a project already, the project should define the ghc that's being used. It's a bit weird to use stack and not let it pick a compiler.
06:41:12 <dsal> But it integrates reasonably well with nix, so I just let nix do all that.
06:42:31 andreabedini joins (~andreabed@2404:9400:4:0:216:3eff:fee2:321f)
06:44:15 × andreabedini quits (~andreabed@2404:9400:4:0:216:3eff:fee2:321f) (Client Quit)
06:46:23 xkuru joins (~xkuru@user/xkuru)
06:49:18 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
06:49:44 jpds joins (~jpds@gateway/tor-sasl/jpds)
06:50:20 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
06:50:20 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
06:50:20 wroathe joins (~wroathe@user/wroathe)
06:51:15 × whatsupdoc quits (uid509081@hampstead.irccloud.com) (Quit: Connection closed for inactivity)
06:51:56 × xkuru quits (~xkuru@user/xkuru) (Read error: Connection reset by peer)
06:54:30 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
06:54:33 × falafel quits (~falafel@cpe-76-168-195-162.socal.res.rr.com) (Ping timeout: 244 seconds)
06:54:33 × deadmarshal quits (~deadmarsh@95.38.230.72) (Ping timeout: 244 seconds)
06:55:04 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 244 seconds)
06:55:04 deadmarshal joins (~deadmarsh@95.38.230.72)
06:55:16 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
06:56:02 falafel joins (~falafel@cpe-76-168-195-162.socal.res.rr.com)
06:59:45 <kronicmage> hey folks, i'm trying to implement modular exponentiation via repeated squaring, using recursion-schemes
07:00:03 <kronicmage> the best i can come up with so far is a hylomorphism to/from ListF: https://paste.tomsmeding.com/iGsteAqV
07:00:25 <kronicmage> but it feels a lot bigger than the naive recursion implementation
07:00:39 × yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Remote host closed the connection)
07:00:41 <kronicmage> is there any recursion-scheme or base functor i can use that can implement the evenness check more directly than what I have here?
07:02:32 yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net)
07:06:16 × yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Remote host closed the connection)
07:07:28 × Evenless quits (~Evenless@107.181.155.110) (Remote host closed the connection)
07:09:29 neurocyte0132889 joins (~neurocyte@212.232.86.238)
07:09:29 × neurocyte0132889 quits (~neurocyte@212.232.86.238) (Changing host)
07:09:29 neurocyte0132889 joins (~neurocyte@user/neurocyte)
07:09:39 yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net)
07:13:45 × Cajun quits (~Cajun@user/cajun) (Ping timeout: 256 seconds)
07:14:11 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
07:14:42 × yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Ping timeout: 244 seconds)
07:26:32 × deadmarshal quits (~deadmarsh@95.38.230.72) (Ping timeout: 240 seconds)
07:27:22 <kronicmage> one small thing I can do is pass in just `exp` instead of `(val, exp)`, and alter `toBinaryRep` accordingly
07:28:08 <kronicmage> but that doesn't fundamentally get me any closer to what I'm looking for
07:34:42 rkrishnan joins (~user@122.167.19.65)
07:38:45 yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net)
07:41:53 × falafel quits (~falafel@cpe-76-168-195-162.socal.res.rr.com) (Ping timeout: 250 seconds)
07:44:38 falafel joins (~falafel@cpe-76-168-195-162.socal.res.rr.com)
07:46:21 × xff0x quits (~xff0x@2001:1a81:532b:d400:67c6:a1f5:dcda:511e) (Ping timeout: 245 seconds)
07:46:53 lortabac joins (~lortabac@2a01:e0a:541:b8f0:c461:9db1:2779:896d)
07:48:31 xff0x joins (~xff0x@2001:1a81:5343:8e00:7766:f7a:daa3:b76a)
07:52:17 CiaoSen joins (~Jura@p200300c95730dd002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
07:56:11 × aleator quits (~aleator@37-136-225-173.rev.dnainternet.fi) (Quit: leaving)
07:56:27 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
07:56:58 shidima joins (~shidima@46.44.183.25)
07:57:29 × sus quits (zero@user/zeromomentum) (Quit: the lounge - https://webirc.envs.net)
07:58:00 sus joins (zero@user/zeromomentum)
07:58:01 max22- joins (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr)
07:59:08 × finsternis quits (~X@23.226.237.192) (Remote host closed the connection)
08:00:39 cfricke joins (~cfricke@user/cfricke)
08:09:29 × o quits (~niko@libera/staff/niko) (Quit: i will be back)
08:09:43 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
08:09:57 o joins (~niko@libera/staff/niko)
08:10:29 × neurocyte0132889 quits (~neurocyte@user/neurocyte) (Ping timeout: 250 seconds)
08:14:05 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 268 seconds)
08:14:34 fendor joins (~fendor@77.119.198.57.wireless.dyn.drei.com)
08:15:06 × edwtjo quits (~edwtjo@user/edwtjo) (Ping timeout: 245 seconds)
08:16:23 betelgeuse joins (~betelgeus@94-225-47-8.access.telenet.be)
08:16:43 dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be)
08:17:22 × yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Remote host closed the connection)
08:18:35 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
08:18:51 yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net)
08:19:25 × yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Remote host closed the connection)
08:20:33 yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net)
08:20:35 × ssssssyd quits (~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net) (Ping timeout: 256 seconds)
08:23:11 michalz joins (~michalz@185.246.204.61)
08:25:13 × yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Ping timeout: 250 seconds)
08:28:12 dschrempf joins (~dominik@62.240.134.151)
08:30:39 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
08:39:02 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
08:40:59 × falafel quits (~falafel@cpe-76-168-195-162.socal.res.rr.com) (Ping timeout: 244 seconds)
08:41:34 APic joins (apic@apic.name)
08:42:59 × max22- quits (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Remote host closed the connection)
08:48:22 gehmehgeh joins (~user@user/gehmehgeh)
08:50:34 × fendor quits (~fendor@77.119.198.57.wireless.dyn.drei.com) (Remote host closed the connection)
08:50:48 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
08:50:48 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
08:50:48 wroathe joins (~wroathe@user/wroathe)
08:51:36 chele joins (~chele@user/chele)
08:54:19 nineonine joins (~nineonine@2604:3d08:7780:cd00:94f7:1c4f:2fa7:9763)
08:55:32 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
08:56:56 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
08:59:56 acidjnk_new joins (~acidjnk@p200300d0c7404a3915a2950adbd6cce8.dip0.t-ipconnect.de)
09:00:00 × shriekingnoise quits (~shrieking@186.137.144.80) (Quit: Quit)
09:01:11 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 250 seconds)
09:05:31 deadmarshal joins (~deadmarsh@95.38.230.72)
09:13:36 yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net)
09:16:49 mc47 joins (~mc47@xmonad/TheMC47)
09:16:53 falafel joins (~falafel@cpe-76-168-195-162.socal.res.rr.com)
09:17:43 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
09:17:43 allbery_b joins (~geekosaur@xmonad/geekosaur)
09:17:46 allbery_b is now known as geekosaur
09:18:05 × yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Ping timeout: 250 seconds)
09:21:17 × falafel quits (~falafel@cpe-76-168-195-162.socal.res.rr.com) (Ping timeout: 244 seconds)
09:27:11 × x6C697370 quits (~michael@2600:1700:7c02:3180::14) (Ping timeout: 245 seconds)
09:27:37 max22- joins (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr)
09:28:08 edwtjo joins (~edwtjo@h-109-228-137-133.a213.priv.bahnhof.se)
09:28:08 × edwtjo quits (~edwtjo@h-109-228-137-133.a213.priv.bahnhof.se) (Changing host)
09:28:08 edwtjo joins (~edwtjo@user/edwtjo)
09:31:07 × max22- quits (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Remote host closed the connection)
09:32:37 max22- joins (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr)
09:34:07 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds)
09:38:03 × emanuel_ quits (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Quit: Leaving)
09:40:40 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Read error: Connection reset by peer)
09:44:39 × max22- quits (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Remote host closed the connection)
09:48:17 max22- joins (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr)
09:56:03 wonko joins (~wjc@user/wonko)
09:57:27 × deadmarshal quits (~deadmarsh@95.38.230.72) (Ping timeout: 244 seconds)
09:58:02 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
09:58:14 × vicfred quits (~vicfred@user/vicfred) (Quit: Leaving)
10:00:51 Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
10:00:53 × nineonine quits (~nineonine@2604:3d08:7780:cd00:94f7:1c4f:2fa7:9763) (Remote host closed the connection)
10:01:57 × keep_learning quits (~keep_lear@103.12.191.19) (Quit: Leaving)
10:02:32 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
10:06:00 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:06:26 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
10:10:00 × ByronJohnson quits (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 268 seconds)
10:10:32 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
10:15:30 ByronJohnson joins (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net)
10:16:38 lavaman joins (~lavaman@98.38.249.169)
10:18:23 × hololeap_ quits (~hololeap@user/hololeap) (Remote host closed the connection)
10:19:51 hololeap_ joins (~hololeap@user/hololeap)
10:20:55 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 250 seconds)
10:21:21 × dschrempf quits (~dominik@62.240.134.151) (Ping timeout: 250 seconds)
10:22:36 mei3 joins (~mei@user/mei)
10:22:44 notzmv joins (~zmv@user/notzmv)
10:25:17 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
10:37:35 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
10:38:37 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:39:25 dschrempf joins (~dominik@62.240.134.151)
10:42:18 Pickchea joins (~private@user/pickchea)
10:43:27 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds)
10:44:38 × vysn quits (~vysn@user/vysn) (Remote host closed the connection)
10:45:44 retro_ joins (~retro@2e41e9c8.skybroadband.com)
10:48:39 × dschrempf quits (~dominik@62.240.134.151) (Ping timeout: 250 seconds)
10:49:28 × retroid_ quits (~retro@2e41e9c8.skybroadband.com) (Ping timeout: 268 seconds)
10:50:06 × infinity0 quits (~infinity0@occupy.ecodis.net) (Ping timeout: 260 seconds)
10:50:11 infinity0_ joins (~infinity0@occupy.ecodis.net)
10:50:14 infinity0_ is now known as infinity0
10:54:32 × mei3 quits (~mei@user/mei) (Ping timeout: 240 seconds)
10:57:17 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
11:06:39 yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net)
11:06:45 thewakalix joins (~thewakali@secure-162.caltech.edu)
11:08:04 <thewakalix> test
11:09:26 <thewakalix> EOF
11:09:34 <thewakalix> EOF
11:10:03 dschrempf joins (~dominik@62.240.134.151)
11:10:44 <thewakalix> whoops sorry, it needed << rather than <<<
11:10:44 <thewakalix> ugh why isn't it streaming
11:10:55 × thewakalix quits (~thewakali@secure-162.caltech.edu) (Remote host closed the connection)
11:11:02 × yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
11:14:32 × infinity0 quits (~infinity0@occupy.ecodis.net) (Ping timeout: 240 seconds)
11:15:07 infinity0 joins (~infinity0@occupy.ecodis.net)
11:15:50 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:20:45 o is now known as niko
11:22:01 × Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 250 seconds)
11:26:19 × terrorjack quits (~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat)
11:27:17 terrorjack joins (~terrorjac@static.3.200.12.49.clients.your-server.de)
11:27:32 × xff0x quits (~xff0x@2001:1a81:5343:8e00:7766:f7a:daa3:b76a) (Ping timeout: 240 seconds)
11:28:43 xff0x joins (~xff0x@2001:1a81:5343:8e00:5493:6b48:2cf2:a878)
11:29:23 Lycurgus joins (~juan@98.4.112.204)
11:29:26 × terrorjack quits (~terrorjac@static.3.200.12.49.clients.your-server.de) (Client Quit)
11:30:39 terrorjack joins (~terrorjac@2a01:4f8:1c1e:509a::1)
11:31:54 Topsi joins (~Tobias@dyndsl-095-033-090-230.ewe-ip-backbone.de)
11:35:42 cosimone joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
11:37:59 vysn joins (~vysn@user/vysn)
11:41:03 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
11:41:17 OndejSkup[m] joins (~mimivxmat@2001:470:69fc:105::c300)
11:49:18 × Unhammer quits (~Unhammer@user/unhammer) (Ping timeout: 268 seconds)
11:50:02 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
11:50:19 × max22- quits (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Quit: Leaving)
11:50:39 max22- joins (~maxime@2a01cb08833598006622aac214a9d042.ipv6.abo.wanadoo.fr)
11:52:37 × Lycurgus quits (~juan@98.4.112.204) (Quit: Exeunt)
11:53:00 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
11:55:50 × gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection)
11:56:39 gehmehgeh joins (~user@user/gehmehgeh)
11:59:01 × hololeap_ quits (~hololeap@user/hololeap) (Remote host closed the connection)
11:59:24 × dschrempf quits (~dominik@62.240.134.151) (Quit: WeeChat 3.3)
11:59:25 deadmarshal joins (~deadmarsh@95.38.230.72)
12:00:25 hololeap_ joins (~hololeap@user/hololeap)
12:00:25 Cajun joins (~Cajun@user/cajun)
12:02:26 Unhammer joins (~Unhammer@user/unhammer)
12:03:31 × deadmarshal quits (~deadmarsh@95.38.230.72) (Ping timeout: 244 seconds)
12:10:50 Guest87 joins (~Guest87@2a01:c22:b1bd:1f00:c404:2649:f4ca:6f49)
12:15:45 × rkrishnan quits (~user@122.167.19.65) (Ping timeout: 250 seconds)
12:25:01 × hiruji quits (~hiruji@user/hiruji) (Quit: ZNC 1.8.2 - https://znc.in)
12:25:27 InternetManaging joins (~imjmatrix@2001:470:69fc:105::1:2ea5)
12:25:32 hiruji joins (~hiruji@user/hiruji)
12:25:33 × hiruji quits (~hiruji@user/hiruji) (Remote host closed the connection)
12:25:50 hiruji joins (~hiruji@user/hiruji)
12:26:15 × Pickchea quits (~private@user/pickchea) (Ping timeout: 244 seconds)
12:27:02 <arahael> Hmm, just used box-drawing characters in a string in haskell... And it totally messed it up, I had to explicitly use text, then explicitly encode it to UTF-8.
12:27:19 <arahael> Wondering how it was just somehow converting it to bytestring without encoding it.
12:28:06 <arahael> I mean, the file is UTF-8. The string is therefore UTF-8 in the syntax. But somehow, when spitting it out to bytestring, it was broken.
12:28:13 kadir joins (~kadir@78.178.105.36)
12:28:27 <maerwald> arahael: haskell String is not UTF-8
12:28:34 <maerwald> how did you convert, what did you do?
12:29:53 <arahael> I didn't really convert, I had overloaded strings, so I think "my strings" were already bytestrings.
12:30:02 <maerwald> yeah, overloaded strings is broken
12:30:07 <maerwald> the bytestring instance
12:30:13 <arahael> That sucks.
12:30:37 <maerwald> https://github.com/haskell/bytestring/issues/140
12:30:49 <arahael> Thanks :)
12:30:56 <maerwald> String is a list of unicode codepoints
12:30:56 <arahael> It's definitely surprising.
12:31:05 × Cajun quits (~Cajun@user/cajun) (Ping timeout: 256 seconds)
12:31:11 <maerwald> fromString truncates every codepoint to fit into Word8
12:31:33 <arahael> Why is it doing that!?
12:32:00 <maerwald> what would be the alternative?
12:32:01 <arahael> Shouldn't it either assume the same encoding the file is in - or else result in some sort of compilation error if it's chopping bits off?
12:32:11 <maerwald> fromString doesn't know about your file
12:32:20 <arahael> Then it should be a compilation error.
12:32:23 <maerwald> it's a function from String to ByteString
12:32:35 <maerwald> there's no parameter specifying encoding
12:32:47 <maerwald> arahael: that would need a GHC patch
12:32:56 <arahael> Non-trivial, I assume.
12:33:11 <maerwald> https://gitlab.haskell.org/ghc/ghc/-/merge_requests/3290
12:33:59 × Moyst_ quits (~moyst@user/moyst) (Ping timeout: 264 seconds)
12:34:19 <maerwald> the only sensible option is to remove the instance for ByteString
12:34:26 shriekingnoise joins (~shrieking@186.137.144.80)
12:34:44 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
12:35:03 Vajb joins (~Vajb@2001:999:66:281c:27a0:1549:39e5:8b1a)
12:35:06 × Megant quits (megant@user/megant) (Ping timeout: 260 seconds)
12:35:15 <arahael> Well, I'd be OK with that, too, come to think of it.
12:35:25 <maerwald> that will break a lot of code though...
12:35:27 <arahael> It's easy enough to convert it, bytestring is.... special, anyway.
12:35:44 <maerwald> and haskell ecosystem doesn't care too much about correctness, IME
12:36:09 <arahael> It's... Interesting.
12:36:36 <arahael> A bit of a wart, then.
12:36:45 <maerwald> not the only one
12:36:58 <arahael> Heh, well, that doesn't surprise me. :)
12:37:46 <arahael> Anyway, I'm just going to go via Text. I like Text.
12:38:12 <arahael> And I shoudl sleep. Nearly midnight here. And I'm loaded with port. :)
12:38:29 × pop3 quits (~pop3@user/pop3) (Remote host closed the connection)
12:38:53 pop3 joins (~pop3@user/pop3)
12:40:58 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
12:41:05 × hiruji quits (~hiruji@user/hiruji) (Ping timeout: 268 seconds)
12:43:32 machinedgod joins (~machinedg@24.105.81.50)
12:50:08 × Guest87 quits (~Guest87@2a01:c22:b1bd:1f00:c404:2649:f4ca:6f49) (Quit: Client closed)
12:54:40 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
12:57:33 Megant joins (megant@user/megant)
12:59:02 hololeap_ is now known as hololeap
12:59:16 Pickchea joins (~private@user/pickchea)
13:00:42 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
13:02:41 Moyst_ joins (~moyst@user/moyst)
13:03:05 kadir parts (~kadir@78.178.105.36) (WeeChat 3.3)
13:04:23 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
13:04:47 ChaiTRex joins (~ChaiTRex@user/chaitrex)
13:05:02 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
13:10:45 cigsender joins (~cigsender@74.124.58.162)
13:22:05 deadmarshal joins (~deadmarsh@95.38.230.72)
13:22:56 Feuermagier joins (~Feuermagi@user/feuermagier)
13:26:11 × deadmarshal quits (~deadmarsh@95.38.230.72) (Ping timeout: 244 seconds)
13:26:49 × shidima quits (~shidima@46.44.183.25) (Ping timeout: 250 seconds)
13:31:10 × Vajb quits (~Vajb@2001:999:66:281c:27a0:1549:39e5:8b1a) (Read error: Connection reset by peer)
13:31:39 × kjak quits (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) (Ping timeout: 268 seconds)
13:31:49 deadmarshal joins (~deadmarsh@95.38.230.72)
13:32:08 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
13:35:52 × deadmarshal quits (~deadmarsh@95.38.230.72) (Client Quit)
13:36:18 <zzz> arahael: beautiful drink
13:36:19 deadmarshal joins (~deadmarsh@95.38.230.72)
13:36:56 yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net)
13:41:21 shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net)
13:41:33 × yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Ping timeout: 250 seconds)
13:42:52 ystael joins (~ystael@user/ystael)
13:48:32 × jonathanx quits (~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection)
13:48:51 jonathanx joins (~jonathan@dyn-8-sc.cdg.chalmers.se)
13:53:48 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
14:01:31 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
14:02:27 xkuru joins (~xkuru@user/xkuru)
14:05:58 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 244 seconds)
14:06:15 <zzz> is there anything like https://gcc.godbolt.org/ for haskell?
14:07:10 <maerwald> https://haskell.godbolt.org/ ?
14:07:31 × deadmarshal quits (~deadmarsh@95.38.230.72) (Ping timeout: 244 seconds)
14:07:35 <maerwald> you didn't try hard :p
14:07:50 <zzz> ha
14:07:53 <zzz> how silly of me
14:13:26 × hololeap quits (~hololeap@user/hololeap) (Excess Flood)
14:15:11 hololeap joins (~hololeap@user/hololeap)
14:21:01 Rhodsir joins (~Rhodsir@144-124-99-115.pip.aber.ac.uk)
14:21:14 <Rhodsir> Is anyone available to help with a very basic issue?
14:21:29 <dminuoso> Hi Rhodsir, dont ask to ask, just ask about your problem. :)
14:22:11 <Rhodsir> I have a type synonym which includes a list, I would like to filter through and check if the list contains a certain string and return ones which dont
14:25:29 <dminuoso> Rhodsir: You can send what you have here in this channel
14:25:32 <dminuoso> Use
14:25:33 <dminuoso> @where paste
14:25:34 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
14:25:59 <Rhodsir> https://paste.tomsmeding.com/6sjf4g0e
14:26:26 <Rhodsir> I know why I get an error, I'm just not sure how to change it
14:26:31 <Rhodsir> sorry if it's very basic
14:27:05 <dminuoso> Rhodsir: Okay. Why do you think you get an error?
14:27:16 <dminuoso> Also, include the full error for completions sake
14:27:24 <Rhodsir> because I'm comparing a string and expecting a bool
14:27:51 <dminuoso> Where do you think you have a comparison there?
14:28:05 <Rhodsir> you should be able to see the error in the paste
14:28:17 <dminuoso> There's no error in the paste visible to me
14:28:19 <kuribas> Rhodsir: I suppose you want mapMaybe
14:28:23 <Rhodsir> well not a direct comparison, but the filter is trying to return a bool from a string
14:28:25 <kuribas> :t mapMaybe
14:28:26 <lambdabot> (a -> Maybe b) -> [a] -> [b]
14:28:43 <dminuoso> kuribas: It's not always helpful to spoonfeed?
14:28:53 <dminuoso> Rhodsir: Okay, so lets have a look at filter
14:28:54 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 276 seconds)
14:28:55 <dminuoso> % :t filter
14:28:56 <yahb> dminuoso: (a -> Bool) -> [a] -> [a]
14:29:03 <dminuoso> Rhodsir: ^- do you see the type fignature of filter?
14:29:13 mc47 joins (~mc47@xmonad/TheMC47)
14:29:17 <Rhodsir> Yes
14:29:27 <Rhodsir> Map gives another type error btw
14:29:30 <dminuoso> See how it expects the first argument to it to be of type `a -> Bool`?
14:29:40 <Rhodsir> yes
14:29:48 <dminuoso> What do you think is the type of hasEggs?
14:29:59 <Rhodsir> bool?
14:30:10 <Rhodsir> string*
14:30:36 <dminuoso> Let's define it and see
14:30:43 <dminuoso> % hasEggs (_, _, x) = x
14:30:44 <yahb> dminuoso:
14:30:46 <dminuoso> % :t hasEggs
14:30:46 <yahb> dminuoso: (a, b, c) -> c
14:30:49 <dminuoso> Rhodsir: ^- see?
14:30:59 mark__ joins (~a@p200300ef973db1424086f0a6a24fc4dd.dip0.t-ipconnect.de)
14:31:02 <dminuoso> This function takes a three-tuple, and merely returns the third element of the three-tuple.
14:31:07 <kuribas> dminuoso: is showing him a standard library function spoonfeeding?
14:31:49 <Rhodsir> yes. I also want to execute code based on what the third element of the tuple returns
14:32:08 <dminuoso> Rhodsir: For this to work, your three tuple would have to have Bools in its third position.
14:32:15 <dminuoso> For example:
14:32:56 <dminuoso> % let hasEggs (_, _, x) = x in filter hasEggs [(1, 'a', False), (2, 'b', True), (3, 'c', False), (4, 'd', True)] -- Rhodsir
14:32:56 <yahb> dminuoso: [(2,'b',True),(4,'d',True)]
14:33:18 <dminuoso> Note, that this will filter all elements (three-tuples) of the list, whose third component is True.
14:33:33 <Rhodsir> I see. how would I get it to sort through only the third element?
14:33:45 <dminuoso> Hold on, now you want to sort?
14:33:48 benin joins (~benin@183.82.26.68)
14:33:55 <mark__> ":sprint" is broken in my ghci. Has anyone run into this problem and knows how to fix it? Example: x = Just 2; :sprint x gives me "x = _" so that's ok. Then I do "seq x ()" or "print x" but ":sprint x" still returns "x = _".
14:34:00 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
14:34:10 <Rhodsir> I simply want to get the third element, check if it matches a string and return any that don't
14:34:15 <Rhodsir> sorry if that was unclear before
14:34:43 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
14:34:43 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
14:34:43 wroathe joins (~wroathe@user/wroathe)
14:34:58 burnsidesLlama joins (~burnsides@dhcp168-022.wadham.ox.ac.uk)
14:35:27 <dminuoso> Rhodsir: You probably meant to use == rather than =
14:35:39 <dminuoso> Or rather
14:35:58 <dminuoso> % hasEggs (_, _, c) = c == "John"
14:35:58 <yahb> dminuoso:
14:36:03 <dminuoso> % :t hasEggs
14:36:04 <yahb> dminuoso: (a, b, String) -> Bool
14:36:13 <Rhodsir> wait thats all I had to do?
14:37:17 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
14:37:18 <Rhodsir> I'm still getting errors with both map and filter
14:37:18 <dminuoso> mark__: Welcome to MMR :)
14:37:37 <Rhodsir> Couldn't match type `[Char]' with `Char'
14:37:51 <Rhodsir> it doesnt like cs
14:38:25 <mark__> dminuoso: MMR?
14:38:38 <dminuoso> % x = Just 2
14:38:38 <yahb> dminuoso:
14:38:41 <dminuoso> % :t x
14:38:41 <yahb> dminuoso: Num a => Maybe a
14:38:47 <dminuoso> mark__: ^- note how this is polymorphic?
14:38:55 <mark__> dminuoso: yes
14:38:58 <dminuoso> Sorry, this isnt exactly monomorphism restriction. Rather the opposite.
14:39:12 <dminuoso> mark__: As long as this is polymorphic, memoization cant kick in
14:39:14 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
14:39:29 <mark__> so (Just (2 ::Int) should fix it?
14:39:32 <dminuoso> Yes
14:39:42 × pop3 quits (~pop3@user/pop3) (Remote host closed the connection)
14:39:43 <dminuoso> % x = Just (2 ::Int)
14:39:43 <yahb> dminuoso:
14:39:44 <dminuoso> % :sprint x
14:39:44 <yahb> dminuoso: x = Just 2
14:39:54 <dminuoso> See:
14:40:00 <dminuoso> % xs = [1..]
14:40:00 <yahb> dminuoso:
14:40:02 <dminuoso> % :sprint xs
14:40:02 <yahb> dminuoso: xs = _
14:40:05 <dminuoso> % take 1
14:40:06 <yahb> dminuoso: ; <interactive>:31:1: error:; * No instance for (Show ([a0] -> [a0])) arising from a use of `print'; (maybe you haven't applied a function to enough arguments?); * In a stmt of an interactive GHCi command: print it
14:40:07 <dminuoso> % take 1 xs
14:40:07 <yahb> dminuoso: [1]
14:40:09 <dminuoso> % :sprint xs
14:40:10 <yahb> dminuoso: xs = _
14:40:15 <dminuoso> % xs = [1..] :: [Int]
14:40:15 <yahb> dminuoso:
14:40:18 <dminuoso> % :sprint xs
14:40:18 <yahb> dminuoso: xs = _
14:40:20 <dminuoso> % take 1 xs
14:40:20 <yahb> dminuoso: [1]
14:40:22 <dminuoso> % :sprint xs
14:40:22 <yahb> dminuoso: xs = 1 : _
14:40:25 pop3 joins (~pop3@user/pop3)
14:40:54 <mark__> dminuoso: It works! Thank you!!!
14:41:03 <dminuoso> mark__: this is precisely why we have monomorphism restriction, so you get sharing where you naively expect it to
14:41:45 <geekosaur> but it's turned off by default in ghci
14:41:46 <mark__> dminuoso: I thought it was because of performance but this is also a good reason.
14:41:50 <dminuoso> In GHCi its just turned off by default
14:41:51 × alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection)
14:41:52 <geekosaur> both
14:42:12 alzgh joins (~alzgh@user/alzgh)
14:42:19 <dminuoso> mark__: alternatively you can simply use: :set -XMonomorphismRestriction
14:42:29 <dminuoso> mark__: And your GHCi will automatically monomorphize
14:42:47 <mark__> dminuoso: was just looking for that
14:43:01 <dminuoso> mark__: Well, sharing *yields* performance. If you dont have to recompute something, this is faster.
14:43:20 <dminuoso> At the slight cost of increased memory residency of course
14:44:00 zzz ignores memory cost
14:44:21 <dminuoso> zzz: high memory residency will increase GC latency, so there's that... :)
14:44:32 <Rhodsir> dminuoso: Could you tell me why this won't work: https://paste.tomsmeding.com/JhWTUjNq
14:44:33 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
14:44:53 <dminuoso> Rhodsir: How is `Cakes` defined?
14:44:59 <Rhodsir> mb lemme get that
14:45:18 <Rhodsir> fixed
14:45:31 <dminuoso> Mmm, if you edit that, I think it changes the URL
14:45:39 <dminuoso> Because Im not seeing any update.
14:45:53 <Rhodsir> https://paste.tomsmeding.com/fYSWArVg
14:45:55 img joins (~img@user/img)
14:46:37 <dminuoso> Rhodsir: So first, you probably meant to use `filter` rather than `map`
14:46:46 <Rhodsir> yes
14:46:56 <dminuoso> Secondly, your `Allergens` is not a String, but a list of Strings
14:47:19 <dminuoso> But, `hasEggs (_, _, a) = a == "eggs"` just tests whether the third element *is* a string eggs
14:47:27 <Rhodsir> yes, but I only care about "eggs"
14:47:40 <dminuoso> Yeah, but you're trying to compare a list of strings with a string
14:47:52 <dminuoso> Do you perhaps mean to say "the list of allergens must include eggs"?
14:48:12 <dminuoso> Or do you mean to say "must be exactly only eggs"?
14:48:15 <Rhodsir> hasEggs (_, _, a) = a == [("eggs"), ("Eggs")]
14:48:25 <zzz> @type elem
14:48:25 <lambdabot> (Foldable t, Eq a) => a -> t a -> Bool
14:48:47 <Rhodsir> I want to return all cakes without eggs
14:48:59 <dminuoso> I see, and eggs could be spelled either with an upper or lower case?
14:49:16 × img quits (~img@user/img) (Client Quit)
14:49:25 <Rhodsir> well lower is what it will be but I thought It had to be a list to compare
14:49:42 <dminuoso> % notElem "egg" ["milk", "wheat", "salt"]
14:49:42 <yahb> dminuoso: True
14:49:52 <dminuoso> % notElem "egg" ["milk", "wheat", "salt", "egg"]
14:49:52 <yahb> dminuoso: False
14:50:27 <dminuoso> Rhodsir: You can use `notElem` to test whether a given element (like "eggs" is present in say a list)
14:50:36 <Rhodsir> where would I put that?
14:50:38 img joins (~img@user/img)
14:50:45 <Rhodsir> instead of == "eggs2?
14:51:52 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Read error: No route to host)
14:54:03 <dminuoso> Rhodsir: Start by putting a type signature to hasEggs perhaps
14:54:10 <dminuoso> This might help you guide here
14:54:20 <Rhodsir> omg it wokrs
14:54:28 <Rhodsir> wait
14:54:32 × mc47 quits (~mc47@xmonad/TheMC47) (Ping timeout: 240 seconds)
14:55:51 <Rhodsir> could you explain what the list after "egg" is for?
14:56:05 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 244 seconds)
14:56:12 <dminuoso> 15:50:27 dminuoso | Rhodsir: You can use `notElem` to test whether a given element (like "eggs" is present in say a list)
14:56:42 <dminuoso> Conversely, `elem` tests whether some value is an element in say a list.
14:56:55 <dminuoso> % elem 3 [1,2,3,4,5]
14:56:55 <yahb> dminuoso: True
14:56:57 <dminuoso> % elem 10 [1,2,3,4,5]
14:56:58 <yahb> dminuoso: False
14:57:04 <dminuoso> % notElem 3 [1,2,3,4,5]
14:57:04 <yahb> dminuoso: False
14:57:06 <dminuoso> % notElem 10 [1,2,3,4,5]
14:57:06 <yahb> dminuoso: True
14:58:08 <Rhodsir> do you mean like this? noEggs :: Cakes -> Cakes noEggs cs = notElem "eggs" cs
14:58:45 <Rhodsir> because that gives me an error
14:59:46 boxscape_ joins (~boxscape_@134.171.69.87)
15:00:33 jkaye joins (~jkaye@2601:281:8300:7530:bdf2:2ee7:b4ba:f8c3)
15:00:51 × max22- quits (~maxime@2a01cb08833598006622aac214a9d042.ipv6.abo.wanadoo.fr) (Ping timeout: 250 seconds)
15:01:15 mc47 joins (~mc47@xmonad/TheMC47)
15:04:08 Moyst_ is now known as Moyst
15:04:52 × Axman6 quits (~Axman6@user/axman6) (Ping timeout: 260 seconds)
15:05:08 Axman6 joins (~Axman6@user/axman6)
15:05:34 × Rhodsir quits (~Rhodsir@144-124-99-115.pip.aber.ac.uk) (Remote host closed the connection)
15:05:52 Rhodsir joins (~Rhodsir@144-124-99-115.pip.aber.ac.uk)
15:06:01 <Rhodsir> Hello?
15:06:56 × ByronJohnson quits (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 244 seconds)
15:07:10 <boxscape_> hi
15:07:26 <geekosaur> dminuoso was helping them but seems to have vanished
15:07:33 <boxscape_> ah
15:07:56 <geekosaur> Rhodsir, I see at least three things wrong with what you showed
15:08:23 <geekosaur> one of them is you have forgotten to pattern match to extract the allergens part
15:08:39 × wonko quits (~wjc@user/wonko) (Ping timeout: 250 seconds)
15:09:13 <geekosaur> one of them is you are mapping over Cakes earlier, so presumably it is no longer Cakes but a singular cake
15:09:27 <geekosaur> hm, actually if you pattern match the third problem goes away too
15:09:35 <cigsender> qgcm
15:09:46 <cigsender> s/.*//
15:10:08 ByronJohnson joins (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net)
15:10:19 × mark__ quits (~a@p200300ef973db1424086f0a6a24fc4dd.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
15:11:43 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
15:12:06 mark__ joins (~a@p200300ef973db1484086f0a6a24fc4dd.dip0.t-ipconnect.de)
15:12:31 <Rhodsir> I'm so confused
15:12:46 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
15:12:46 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
15:12:46 wroathe joins (~wroathe@user/wroathe)
15:13:03 img joins (~img@user/img)
15:13:48 <Rhodsir> geekosaur? you're my last hope
15:14:54 Zu169 joins (~Zu169@144-124-136-14.pip.aber.ac.uk)
15:15:00 <geekosaur> you were shown pattern matching earlier. `noEggs (_, _, cs) = notElem "eggs" cs`
15:15:06 <Rhodsir> yes
15:15:12 <Rhodsir> that returns an error
15:15:26 <Zu169> Hi I'm really struggling with my code could anyone help me
15:15:44 <geekosaur> but this still leaves you that your type says Cakes -> Cakes, whereas you are looking at a single cake and producing a Bool
15:16:02 <Rhodsir> So what do you suggest I change?
15:17:19 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 250 seconds)
15:17:55 <geekosaur> hm, actually I missed your earlier update, so noEggs takes a Cakes. you still want to use your helper, or perhaps use a boolean combinator
15:18:24 <geekosaur> (bleh, did everyone else go away?)
15:18:49 <Rhodsir> I'm not sure, but Im struggling here
15:19:30 <geekosaur> show me the full code you have now, since I missed part of your conversation with dminuoso
15:19:34 <geekosaur> @where paste
15:19:34 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
15:19:41 <kronicmage> bumping my question from yesterday: i've implemented modular exponentiation via repeated squaring using a hylomorphism from recursion-schemes, but i don't think it's that much more readable than the naive recursive implementation: https://paste.tomsmeding.com/ec7PsCqr
15:19:52 <kronicmage> does anyone have any ideas to do this better?
15:20:11 <Rhodsir> https://paste.tomsmeding.com/vreQUeai
15:20:25 <Zu169> How do i search a list of strings for a specific string
15:21:04 <geekosaur> :t elem
15:21:05 <lambdabot> (Foldable t, Eq a) => a -> t a -> Bool
15:21:36 <Zu169> but i need to create a function that does it i can't do it in the command prompt
15:22:18 <kronicmage> @src elem
15:22:18 <lambdabot> elem x = any (== x)
15:22:40 <geekosaur> kronicmage, this sounds like homework, feeding them the answer is bad form at best
15:22:53 <kronicmage> ah true my bad
15:23:26 <Rhodsir> I already have notElem, its just the syntax that's making me struggle. I'm used to other languages
15:23:33 <mjrosenb> the lens docs for Cons don't appear to have an example of how to append to an embedded list, just top level list.
15:23:41 <geekosaur> Rhodsir, that code is just a bit confused. hasEggs is no longer doing anything, but has one of the key parts you're missing
15:24:09 <mjrosenb> I suspect they don't want me to do foo & bar . baz %~ (h<|)
15:24:28 <Zu169> https://paste.tomsmeding.com/DVDXdDNV
15:24:40 <Zu169> that is my whole code ^^
15:25:07 <Rhodsir> @geekosaur: https://paste.tomsmeding.com/C4RrM2gD
15:25:07 <lambdabot> Unknown command, try @list
15:25:19 <kronicmage> Rhodsir, Zu169, do you have the same assignment or something? lol
15:25:42 <Zu169> uhh yes
15:25:52 <geekosaur> Rhodsir, that won't work either because you're using a pattern as an expression
15:25:57 <Zu169> we both can't do functonal programming tho :(((
15:27:46 <Rhodsir> could you elaborate?
15:28:28 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
15:28:32 <geekosaur> you put the (_, _, a) in the wrong place. plus there's no "a", and you're not using "cs"
15:28:38 × Pickchea quits (~private@user/pickchea) (Ping timeout: 244 seconds)
15:28:40 <kronicmage> Rhodsir, what's the type of `notElem`, and what's the type of the bracketed expr on line 4?
15:28:40 <janus> is there a reason it is `any (== x)` not `any (x ==)`. related to floating point?
15:29:53 <geekosaur> janus, I can't think of anything specifically related to floating point, just convention
15:29:56 <kronicmage> Zu169 and Rhodsir, do you guys have haskell-language-server? it's nice to have good editor support to tell you exactly what type of thing should go in a particular spot
15:29:58 <c_wraith> even for floating point, (==) should be symmetric.
15:30:21 <kronicmage> e.g. if you write `notElem "eggs" _`, and then hover over `_`, hls will tell you what type you need to fill in that hole with
15:30:40 <Rhodsir> we're both using npp
15:30:41 <kronicmage> plain ghc will tell you this too, but i find the editor support to be nicer and lead to faster workflow
15:30:57 <Rhodsir> its really bad for debugging
15:31:03 × jonathanx quits (~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection)
15:31:08 <Rhodsir> atleast python tells me clearly when I'm being stupid
15:31:23 <Rhodsir> still better than idle i guess
15:31:29 <janus> @src notElem
15:31:29 <lambdabot> notElem x = all (/= x)
15:31:35 <kronicmage> haskell should too, no? are you guys compiling your code yourselves at all or are you just repeatedly submitting to a grading server? Rhodsir
15:31:59 <shapr> I prefer to think of Haskell as gently admonishing me, otherwise I'd get sad.
15:32:06 <Rhodsir> compiling through cmd
15:32:25 <geekosaur> this makes me think of the old joke about unix, it's user friendly it's just particular about its friends
15:32:36 <kronicmage> at least ghc tells you when you're being stupid before your stupidity can be run lol
15:32:57 <kronicmage> s/run/ran
15:34:47 <Rhodsir> I have 30 mins to answer 3 questions, this seems impossible
15:35:05 <kronicmage> ah the classic university experience...
15:35:12 <shapr> leaving things till the last minute?
15:35:12 <Zu169> yes exactly
15:35:27 <Zu169> no one warned me that uni would be about this
15:35:28 <geekosaur> also that last bit of code looks more like prolog than haskell for some reason :)
15:36:04 <Rhodsir> I didnt expect me to suck at it this much shapr
15:36:05 <shapr> When I went back to uni to finally finish a degree, I started the homework as soon as I knew about it. I got really good grades!
15:36:30 <shapr> Rhodsir: imperative to functional is a big jump in thinking
15:36:38 <shapr> also a big jump in power once you make it
15:36:50 <Rhodsir> We have a list of the sizes of the cakes that are on the stall. The price of a cake depends on its size. If the diameter is at least 6 inches the cake is priced at 3.00 pounds, and if it is smaller, then the cake is priced at 1.50 pounds. Using recursion, write a function to find out how much money we could make if we sold them all. target :: [Size] -> Money
15:36:56 <Rhodsir> any ideas guys?
15:37:09 <shapr> Rhodsir: how would you do that in languages you know?
15:37:58 <shapr> If you can come up with a solution in a familiar language, you could then change that into a recursive solution?
15:38:10 <Rhodsir> because what I have is nothing. in python I would check if the diameter is greater than or equal to six and set money to 3, if it's less than I would set money to 1.5. and I'd loop it through the list of cakes
15:38:19 <kronicmage> Rhodsir, if you can implement it in python with only comprensions, pure functions, `map`, `filter`, and `reduce`, then you can do it in haskell
15:38:29 <Zu169> i know exactly how i'd do it in c or vb but haskell is too hard
15:38:30 <kronicmage> try doing it in python first, without mutation or stateful stuff
15:38:31 <shapr> yeah, python got its list comprehensions from Haskell
15:38:53 <kronicmage> it's not the language thats the problem, you need to think in the functional paradigm
15:39:09 <Rhodsir> thats my problem. It's so different to python
15:39:11 <shapr> but the general solution is not to leave things to the last minute (not that I'm good at that!)
15:39:37 <Rhodsir> I started at 9am this morning but then they changed our timetable to add a 3 hour practical for a different module
15:39:42 <Rhodsir> I wouldve been fine otherwise
15:39:54 <shapr> Rhodsir: when was this originally assigned?
15:40:09 shapr shrugs
15:40:16 <shapr> negative feedback is valuable
15:40:18 <Rhodsir> this morning
15:40:30 <kronicmage> damn that's a fast assignment cycle
15:40:32 <Rhodsir> due at 4
15:40:35 <shapr> that is surprising
15:40:36 <Rhodsir> its brutal
15:40:47 <geekosaur> that depends on when "this morning" was. like it's still "this morning" for me
15:40:53 <Rhodsir> 9am uk time
15:41:03 <geekosaur> 9am was an hour and 40 minutes ago
15:41:04 <shapr> first time I've heard of a uni that wants you to learn Haskell in a few hours.
15:41:31 <Rhodsir> its just assessing what we have learnt in the last few lectures
15:41:39 <Rhodsir> which clearly wasnt very much
15:41:58 <Zu169> we've have lessons for 5 weeks but it's the kind of thing where they show us the easiest example and then expect us to do the hardest questons alone
15:42:07 <kronicmage> w/ learning stuff like functional programming or haskell, you can't get by with just lectures -- exercises are pretty much mandatory
15:42:18 <kronicmage> you need to learn by doing rather than watching
15:42:33 <shapr> yeah, that's for sure
15:42:47 <shapr> I tried to learn Agda by watching, did not work.
15:43:02 × xff0x quits (~xff0x@2001:1a81:5343:8e00:5493:6b48:2cf2:a878) (Ping timeout: 240 seconds)
15:43:57 xff0x joins (~xff0x@2001:1a81:5343:8e00:3d14:89a2:444a:e78d)
15:43:58 <kronicmage> also for next time, get yourself a proper editor eh -- working in npp will slow you down. vscode has good support i hear, or you can grab hls and use vim/emacs
15:44:17 <kronicmage> npp still doesn't have good language server support lol
15:44:17 <shapr> yeah, hls might give you TOO much help even
15:44:31 <Zu169> im using notepad ++
15:44:37 <kronicmage> wingman can probably do half the assignments for you :'D
15:44:41 <Zu169> and the windows powershell
15:45:06 <Rhodsir> hls?
15:45:10 <shapr> haskell-language-server
15:45:18 <Rhodsir> do you have a link?
15:45:23 <Rhodsir> for setup
15:45:24 <kronicmage> https://github.com/haskell/haskell-language-server
15:45:43 <kronicmage> vscode will download it for you if you get the haskell extension
15:46:04 <kronicmage> notepad++ doesn't have good language server support though, so you can't use hls with it
15:46:52 <kronicmage> also -- has your university not covered developing in linux? I'm not sure if things have improved but the last I remember working with haskell on windows back in ~2017 I remember it being quite a pain
15:47:19 × JimL quits (~quassel@89-162-2-132.fiber.signal.no) (Ping timeout: 268 seconds)
15:47:26 <geekosaur> there's been a decent amount of work put into improving the windows experience
15:48:00 <geekosaur> although as yet things still depend on mingw which is a bit unfortunate
15:48:04 <Zu169> is there a discord server like this?
15:51:14 × Zu169 quits (~Zu169@144-124-136-14.pip.aber.ac.uk) (Remote host closed the connection)
15:53:23 Sgeo joins (~Sgeo@user/sgeo)
15:55:13 slowButPresent joins (~slowButPr@user/slowbutpresent)
15:55:27 neutral joins (~user@user/neutral)
15:55:53 neutral parts (~user@user/neutral) (ERC (IRC client for Emacs 27.2))
15:57:45 × k` quits (~user@152.1.137.158) (Remote host closed the connection)
16:00:59 <Rhodsir> I submitted the worst code of my life, praying for 50 %
16:01:09 <janus> ghost of Zu169: there is one called "Haskell intersected with Queer Angst": https://discord.com/channels/502892968475230219/503741815992745984 but it is a bit different since it has "0) Simon Peyton-Jowones is an uwu gamer catgirl anyone who questions it will be banned." as a rule
16:01:23 <shapr> haha
16:01:26 <kronicmage> lmao
16:01:28 <Rhodsir> I'll let her know, thanks for the link
16:01:43 <shapr> Rhodsir: if you want to learn Haskell, we can help!
16:01:54 <Rhodsir> I really need to learn haskell at this point lmao
16:01:55 <shapr> Haskell has some very powerful magic
16:02:02 <janus> Rhodsir: dunno if the link works if you're not on the server but i am not discord pro, dunno how to get those invite links
16:02:04 <kronicmage> Rhodsir, now that you've submitted you can slow down and learn properly :D
16:02:08 <shapr> yeah!
16:02:24 <kronicmage> start with getting your editor in shape! grab vscode and the haskell plugin
16:02:28 jpds joins (~jpds@gateway/tor-sasl/jpds)
16:02:32 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
16:02:32 <kronicmage> huge huge difference in productivity
16:02:33 <shapr> Rhodsir: I wrote a duplicate file finder recently, it's really tiny: https://github.com/shapr/takedouble/blob/main/src/Takedouble.hs
16:02:50 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
16:03:36 <Rhodsir> damn, that is tiny. Honestly it reminds me of when I learnt python. I found it difficult and pointless at first but then I quit and came back to it 2 years later lmoa
16:03:53 <Rhodsir> I'm definitely going to get an editor
16:04:02 <shapr> if you want wizardly power, Haskell is one of the good approaches
16:04:19 <kronicmage> it's really amazing the kind of wizard stuff you can do with haskell once you get into it
16:04:31 <kronicmage> it really changes your viewpoint on things outside of haskell too
16:04:59 <kronicmage> there's always more to learn
16:05:01 <Rhodsir> our lecturer is a mad lad she uses npp. Also regarding the other question about linux dev for haskell - we do have a linux module but it's extremely basic, just terminal stuff atm and I don't think they'd make people switch to linux or remote to a linux pc just to do haskell
16:05:02 × cfricke quits (~cfricke@user/cfricke) (Ping timeout: 240 seconds)
16:05:20 desantra joins (~skykanin@user/skykanin)
16:05:43 <Rhodsir> Janus could you send an invite link as opposed to a channel link?
16:07:09 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 250 seconds)
16:10:39 <shapr> I like this expression "mad lad", I shall adopt it.
16:11:17 <janus> Rhodsir: try this one https://mobile.twitter.com/bkmlep/status/1456313831949365248
16:18:30 × Rhodsir quits (~Rhodsir@144-124-99-115.pip.aber.ac.uk) (Remote host closed the connection)
16:19:25 Guest27 joins (~Guest27@2601:281:d480:2ce0::93bd)
16:19:48 max22- joins (~maxime@2a01cb088335980083dcab2b0434f3bd.ipv6.abo.wanadoo.fr)
16:26:29 ubert joins (~Thunderbi@p200300ecdf4fca48e6b318fffe838f33.dip0.t-ipconnect.de)
16:27:04 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
16:28:12 frosch03 joins (~user@2a02:c98:1003:8000:4c83:eab1:da59:6f0d)
16:28:53 pbrisbin joins (~patrick@pool-173-49-152-45.phlapa.fios.verizon.net)
16:29:26 <monochrom> Using Windows for programming is mad in the first place.
16:29:48 <Franciman> sometimes you have to :<
16:30:35 <monochrom> But when I'm on Windows occasionally, I like notepad++ the most.
16:30:54 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
16:31:54 <Vq> GNU Emacs is my little island of sanity when on Windows.
16:32:18 <monochrom> I don't mean to say that it's better than vscode. I just haven't learned vscode. If you're starting anew, go for vscode. :)
16:32:19 <Vq> magit doesn't work very well but that's a small price to pay.
16:32:26 <geekosaur> I didn't like emacs on windows, I make too much use of things that just don't work well there. and it feels out of place
16:33:41 <geekosaur> rather than trying to recreate a unix experience on windows I try to fit into its experience, it's just less frustrating that way. too many things acquire odd sharp edges otherwise
16:33:43 <Vq> It works well enough for me. Features that use external programs can be a bit wonky but TRAMP works fairly well actually.
16:34:42 <Vq> When I'm on Windows I'm just in survival mode and will cling to anything *NIX-like.
16:40:46 <Guest27> What's the difference between Control.Monad.Trans.MonadTrans and Control.Monad.Trans.Class.MonadTrans?
16:42:18 zincy joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
16:42:52 × zincy quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Remote host closed the connection)
16:43:13 <geekosaur> the .Class one is a generic foundation; the other is the mtl-specific implementation based on functional dependencies (there's another implementation around based on type families)
16:43:21 zincy joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
16:43:25 deadmarshal joins (~deadmarsh@95.38.230.72)
16:44:18 <Guest27> geekosaur thanks, what are some good resources for the differences between these implementations?
16:45:56 zebrag joins (~chris@user/zebrag)
16:46:07 lavaman joins (~lavaman@98.38.249.169)
16:47:00 asdfa joins (~asdfa@2a02:c98:1003:8000:4c83:eab1:da59:6f0d)
16:47:01 × boxscape_ quits (~boxscape_@134.171.69.87) (Ping timeout: 250 seconds)
16:47:32 × deadmarshal quits (~deadmarsh@95.38.230.72) (Ping timeout: 240 seconds)
16:47:43 mei3 joins (~mei@user/mei)
16:48:41 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:c461:9db1:2779:896d) (Quit: WeeChat 2.8)
16:50:10 × asdfa quits (~asdfa@2a02:c98:1003:8000:4c83:eab1:da59:6f0d) (Remote host closed the connection)
16:51:05 <geekosaur> mostly historical. the original mtl was based on fundeps because type families didn't exist yet. when type families were introduced, there was a period of experimentation with both fundep- and tyfam-based versions of mtl, then it was decided that for backward compatibility mtl2 would continue to use fundeps
16:51:16 lbseale joins (~lbseale@user/ep1ctetus)
16:51:43 <geekosaur> for many uses, however, type families are easier and more "haskellish" (fundeps are prolog-like and something of an odd fit with haskell)
16:54:31 mmhat joins (~mmh@55d4bfe6.access.ecotel.net)
16:55:34 <zwro[m]> i still haven't ventured into type families. what should i know about them?
16:57:01 <monochrom> If you see "Foo Int", without looking up Foo, you now don't know whether Foo is a parametric polymorphic type or a type family.
16:57:29 whatsupdoc joins (uid509081@id-509081.hampstead.irccloud.com)
16:57:46 <monochrom> In case Foo is a type family, "Foo Int" may very well just mean Bool, "Foo Double" may very well just mean Char.
16:58:49 werner100 joins (~werner100@2601:2c2:400:4440:20ee:6cac:e614:d007)
16:58:59 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
17:01:10 <geekosaur> both are type functions, just with different behavior. as monochrom says, this does complicate understanding random code a bit
17:01:42 <geekosaur> flip side, using a type family assicated with a typeclass ("associated type") often makes the typeclass easier to implement and understand
17:02:10 <geekosaur> so you lose in some areas and gain in others
17:02:35 <geekosaur> *associated with
17:05:13 × frosch03 quits (~user@2a02:c98:1003:8000:4c83:eab1:da59:6f0d) (Remote host closed the connection)
17:07:50 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 244 seconds)
17:10:57 __monty__ joins (~toonn@user/toonn)
17:13:16 × werner100 quits (~werner100@2601:2c2:400:4440:20ee:6cac:e614:d007) (Quit: Ping timeout (120 seconds))
17:18:59 × mbuf quits (~Shakthi@182.77.100.170) (Quit: Leaving)
17:22:23 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
17:22:54 ChaiTRex joins (~ChaiTRex@user/chaitrex)
17:25:22 × jkaye quits (~jkaye@2601:281:8300:7530:bdf2:2ee7:b4ba:f8c3) (Ping timeout: 268 seconds)
17:29:11 emf joins (~emf@2620:10d:c090:400::5:fa16)
17:29:51 thyriaen joins (~thyriaen@dynamic-077-013-084-082.77.13.pool.telefonica.de)
17:36:25 × xff0x quits (~xff0x@2001:1a81:5343:8e00:3d14:89a2:444a:e78d) (Ping timeout: 250 seconds)
17:37:02 × acidjnk_new quits (~acidjnk@p200300d0c7404a3915a2950adbd6cce8.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
17:37:12 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:540:e191:ad14:68ac)
17:39:49 zzz is now known as yin
17:42:10 deadmarshal joins (~deadmarsh@95.38.230.72)
17:42:43 × chele quits (~chele@user/chele) (Remote host closed the connection)
17:45:32 × v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Remote host closed the connection)
17:45:52 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
17:46:02 v01d4lph4 joins (~v01d4lph4@122.177.85.95)
17:46:02 × v01d4lph4 quits (~v01d4lph4@122.177.85.95) (Changing host)
17:46:02 v01d4lph4 joins (~v01d4lph4@user/v01d4lph4)
17:46:56 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:540:e191:ad14:68ac) (Remote host closed the connection)
17:47:22 xff0x joins (~xff0x@2001:1a81:5343:8e00:3d14:89a2:444a:e78d)
17:47:36 geekosaur joins (~geekosaur@xmonad/geekosaur)
17:49:25 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 250 seconds)
17:49:48 × zincy quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Remote host closed the connection)
17:50:12 × v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Ping timeout: 244 seconds)
17:50:41 × Guest27 quits (~Guest27@2601:281:d480:2ce0::93bd) (Ping timeout: 256 seconds)
17:53:29 MoC joins (~moc@user/moc)
17:55:07 yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net)
17:58:02 Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
17:58:11 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:540:e191:ad14:68ac)
17:58:45 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
17:59:15 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
17:59:32 × yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
18:00:29 Guest27 joins (~Guest27@2601:281:d480:2ce0::93bd)
18:01:39 kupi joins (uid212005@id-212005.hampstead.irccloud.com)
18:09:59 × zaquest quits (~notzaques@5.128.210.178) (Ping timeout: 264 seconds)
18:15:30 tabemann_ joins (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net)
18:15:51 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
18:16:01 hexeme is now known as ldlework
18:17:15 img joins (~img@user/img)
18:17:16 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Excess Flood)
18:17:36 × tabemann quits (~tabemann@2600:1700:7990:24e0:c9ce:7077:ec0c:a794) (Ping timeout: 245 seconds)
18:18:01 × ByronJohnson quits (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 250 seconds)
18:18:36 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
18:20:05 × thyriaen quits (~thyriaen@dynamic-077-013-084-082.77.13.pool.telefonica.de) (Quit: Leaving)
18:21:47 x6C697370 joins (~michael@2600:1700:7c02:3180::44)
18:21:56 Pickchea joins (~private@user/pickchea)
18:22:15 <dsal> Today's installment of wat is arguing that deeply nesting case statements in a test where Left or Nothing fails when building out prerequisites is more readable than just having a tiny helper that fails the test on prereq failure (e.g., `thing <- errLeft getThing`). This both greatly reduces the lines and indentation of the code under test, but it's "less readable."
18:22:36 <dsal> Also, apparently `either` is a dangerous function and is banned.
18:22:44 <geekosaur> o.O
18:22:58 <Rembane_> That sounds like a fun exercise but maddening in a work context.
18:23:09 <geekosaur> sounds like someone should be banned from writing or reviewing haskell code
18:23:27 <dsal> The argument is roughly that good testing code looks different from good application code.
18:23:53 <dsal> I can agree with that and still think that deeply nested code is bad.
18:23:58 <dsal> Like, isn't this why we have `do`?
18:27:15 <int-e> > do Nothing
18:27:17 <lambdabot> Nothing
18:27:45 <janus> i have seen business logic that hardly uses monad transformers
18:28:19 <janus> but if the code with a case tree is effectful, and you want to make it look imperative, one way is to use ExceptT
18:28:46 <janus> but then you need lifts, and you need to make combinators that make the "failing" branches of the case statements into ExceptT values
18:29:05 <janus> it has its price but i still preferred it with ExceptT
18:29:06 × hololeap quits (~hololeap@user/hololeap) (Remote host closed the connection)
18:29:06 ByronJohnson joins (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net)
18:29:36 tinhatcat joins (~manjaro-g@2620:103:a000:2201:8e4c:af6a:e11c:11a1)
18:29:38 <janus> but OTOH one could argue that it seems weird to introduce lift/except/throwError and all those combinators when it worked just fine as a case tree...
18:30:04 <dsal> I think I tried ExceptT and it wasn't easier than just adding a helper that threw the exception directly since that's what was happening in every `Left` and `Nothing`.
18:30:21 × tinhatcat quits (~manjaro-g@2620:103:a000:2201:8e4c:af6a:e11c:11a1) (Client Quit)
18:30:26 hololeap joins (~hololeap@user/hololeap)
18:30:53 <janus> where do exceptions come into the picture? imho exceptT is completely orthogonal to that, though related
18:31:17 <dsal> The code is basically `getThingOneOrFailTest >>= \thing1 -> getThingTwoOrFailTest >>= \thing2 -> doActualTest thing1 thing2`
18:31:45 <dsal> Every `Left` was `expectationFailure "I couldn't get a thing"`
18:31:55 <dsal> Which throws an exception causing the test to fail.
18:32:10 <maerwald> that looks like a use case for pattern matching via MonadFail
18:32:13 econo joins (uid147250@user/econo)
18:32:16 <int-e> I'd probably agree with preferring a `case` over `either` when the Either value represents an error or successful result.
18:32:24 <geekosaur> *exceptions are not flow control*
18:32:30 <janus> ok well i think the use of exceptions is the bigger problem in that case :P i don't like them
18:32:38 <int-e> But calling deeply nested conditionals of any kind readable is insane.
18:32:44 <maerwald> (Just foo) <- getThing
18:33:04 <dsal> That's disallowed because it makes bad error messages on test failure.
18:33:19 <dsal> So like make a helper that does the same thing, but makes a good error message. Problem solved.
18:33:31 <dsal> But no, marching off to the right is easier to read.
18:33:36 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
18:33:45 <geekosaur> java think
18:33:55 <janus> yes, if there is only one failure, ExceptT is worse than MaybeT because MaybeT allows MonadFail
18:33:58 <int-e> . o O ( waterfall model )
18:34:17 <janus> i just assume you want effects, otherwise this debate is too boring ;)
18:35:37 <dsal> The whole thing is "Somebody wrote a test that needs to get three things to run it." The actual test is something like f thing1 thing2 thing3 `shouldbe`something
18:36:11 <int-e> Yeah there's Control.Monad.Error if you want MonadFail. Except that the module is deprecated. Which is... meh.
18:36:13 <dsal> Just you have to scroll down and to the right to find that because of all the eithers and maybes you encountered while building out prereqs.
18:37:12 <maerwald> move to another company
18:37:32 <maerwald> I don't like being trolled at workplace like that
18:37:34 <dsal> haha. The thought arises.
18:37:58 <janus> int-e: what's the advantage of Error over MaybeT?
18:38:23 <int-e> janus: it preserves error messages from pattern failures and you can inject your own more sensible ones if you like
18:39:18 <janus> but it also makes stuff like line numbers leak into application output :P dunno if i like that
18:39:29 <int-e> There's a historic accident behind all this. The Monad instance for Either used to look like that of ErrorT e Id, eith an Error e constraint.
18:39:58 <int-e> That was changed at some point (silently breaking some code I wrote...). Control.Monad.Error was the replacement for that.
18:40:02 thyriaen joins (~thyriaen@dynamic-077-013-084-082.77.13.pool.telefonica.de)
18:40:31 <int-e> eith -> with
18:40:37 × fryguybob quits (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) (Ping timeout: 268 seconds)
18:40:38 <maerwald> yeah, MonadFail in ExceptT runs in the inner monad
18:40:53 <maerwald> which most of the time is IO and then you get an IO exception
18:41:25 <int-e> Which is also useful. Which is kind of my gripe... both ErrorT and ExceptT have useful implementations of `fail`
18:41:46 <int-e> But they differ, so how can the former is deprecated in favor of the latter?
18:42:15 <int-e> But then again I don't use ErrorT in new code.
18:43:13 <janus> i think the fact that line numbers leak into application output is suspicious
18:43:34 <janus> i never needed the feature, seems sufficient to me if fail had not arguments
18:43:47 <janus> but maybe i am just coloured by being "new" and always having had stuff like ExceptT available
18:44:14 <janus> s/not/no/
18:45:29 <janus> this reminds me of how the tz library is pretty popular even though it is alpha and the tz database changes all the time. another source of impurity ;)
18:46:08 <maerwald> purity /= correctness
18:46:59 Rembane_ shakes fist at timezones
18:49:12 <janus> maerwald: what would you call what happens with the tz library? you launch ghci one day and ask for an offset, you get an answer (not in IO). next day, you run the same code (still not in IO) and get a different answer with an upgraded library. incorrect doesn't seem like it fits? or is it just incorrect that the library doesn't require IO?
18:50:08 <maerwald> "with an upgraded library"
18:50:12 <geekosaur> before you complain about tz, consider System.Info: same code, different machien, different output
18:50:16 [exa] suggests TimeT
18:50:27 <geekosaur> *machine
18:50:55 <maerwald> janus: if you upgrade a library and expect the same behavior, then I dunno
18:51:05 <janus> maerwald: actually i dunno how the library works. does it read the system tz database ? then the answer could change even though you don't bump the library
18:51:06 <maerwald> we could argue about PVP here, but
18:51:18 <maerwald> "Including time zone information in Haskell binaries in a platform-independent way"
18:52:21 fryguybob joins (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com)
18:52:26 <maerwald> I have no idea what this thing does
18:54:04 <monochrom> Actually I wonder whether a ton of conditional compilations count as "same code". :)
18:54:12 jkaye joins (~jkaye@2601:281:8300:7530:2b36:18db:1545:7097)
18:54:35 <janus> geekosaur, monochrom: good points. my rant is over :P
18:54:47 × deadmarshal quits (~deadmarsh@95.38.230.72) (Ping timeout: 244 seconds)
18:54:53 <zwro[m]> you should wrap this conversation in a monad to keep the rest safe
18:54:55 × pop3 quits (~pop3@user/pop3) (Remote host closed the connection)
18:55:26 × thyriaen quits (~thyriaen@dynamic-077-013-084-082.77.13.pool.telefonica.de) (Quit: Leaving)
18:55:38 <geekosaur> monochrom, the point is I don't see the conditionals, and I don't expect them in pure code
18:55:50 pop3 joins (~pop3@user/pop3)
18:55:57 <geekosaur> IO, sure, go nuts. but it claims to be pure
18:56:03 <maerwald> zwro[m]: like IO?
18:56:11 <monochrom> Now, GHC.Conc's numCapabilities::Int would be a better example!
18:56:54 <monochrom> It is not in IO. And it depends on what you say to +RTS -N. Different runs give different answers. Should it be in IO?
18:57:08 <geekosaur> yes
18:57:22 <geekosaur> especially given setNumCapabilities
18:57:46 <monochrom> That part is covered by getNumCapabilities :: IO Int
18:58:25 <maerwald> `numCapabilities` doesn't change
18:59:43 <maerwald> it's similar to `arch`
18:59:48 <maerwald> from System.Info
19:00:40 <int-e> It's fine, it's part of the hypothetical interpreter that's responsible for running main :: IO ()
19:01:19 <int-e> (which justifies scoping purity over the lifetime of a program, since the next program invocation will get a different instance of the (impure) interpreter)
19:01:21 × vysn quits (~vysn@user/vysn) (Ping timeout: 250 seconds)
19:02:27 <geekosaur> mm, that raises the question of how hypothetical that interpreter is given that stg could be viewed as ghc's version of said interpreter
19:03:05 <dsal> `arch` changes on my machine based on how I compiled it. :P
19:03:26 <int-e> But in that implementation you also have highly impure primitives that consume a virtual state token.
19:04:02 <int-e> (and recreate it)
19:05:37 riv joins (river@tilde.team/user/river)
19:05:41 <riv> hi
19:05:48 shapr hugs riv
19:05:50 <shapr> nice to see you here!
19:05:53 <geekosaur> œ
19:06:07 × max22- quits (~maxime@2a01cb088335980083dcab2b0434f3bd.ipv6.abo.wanadoo.fr) (Ping timeout: 250 seconds)
19:06:10 <riv> how would you generate all possible examples of assigning n distinct students into k classes, with no class empty?
19:06:13 <int-e> Anyway, it's a grey area... having a module that exports foo :: Int and having different outputs for main = print foo between runs feels surprising.
19:06:17 <shapr> riv: may I interest you in some finely crafted lambdas?
19:06:22 <riv> :D
19:07:15 <shapr> riv: is that like a filtered powerset?
19:07:18 <riv> i was starting students = take n ['A'..] ; classes = take k [1..] and an assignment could be like [('A',3), ('B', 5), ...]
19:08:13 <Guest27> riv seems like a special case of stars and bars
19:09:07 <int-e> This is surjective function territory. Stirling numbers of the second kind are involved if you want to count them.
19:09:30 × zfnmxt quits (~zfnmxtzfn@2001:470:69fc:105::2b32) (Changing host)
19:09:30 zfnmxt joins (~zfnmxtzfn@user/zfnmxt)
19:09:31 <riv> ahh
19:09:36 <int-e> riv: Honestly my first question would be whether I could possibly avoid that unless I know that n and k are small.
19:10:12 <riv> surjective functions is a simpler way to describe this than the students thing
19:10:27 <int-e> Also, when there are 5 students and 5 classes, do you really want 120 assignments?
19:10:35 × emf quits (~emf@2620:10d:c090:400::5:fa16) (Ping timeout: 264 seconds)
19:11:22 <int-e> And Guest27 is right if you can avoid distinguishing between the students.
19:12:29 bitmapper joins (uid464869@id-464869.lymington.irccloud.com)
19:13:47 emf joins (~emf@2620:10d:c091:480::1:6062)
19:22:23 unit73e joins (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
19:22:29 × Guest27 quits (~Guest27@2601:281:d480:2ce0::93bd) (Ping timeout: 256 seconds)
19:26:27 JoelMcCracken[m] joins (~joelmccra@2001:470:69fc:105::8405)
19:26:35 × cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Remote host closed the connection)
19:27:34 hiruji joins (~hiruji@user/hiruji)
19:27:35 Guest9216 joins (~Guest92@178-78-205-86.customers.ownit.se)
19:29:22 cosimone joins (~user@93-34-133-23.ip49.fastwebnet.it)
19:32:13 × Guest9216 quits (~Guest92@178-78-205-86.customers.ownit.se) (Client Quit)
19:32:48 × MoC quits (~moc@user/moc) (Quit: Konversation terminated!)
19:36:56 mc47 joins (~mc47@xmonad/TheMC47)
19:37:54 johnny_sitar joins (~artur@078088015209.bialystok.vectranet.pl)
19:40:46 max22- joins (~maxime@2a01cb08833598002528ec70f3e7e36f.ipv6.abo.wanadoo.fr)
19:44:15 AndreasK_ joins (sid320732@uxbridge.irccloud.com)
19:44:33 <shapr> riv: what interesting thing are you doing?
19:47:03 <riv> just generating and counting some combinatorics stuff
19:48:00 × alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection)
19:48:21 alzgh joins (~alzgh@user/alzgh)
19:50:30 Guest27 joins (~Guest27@2601:281:d480:2ce0::93bd)
19:51:42 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
19:52:03 jpds joins (~jpds@gateway/tor-sasl/jpds)
19:53:51 × CiaoSen quits (~Jura@p200300c95730dd002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
19:56:24 × burnsidesLlama quits (~burnsides@dhcp168-022.wadham.ox.ac.uk) (Remote host closed the connection)
20:05:26 × juhp quits (~juhp@128.106.188.220) (Ping timeout: 260 seconds)
20:07:24 juhp joins (~juhp@128.106.188.220)
20:10:38 Codaraxis joins (~Codaraxis@user/codaraxis)
20:11:19 × kupi quits (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
20:14:56 Lycurgus joins (~juan@98.4.112.204)
20:15:50 × mei3 quits (~mei@user/mei) (Quit: mei3)
20:17:23 mei3 joins (~mei@user/mei)
20:18:30 × alx741 quits (~alx741@181.196.69.19) (Ping timeout: 260 seconds)
20:19:55 yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net)
20:20:40 euandreh joins (~euandreh@2804:14c:65c9:5161:2115:7c1d:3a3c:1b92)
20:24:33 × yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Ping timeout: 250 seconds)
20:25:42 × euandreh quits (~euandreh@2804:14c:65c9:5161:2115:7c1d:3a3c:1b92) (Quit: WeeChat 3.3)
20:27:12 burnsidesLlama joins (~burnsides@dhcp168-022.wadham.ox.ac.uk)
20:28:01 × ubert quits (~Thunderbi@p200300ecdf4fca48e6b318fffe838f33.dip0.t-ipconnect.de) (Remote host closed the connection)
20:28:25 ubert joins (~Thunderbi@p200300ecdf4fca48e6b318fffe838f33.dip0.t-ipconnect.de)
20:28:30 Papa_ is now known as papa
20:29:28 <[exa]> so anyway -- what are the best design choices for representing SSA-style data in haskells now?
20:30:08 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
20:30:48 <[exa]> my current approach: just a list of assignments where the SSA references are replaced by kinda bruijn-like backreferences
20:31:02 alx741 joins (~alx741@181.196.68.101)
20:31:29 × burnsidesLlama quits (~burnsides@dhcp168-022.wadham.ox.ac.uk) (Ping timeout: 250 seconds)
20:32:36 × hgolden quits (~hgolden2@cpe-172-114-81-123.socal.res.rr.com) (Remote host closed the connection)
20:33:35 vysn joins (~vysn@user/vysn)
20:34:08 zaquest joins (~notzaques@5.128.210.178)
20:34:12 hgolden joins (~hgolden2@cpe-172-114-81-123.socal.res.rr.com)
20:35:24 jespada joins (~jespada@190.7.36.46)
20:38:17 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:540:e191:ad14:68ac) (Remote host closed the connection)
20:39:42 × pop3 quits (~pop3@user/pop3) (Remote host closed the connection)
20:40:04 × desantra quits (~skykanin@user/skykanin) (Quit: WeeChat 3.3)
20:40:40 pop3 joins (~pop3@user/pop3)
20:43:18 × Guest27 quits (~Guest27@2601:281:d480:2ce0::93bd) (Quit: Client closed)
20:46:46 hippoid joins (~idris@184.105.6.88)
20:47:45 <hippoid> :t (<*> id)
20:47:46 <lambdabot> (a -> a -> b) -> a -> b
20:48:03 <hippoid> how did all the requirements for Applicative go away?
20:48:38 <hippoid> I thought there would be some constraint Applicative f in the type of (<*> id)
20:50:31 × mmhat quits (~mmh@55d4bfe6.access.ecotel.net) (Ping timeout: 244 seconds)
20:51:01 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:540:e191:ad14:68ac)
20:53:18 <[exa]> hippoid: you specialized it to a concrete applicative
20:53:49 <[exa]> just like here the "requirement" goes away:
20:53:54 <[exa]> :t (<*> [])
20:53:55 <lambdabot> [a -> b] -> [b]
20:54:42 <[exa]> in your particular case the applicative was `Applicative ((->) r)`
20:54:51 <[exa]> (aka reader)
20:55:01 <dsal> f <*> g x = f x (g x)
20:55:57 <hippoid> [exa]: huh. i need to think about that :)
20:56:07 acidjnk_new joins (~acidjnk@p200300d0c7404a98889e7e27a4cfa8d6.dip0.t-ipconnect.de)
20:56:09 <[exa]> hippoid: did you meet the function functor?
20:56:19 boxscape_ joins (~boxscape_@i577BCB42.versanet.de)
20:56:20 <hippoid> is reader functor, reader applicative, and reader functor the same thing?
20:56:26 <hippoid> [exa]: I don't think so.
20:56:34 <[exa]> yeah, all ((->) r)
20:56:45 <hippoid> i meant reader monad for the last one in the list
20:57:37 <hippoid> so in (<*> id), id needs to unify to the f a, ie the 2nd arg in <*>?
20:57:50 <[exa]> yep
20:58:01 <[exa]> and the `f` in that case is `param -> _`
20:58:15 <[exa]> anyway, intuition:
20:58:55 <[exa]> the functor works kinda like a box for the function result that you need to "open" by supplying a parameter (it's not a totally good intuition but at least gives the similarity to other container-ish functors)
20:59:26 <[exa]> :t show <$> (+3)
20:59:27 <lambdabot> (Show a, Num a) => a -> String
21:00:20 <hippoid> I think I'm following you, but I don't see how using id for f a unifies to ((->) r)
21:00:30 <[exa]> the box (+3) expects a numeric parameter and "contains" a numeric, if you `fmap show` the content gets showed so it "contains" a String, in total it's a box that gives you a string if you supply a numeric
21:00:46 <[exa]> and <*> just kindof gives the parameter to both functions, as dsal showed
21:01:17 <[exa]> so you can open both boxes at once, and glue them applicatively with something in between
21:01:18 <hippoid> ok this is ringing a bell, this is S combinator on the type level
21:01:34 <[exa]> yes, function-ish <*> is precisely S
21:01:47 gnarlyotter joins (~gnarlyott@5.151.186.99)
21:01:59 <hippoid> ok I'm going to play around with this. Thanks for the tips!
21:02:20 <[exa]> > ( (,) <$> snd <*> fst ) (1,2)
21:02:22 <lambdabot> (2,1)
21:02:28 pavonia joins (~user@user/siracusa)
21:03:25 <[exa]> > ( (+) <$> (+10) <*> (*100) ) 3
21:03:27 <lambdabot> 313
21:04:16 <dsal> That's liftA2 if you want more letters and fewer shapes. :)
21:04:23 vsklamm joins (~vsklamm@pppoe.178-66-130-94.dynamic.avangarddsl.ru)
21:04:25 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds)
21:04:27 <dsal> > liftA2 (+) (+10) (*100) 3
21:04:28 <lambdabot> 313
21:04:42 <[exa]> I was trying to keep <*> in there :D
21:05:07 <dsal> Yeah. TBH, I think of `ap` and `<*>` and `liftA*` differently for some reason.
21:05:40 <[exa]> all have niches
21:05:50 riv parts (river@tilde.team/user/river) (WeeChat 3.3)
21:05:52 <[exa]> hippoid: my fav example is RLE:
21:06:00 cjb joins (~cjbayliss@user/cjb)
21:06:07 × alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection)
21:06:28 alzgh joins (~alzgh@user/alzgh)
21:06:29 <[exa]> > ((,) <$> head <*> length ) $ group "aaabbddddccccccaaaaa"
21:06:30 <lambdabot> ("aaa",5)
21:06:58 <[exa]> oh noes, map missed
21:07:13 <vsklamm> @undo [(x, y) | x <- xs, y <- ys]
21:07:13 <lambdabot> concatMap (\ x -> concatMap (\ y -> [(x, y)]) ys) xs
21:07:23 <[exa]> > map ((,) <$> head <*> length ) $ group "aaabbddddccccccaaaaa" -- hippoid
21:07:24 <vsklamm> @undo concatMap (\ x -> concatMap (\ y -> [(x, y)]) ys) xs
21:07:24 <lambdabot> concatMap (\ x -> concatMap (\ y -> [(x, y)]) ys) xs
21:07:24 <lambdabot> [('a',3),('b',2),('d',4),('c',6),('a',5)]
21:08:55 <[exa]> hippoid: in a related example great for building intuition, try: (drop <> take) 4 "hello world"
21:08:57 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Quit: ChaiTRex)
21:09:02 mmhat joins (~mmh@55d4bfe6.access.ecotel.net)
21:09:53 <hippoid> [exa]: ok, i will!
21:11:13 ChaiTRex joins (~ChaiTRex@user/chaitrex)
21:12:21 × Lycurgus quits (~juan@98.4.112.204) (Quit: Exeunt)
21:12:59 × hippoid quits (~idris@184.105.6.88) (Quit: leaving)
21:13:25 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
21:13:36 chexum joins (~quassel@gateway/tor-sasl/chexum)
21:17:23 × zaquest quits (~notzaques@5.128.210.178) (Remote host closed the connection)
21:18:25 acidjnk_new3 joins (~acidjnk@p200300d0c7149f82889e7e27a4cfa8d6.dip0.t-ipconnect.de)
21:19:09 zaquest joins (~notzaques@5.128.210.178)
21:21:24 JimL joins (~quassel@89-162-2-132.fiber.signal.no)
21:21:32 × acidjnk_new quits (~acidjnk@p200300d0c7404a98889e7e27a4cfa8d6.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
21:21:32 × johnny_sitar quits (~artur@078088015209.bialystok.vectranet.pl) (Ping timeout: 240 seconds)
21:21:43 × jespada quits (~jespada@190.7.36.46) (Quit: My MacBook has gone to sleep. ZZZzzz…)
21:26:32 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:540:e191:ad14:68ac) (Remote host closed the connection)
21:26:36 × alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection)
21:26:57 alzgh joins (~alzgh@user/alzgh)
21:29:05 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:540:e191:ad14:68ac)
21:31:08 × gnarlyotter quits (~gnarlyott@5.151.186.99) (Ping timeout: 256 seconds)
21:31:08 × vsklamm quits (~vsklamm@pppoe.178-66-130-94.dynamic.avangarddsl.ru) (Remote host closed the connection)
21:31:25 vsklamm joins (~vsklamm@pppoe.178-66-130-94.dynamic.avangarddsl.ru)
21:33:05 <zwro[m]> <dsal> "f <*> g x = f x (g x)" <- hey this is not intuitive
21:33:27 × vsklamm quits (~vsklamm@pppoe.178-66-130-94.dynamic.avangarddsl.ru) (Remote host closed the connection)
21:34:14 <dsal> The neat thing about intuition with some of these things is working back from the other direction and seeing where else you might end up.
21:34:56 <hexology> it's supposed to allow for chaining of effectful operations, right?
21:38:02 <hexology> the `liftA2` version makes more sense
21:39:04 <yin> hey this is interesting:
21:39:33 myme joins (~myme@40.51-175-185.customer.lyse.net)
21:39:43 burnsidesLlama joins (~burnsides@dhcp168-022.wadham.ox.ac.uk)
21:39:49 × myme quits (~myme@40.51-175-185.customer.lyse.net) (Quit: WeeChat 3.1)
21:40:19 <yin> > (take <> (:)) 2 [0,1]
21:40:20 <lambdabot> [0,1,2,0,1]
21:40:28 myme joins (~myme@40.51-175-185.customer.lyse.net)
21:41:02 × cosimone quits (~user@93-34-133-23.ip49.fastwebnet.it) (Remote host closed the connection)
21:41:19 <yin> i find this interesting beacause that 2 happens to work on lists of ints and take but
21:41:27 <yin> > (take <> (:)) 2 "error"
21:41:28 <lambdabot> error:
21:41:28 <lambdabot> • Couldn't match type ‘Char’ with ‘Int’
21:41:28 <lambdabot> Expected type: [Int]
21:41:36 <yin> this obviously doesn't work
21:41:55 <Inst> do you know
21:41:55 <yin> @type (take <> (:))
21:41:56 <lambdabot> Int -> [Int] -> [Int]
21:42:02 <[exa]> > (take <> (:)) 1 [0,1]
21:42:03 <lambdabot> [0,1,0,1]
21:42:06 <Inst> if it's possible to natively bind to windows API without using FFI in Haskell?
21:42:17 <[exa]> confusing in a fun way.
21:42:49 <[exa]> Inst: FFI is literally there as the only reasonable way for calling the native functions
21:42:57 <Inst> yeah, i gave up on trying to get native file dialog to work, i also gave up on the entire native file dialog project, it was 60 hours of being dispirited and i'm better off without it
21:43:37 <Inst> unless you already got a solution and are willing to help re exa
21:43:45 <[exa]> Inst: the other choices are either hacking a FFI yourself or having a RTS that can do the native call for you
21:43:55 <[exa]> Inst: what failed btw?
21:44:02 × burnsidesLlama quits (~burnsides@dhcp168-022.wadham.ox.ac.uk) (Ping timeout: 240 seconds)
21:44:12 <Inst> i couldn't get nativefiledialog to work
21:44:26 <Inst> i'd rather work on learning haskell now so i don't feel like a phony
21:45:03 <[exa]> ah don't worry about that, all portable stuff is hard. :]
21:45:42 <[exa]> if you have some kind of error log of what precisely failed for you I can have a look
21:46:03 <Inst> thanks
21:46:18 <Inst> exa: more interestingly, did YOU get nativefiledialog to wkr?
21:47:00 <hexology> i'm sure this video has made the rounds a bit https://www.youtube.com/watch?v=UogkQ67d0nY but i have a question specifically about the haskell part. the c++ and python versions of the code performed exactly 1 linear scan over the data, but a naive reading of the haskell version suggests that it makes multiple passes over the data. does it actually make multiple passes, or is ghc able to optimize away the extra passes into something
21:47:00 <hexology> closer to the imperative linear version? or would you need to write your own recursive function from scratch, in order to solve the problem in linear time?
21:47:58 <maerwald> [exa]: https://hackage.haskell.org/package/base-4.16.0.0/docs/src/GHC.Base.html#line-336
21:48:00 <maerwald> cheeky
21:48:27 CiaoSen joins (~Jura@p200300c95730dd002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
21:50:37 <maerwald> I think I've never relied on this instance
21:51:02 <[exa]> maerwald: it's lovable tho
21:53:00 × ubert quits (~Thunderbi@p200300ecdf4fca48e6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
21:54:18 <[exa]> Inst: I got it working in C, lemme try with FFI
21:54:40 <Inst> i also got it worknig in C, I just don't understand how to hack the software apart so I can get a windows implementation
21:54:43 zincy joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
21:54:46 <Inst> btw, exa, thank you for taking the effort for me
21:55:46 <dsal> :t comparing (snd <> fst) -- maerwald it's pretty useful for stuff like this.
21:55:47 <lambdabot> (Ord a, Semigroup a) => (a, a) -> (a, a) -> Ordering
21:56:29 <maerwald> I'd probably rather write it out
21:56:43 <maerwald> 4 weeks later this small piece of code will waste 10 minutes of my time :p
21:57:02 Cajun joins (~Cajun@user/cajun)
21:57:05 <Inst> and you don't need to take too much time, if it doesn't work, it doesn't work, it's no biggy
21:57:10 × betelgeuse quits (~betelgeus@94-225-47-8.access.telenet.be) (Ping timeout: 244 seconds)
21:58:13 <dsal> It's super useful when you're defining a comparison for a bunch of fields and you want to sort by them in order.
21:58:17 <hexology> > (liftA2 (<>) snd fst) ([1,2,3], [4,5,6])
21:58:18 <lambdabot> [4,5,6,1,2,3]
21:58:30 <hexology> > (snd <> fst) ([1,2,3], [4,5,6])
21:58:32 <lambdabot> [4,5,6,1,2,3]
21:59:04 <dsal> > sortBy (comparing snd <> comparing fst) [(3,4), (2,1), (2,3)]
21:59:06 <lambdabot> [(2,1),(2,3),(3,4)]
21:59:29 <[exa]> Inst: ah windows, I'm not very good at that system :D
21:59:31 <dsal> (which in this case is just swap, but I don't have a record handy)
21:59:39 <Inst> yup
21:59:52 <Inst> tbh i wouldn't mind hiring someone, it'd just take more time than needed, fiverr etc
22:00:20 <[exa]> yeah windows problem require microsoft solutions
22:00:41 <maerwald> I thought gtk+ kinda works on windows?
22:00:50 <[exa]> anyway it has to work, did you manage to get any FFI working on windows?
22:01:07 <[exa]> maerwald: doesn't even need gtk+, the thing's got raw winapi implementation ifdef'd
22:01:29 <maerwald> what thing
22:01:37 <Inst> i got capi working with a helloworld file
22:02:33 <[exa]> maerwald: we're trying to wrap this https://github.com/mlabbe/nativefiledialog to get some kind of reasonable file open functionality over platforms
22:03:04 <Inst> thank you for trying to help, [exa]
22:03:29 <maerwald> so you're trying to create bindings
22:04:06 <[exa]> either that, or just call it reasonably using FFI on windows
22:04:11 <Cajun> it would be very nice to get native windows support for haskell, but it seems like it would be a bunch of extra work to maintain multiple versions of things and/or upgrade things to also include windows support (like graphics libraries)
22:04:21 <[exa]> I'm not really into windows stuff. :D
22:04:58 <Cajun> i cant see not developing on linux and cant see my main os being linux :P
22:05:52 <[exa]> Cajun: you'd probably work with BSD just as well, but windows...
22:07:20 <Cajun> well dual booting windows would be an option for things that require it, but i much prefer the UX of windows (bar the annoying updates and privacy issues)
22:07:35 <Cajun> the complications of switching is too high at this point, which is probably also the case for many otehrs
22:07:50 <[exa]> I didn't touch that thing since like 2004
22:07:55 × nvmd quits (~nvmd@user/nvmd) (Ping timeout: 256 seconds)
22:09:36 <maerwald> I'd switch to windows if it had a decent tiling windows WM and was generally less annoying (e.g. a minimal mode that doesn't do sh*t unless I tell it to)
22:09:40 nvmd joins (~nvmd@user/nvmd)
22:09:53 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
22:10:07 <Cajun> what do you think of the win11 tiling stuff? its a step but its definitely not xmonad
22:10:10 <boxscape_> maerwald it has a few bugs but I'm reasonably happy with workspacer as a tiling WM for windows
22:10:49 <maerwald> because I'm rather sick of broken thermal control and broken suspend to ram on linux
22:10:50 × zincy quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Remote host closed the connection)
22:11:56 × Cajun quits (~Cajun@user/cajun) (Quit: Client closed)
22:12:09 Cajun joins (~Cajun@user/cajun)
22:12:58 <monochrom> Whereas in the case of my laptop, actually windows breaks, linux doesn't. :)
22:13:23 <maerwald> I've never had working s2ram or thermal control on linux in over 15 years
22:13:36 <maerwald> (thinkpads)
22:14:13 <monochrom> (Mine is a Dell Inspiron.)
22:14:15 <janus> how do you verify whether thermal control is working? i'd like to know if mine is broken
22:14:29 <maerwald> recently, s2ram works, but after 3 or 4 resumes, the CPU throttling becomes so wonky, that I can't edit source code without input lag anymore
22:14:38 <maerwald> only a reboot fixes it
22:14:50 <[exa]> janus: if it overheads af, it's probably not working :D
22:15:17 <janus> so many webpages take forever to load on this laptop, i thought it was just the web getting heavier
22:15:32 <janus> but if throttling breaks after suspending, that could explain it too
22:15:51 <[exa]> maerwald: btw I'm on e585 now, kinda decided that just booting everytime is going to save more time than trying to fix suspend
22:16:00 <monochrom> I think you can use powertop to make observations.
22:16:01 <[exa]> (hibernate works tho)
22:16:15 <Inst> also, exa, random brainfarts: I wonder if Haskell could be used for an honors intro-programming sequence
22:16:17 <maerwald> wow, hibernate never worked for me, not even on desktop
22:16:32 <Inst> i.e, used to teach intro-programming alongside data structures / algorithms
22:16:51 <[exa]> Inst: honors?
22:17:18 <Inst> in some unis, they have honors classes (i.e, expect better students, better work, etc)
22:17:38 <Inst> data structures / algorithms are usulaly "weeders" in many unis, to get people to switch majors if they're not cut out for it
22:17:39 <janus> oh, turns out i had four ghci processes running infinite loops. i thought closing the terminal had killed them o_O
22:18:15 <monochrom> Does Oxford intro-programming counts as honors? Because they do that. :)
22:18:23 <Inst> monochrom: really?
22:18:41 <dolio> Does Strathclyde do that too?
22:18:44 <monochrom> To be fair, they split "intro programming" into 2 courses: functional programming, imperative programming.
22:18:50 <[exa]> janus: you need a cpu use widget :D
22:19:03 <Inst> sorry, gotta go, have something in a few hours
22:19:12 <[exa]> o/
22:19:12 <maerwald> janus: see... windows is more persistent there
22:19:16 <monochrom> But both are 1st-year courses.
22:19:30 <maerwald> it'll crash your entire OS rather than giving up on background processes
22:19:31 <Inst> monochrom: but they package datastructures / algorithms into it, right?
22:19:41 <monochrom> And "Oxford" translates to "honours" :)
22:19:43 <Inst> since in many unis data structures and algorithms are a separate course whose role is to get people to drop out of CS majors
22:20:07 <[exa]> we've got formal logic for that
22:20:17 <Inst> ah i see
22:20:44 <[exa]> and many other fun courses
22:21:02 <monochrom> Ah, Oxford has another 1st-year "Design and analysis of algorithms" course.
22:21:30 <Inst> ah well
22:21:39 × unit73e quits (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Remote host closed the connection)
22:21:44 <Inst> i should learn haskell properly first so i'm not just another blowhard
22:21:47 <[exa]> anyway people either fail right on the basic data structures because they can't do trees, or don't fail at all through the ~5 other datastructure courses
22:21:52 <monochrom> https://www.ox.ac.uk/admissions/undergraduate/courses-listing/computer-science#content-tab--2 and scroll down to Year 1
22:21:56 <dolio> Oh, I guess not. Strathclyde teaches Haskell as a 300 level class.
22:22:32 <monochrom> Me, I would say that the math courses are the ones that are the most effective in kicking out weak students.
22:22:42 <Inst> it's just a random brainfart, I suspect if CS programs had honors intro programming with data structures and algorithms
22:22:43 <Inst> that's weird
22:22:45 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
22:22:49 yannl joins (~yannl@host86-171-10-101.range86-171.btcentralplus.com)
22:23:01 <Inst> i'm a weak student and i got A- / A on multivar and linear algebra respectively
22:23:07 <Inst> unless you mean proof-based math
22:23:21 <dolio> Which I think is the same level my university did it, except it was a survey course on 'all the non-imperative ways to program'.
22:23:36 <monochrom> Oh, even vanilla "compute these integrals" calculus is already tough enough.
22:24:07 <monochrom> But of course, don't worry, both Oxford and my uni have a healthy dose of proof courses to make sure!
22:24:09 <maerwald> math always made me so anxious that I over-learned and then got anxious, because I finished the exam so early that I thought I messed it up
22:24:11 <[exa]> or "decompose these matrices to something"
22:24:13 <Inst> yeah monochrom
22:24:22 <monochrom> (Not to say that my uni is comparing to Oxford! heh)
22:24:23 <Inst> i have a weak background in profo-based mathematics / geometry
22:24:32 <Inst> i withdrew from real analysis twice ;_;
22:25:00 [exa] hands over a theorem
22:25:13 <Inst> on the other hand, linear algebra etc feels easier and more intuitive for me, and a professor teaching my Calc 1+2 course (accelerated, summer) told me I was probably an algebraist by nature
22:25:19 Inst combusts into flames
22:25:31 <geekosaur> a bit behind but hibernation worked fine on my previous laptop. (I haven't bothered to test on this one but most things aside from the fingerprint reader seem to work on it.)
22:25:38 <maerwald> and today, I have zero use of actual maths
22:25:39 <Inst> so i probably should start with abstract algebra instead
22:25:47 <monochrom> Here is the thing. The formulas/procedures for doing differentiation by hand is a huge big recursive algorithm. That in itself is already a big challenge to the average person.
22:25:58 <[exa]> Inst: yeah that helps, you'll reach calculus from the other side, that works too
22:26:02 <maerwald> smarter people do maths and I just use their libraries :p
22:26:06 × nvmd quits (~nvmd@user/nvmd) (Ping timeout: 244 seconds)
22:26:11 <dolio> Algebra is more relevant for computing for the most part anyway.
22:26:28 deadmarshal joins (~deadmarsh@95.38.112.170)
22:26:34 <[exa]> many courses include calculus just because the proofs with infinities are still kindof tangible there, when compared to topology and advanced statistics
22:27:04 <Inst> i only got an A on the accelerated calculus stuff because I grinded problems
22:27:10 nvmd joins (~nvmd@user/nvmd)
22:27:21 <Inst> so I could do it algorithmically without strong understanding of the formal structure underneath
22:27:31 <maerwald> I hate breadth first approach (which is what most courses do)
22:27:32 Dinya joins (~Dinya@77-56-51-127.dclient.hispeed.ch)
22:28:00 <monochrom> I fear real analysis too. I do OK but yeah I'm more an equational reasoning kind of person.
22:28:30 × mmhat quits (~mmh@55d4bfe6.access.ecotel.net) (Quit: WeeChat 3.3)
22:28:45 <monochrom> would rather chase commuting diagrams than manage epsilons
22:30:39 × deadmarshal quits (~deadmarsh@95.38.112.170) (Ping timeout: 250 seconds)
22:31:21 <yin> my hoogle-fu is failing me. if i want to see the definition of a specific instance, how do we search for it?
22:31:26 <[exa]> monochrom: diagrams get complex, but reals just fold back to reals :]
22:31:46 <dsal> yin: You can usually click on source from the docs.
22:32:16 <Dinya> Hi! I've got a question: I am trying to improve my workflow by using "ghcid". ghcid watches my files and reloads ghci whenever they change. That works fine. The problem is I want to jump into that shell and interact with the ghci thereafter. But it does not allow me to write anything. Can I do anything about that? (I am on Windows 10/PowerShell.)
22:32:24 <[exa]> yin: not sure if instances can be found directly but you can click them at datatype definition usually
22:33:10 <yin> eh. i'm searching for (-> r) instances :P
22:33:17 <monochrom> We usually run a second ghci for the interaction.
22:33:27 <yin> *((->) r)
22:33:29 <[exa]> yin: ah so, base stuff is in Prelude
22:33:38 burnsidesLlama joins (~burnsides@dhcp168-022.wadham.ox.ac.uk)
22:33:46 <[exa]> yin: otoh that doesn't really answer the question very generally right. :]
22:33:55 <maerwald> just use ghci, no ghcid
22:34:09 <maerwald> instant feedback isn't always a good thing
22:34:46 <[exa]> yin: anyway, https://hackage.haskell.org/package/base-4.16.0.0/docs/src/GHC.Base.html#line-1007
22:34:58 <maerwald> I use HLS and such things more for reading unknown code, less when writing code. It's distracting and steals focus
22:35:06 <yin> [exa]: it doesn't but i can usually find what i want. i wasn't finding it now because i was getting lost in base
22:35:16 <boxscape_> personally I find instant feedback quite helpful
22:35:30 <maerwald> I found out that it makes me worse at coding
22:35:36 <[exa]> yin: I literally did ctrl+f Applicative ((
22:35:52 <maerwald> I think deeper about code when I only compile every 15 minutes or so
22:36:11 <monochrom> I use a fountain pen for its instant tactile feedback. :)
22:36:38 jinsun__ joins (~quassel@user/jinsun)
22:36:47 <jkaye> maerwald, fwiw that sounds pretty terrible to me. To each their own I think
22:36:54 <monochrom> The feeling of lucid inkflow deceives me into believing that my thinking is lucid too haha.
22:36:55 <jkaye> I definitely would not recommend that to a newcomer
22:37:20 <Dinya> Well, the reason I got to ghcid is actually that I noticed that ":r" in ghci does not reprint warnings. Do you know how I can force it to?
22:37:24 <maerwald> my maximum of coding without feedback and then compiling without a single error was about 30 minutes
22:37:27 <maerwald> and it's quite pleasing
22:37:48 <maerwald> of course that only works with code you're very familiar with
22:37:55 <maerwald> but still quite hard
22:38:28 <maerwald> the brain is just more active
22:38:37 <dsal> yin: I started with the class, looked at instances, found (->r) and clicked on source.
22:39:01 <Inst> oh, by the way
22:39:20 <Inst> if you're curious, the maintainer of NativeFileDialog-Extended on Github learned Haskell
22:39:54 × jinsun quits (~quassel@user/jinsun) (Ping timeout: 260 seconds)
22:40:19 <Inst> I sent him a message asking him for help, but he explicitly refuses to provide paid support, so probably no help there. If I get lucky, on the other hand, he might be able to put something up on Hackage, which will be helpful for future attempts to do Main = Do -> IO courses
22:40:40 <yin> [exa], dsal: thanks
22:42:02 <yin> () is Monoid
22:42:39 <yin> > () <> ()
22:42:41 <lambdabot> ()
22:43:14 <yin> > mappend () ()
22:43:15 <lambdabot> ()
22:43:30 <yin> % () <> ()
22:43:30 <yahb> yin: ()
22:43:37 <yin> ok
22:43:41 kupi joins (uid212005@id-212005.hampstead.irccloud.com)
22:45:13 <dsal> > mempty :: ()
22:45:14 <lambdabot> ()
22:45:22 <yin> obviously
22:46:15 <yin> what are stimes and sconcat?
22:46:40 × ent quits (entgod@kapsi.fi) (Ping timeout: 268 seconds)
22:46:46 ent joins (entgod@kapsi.fi)
22:47:45 <dsal> instance Semigroup () where _ <> _ = (); sconcat _ = (); stimes _ _ = ()
22:48:21 <yin> no i mean, in general
22:48:36 <yin> what is the idea behind stimes and sconcat?
22:48:55 <monochrom> stimes is for doing x <> x <> ... <> x (n terms)
22:49:09 <monochrom> sconcat is for doing x1 <> x2 <> ... <> xn
22:49:19 <dsal> Oh, stimes is super great. I wish they taught this stuff in elementary school.
22:49:49 <dsal> There was a thread on twitter recently where people were super annoyed that anyone could even conceive of multiplying by zero.
22:50:27 <dsal> But if you learned addition and multiplication as both being monoids in elementary school, exponentiation would both be obvious and not "the end"
22:50:33 <monochrom> Ah, stimes doesn't allow 0, don't worry haha
22:51:45 <yin> i remember being *very* annoyed at everyone just accepting division as "just another operation on integers"
22:51:51 × Topsi quits (~Tobias@dyndsl-095-033-090-230.ewe-ip-backbone.de) (Read error: Connection reset by peer)
22:51:51 <dsal> You kind of have to go the other way around, I guess. But you get the same idea.
22:51:55 <dsal> Division is a little differnet.
22:52:07 <yin> not a little
22:52:14 <yin> a lot
22:52:22 <yin> it messed with me, man
22:52:40 <dsal> I just mean all of addition, multiplication, exponentiation, etc.. is mempty <> a <> b <> c
22:52:44 <janus> > 1/0
22:52:45 <lambdabot> Infinity
22:52:50 <janus> perfectly well defined
22:53:00 <monochrom> 0 itself messed with a lot of people back then, too.
22:53:19 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
22:53:21 <monochrom> And oh yeah 0^0 still messes with a lot of people, today.
22:53:39 <dsal> Right. I think it would less if taught as monoids.
22:53:44 × yannl quits (~yannl@host86-171-10-101.range86-171.btcentralplus.com) (Quit: Konversation terminated!)
22:54:10 <yin> dsal: i feel like i should laugh at that but i also now that you're serious
22:55:07 <yin> i remember kids having trouble counting beans
22:55:28 <yin> are you sure we can handle monoids at 6 years old?
22:55:32 <janus> kids need to stop using java beans. say no to drugs
22:56:33 <yin> abstraction is hard to jump-start in kids, everyone develops it at a different rate
22:56:35 × tubogram quits (~tubogram@user/tubogram) (Quit: Ping timeout (120 seconds))
22:56:54 <dsal> yin: So, we're taught that addition is combining two things and that we can do it in various orders and there's a special value that doesn't change the result.
22:56:57 tubogram joins (~tubogram@user/tubogram)
22:57:16 <dsal> And then we're taught that multiplication is combining two things a different way and we can do it in various orders and there's a special value that doesn't change the result.
22:57:54 <yin> hm... i think i was taught everything geometrically
22:58:26 <yin> i remembers beans
22:58:34 <monochrom> Not sure I'm serious in the following, but brainwashing kids with that "change" wording is probably why everyone thinks that imperative programming is more "intuitive"!
22:58:37 <yin> and little cubes
23:00:06 × michalz quits (~michalz@185.246.204.61) (Remote host closed the connection)
23:00:09 <dsal> yin: Sure, that's also fine as long as you don't have to ever do negative numbers. I did some algebra stuff like that in elementary school as well.
23:00:29 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
23:00:54 <dsal> But the way I learned stuff, addition, multiplication, and exponentiation were just three different things. Kind of built on top of each other…
23:01:06 falafel joins (~falafel@cpe-76-168-195-162.socal.res.rr.com)
23:01:14 <dsal> It wasn't until the "you can't multiply by zero!" thing came along that I realized how dumb this was.
23:01:39 <yin> you can't multiply by zero?
23:02:00 <monochrom> I think of that as just another flaring of freaking out at 0.
23:02:16 <monochrom> Every 10 years or something, people would do that.
23:02:31 geekosaur is just kinda fascinated at the whole discussion
23:02:40 <yin> wait what are you talking about?
23:03:16 <monochrom> Last time it was tax forms etc splitting "how many children do you have?" into 2 questions: "A. Do you have children? B. If yes, how many?"
23:07:28 <dsal> yin: Just why I was thinking about this. Dumb thing that showed up on twitter.
23:08:04 <monochrom> Hypothesis: Social collective freaking out at 0 coincides with solar flares >:)
23:08:10 <dsal> > 3 <> 4 :: Sum Int
23:08:12 <lambdabot> Sum {getSum = 7}
23:08:19 <dsal> stimes just makes a bunch of copies and folds.
23:08:24 <dsal> > stimes 3 4 :: Sum Int
23:08:26 <lambdabot> Sum {getSum = 12}
23:08:32 <dsal> > stimes 3 4 :: Product Int
23:08:34 <lambdabot> Product {getProduct = 64}
23:08:38 <dsal> > stimes 0 4 :: Sum Int
23:08:40 <lambdabot> Sum {getSum = 0}
23:08:43 <dsal> > stimes 0 4 :: Product Int
23:08:44 <lambdabot> Product {getProduct = 1}
23:08:59 × dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.3)
23:09:03 <dsal> So that's 4*0 and 4^0
23:10:37 <dsal> A semigroup that isn't a monoid needs a positive multiplier, but a monoid has mempty, so that's the answer at zero. Which is why *0 and ^0 work.
23:10:54 <dsal> > stimes 5 f :: Expr
23:10:56 <lambdabot> ((f <> f) <> f <> f) <> f
23:11:40 <janus> what would be needed in the typeclass hierarchy to have it be exception safe?
23:12:21 <janus> > stimes (-1) 1 :: Product Int
23:12:23 <lambdabot> Product {getProduct = *Exception: Negative exponent
23:13:31 <janus> i guess it would work better in haskell if negative exponentation is simply not done and people work with some kind of reciprocal operator?
23:15:26 <janus> i guess it is just something haskellers have to deal with, a mathematical operation that has different constraints for different input values will need to be split into multiple operations
23:15:36 brainfreeze joins (~brainfree@2a03:1b20:4:f011::20d)
23:16:20 <monochrom> Negative exponentiation makes sense when you have a group.
23:18:02 <yin> speaking of it
23:18:32 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 240 seconds)
23:18:51 <yin> is it too late to fix all function types that should be Nat instead of Int?
23:19:14 <janus> monochrom: right, but then that rubs a haskeller the wrong way when the mathematician has the same name for it. because according to a haskeller, different type class => different name, right ?
23:19:32 <yin> and finally have a decent algebraic Nat that "collapses" as it gets evaluated?
23:19:39 <monochrom> For exception-safe, you would go for "PositiveNatural -> a -> a". Note that sconcat already gets there, it's "Nonempty a -> a", so not even "[a] -> a".
23:20:27 <monochrom> In the case of Num-hierarchy exponentiation, we do have ^, ^^, **
23:21:01 <monochrom> Although, ^ is not exception-safe.
23:21:05 lavaman joins (~lavaman@98.38.249.169)
23:21:51 × alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection)
23:22:11 alzgh joins (~alzgh@user/alzgh)
23:23:21 <monochrom> About Nat. Firstly, it already has a name, it's Word.
23:23:26 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
23:24:45 <monochrom> Secondly, last time "length :: [a] -> Natural/Word" was brought up, the counterpoint was that we want to allow "length xs - k" to be negative, and even once in a while "k - length xs".
23:24:47 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
23:24:47 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
23:24:47 wroathe joins (~wroathe@user/wroathe)
23:25:32 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
23:25:51 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
23:26:02 <monochrom> It participates in so many formulas that have intermediate negative answers that Int/Integer make more sense.
23:26:29 <yin> sense is overrated
23:27:01 <monochrom> Me, I believe in refinement types more than dependent types.
23:27:11 × Alex_test quits (~al_test@94.233.240.96) (Ping timeout: 245 seconds)
23:27:38 <janus> yin: the Nat/Fins in idris don't collapse in the repl and they are super slow. so maybe it is still a research problem to find out how to do that
23:27:50 AlexNoo_ joins (~AlexNoo@178.34.163.82)
23:27:58 × AlexZenon quits (~alzenon@94.233.240.96) (Ping timeout: 260 seconds)
23:28:06 <janus> yin: so you have to remember to write `:exec <your computation>` and then it will be compiled first
23:28:23 × AlexNoo quits (~AlexNoo@94.233.240.96) (Ping timeout: 256 seconds)
23:28:33 <janus> a real bummer to have working code that i threw out only because i didn't know that....
23:30:49 <janus> at least the difference between the compiled and the interpreted code was never that big in ghc
23:31:13 <janus> but i guess it is to be expected when the type system gets all that power
23:31:18 × cjb quits (~cjbayliss@user/cjb) ()
23:31:48 AlexZenon joins (~alzenon@178.34.163.82)
23:31:54 Alex_test joins (~al_test@178.34.163.82)
23:33:35 cjb joins (~cjbayliss@user/cjb)
23:34:32 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
23:37:30 × Cajun quits (~Cajun@user/cajun) (Ping timeout: 256 seconds)
23:43:02 × acidjnk_new3 quits (~acidjnk@p200300d0c7149f82889e7e27a4cfa8d6.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
23:52:11 × srk quits (~sorki@user/srk) (Ping timeout: 245 seconds)
23:52:21 srk_ joins (~sorki@user/srk)
23:53:51 × falafel quits (~falafel@cpe-76-168-195-162.socal.res.rr.com) (Ping timeout: 250 seconds)
23:55:00 srk_ is now known as srk
23:57:33 falafel joins (~falafel@cpe-76-168-195-162.socal.res.rr.com)

All times are in UTC on 2021-11-08.