2021/11/08

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