2021/03/18

2021-03-18 00:00:21 +0100Chai-T-Rex(~ChaiTRex@gateway/tor-sasl/chaitrex) (Remote host closed the connection)
2021-03-18 00:00:26 +0100xelxebar(~xelxebar@gateway/tor-sasl/xelxebar) (Remote host closed the connection)
2021-03-18 00:00:51 +0100Chai-T-Rex(~ChaiTRex@gateway/tor-sasl/chaitrex)
2021-03-18 00:00:57 +0100xelxebar(~xelxebar@gateway/tor-sasl/xelxebar)
2021-03-18 00:01:06 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2021-03-18 00:02:25 +0100notzmv(~zmv@unaffiliated/zmv)
2021-03-18 00:04:17 +0100jumper149(~jumper149@ip185225.wh.uni-hannover.de) (Quit: WeeChat 3.1)
2021-03-18 00:05:06 +0100ADG1089__(~aditya@106.214.253.186) (Remote host closed the connection)
2021-03-18 00:05:23 +0100michalz(~user@185.246.204.39) (Remote host closed the connection)
2021-03-18 00:07:46 +0100Yushida(~is_saeed@79.127.84.243)
2021-03-18 00:08:02 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
2021-03-18 00:08:02 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com) (Read error: Connection reset by peer)
2021-03-18 00:08:37 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com)
2021-03-18 00:09:57 +0100ADG1089__(~aditya@106.214.253.186)
2021-03-18 00:10:54 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 256 seconds)
2021-03-18 00:10:56 +0100thc202(~thc202@unaffiliated/thc202) (Ping timeout: 240 seconds)
2021-03-18 00:11:42 +0100Yushida(~is_saeed@79.127.84.243) (K-Lined)
2021-03-18 00:12:13 +0100elliott_(~elliott_@pool-108-51-101-42.washdc.fios.verizon.net)
2021-03-18 00:12:33 +0100xwvvvvwx(xwvvvvwx@gateway/vpn/mullvad/xwvvvvwx) (Ping timeout: 264 seconds)
2021-03-18 00:16:20 +0100hvr_(~hvr@haskell/developer/hvr)
2021-03-18 00:16:26 +0100Synthetica(uid199651@gateway/web/irccloud.com/x-ofdesgwrwkzassad) (Quit: Connection closed for inactivity)
2021-03-18 00:17:21 +0100hvr(~hvr@haskell/developer/hvr) (Ping timeout: 264 seconds)
2021-03-18 00:18:01 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2021-03-18 00:19:08 +0100dbmikus(~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
2021-03-18 00:20:07 +0100xwvvvvwx(xwvvvvwx@gateway/vpn/mullvad/xwvvvvwx)
2021-03-18 00:21:09 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-03-18 00:21:55 +0100Tario(~Tario@201.192.165.173)
2021-03-18 00:21:55 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com) (Read error: Connection reset by peer)
2021-03-18 00:22:13 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com)
2021-03-18 00:23:00 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com) (Read error: Connection reset by peer)
2021-03-18 00:23:18 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com)
2021-03-18 00:25:45 +0100dunj3(~dunj3@2001:16b8:3085:a900:c9d7:3fe2:e55d:427a) (Quit: Leaving)
2021-03-18 00:26:22 +0100Sornaensis(~Sornaensi@077213203030.dynamic.telenor.dk)
2021-03-18 00:26:32 +0100frozenErebus(~frozenEre@94.128.234.223)
2021-03-18 00:28:55 +0100ozataman(~ozataman@pool-100-37-221-69.phlapa.fios.verizon.net)
2021-03-18 00:29:25 +0100cosimone(~user@2001:b07:ae5:db26:e434:bd94:98f9:541d) (Quit: ERC (IRC client for Emacs 28.0.50))
2021-03-18 00:30:18 +0100Sorny(~Sornaensi@85.203.36.112) (Ping timeout: 246 seconds)
2021-03-18 00:30:33 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-03-18 00:39:22 +0100ADG1089__(~aditya@106.214.253.186) (Remote host closed the connection)
2021-03-18 00:39:40 +0100pavonia(~user@unaffiliated/siracusa)
2021-03-18 00:40:04 +0100howdoi(uid224@gateway/web/irccloud.com/x-dtnuksdjtbsicedj) (Quit: Connection closed for inactivity)
2021-03-18 00:40:09 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-03-18 00:43:38 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
2021-03-18 00:47:11 +0100__monty__(~toonn@unaffiliated/toonn) (Quit: leaving)
2021-03-18 00:48:18 +0100frozenErebus(~frozenEre@94.128.234.223) (Ping timeout: 260 seconds)
2021-03-18 00:48:20 +0100bobweb(6bb893db@cpe-107-184-147-219.socal.res.rr.com)
2021-03-18 00:49:05 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
2021-03-18 00:49:15 +0100frozenErebus(~frozenEre@94.128.230.170)
2021-03-18 00:52:21 +0100Tario(~Tario@201.192.165.173)
2021-03-18 00:52:44 +0100andreas31(~andreas@gateway/tor-sasl/andreas303) (Remote host closed the connection)
2021-03-18 00:53:18 +0100andreas31(~andreas@gateway/tor-sasl/andreas303)
2021-03-18 00:56:55 +0100hvr(~hvr@haskell/developer/hvr)
2021-03-18 00:57:19 +0100hvr_(~hvr@haskell/developer/hvr) (Read error: Connection reset by peer)
2021-03-18 00:57:33 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 264 seconds)
2021-03-18 00:58:58 +0100 <bobweb> Hi. I have this problem: https://paste.tomsmeding.com/33W7QoKP Please help me solve why monoidRightIdentity (Identity "boo) appears to go into an infinite loop. Thank you.
2021-03-18 00:59:12 +0100 <bobweb> "boo"
2021-03-18 00:59:59 +0100 <monochrom> Ohai bobweb, I was wrong last time. If you do "instance Semigroup (Or a b)", the exercise can be solved, the book was right.
2021-03-18 01:00:37 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 260 seconds)
2021-03-18 01:00:56 +0100 <nshepperd> uh, mempty = mempty?
2021-03-18 01:01:14 +0100 <monochrom> You don't need the assumptions (Semigroup a, Semigroup b) because <> for Or is supposed blindly always prefer the earliest Snd and then the latest Fst.
2021-03-18 01:01:19 +0100 <Axman6> This is definitely correct
2021-03-18 01:01:37 +0100 <nshepperd> this recursion seems unlikely to terminate
2021-03-18 01:01:45 +0100frozenErebus(~frozenEre@94.128.230.170) (Ping timeout: 264 seconds)
2021-03-18 01:01:54 +0100 <monochrom> And for this one, you need "mempty = Identity (mempty)".
2021-03-18 01:02:03 +0100Nik05(~Nik05@unaffiliated/nik05)
2021-03-18 01:02:05 +0100 <Axman6> (<>) mempty (Identity x) = Identity x id definitely wrong
2021-03-18 01:02:07 +0100 <bobweb> monochrom: OK, so i'll drop the constraints and try again.
2021-03-18 01:02:10 +0100 <monochrom> Similarly for mappend. Exercise for the reader.
2021-03-18 01:02:25 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com) (Read error: Connection reset by peer)
2021-03-18 01:02:54 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com)
2021-03-18 01:03:03 +0100 <bobweb> monochrom: OK, I was confused about how to define mempty for Monoid (Identity a).
2021-03-18 01:03:13 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser)
2021-03-18 01:03:40 +0100 <bobweb> mempty = Identity (mempty) is what I want?
2021-03-18 01:03:45 +0100 <Axman6> since Identity only has one constructor, I can guarantee you that you will need mempty = Identity ???
2021-03-18 01:04:34 +0100 <Axman6> but to use mempty = Identity mempty, you need more than a Semigroup constraint, because mempty doesn't come from Semigroup
2021-03-18 01:05:35 +0100 <monochrom> You're trying to make "mempty :: Identity a".
2021-03-18 01:05:36 +0100 <Axman6> bobweb: for your semigroup instance, (<>) mempty (Identity x) = Identity x is _exactly_ the same as writing (<>) literallyAnything (Identity x) = Identity x
2021-03-18 01:05:41 +0100 <bobweb> Yeah, I'm pushing the limits of my mental gymnastic ability. LOL. I can't see the identity for (Identity a)!
2021-03-18 01:05:51 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-03-18 01:06:13 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-03-18 01:07:29 +0100 <Axman6> bobweb: so, big hint time, to define (<>) for Identity, you only need one equation, not three
2021-03-18 01:08:42 +0100 <bobweb> Uh, (Identity x) <> (Identity x) == Identity x ?
2021-03-18 01:08:44 +0100 <monochrom> You understand that "(<>) mempty (Identity x) = Identity x" just means "(<>) foo (Identity x) = Identity x", right? RIGHT?
2021-03-18 01:08:57 +0100 <Axman6> bobweb: that type checks, but it's not very useful
2021-03-18 01:09:30 +0100 <Axman6> we want to make use of the fact that a is also a Semigroup
2021-03-18 01:09:31 +0100 <monochrom> You need to review "variable shadowing"
2021-03-18 01:09:44 +0100 <monochrom> Actually...
2021-03-18 01:10:01 +0100 <monochrom> > let {f (Just x) (Just x) = x} in ()
2021-03-18 01:10:03 +0100 <lambdabot> error:
2021-03-18 01:10:03 +0100 <lambdabot> • Conflicting definitions for ‘x’
2021-03-18 01:10:03 +0100 <lambdabot> Bound at: <interactive>:1:14
2021-03-18 01:10:28 +0100s00pcan(~chris@075-133-056-178.res.spectrum.com)
2021-03-18 01:10:39 +0100 <Axman6> one feature I wish we had from Erlang
2021-03-18 01:10:58 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
2021-03-18 01:11:33 +0100 <monochrom> In the case of this exercise, the error (as opposed to the feature) actually saves a lot of confusion.
2021-03-18 01:11:56 +0100 <Axman6> > let f (Just x) = \(Just x) -> x in f (Just 1) (Just 2)
2021-03-18 01:11:58 +0100 <lambdabot> 2
2021-03-18 01:12:22 +0100 <Axman6> yeah (sorry, should do confusing things in PM instead of here)
2021-03-18 01:12:28 +0100cheater1(~user@unaffiliated/cheater)
2021-03-18 01:12:32 +0100 <bobweb> OK, monoid = binary associative without identity; but we are not accessing the a in Identity a... oh wait, I am accessing a, but I thought I shouldn't be...
2021-03-18 01:12:49 +0100 <Axman6> monoid has an identity, semigroup doesn't
2021-03-18 01:13:23 +0100 <bobweb> yeah, sorry, backwards : has identity.
2021-03-18 01:13:27 +0100 <monochrom> Why are you not doing "instance Monoid a => Monoid (Identity a)"?
2021-03-18 01:13:30 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2021-03-18 01:13:58 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2021-03-18 01:14:01 +0100 <bobweb> monochrom: cause the compiler told me too...
2021-03-18 01:14:26 +0100 <bobweb> but yeah, maybe i should do monoid =>
2021-03-18 01:14:39 +0100cheater(~user@unaffiliated/cheater) (Ping timeout: 244 seconds)
2021-03-18 01:14:43 +0100cheater1cheater
2021-03-18 01:16:08 +0100 <Axman6> think about it a bit first - Identity wraps a single value of a given type. we know (because you've been told) that you can make an instance of Monoid for Identity. so first problem is mempoty, how do we make something of type Identity a? Well we use Identity, and some value of type a. how do we magic up a value of type a?
2021-03-18 01:16:08 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com) (Read error: Connection reset by peer)
2021-03-18 01:16:15 +0100notzmv(~zmv@unaffiliated/zmv) (Ping timeout: 265 seconds)
2021-03-18 01:16:23 +0100 <Axman6> mempty*
2021-03-18 01:16:29 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com)
2021-03-18 01:16:58 +0100 <bobweb> OK, works now! Thank you all! : https://paste.tomsmeding.com/78ZjwXlA
2021-03-18 01:18:35 +0100 <Axman6> can you explain how it works?
2021-03-18 01:19:22 +0100coot(~coot@37.30.58.223.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-03-18 01:19:59 +0100howdoi(uid224@gateway/web/irccloud.com/x-lmfzccdglbgutamn)
2021-03-18 01:22:37 +0100 <bobweb> Not exactly. I get that the identity for type (Identity a) will be mempty defined as (Identity mempty). OK. But it's not clear to me why the binary function (<>) on (Identity x) (Identity y) should be (Identity (x <> y))... It seems like we are adding structure when identity is just supposed to kick back whatever gets put in.??
2021-03-18 01:22:37 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com) (Read error: Connection reset by peer)
2021-03-18 01:23:05 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com)
2021-03-18 01:24:05 +0100 <bobweb> I know I am missing some subtlety about how the compiler sees x <> y, but I can't quite grasp it...
2021-03-18 01:24:41 +0100 <Axman6> I think you're attributing too much meaning to Identity
2021-03-18 01:25:45 +0100 <Axman6> it is literally just a wrapper of other types, it is the trivial Monad, and in general all instances of classes will just use whatever isntance the wrapped type has. it's got nothing to do with identity functions really
2021-03-18 01:25:57 +0100 <monochrom> That's possible. "mempty is the identity element of the monoid" has a name clash with this "newtype Identity a" type.
2021-03-18 01:26:11 +0100 <monochrom> name clash. Nothing more. No relation.
2021-03-18 01:26:19 +0100 <Axman6> Eq for Identity will look like: instance Eq a => Eq (Identity a) where (==) (Identity x) (Identity y) == x == y
2021-03-18 01:26:49 +0100 <Axman6> uh, (==) (Identity x) (Identity y) = x == y
2021-03-18 01:28:26 +0100CoconutCrab(~Cua@unaffiliated/coconutcrab)
2021-03-18 01:30:45 +0100jamm_(~jamm@unaffiliated/jamm)
2021-03-18 01:32:38 +0100 <bobweb> Yes. Name clash. I think I'm beginning to see... it's not that an identity is resulting from (Identity x) <> (Identity y), it is simply that the data constructor name is leading me to think so. OK, I think I'll be OK now, after I meditate on this a bit more. Thank you all!
2021-03-18 01:35:19 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 244 seconds)
2021-03-18 01:35:26 +0100jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
2021-03-18 01:35:55 +0100bobweb(6bb893db@cpe-107-184-147-219.socal.res.rr.com) (Quit: Connection closed)
2021-03-18 01:37:48 +0100 <monochrom> The road to hell is paved with well-intended meaningful names.
2021-03-18 01:38:58 +0100 <Axman6> newtype Trivial a = Trivial a?
2021-03-18 01:39:18 +0100 <Axman6> just to make you feel even more dumb when you find something isn't trivial
2021-03-18 01:39:52 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com) (Read error: Connection reset by peer)
2021-03-18 01:40:07 +0100 <monochrom> I'm thinking along the line of "newtype VeryPhilosophicallyProfoundWrapper a = VPPW a" to drive home the irony.
2021-03-18 01:40:10 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com)
2021-03-18 01:40:39 +0100 <Axman6> "Woah, everything is just waves man, it's like science or something"
2021-03-18 01:40:57 +0100Deide1(~Deide@217.155.19.23)
2021-03-18 01:41:02 +0100Deide(~Deide@217.155.19.23) (Quit: Seeee yaaaa)
2021-03-18 01:41:02 +0100 <monochrom> and to drive general disgust and distrust in meaningful names.
2021-03-18 01:41:30 +0100 <Axman6> newtype Z a = Z a
2021-03-18 01:42:19 +0100 <Axman6> pi = join @Z; pi :: Z (Z a) -> Z a -- pizza -> 'za
2021-03-18 01:43:35 +0100 <monochrom> tauzza = 2*pizza > pizza
2021-03-18 01:43:52 +0100 <sshine_> "trivial" and "just" are smart-ass words.
2021-03-18 01:44:12 +0100 <spidr> > let pi = join @Z; pi :: Z (Z a) -> Z a -- pizza -> 'za
2021-03-18 01:44:14 +0100 <lambdabot> error:
2021-03-18 01:44:15 +0100 <lambdabot> Pattern syntax in expression context: join@Z
2021-03-18 01:44:15 +0100 <lambdabot> Did you mean to enable TypeApplications?
2021-03-18 01:44:37 +0100 <monochrom> by extension "nothing" is also a smart-ass word.
2021-03-18 01:44:50 +0100 <monochrom> Therefore, "data Maybe a = Nothing | Just a" is a smart-ass type.
2021-03-18 01:45:18 +0100 <spidr> I don't understand just
2021-03-18 01:46:12 +0100dsrt^(~hph@ip98-184-89-2.mc.at.cox.net) ()
2021-03-18 01:46:16 +0100 <Axman6> Maybe a is either nothing or just an a
2021-03-18 01:46:46 +0100 <spidr> but what does just do under the hood, why is it not Mayba a = Nothing | a
2021-03-18 01:46:49 +0100 <monochrom> Have you also heard of the unJust function? :)
2021-03-18 01:47:01 +0100 <spidr> n-no i'm still reading the haskell book
2021-03-18 01:47:01 +0100 <monochrom> Syntax error is why.
2021-03-18 01:47:13 +0100 <monochrom> You always need data constructors.
2021-03-18 01:47:13 +0100 <Axman6> because that's not valid haskell
2021-03-18 01:47:17 +0100 <spidr> ah
2021-03-18 01:47:28 +0100 <Axman6> this isn't typescript
2021-03-18 01:47:54 +0100 <monochrom> Think of data constructors as reminding the computer both which type you're making and which case you're talking about.
2021-03-18 01:47:55 +0100 <sshine_> spidr, if you don't have a data constructor to differentiate a 'Maybe a' value from an 'a' value, then they are aliases. but they can't be aliases if one has a value 'Nothing' in addition.
2021-03-18 01:48:07 +0100 <monochrom> Even when it's trivial to me.
2021-03-18 01:48:12 +0100 <monochrom> err, s/me/you/
2021-03-18 01:48:18 +0100Deide1(~Deide@217.155.19.23) (Quit: Seeee yaaaa)
2021-03-18 01:48:28 +0100Deide(~Deide@217.155.19.23)
2021-03-18 01:48:35 +0100 <spidr> maybe I shouldn't dig so low
2021-03-18 01:48:49 +0100 <spidr> I was trying to find the source of just
2021-03-18 01:49:03 +0100 <monochrom> This is why type inference works. Your data constructor tells the computer about types. You are not saving any typing, afterall.
2021-03-18 01:49:18 +0100hololeap(~hololeap@unaffiliated/hololeap) (Read error: Connection reset by peer)
2021-03-18 01:49:22 +0100 <sshine_> spidr, https://hackage.haskell.org/package/base-4.14.1.0/docs/src/GHC.Maybe.html#Maybe
2021-03-18 01:49:30 +0100 <Axman6> something of type MAybe (Maybe ()) should have three valid patterns, Nothing, Just Nothing and Just (Just ()). if we allowed Nothing | a, which of those patterns does Nothing represent? Nothng or Just Nothing?
2021-03-18 01:50:05 +0100 <monochrom> "data Maybe a = Nothing | Just a" is already the source of Just. And Nothing. And Maybe.
2021-03-18 01:50:06 +0100ep1ctetus_(~epictetus@ip72-194-215-136.sb.sd.cox.net)
2021-03-18 01:50:15 +0100 <spidr> thanks for the link sshine_
2021-03-18 01:50:29 +0100 <Axman6> @src Maybe
2021-03-18 01:50:30 +0100 <lambdabot> data Maybe a = Nothing | Just a
2021-03-18 01:50:30 +0100 <sshine_> spidr, so that data declaration *is* the source of Just.
2021-03-18 01:50:33 +0100 <spidr> this has the source of maybe but not just, although the comment explains it
2021-03-18 01:50:44 +0100 <spidr> ah
2021-03-18 01:51:02 +0100 <sshine_> spidr, Just is a value/pattern constructor for the type Maybe a.
2021-03-18 01:51:24 +0100 <Axman6> that declaration defined Maybe as a type with two constructors, one callen Nothing, one called Just.
2021-03-18 01:51:25 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-03-18 01:51:34 +0100 <spidr> I see
2021-03-18 01:51:35 +0100 <Axman6> called*
2021-03-18 01:51:37 +0100Tario(~Tario@201.192.165.173)
2021-03-18 01:51:43 +0100 <spidr> so it's not a thing outside of maybe?
2021-03-18 01:51:53 +0100hackagewai-middleware-auth 0.2.4.1 - Authentication middleware that secures WAI application https://hackage.haskell.org/package/wai-middleware-auth-0.2.4.1 (lehins)
2021-03-18 01:52:02 +0100hololeap(~hololeap@unaffiliated/hololeap)
2021-03-18 01:52:05 +0100 <sshine_> spidr, yeah so maybe it'd be nicer if everything that got defined was at some point on the left-hand side of an '=', but the data declaration creates a bunch of things, including Just.
2021-03-18 01:52:08 +0100 <monochrom> You need to open to the possibility that one single line of code declares a dozen things at once.
2021-03-18 01:52:16 +0100 <Axman6> data MyType a b = AnA a | AB b BothAAndB a b -- defines three constructors
2021-03-18 01:52:53 +0100 <Axman6> some people find the GADT syntax a little simpler to understand
2021-03-18 01:52:54 +0100 <spidr> yea I'm only up to chapter 7 I should just keep reading
2021-03-18 01:52:58 +0100 <Axman6> data Maybe a where
2021-03-18 01:53:07 +0100 <monochrom> (f, g, h) = ((\x -> x + 1), (\y -> sqrt y - sqrt 2), sin . cos) is one single line that declares and defines 3 functions f, g, h.
2021-03-18 01:53:09 +0100 <Axman6> Nothing :: Maybe a
2021-03-18 01:53:15 +0100 <Axman6> Just :: a -> Maybe a
2021-03-18 01:53:25 +0100 <Axman6> (indentation is hard)
2021-03-18 01:53:29 +0100 <sshine_> spidr, when you also have 'deriving (Eq, Ord)' at the end, the declaration even auto-generates '==', '<=', etc. operators with some expectably meaningful definitions...
2021-03-18 01:53:45 +0100 <monochrom> "foo, bar, quuz :: Int -> Int" is also possible when it comes to writing types.
2021-03-18 01:53:52 +0100epicte7us(~epictetus@ip72-194-215-136.sb.sd.cox.net) (Ping timeout: 276 seconds)
2021-03-18 01:54:10 +0100 <spidr> Axman6: that way of writing it made more sense
2021-03-18 01:54:12 +0100 <spidr> thanks a bunch
2021-03-18 01:54:14 +0100 <sshine_> spidr, e.g. even though we don't know what 'a' is, we get 'Eq a => Eq (Maybe a)' for free when 'deriving Eq' is present. so say you have a Maybe Int, then because Int is an instance of Eq, so is Maybe Int once 'deriving Eq' is enabled for this data declaration.
2021-03-18 01:54:18 +0100gOOgler_(uid125351@gateway/web/irccloud.com/x-xqfkukcjcgrzokzf) (Quit: Connection closed for inactivity)
2021-03-18 01:55:16 +0100 <sshine_> spidr, the data declaration also lets you do pattern matching using Just/Nothing, so they're not just value constructors at this point.
2021-03-18 01:56:00 +0100 <Axman6> the default ADT syntax in Haskell can be quite confusing because it mixes together value level and type level things
2021-03-18 01:56:03 +0100rajivr(uid269651@gateway/web/irccloud.com/x-wwtzhstalquejfsh)
2021-03-18 01:56:25 +0100average(uid473595@gateway/web/irccloud.com/x-fgnpvzuoluocxrze) (Quit: Connection closed for inactivity)
2021-03-18 01:56:30 +0100acidjnk_new(~acidjnk@p200300d0c72b959625b3d356e6f65619.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2021-03-18 01:58:51 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-hdpxwxnieogneqtd) (Quit: Connection closed for inactivity)
2021-03-18 02:00:20 +0100finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Remote host closed the connection)
2021-03-18 02:00:40 +0100Deide(~Deide@217.155.19.23) (Quit: Seeee yaaaa)
2021-03-18 02:00:46 +0100Zialus(~RMF@2001:818:de63:c300:211:32ff:fe8d:ad29) (Quit: i'm out!)
2021-03-18 02:00:54 +0100Deide(~Deide@217.155.19.23)
2021-03-18 02:02:19 +0100Zialus(~RMF@2001:818:de63:c300:211:32ff:fe8d:ad29)
2021-03-18 02:03:20 +0100vs^(~hph@ip98-184-89-2.mc.at.cox.net)
2021-03-18 02:03:21 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com) (Read error: Connection reset by peer)
2021-03-18 02:03:45 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com)
2021-03-18 02:03:59 +0100finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
2021-03-18 02:04:03 +0100Deide(~Deide@217.155.19.23) (Client Quit)
2021-03-18 02:04:38 +0100Deide(~Deide@217.155.19.23)
2021-03-18 02:09:28 +0100Feuermagier(~Feuermagi@2a02:2488:4211:3400:246e:bf09:8453:9d6)
2021-03-18 02:15:24 +0100Tario(~Tario@201.192.165.173) (Remote host closed the connection)
2021-03-18 02:15:27 +0100 <cheater> it takes some learning
2021-03-18 02:15:47 +0100 <cheater> but i've come to love it over any other syntax for defining sum and product types
2021-03-18 02:15:54 +0100conal(~conal@66.115.157.150) (Quit: Computer has gone to sleep.)
2021-03-18 02:16:05 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com) (Read error: Connection reset by peer)
2021-03-18 02:16:21 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com)
2021-03-18 02:16:21 +0100dbmikus(~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 246 seconds)
2021-03-18 02:17:44 +0100Tario(~Tario@201.192.165.173)
2021-03-18 02:20:23 +0100kadoban__(~mud@unaffiliated/kadoban) (Quit: bye)
2021-03-18 02:20:44 +0100 <spidr> sorry had some work come up, but thanks I'll keep reading
2021-03-18 02:21:02 +0100conal(~conal@66.115.157.150)
2021-03-18 02:23:59 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com) (Read error: Connection reset by peer)
2021-03-18 02:24:26 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com)
2021-03-18 02:24:35 +0100dbmikus(~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
2021-03-18 02:25:22 +0100kupi(uid212005@gateway/web/irccloud.com/x-tdvzqgwujuhompnu) (Quit: Connection closed for inactivity)
2021-03-18 02:26:47 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-18 02:27:14 +0100Guest94966(~zmv@unaffiliated/zmv)
2021-03-18 02:28:48 +0100Guest94966notzmv
2021-03-18 02:28:48 +0100dbmikus(~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 245 seconds)
2021-03-18 02:30:31 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com) (Read error: Connection reset by peer)
2021-03-18 02:31:02 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com)
2021-03-18 02:31:13 +0100ozataman(~ozataman@pool-100-37-221-69.phlapa.fios.verizon.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2021-03-18 02:31:17 +0100Aquazi(uid312403@gateway/web/irccloud.com/x-jjnzgdxflmbqonhf) (Quit: Connection closed for inactivity)
2021-03-18 02:32:21 +0100Wizek(uid191769@gateway/web/irccloud.com/x-zjzbzpbnvynaguao) (Quit: Connection closed for inactivity)
2021-03-18 02:32:21 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com) (Read error: Connection reset by peer)
2021-03-18 02:32:35 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com)
2021-03-18 02:34:11 +0100DTZUZU(~DTZUZO@205.ip-149-56-132.net)
2021-03-18 02:35:24 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2021-03-18 02:35:29 +0100augnun(~augnun@2804:14c:658b:41bb:765b:76f0:4857:5bd2)
2021-03-18 02:36:23 +0100hackageory-kratos 0.0.5.8 - API bindings for Ory Kratos https://hackage.haskell.org/package/ory-kratos-0.0.5.8 (njaremko)
2021-03-18 02:36:23 +0100hidedagger(~nate@unaffiliated/hidedagger)
2021-03-18 02:37:08 +0100sm2n(~sm2n@bras-base-hmtnon143hw-grc-15-70-54-78-219.dsl.bell.ca) (Ping timeout: 245 seconds)
2021-03-18 02:39:38 +0100Gurkenglas_(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 245 seconds)
2021-03-18 02:42:03 +0100Narinas(~Narinas@187-178-93-112.dynamic.axtel.net)
2021-03-18 02:42:13 +0100son0p(~son0p@181.58.39.182) (Quit: leaving)
2021-03-18 02:44:23 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com) (Read error: Connection reset by peer)
2021-03-18 02:44:30 +0100elliott__(~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 260 seconds)
2021-03-18 02:44:43 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com)
2021-03-18 02:44:50 +0100lewky(~lewky@159.65.37.240) (Remote host closed the connection)
2021-03-18 02:45:13 +0100lewky(~lewky@159.65.37.240)
2021-03-18 02:45:40 +0100kadoban_(~mud@unaffiliated/kadoban)
2021-03-18 02:46:33 +0100benkolera(uid285671@gateway/web/irccloud.com/x-phaufigullyuswqk) (Quit: Connection closed for inactivity)
2021-03-18 02:47:07 +0100jespada(~jespada@90.254.243.187) (Ping timeout: 265 seconds)
2021-03-18 02:47:22 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-03-18 02:47:44 +0100kadoban_(~mud@unaffiliated/kadoban) (Client Quit)
2021-03-18 02:48:17 +0100jespada(~jespada@90.254.243.187)
2021-03-18 02:49:25 +0100lewky(~lewky@159.65.37.240) (Remote host closed the connection)
2021-03-18 02:49:28 +0100slack1256(~slack1256@dvc-186-186-101-190.movil.vtr.net)
2021-03-18 02:49:56 +0100hidedagger(~nate@unaffiliated/hidedagger) (Quit: WeeChat 3.1)
2021-03-18 02:50:02 +0100lewky(~lewky@159.65.37.240)
2021-03-18 02:50:55 +0100lewky(~lewky@159.65.37.240) (Client Quit)
2021-03-18 02:50:56 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com) (Read error: Connection reset by peer)
2021-03-18 02:51:19 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com)
2021-03-18 02:51:37 +0100lewky(~lewky@159.65.37.240)
2021-03-18 02:52:03 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2021-03-18 02:55:07 +0100lewky(~lewky@159.65.37.240) (Client Quit)
2021-03-18 02:56:24 +0100lewky(~lewky@159.65.37.240)
2021-03-18 02:56:25 +0100lewky(~lewky@159.65.37.240) (Client Quit)
2021-03-18 02:56:34 +0100elliott__(~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
2021-03-18 02:57:52 +0100lewky(~lewky@159.65.37.240)
2021-03-18 02:58:49 +0100solidus-river(~mike@174.127.249.180) (Remote host closed the connection)
2021-03-18 02:59:09 +0100erayo(c0ab6c55@85.108.171.192.pba.apn.pmt.pf)
2021-03-18 03:00:00 +0100kadoban_(~mud@unaffiliated/kadoban)
2021-03-18 03:00:22 +0100 <erayo> what's a good way to get a UTCTime (from the time package) from a timestamp with millisecond precision ? I'd like to keep that precision
2021-03-18 03:00:45 +0100kadoban_(~mud@unaffiliated/kadoban) (Client Quit)
2021-03-18 03:00:49 +0100Shiranai(beed0de4@gateway/web/cgi-irc/kiwiirc.com/ip.190.237.13.228)
2021-03-18 03:01:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-03-18 03:03:37 +0100lewky(~lewky@159.65.37.240) (Quit: The Lounge - https://thelounge.chat)
2021-03-18 03:03:37 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com) (Read error: Connection reset by peer)
2021-03-18 03:03:54 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com)
2021-03-18 03:04:20 +0100 <erayo> oops, nvm
2021-03-18 03:04:31 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com) (Read error: Connection reset by peer)
2021-03-18 03:04:59 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com)
2021-03-18 03:05:07 +0100kadoban_(~mud@unaffiliated/kadoban)
2021-03-18 03:05:08 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser) (Quit: WeeChat 2.9)
2021-03-18 03:05:10 +0100lewky(~lewky@159.65.37.240)
2021-03-18 03:05:20 +0100Deide(~Deide@217.155.19.23) (Quit: Seeee yaaaa)
2021-03-18 03:05:30 +0100erayo(c0ab6c55@85.108.171.192.pba.apn.pmt.pf) (Quit: Connection closed)
2021-03-18 03:06:53 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-03-18 03:08:16 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-03-18 03:08:42 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com) (Read error: Connection reset by peer)
2021-03-18 03:09:04 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com)
2021-03-18 03:09:51 +0100 <Shiranai> Helloes, silly question, what are the `Common...` libraries here? https://github.com/hatashiro/monkey-hs/blob/master/lib/Lexer/Types.hs
2021-03-18 03:10:25 +0100 <Shiranai> can't find them on hackage and doesn't seem to be part of the haskell platform either
2021-03-18 03:10:34 +0100berberman(~berberman@unaffiliated/berberman)
2021-03-18 03:11:46 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 265 seconds)
2021-03-18 03:14:47 +0100drbean(~drbean@TC210-63-209-167.static.apol.com.tw)
2021-03-18 03:14:57 +0100 <Axman6> https://github.com/hatashiro/monkey-hs/tree/master/lib/Common
2021-03-18 03:15:35 +0100 <Axman6> first place to look for moduels you don't recognise in a project is within the project itself
2021-03-18 03:15:43 +0100 <Axman6> modules*
2021-03-18 03:16:12 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 256 seconds)
2021-03-18 03:16:36 +0100jamm_(~jamm@unaffiliated/jamm)
2021-03-18 03:16:45 +0100sjtfre(~sjtfre@124.239.70.146)
2021-03-18 03:17:01 +0100 <Shiranai> god I'm so stupid thank you
2021-03-18 03:18:16 +0100 <Axman6> We've all got to learn everything the first time
2021-03-18 03:19:20 +0100psygate(~psygate@unaffiliated/psygate) (Read error: Connection reset by peer)
2021-03-18 03:23:19 +0100 <emmanuel_erc> have you ever run into something like this before? (http://ix.io/2Tgk)
2021-03-18 03:24:37 +0100Shiranai(beed0de4@gateway/web/cgi-irc/kiwiirc.com/ip.190.237.13.228) (Quit: Connection closed)
2021-03-18 03:24:42 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
2021-03-18 03:29:28 +0100urodna_(~urodna@unaffiliated/urodna) (Quit: urodna_)
2021-03-18 03:29:47 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Read error: Connection reset by peer)
2021-03-18 03:29:48 +0100conal(~conal@66.115.157.150) (Quit: Computer has gone to sleep.)
2021-03-18 03:31:22 +0100conal(~conal@66.115.157.150)
2021-03-18 03:32:05 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2021-03-18 03:32:14 +0100gitgood(~gitgood@80-44-12-129.dynamic.dsl.as9105.com) (Remote host closed the connection)
2021-03-18 03:32:40 +0100gitgood(~gitgood@80-44-12-129.dynamic.dsl.as9105.com)
2021-03-18 03:32:59 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit)
2021-03-18 03:33:14 +0100ep1ctetus_(~epictetus@ip72-194-215-136.sb.sd.cox.net) (Read error: Connection reset by peer)
2021-03-18 03:33:50 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2021-03-18 03:34:31 +0100conal(~conal@66.115.157.150) (Client Quit)
2021-03-18 03:34:57 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit)
2021-03-18 03:37:06 +0100ericsagn1(~ericsagne@2405:6580:0:5100:b44d:6014:67a8:1b64) (Ping timeout: 265 seconds)
2021-03-18 03:40:14 +0100xff0x(~xff0x@2001:1a81:5326:4900:3e74:f6d7:c8e5:a70d) (Ping timeout: 264 seconds)
2021-03-18 03:41:22 +0100kam1(~kam1@83.123.237.152) (Read error: Connection reset by peer)
2021-03-18 03:41:44 +0100ericsagnes(~ericsagne@i121-115-92-236.s42.a013.ap.plala.or.jp)
2021-03-18 03:41:50 +0100xff0x(~xff0x@2001:1a81:520b:5100:2c88:23cc:c327:16b6)
2021-03-18 03:45:15 +0100m0rphism(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 246 seconds)
2021-03-18 03:45:15 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com) (Read error: Connection reset by peer)
2021-03-18 03:45:32 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-atvxsqflryegxqie) ()
2021-03-18 03:45:40 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com)
2021-03-18 03:45:45 +0100sshine_sshine
2021-03-18 03:46:06 +0100Rudd0(~Rudd0@185.189.115.103) (Ping timeout: 260 seconds)
2021-03-18 03:49:44 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2021-03-18 03:49:44 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com) (Read error: Connection reset by peer)
2021-03-18 03:50:16 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com)
2021-03-18 03:51:51 +0100conal(~conal@66.115.157.150)
2021-03-18 03:56:23 +0100alx741(~alx741@186.178.109.138) (Quit: alx741)
2021-03-18 03:56:39 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser)
2021-03-18 04:04:55 +0100FinnElija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
2021-03-18 04:04:55 +0100finn_elijaGuest82075
2021-03-18 04:04:55 +0100FinnElijafinn_elija
2021-03-18 04:05:40 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 244 seconds)
2021-03-18 04:07:49 +0100drbean(~drbean@TC210-63-209-167.static.apol.com.tw) (Read error: Connection reset by peer)
2021-03-18 04:08:50 +0100Guest82075(~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 268 seconds)
2021-03-18 04:08:51 +0100myShoggoth(~myShoggot@75.164.81.55)
2021-03-18 04:09:08 +0100vs^(~hph@ip98-184-89-2.mc.at.cox.net) ()
2021-03-18 04:09:38 +0100drbean(~drbean@TC210-63-209-174.static.apol.com.tw)
2021-03-18 04:09:38 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com) (Read error: Connection reset by peer)
2021-03-18 04:09:51 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com)
2021-03-18 04:09:53 +0100hackagezeolite-lang 0.13.0.0 - Zeolite is a statically-typed, general-purpose programming language. https://hackage.haskell.org/package/zeolite-lang-0.13.0.0 (ta0kira)
2021-03-18 04:10:33 +0100 <slack1256> Is there a cli-app to pass a stack package.yaml to a cabal file?
2021-03-18 04:13:35 +0100carlomagno(~cararell@148.87.23.12) (Remote host closed the connection)
2021-03-18 04:14:17 +0100 <koz_> slack1256: If you mean 'generate a cabal file from package.yaml', yes, it's called 'hpack'.
2021-03-18 04:15:15 +0100Shiranai(beed0de4@gateway/web/cgi-irc/kiwiirc.com/ip.190.237.13.228)
2021-03-18 04:17:26 +0100 <Shiranai> Hello again, any tips on the structure of a lexer? I wanna try writing one myself, really simple for a specific use case. Reading some implementations (in other languages) they use some struct to keep track of what line and character they are at and just pattern match. Was wondering if there was some neat way with more idiomatic haskell without
2021-03-18 04:17:26 +0100 <Shiranai> having to interact a ton with some state monad
2021-03-18 04:18:55 +0100 <slack1256> koz_: Another layer of problems ;_;
2021-03-18 04:19:25 +0100 <koz_> Shiranai: Just use megaparsec? It has a lexer thing.
2021-03-18 04:19:36 +0100 <koz_> slack1256: Yeah, I am not an hpack fan.
2021-03-18 04:19:48 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser)
2021-03-18 04:20:02 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-03-18 04:20:28 +0100__minoru__shirae(~shiraeesh@109.166.59.216) (Ping timeout: 245 seconds)
2021-03-18 04:20:53 +0100 <Shiranai> koz_: I wanted to try to write a compiler from scratch so megaparsec is illegal in my game
2021-03-18 04:21:07 +0100 <koz_> I don't see how those two statements connect.
2021-03-18 04:21:09 +0100 <slack1256> Shiranai: Maybe not related to your use case, but when using parser combinators I usually schew the tokenize/parse distinction and do it all in one go.
2021-03-18 04:21:30 +0100 <koz_> Writing a compiler from scratch does not preclude the use of parser combinator libraries.
2021-03-18 04:22:30 +0100 <Shiranai> the idea of that is for me to get a more "bare metal" intuition of how it works, yeah I know it would be pretty silly to not use external libraries but this is for purely educational purposes
2021-03-18 04:22:55 +0100__minoru__shirae(~shiraeesh@109.166.59.216)
2021-03-18 04:23:23 +0100 <koz_> In that case, enjoy your state monad and regexps. :P
2021-03-18 04:23:35 +0100 <koz_> (and that's before we even get to parsing)
2021-03-18 04:24:35 +0100 <Shiranai> haha thanks
2021-03-18 04:24:54 +0100 <Shiranai> was looking for alternatives to the state monad but I'll just use that I guess
2021-03-18 04:24:54 +0100 <Cale> Shiranai: Everything that would be state, you could just pass as arguments to your function.
2021-03-18 04:26:44 +0100 <Shiranai> Cale: I thought about that approach for a bit, the lexer would have to be a recursive function in that case. Everytime calling itself with its current line, current char, current token, the list of token and the rest of the text to parse (at a minimum)
2021-03-18 04:26:50 +0100 <Cale> Shiranai: and then instead of updating the state, you call another function with modified arguments (or maybe the same function)
2021-03-18 04:27:40 +0100 <slack1256> There are inneficient implementations of parser combinators that are just the state monad :-P , you could make the full jump lol.
2021-03-18 04:28:05 +0100 <Cale> You wouldn't necessarily have to have the list of tokens as an argument, unless you have need of going back and modifying tokens you've already read
2021-03-18 04:28:21 +0100 <Cale> Instead, you could just emit the list as you go
2021-03-18 04:30:05 +0100slack1256discovered he has been misusing other-modules his whole life.
2021-03-18 04:30:45 +0100Feuermagier(~Feuermagi@2a02:2488:4211:3400:246e:bf09:8453:9d6) (Ping timeout: 265 seconds)
2021-03-18 04:31:43 +0100pjb(~t@2a01cb04063ec500180c10bfcb2533c4.ipv6.abo.wanadoo.fr) (Ping timeout: 265 seconds)
2021-03-18 04:34:07 +0100plutoniix(~q@184.82.209.205)
2021-03-18 04:36:56 +0100brandly(~brandly@c-73-68-15-46.hsd1.ma.comcast.net)
2021-03-18 04:37:45 +0100elliott__(~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
2021-03-18 04:38:45 +0100drbean(~drbean@TC210-63-209-174.static.apol.com.tw) (Read error: Connection reset by peer)
2021-03-18 04:38:51 +0100 <lemmih> How do you misuse other-modules?
2021-03-18 04:38:57 +0100cods(~fred@unaffiliated/cods) (Ping timeout: 264 seconds)
2021-03-18 04:39:16 +0100hexfive(~hexfive@50.35.83.177)
2021-03-18 04:39:27 +0100__minoru__shirae(~shiraeesh@109.166.59.216) (Ping timeout: 256 seconds)
2021-03-18 04:39:27 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com) (Read error: Connection reset by peer)
2021-03-18 04:39:57 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com)
2021-03-18 04:40:39 +0100drbean(~drbean@TC210-63-209-182.static.apol.com.tw)
2021-03-18 04:41:46 +0100 <slack1256> Now I think there are mostly for data-dir/data-file related code, such as the Paths_library autogenerated module.
2021-03-18 04:42:23 +0100 <slack1256> If you don't export the module via exposed-modules, you cannot test them on the test-suite. Plus they don't get included in the haddock documentation.
2021-03-18 04:46:18 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com) (Read error: Connection reset by peer)
2021-03-18 04:46:32 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com)
2021-03-18 04:51:45 +0100theDon(~td@94.134.91.246) (Ping timeout: 246 seconds)
2021-03-18 04:53:45 +0100average(uid473595@gateway/web/irccloud.com/x-movoojltrrxlptod)
2021-03-18 04:53:46 +0100theDon(~td@muedsl-82-207-238-114.citykom.de)
2021-03-18 04:55:38 +0100brandly(~brandly@c-73-68-15-46.hsd1.ma.comcast.net) (Ping timeout: 260 seconds)
2021-03-18 04:55:54 +0100 <Shiranai> Cale: could you please elaborate on how the list of tokens is not necessary as an argument?
2021-03-18 04:56:27 +0100 <Shiranai> if it is a list, after processing the nth token, shouldn't I have the base list to append it to it?
2021-03-18 04:57:23 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-18 04:57:31 +0100geowiesnot_bis(~user@87-89-181-157.abo.bbox.fr)
2021-03-18 04:58:47 +0100zaquest(~notzaques@5.128.210.178) (Quit: Leaving)
2021-03-18 05:00:02 +0100haasn(~nand@mpv/developer/haasn) (Quit: ZNC 1.7.5+deb4 - https://znc.in)
2021-03-18 05:00:02 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-03-18 05:00:09 +0100zaquest(~notzaques@5.128.210.178)
2021-03-18 05:01:10 +0100specdrake(~anurag@203.192.236.225)
2021-03-18 05:01:15 +0100 <specdrake> Hello
2021-03-18 05:01:20 +0100haasn(~nand@mpv/developer/haasn)
2021-03-18 05:01:30 +0100 <Axman6> Hello!
2021-03-18 05:01:54 +0100 <specdrake> Why is the haskell-gsoc irc chat so inactive?
2021-03-18 05:02:18 +0100 <specdrake> Is there some other primary means of communication?
2021-03-18 05:02:35 +0100 <specdrake> (Apart from mailing list and IRC)
2021-03-18 05:02:55 +0100cheater1(~user@unaffiliated/cheater)
2021-03-18 05:03:18 +0100cheater(~user@unaffiliated/cheater) (Ping timeout: 256 seconds)
2021-03-18 05:03:19 +0100 <Axman6> Those are good questions that I have no answer for
2021-03-18 05:03:19 +0100cheater1cheater
2021-03-18 05:03:43 +0100 <specdrake> Oh okay
2021-03-18 05:05:13 +0100Rudd0(~Rudd0@185.189.115.103)
2021-03-18 05:05:32 +0100 <Cale> Shiranai: foo input blah blah = TokenToEmit : foo depletedInput other stuff
2021-03-18 05:05:38 +0100cods(~fred@82-65-232-44.subs.proxad.net)
2021-03-18 05:05:59 +0100 <Cale> Shiranai: You just produce the list elements immediately as you determine them
2021-03-18 05:06:27 +0100 <Cale> Shiranai: It's also much more efficient, since you don't have to accumulate the list of tokens in reverse and then reverse it at the end
2021-03-18 05:06:47 +0100 <Cale> (or what would be horrible for performance, continually append to the end of the list)
2021-03-18 05:06:48 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com) (Read error: Connection reset by peer)
2021-03-18 05:07:07 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com)
2021-03-18 05:07:25 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-03-18 05:07:33 +0100 <Cale> Shiranai: Does that make sense?
2021-03-18 05:09:53 +0100andreas31(~andreas@gateway/tor-sasl/andreas303) (Ping timeout: 268 seconds)
2021-03-18 05:10:18 +0100geowiesnot_bis(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 246 seconds)
2021-03-18 05:11:31 +0100brandly(~brandly@c-73-68-15-46.hsd1.ma.comcast.net)
2021-03-18 05:11:45 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
2021-03-18 05:11:48 +0100andreas31(~andreas@gateway/tor-sasl/andreas303)
2021-03-18 05:15:34 +0100lozenge_(~lozenge@117.222.64.120)
2021-03-18 05:18:16 +0100bitmagie(~Thunderbi@200116b8060fe700383a25a1bbfaa0e2.dip.versatel-1u1.de)
2021-03-18 05:20:04 +0100howdoi(uid224@gateway/web/irccloud.com/x-lmfzccdglbgutamn) (Quit: Connection closed for inactivity)
2021-03-18 05:20:27 +0100bitmagie(~Thunderbi@200116b8060fe700383a25a1bbfaa0e2.dip.versatel-1u1.de) (Client Quit)
2021-03-18 05:20:27 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com) (Read error: Connection reset by peer)
2021-03-18 05:20:43 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com)
2021-03-18 05:21:19 +0100ejjfunky(7da36f81@125.163.111.129)
2021-03-18 05:27:38 +0100emmanuel_erc(~user@2603-7000-9600-01c9-0000-0000-0000-0874.res6.spectrum.com) (Ping timeout: 264 seconds)
2021-03-18 05:27:46 +0100teardown(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-03-18 05:29:38 +0100toorevitimirp(~tooreviti@117.182.183.55)
2021-03-18 05:31:38 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-03-18 05:35:19 +0100myShoggoth(~myShoggot@75.164.81.55) (Ping timeout: 265 seconds)
2021-03-18 05:35:50 +0100dhruvasagar(~dhruvasag@49.207.63.69) (Quit: WeeChat 3.0.1)
2021-03-18 05:38:10 +0100augnun(~augnun@2804:14c:658b:41bb:765b:76f0:4857:5bd2) (Quit: WeeChat 3.1)
2021-03-18 05:40:00 +0100teardown(~user@gateway/tor-sasl/mrush)
2021-03-18 05:40:10 +0100lozenge_(~lozenge@117.222.64.120) ()
2021-03-18 05:40:35 +0100zebrag(~inkbottle@aaubervilliers-654-1-101-29.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-03-18 05:43:04 +0100elliott__(~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
2021-03-18 05:43:31 +0100valdyn(valdyn@c6a7cbb3.vpn.njalla.net) (Quit: leaving)
2021-03-18 05:43:40 +0100valdyn(valdyn@c6a7cba1.vpn.njalla.net)
2021-03-18 05:44:55 +0100 <Shiranai> Cale: Sorry for the late response, I am not understanding. Could you please show some example code? I.e. let's say that the `nextToken` function successfully gets the next token, how would you use that to "produce the list elements immediately"?
2021-03-18 05:45:31 +0100 <Shiranai> Up till now I thought that accumulating in reverse would be the most efficient
2021-03-18 05:54:23 +0100hackageory-kratos 0.0.5.9 - API bindings for Ory Kratos https://hackage.haskell.org/package/ory-kratos-0.0.5.9 (njaremko)
2021-03-18 05:57:26 +0100 <Cale> Shiranai: nextToken "" = []; nextToken input = t : nextToken input' where (t, input') = splitFirstToken input
2021-03-18 05:58:17 +0100 <Shiranai> ohhhhhhhhhhhhh
2021-03-18 05:58:18 +0100 <Cale> This is more efficient than accumulating across the entire input before being able to return any part of the result
2021-03-18 05:58:27 +0100shad0w_(a0ca2598@160.202.37.152)
2021-03-18 05:58:31 +0100 <Cale> You can get the first token with only a single splitFirstToken
2021-03-18 05:58:53 +0100 <Shiranai> I see, thank you, I just got back into haskell and forgot some techniques, really nice
2021-03-18 05:58:58 +0100 <Cale> Well, calling this nextToken was wrong, I should have called it tokens :)
2021-03-18 05:59:01 +0100 <shad0w_> cale: not if its a NFT : p
2021-03-18 05:59:38 +0100 <Shiranai> Thanks again, see you later, have a good day/night
2021-03-18 05:59:45 +0100Shiranai(beed0de4@gateway/web/cgi-irc/kiwiirc.com/ip.190.237.13.228) (Quit: Connection closed)
2021-03-18 05:59:51 +0100 <Cale> shad0w_: NFT's are like getting a blue ribbon for participation at summer camp and then thinking that it's worth 68 million dollars
2021-03-18 06:00:55 +0100 <shad0w_> Cale: what's sad is that statement can't be ruled out as a possible scenario. sigh.
2021-03-18 06:04:02 +0100shad0w_(a0ca2598@160.202.37.152) (Quit: Connection closed)
2021-03-18 06:10:26 +0100kam1(~kam1@83.123.237.152)
2021-03-18 06:10:50 +0100kam1(~kam1@83.123.237.152) (Read error: Connection reset by peer)
2021-03-18 06:11:56 +0100jb55(~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection)
2021-03-18 06:12:16 +0100jb55(~jb55@gateway/tor-sasl/jb55)
2021-03-18 06:16:02 +0100kam1(~kam1@83.123.237.152)
2021-03-18 06:16:46 +0100kam1(~kam1@83.123.237.152) (Read error: Connection reset by peer)
2021-03-18 06:17:17 +0100 <DigitalKiwi> or worse: someone else getting a blue ribbon and you thinking it's worth that
2021-03-18 06:18:24 +0100 <DigitalKiwi> ...a picture of it lol
2021-03-18 06:18:38 +0100howdoi(uid224@gateway/web/irccloud.com/x-hubpohkbjuuxxmge)
2021-03-18 06:21:11 +0100 <DigitalKiwi> https://mashable.com/article/nft-cryptocurrency-bad-environment-art/ was the first thing i read about them a few days ago lol
2021-03-18 06:21:46 +0100 <Axman6> proof of work is the real evil, it's very anti-lazy
2021-03-18 06:22:15 +0100 <DigitalKiwi> that's why i'm a commie
2021-03-18 06:23:20 +0100 <Axman6> this is one of the reasons I don't get all the hate for Cardano, there are still problems with it, but at least it's not trying to boil the oceans as fast as possible
2021-03-18 06:25:09 +0100barnowl_(~barnowl@gateway/tor-sasl/barnowl) (Remote host closed the connection)
2021-03-18 06:25:32 +0100barnowl_(~barnowl@gateway/tor-sasl/barnowl)
2021-03-18 06:25:35 +0100 <Cale> Distributed databases are just not the solution to very many real-world problems
2021-03-18 06:27:00 +0100 <Cale> If you sort out the stuff that would be necessary to connect your database to the real world, the socio-political part of any given problem, then usually a centralised database almost immediately suffices, because in so doing you needed to give people some kind of authority, and those people might as well run the database.
2021-03-18 06:27:45 +0100 <Axman6> working on DAML has made me rethink that idea
2021-03-18 06:28:17 +0100lewky(~lewky@159.65.37.240) (Quit: The Lounge - https://thelounge.chat)
2021-03-18 06:28:28 +0100 <Cale> After all, the people who are responsible for enforcing things in the real world are going to be able to act as though the contents of the database are different from what they really are, so that administration might as well have the authority to edit anything as it sees fit.
2021-03-18 06:29:05 +0100lewky(~lewky@159.65.37.240)
2021-03-18 06:29:42 +0100 <Cale> (Obviously, not every member of it should be abusing that power all the time, but overall, it's often going to be necessary that the organisation itself agree that the contents of the database are in fact incorrect or invalid.)
2021-03-18 06:29:45 +0100shad0w_(a0ca2598@160.202.37.152)
2021-03-18 06:29:50 +0100shad0w_(a0ca2598@160.202.37.152) (Client Quit)
2021-03-18 06:31:05 +0100molehillish(~molehilli@2600:8800:8d06:1800:e0d0:506b:db48:8ec8)
2021-03-18 06:31:55 +0100 <DigitalKiwi> https://mostlyabsurd.com/files/stonks!.png s/stonks/crypto/
2021-03-18 06:33:51 +0100kam1(~kam1@83.123.237.152)
2021-03-18 06:34:17 +0100kam1(~kam1@83.123.237.152) (Read error: Connection reset by peer)
2021-03-18 06:34:25 +0100 <DigitalKiwi> or even better: stonks that track crypto trends :)
2021-03-18 06:34:50 +0100 <slack1256> I am this close of work on NFT company ;_; .
2021-03-18 06:35:01 +0100 <slack1256> working*
2021-03-18 06:35:32 +0100 <DigitalKiwi> MARA went up 12.57% yesterday lol
2021-03-18 06:35:56 +0100 <DigitalKiwi> RIOT 13.62%
2021-03-18 06:36:33 +0100 <DigitalKiwi> CAN 11.57%
2021-03-18 06:39:25 +0100molehillish(~molehilli@2600:8800:8d06:1800:e0d0:506b:db48:8ec8) (Remote host closed the connection)
2021-03-18 06:40:01 +0100drbean(~drbean@TC210-63-209-182.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin2 - https://znc.in)
2021-03-18 06:40:34 +0100brandly(~brandly@c-73-68-15-46.hsd1.ma.comcast.net) (Ping timeout: 265 seconds)
2021-03-18 06:43:37 +0100teardown(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-03-18 06:45:55 +0100kam1(~kam1@83.123.237.152)
2021-03-18 06:46:20 +0100kam1(~kam1@83.123.237.152) (Read error: Connection reset by peer)
2021-03-18 06:46:24 +0100 <Axman6> Cale: at ${CURRENT_JOB-2}, we were working on a system for managing and tracing events in supply chains, which obviously requires the interaction of many parties, with parties having a desire to maintain ownership of their data. If I'd known about DAML at the time we could have modelled basically all the requirements we had "trivially", including providing visibility to trusted third parties to observe events throughout the supplychain. I'll
2021-03-18 06:46:24 +0100 <Axman6> admit it is probably one of the few places hwere this really could be useful, but they do exist
2021-03-18 06:46:36 +0100jpmrock(475434e0@071-084-052-224.res.spectrum.com)
2021-03-18 06:47:41 +0100jpmrock(475434e0@071-084-052-224.res.spectrum.com) (Client Quit)
2021-03-18 06:49:47 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2021-03-18 06:50:10 +0100 <Cale> How is DAML fundamentally any better than each of those parties running postgres databases (perhaps with a similar API), given that it's possible to do authenticated communication with them via the Internet?
2021-03-18 06:50:15 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2021-03-18 06:50:22 +0100 <DigitalKiwi> one of my dad's (long time ago former) clients started one of those a few years ago i think
2021-03-18 06:50:57 +0100geowiesnot_bis(~user@87-89-181-157.abo.bbox.fr)
2021-03-18 06:51:14 +0100 <Axman6> because that's exactly what it gives you, but visibility of information is a core concept in the language, so you have to eplicitly expose information to other parties, rather than working to hide it
2021-03-18 06:51:47 +0100 <Axman6> (One of the DAML backends it literally just Postgres, no blockchain)
2021-03-18 06:51:56 +0100 <Cale> Well, that's fair
2021-03-18 06:52:07 +0100 <Cale> The thing I think is useless here is blockchains
2021-03-18 06:52:09 +0100 <Axman6> ((I also can't claim to be an expert on DAML, I just write it ))
2021-03-18 06:54:37 +0100 <DigitalKiwi> whatcha got against merkle trees
2021-03-18 06:55:34 +0100sjtfre(~sjtfre@124.239.70.146) (Ping timeout: 260 seconds)
2021-03-18 06:56:39 +0100 <Axman6> yeah DAML is the contract language, which has several backends (and using DAML Connect [I think, its name changed], you can use DAML to write contracts which exist on and are executed on different blockchains)
2021-03-18 06:57:03 +0100loller_(uid358106@gateway/web/irccloud.com/x-kduhobsfuxvxilil) (Quit: Connection closed for inactivity)
2021-03-18 06:58:57 +0100 <Axman6> uh, Canton is what I meant
2021-03-18 06:59:50 +0100bitmagie(~Thunderbi@200116b8060fe700383a25a1bbfaa0e2.dip.versatel-1u1.de)
2021-03-18 06:59:58 +0100sgibber2018(d055ed90@208.85.237.144)
2021-03-18 07:01:49 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2021-03-18 07:02:36 +0100 <Cale> DigitalKiwi: Well, it's not so much Merkle trees themselves, but the notion of having a distributed database with non-cooperative or adversarial writers that I think is bad, and once people are cooperating, you can centralise a database and make it way more efficient.
2021-03-18 07:03:33 +0100elliott__(~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 264 seconds)
2021-03-18 07:04:03 +0100mantovani(~mantovani@104.131.207.121) (Ping timeout: 260 seconds)
2021-03-18 07:04:25 +0100mantovani(~mantovani@104.131.207.121)
2021-03-18 07:04:38 +0100eldritch(~eldritch@unaffiliated/eldritch) (Ping timeout: 260 seconds)
2021-03-18 07:04:48 +0100CodeKiwi(~kiwi@unaffiliated/digitalkiwi)
2021-03-18 07:05:02 +0100Narinas(~Narinas@187-178-93-112.dynamic.axtel.net) (Read error: Connection reset by peer)
2021-03-18 07:05:03 +0100tomjaguarpaw(~tom@li367-225.members.linode.com) (Ping timeout: 245 seconds)
2021-03-18 07:05:11 +0100tomjaguarpaw(~tom@li367-225.members.linode.com)
2021-03-18 07:05:13 +0100iptq(~michael@142.93.75.170) (Ping timeout: 260 seconds)
2021-03-18 07:05:13 +0100DigitalKiwi(~kiwi@unaffiliated/digitalkiwi) (Ping timeout: 260 seconds)
2021-03-18 07:05:13 +0100heath(~heath@unaffiliated/ybit) (Ping timeout: 260 seconds)
2021-03-18 07:05:18 +0100Narinas(~Narinas@187-178-93-112.dynamic.axtel.net)
2021-03-18 07:05:48 +0100sajith(~sajith@fsf/member/nonzen) (Ping timeout: 260 seconds)
2021-03-18 07:05:59 +0100bitmagie(~Thunderbi@200116b8060fe700383a25a1bbfaa0e2.dip.versatel-1u1.de) (Quit: bitmagie)
2021-03-18 07:06:11 +0100eldritch(~eldritch@unaffiliated/eldritch)
2021-03-18 07:06:30 +0100heath(~heath@unaffiliated/ybit)
2021-03-18 07:06:44 +0100sajith(~sajith@fsf/member/nonzen)
2021-03-18 07:06:50 +0100sjtfre(~sjtfre@124.239.70.146)
2021-03-18 07:06:55 +0100iptq(~michael@142.93.75.170)
2021-03-18 07:07:32 +0100WojciechK(~wojciechk@2001:41d0:a:5be4::449) (Ping timeout: 260 seconds)
2021-03-18 07:07:58 +0100Narinas(~Narinas@187-178-93-112.dynamic.axtel.net) (Read error: Connection reset by peer)
2021-03-18 07:09:13 +0100Narinas(~Narinas@187-178-93-112.dynamic.axtel.net)
2021-03-18 07:11:13 +0100molehillish(~molehilli@2600:8800:8d06:1800:e0d0:506b:db48:8ec8)
2021-03-18 07:12:17 +0100 <Axman6> https://daml.com/learn/fundamental-concepts (IIRC) does a good job of explaining the authorisation model for the language, you need to be quite explicit about what actions any given party can do, and which parties need to be involved/give consent
2021-03-18 07:12:24 +0100RusAlex_(~Chel@BSN-77-82-41.static.siol.net) (Quit: WeeChat 3.0)
2021-03-18 07:12:31 +0100RusAlex(~Chel@unaffiliated/rusalex)
2021-03-18 07:12:57 +0100Axman6wishes he had flip in the shell
2021-03-18 07:13:08 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2021-03-18 07:13:35 +0100 <CodeKiwi> Axman6: https://hackage.haskell.org/package/flip-cmd
2021-03-18 07:13:38 +0100 <Cale> Yeah, *that* kind of thing I think is fine. I just don't see why a blockchain or distributed storage (apart perhaps from replication) needs to be any part of it in almost all cases.
2021-03-18 07:15:28 +0100Narinas(~Narinas@187-178-93-112.dynamic.axtel.net) (Read error: Connection reset by peer)
2021-03-18 07:15:34 +0100 <CodeKiwi> Cale: all you have is a hammer...
2021-03-18 07:15:41 +0100 <CodeKiwi> Cale: when* all you have is a hammer...
2021-03-18 07:16:08 +0100Narinas(~Narinas@187-178-93-112.dynamic.axtel.net)
2021-03-18 07:16:28 +0100 <Axman6> CodeKiwi: Hmm, what I really want is flip (||) (print "\a") $ somethingWhichMightFail # things in comments are iportant for my shell history
2021-03-18 07:16:36 +0100kam1(~kam1@83.123.237.152)
2021-03-18 07:16:44 +0100Narinas(~Narinas@187-178-93-112.dynamic.axtel.net) (Read error: Connection reset by peer)
2021-03-18 07:17:00 +0100kam1(~kam1@83.123.237.152) (Read error: Connection reset by peer)
2021-03-18 07:17:19 +0100 <Axman6> CodeKiwi: for a sec I thought you'd linked to https://github.com/mxswd/flip-plus, which is... amazing
2021-03-18 07:17:26 +0100Narinas(~Narinas@187-178-93-112.dynamic.axtel.net)
2021-03-18 07:18:25 +0100sjtfre1(~sjtfre@124.239.70.146)
2021-03-18 07:19:20 +0100sjtfre(~sjtfre@124.239.70.146) (Read error: Connection reset by peer)
2021-03-18 07:19:21 +0100Narinas(~Narinas@187-178-93-112.dynamic.axtel.net) (Read error: Connection reset by peer)
2021-03-18 07:19:48 +0100 <Axman6> the fact that github won't render the only haskell file in that repo should give you some idea of how awesome it is
2021-03-18 07:19:57 +0100 <Cale> hahaha
2021-03-18 07:20:12 +0100 <Cale> How long does ghc take to compile the module?
2021-03-18 07:20:16 +0100Narinas(~Narinas@187-178-93-112.dynamic.axtel.net)
2021-03-18 07:20:26 +0100 <Axman6> I don't know... I've never been game to try
2021-03-18 07:20:32 +0100 <Cale> Seems like potentially a good performance benchmark
2021-03-18 07:20:49 +0100 <Axman6> indeed
2021-03-18 07:21:14 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2021-03-18 07:21:21 +0100knupfer(~Thunderbi@200116b82c062100c4a7805106b9f6d2.dip.versatel-1u1.de)
2021-03-18 07:21:37 +0100 <Axman6> also, take that Control.Lens.Operators
2021-03-18 07:21:56 +0100Narinas(~Narinas@187-178-93-112.dynamic.axtel.net) (Read error: Connection reset by peer)
2021-03-18 07:22:04 +0100 <Cale> It's certainly taking its sweet time with it
2021-03-18 07:22:13 +0100Narinas(~Narinas@187-178-93-112.dynamic.axtel.net)
2021-03-18 07:22:23 +0100 <Cale> about 1 minute
2021-03-18 07:22:34 +0100waleee-cl(uid373333@gateway/web/irccloud.com/x-fvkpewqjehdvcehc) (Quit: Connection closed for inactivity)
2021-03-18 07:23:02 +0100 <Cale> That's about 834 lines per second
2021-03-18 07:23:05 +0100 <slack1256> It is not even on ACME.* .
2021-03-18 07:23:26 +0100 <Axman6> this is serious shit slack1256, no time for jokes here
2021-03-18 07:23:50 +0100 <Cale> You mean it's serious $#!&
2021-03-18 07:24:07 +0100sgibber2018(d055ed90@208.85.237.144) (Quit: Connection closed)
2021-03-18 07:24:18 +0100 <slack1256> Hahaha, hey ACME is seriously, just dangerous.
2021-03-18 07:24:22 +0100 <Axman6> still waiting for GHCi to interpret it...
2021-03-18 07:24:33 +0100 <slack1256> Imagine putting a # where a & was expected#
2021-03-18 07:24:37 +0100 <slack1256> !
2021-03-18 07:24:49 +0100 <Axman6> oh the irony, haha
2021-03-18 07:24:54 +0100 <Axman6> Ok, one module loaded.
2021-03-18 07:24:55 +0100 <Axman6> (117.81 secs,)
2021-03-18 07:26:56 +0100kam1(~kam1@83.123.237.152)
2021-03-18 07:27:07 +0100kam1(~kam1@83.123.237.152) (Client Quit)
2021-03-18 07:28:00 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-18 07:28:45 +0100Wuzzy(~Wuzzy@p57a2ecf2.dip0.t-ipconnect.de) (Remote host closed the connection)
2021-03-18 07:29:08 +0100 <Axman6> cabal v2-build 159.18s user 6.70s system 96% cpu 2:52.55 total
2021-03-18 07:32:33 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-03-18 07:34:22 +0100sjtfre(~sjtfre@124.239.70.146)
2021-03-18 07:34:29 +0100famubu(~famubu@117.206.45.254)
2021-03-18 07:34:33 +0100sjtfre1(~sjtfre@124.239.70.146) (Ping timeout: 256 seconds)
2021-03-18 07:37:36 +0100dsrt^(dsrt@ip98-184-89-2.mc.at.cox.net)
2021-03-18 07:37:43 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 276 seconds)
2021-03-18 07:37:44 +0100sjtfre(~sjtfre@124.239.70.146) (Read error: Connection reset by peer)
2021-03-18 07:37:44 +0100sjtfre1(~sjtfre@124.239.70.146)
2021-03-18 07:42:49 +0100 <famubu> I created a function to check if a character is a white space (space/newline/tab). Is there any advantage of using pattern matching over guards? This is what I tried: https://paste.tomsmeding.com/BOTlXmO8
2021-03-18 07:43:17 +0100jb55(~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection)
2021-03-18 07:43:38 +0100jb55(~jb55@gateway/tor-sasl/jb55)
2021-03-18 07:44:35 +0100 <slack1256> At least for Char/Int where equality is really simple, both are equivalent.
2021-03-18 07:44:52 +0100 <slack1256> Also, you can pattern match on guard too.
2021-03-18 07:45:08 +0100 <famubu> slack1256: So there is a difference when equality is more complex?
2021-03-18 07:45:38 +0100 <famubu> I wasn't sure if 'pattern matching' and 'guards' were the right terms there.. :-D
2021-03-18 07:46:03 +0100 <slack1256> https://paste.tomsmeding.com/VlmXB1n0
2021-03-18 07:46:58 +0100 <CodeKiwi> i've been finding a lot of libraries that don't compile anymore they say ambiguous occurrence what's that about
2021-03-18 07:47:01 +0100jrqc(~rofl@96.78.87.197) (Ping timeout: 256 seconds)
2021-03-18 07:47:16 +0100 <slack1256> famubu: Yeah, it mostly depends on how "deep" is the ADT. Think list, where equality is element per element but case analisis is about whether it is a cons or the empty case.
2021-03-18 07:47:44 +0100 <slack1256> Char and Int are really flat, so the equality and case analysis are the same.
2021-03-18 07:48:16 +0100 <slack1256> CodeKiwi: GHC 9.0.1?
2021-03-18 07:48:25 +0100 <CodeKiwi> 8.10.4
2021-03-18 07:48:31 +0100 <famubu> slack1256: Ah.. I got a better idea now. Thanks a lot!
2021-03-18 07:48:35 +0100 <c_wraith> ... your point is right, but the example isn't *quite* right. Char and Int have one level of nesting.
2021-03-18 07:48:54 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2021-03-18 07:49:04 +0100 <slack1256> c_wraith: yeah, but that distinction at this level will only confuse it more.
2021-03-18 07:49:17 +0100 <c_wraith> Bool is a good example!
2021-03-18 07:49:58 +0100 <slack1256> "deep" and "flat" are loosly defined ("a lo amigo/modulo buena voluntad" how we said here)
2021-03-18 07:50:04 +0100jrqc(~rofl@96.78.87.197)
2021-03-18 07:50:34 +0100 <c_wraith> "among friends", maybe?
2021-03-18 07:51:00 +0100 <slack1256> Ya eres cuate c_wraith :-)
2021-03-18 07:52:33 +0100 <slack1256> CodeKiwi: Which library for example?
2021-03-18 07:52:45 +0100bitmagie(~Thunderbi@200116b8060fe700383a25a1bbfaa0e2.dip.versatel-1u1.de)
2021-03-18 07:53:44 +0100sjtfre(~sjtfre@124.239.70.146)
2021-03-18 07:54:26 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
2021-03-18 07:55:03 +0100sjtfre1(~sjtfre@124.239.70.146) (Ping timeout: 245 seconds)
2021-03-18 07:55:31 +0100sjtfre1(~sjtfre@124.239.70.146)
2021-03-18 07:55:47 +0100 <CodeKiwi> hquantlib-time
2021-03-18 07:56:32 +0100lewky(~lewky@159.65.37.240) (Quit: The Lounge - https://thelounge.chat)
2021-03-18 07:57:01 +0100lewky(~lewky@159.65.37.240)
2021-03-18 07:57:10 +0100 <hugo> Is there a find equivalent for lenses? So if I have a list of Either a, I want to focus (is this the right word?) on the first Right value.
2021-03-18 07:58:21 +0100sjtfre(~sjtfre@124.239.70.146) (Ping timeout: 256 seconds)
2021-03-18 07:58:51 +0100 <CodeKiwi> https://github.com/Lucsanszky/haskell-binance too
2021-03-18 08:02:03 +0100 <slack1256> I don't know about "ambiguous occurrences", but hquantlib-time fails to build on my machine for the upper bound on time 1.9.0.0, which is old...
2021-03-18 08:02:18 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-03-18 08:02:24 +0100Varis(~Tadas@unaffiliated/varis)
2021-03-18 08:02:32 +0100 <CodeKiwi> https://dpaste.com/HQ8DEXPRT
2021-03-18 08:03:08 +0100 <CodeKiwi> that was with 884 but i think it's the same as the one in 8104
2021-03-18 08:04:57 +0100 <slack1256> Fellow nix user :-)
2021-03-18 08:05:49 +0100Narinas(~Narinas@187-178-93-112.dynamic.axtel.net) (Read error: Connection reset by peer)
2021-03-18 08:06:52 +0100Varis(~Tadas@unaffiliated/varis) (Client Quit)
2021-03-18 08:07:32 +0100sjtfre1(~sjtfre@124.239.70.146) (Read error: Connection reset by peer)
2021-03-18 08:07:43 +0100sjtfre(~sjtfre@124.239.70.146)
2021-03-18 08:07:54 +0100Forlorn(~Forlorn@unaffiliated/forlorn)
2021-03-18 08:08:09 +0100 <slack1256> CodeKiwi: Can you run inside the nix-shell the command `ghc-pkg field time version`?
2021-03-18 08:08:24 +0100 <slack1256> I think I know what it is.
2021-03-18 08:09:32 +0100benkolera(uid285671@gateway/web/irccloud.com/x-umfyvnhcrdleizmf)
2021-03-18 08:10:04 +0100 <CodeKiwi> 1.9.3
2021-03-18 08:11:56 +0100 <slack1256> Check these two modules
2021-03-18 08:12:03 +0100 <slack1256> https://hackage.haskell.org/package/time-1.8.0.2/docs/Data-Time-Calendar.html
2021-03-18 08:12:19 +0100 <slack1256> https://hackage.haskell.org/package/time-1.9.3/docs/Data-Time-Calendar.html
2021-03-18 08:12:53 +0100sjtfre(~sjtfre@124.239.70.146) (Ping timeout: 260 seconds)
2021-03-18 08:13:51 +0100 <slack1256> There is a `DayOfWeek` on the time-1.9.3 version which is not present on the 1.8.0.2 one. That gets re-exported on `Data.Time` and clashes with a constructor on hquantlib-time. When that last library was written, time was like the 1.8 version and didn't export that module.
2021-03-18 08:14:11 +0100_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-03-18 08:14:21 +0100fendor(~fendor@178.115.131.140.wireless.dyn.drei.com)
2021-03-18 08:14:23 +0100 <slack1256> The problem only manifest in nixos because it tries to allow newer versions of libraries when you are inside a `nix-shell`.
2021-03-18 08:14:38 +0100 <CodeKiwi> more people need to min max imports :(
2021-03-18 08:14:41 +0100 <slack1256> Basically, it has nothing to do with ghc per se, but the version inside the nix-shell.
2021-03-18 08:15:15 +0100 <slack1256> CodeKiwi: wouldn't have helped, the version of `time` you get in your nix-shell depends on your version of nixpkgs.
2021-03-18 08:15:28 +0100famubu(~famubu@117.206.45.254) (Ping timeout: 245 seconds)
2021-03-18 08:16:27 +0100 <slack1256> If you run it outside a nix-shell via a `cabal v2-build` it will build with the right constrains.
2021-03-18 08:16:41 +0100 <jackdk> `newtype Foo p f a b = Foo p a (f b); instance (Functor f, Profunctor p) => Profunctor (Foo p f)` <- what is this actually called?
2021-03-18 08:16:59 +0100 <slack1256> Anyways, those packages are old. Maybe you could drop the upper-bounds, and make them use the current time API?
2021-03-18 08:16:59 +0100michalz(~user@185.246.204.59)
2021-03-18 08:17:16 +0100 <slack1256> Foo ?
2021-03-18 08:18:22 +0100 <jackdk> slack1256: sure, but is there a common name for it in the libraries? Looks like `Biff p Identity f` but wondering if there's something better?
2021-03-18 08:21:07 +0100 <CodeKiwi> slack1256: but outside of a nix shell i don't have zlib :(
2021-03-18 08:21:32 +0100 <CodeKiwi> [nix-shell:~/projects/github.com/paulrzcz/hquantlib/hquantlib-time-0.0.4.1]$ ghc-pkg field time version
2021-03-18 08:21:32 +0100 <CodeKiwi> version: 1.8.0.2
2021-03-18 08:21:38 +0100 <CodeKiwi> hahahaha :D
2021-03-18 08:21:55 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net)
2021-03-18 08:22:11 +0100 <slack1256> There it ought to work!
2021-03-18 08:22:16 +0100 <CodeKiwi> previously: kiwi@mvp-nixos hquantlib-time-0.0.4.1 [master]$ nix-shell -p "haskellPackages.ghcWithPackages (pkgs: with pkgs; [])" -I nixpkgs=channel:nixos-20.03
2021-03-18 08:23:03 +0100 <slack1256> You can also omit the `time` requeriment on the shell.nix file, and let cabal download and build the correct version.
2021-03-18 08:23:09 +0100 <CodeKiwi> anyway but what do i do if i want to use these libraries in my projects :(
2021-03-18 08:23:52 +0100 <slack1256> Fixing those libraries is mechanical, is only hiding or making the import lists explicit.
2021-03-18 08:24:25 +0100 <slack1256> An alternative is to only specify special libraries in the shell.nix file and let cabal inside the shell fill the holes.
2021-03-18 08:25:28 +0100 <CodeKiwi> i do a little of both https://gist.github.com/Kiwi/ffc08bffb15798dc4b1ec2a1c47c6191#file-program-cabal-hs
2021-03-18 08:26:00 +0100molehillish(~molehilli@2600:8800:8d06:1800:e0d0:506b:db48:8ec8) (Remote host closed the connection)
2021-03-18 08:26:05 +0100 <slack1256> (I got the same problem with a LTS 16.19 requeriment ;_; )
2021-03-18 08:26:28 +0100 <slack1256> Yoo another turtle user :-)
2021-03-18 08:26:34 +0100molehillish(~molehilli@2600:8800:8d06:1800:e0d0:506b:db48:8ec8)
2021-03-18 08:26:57 +0100 <slack1256> yeah, but I have always found the nix-shell shebangs to be slow
2021-03-18 08:27:39 +0100 <CodeKiwi> (that gist is kind of a "because i can" experiment that i don't usually use lol)
2021-03-18 08:28:17 +0100 <slack1256> Anyways, I will go to sleep.
2021-03-18 08:28:20 +0100 <slack1256> Good luck.
2021-03-18 08:28:25 +0100slack1256(~slack1256@dvc-186-186-101-190.movil.vtr.net) (Remote host closed the connection)
2021-03-18 08:28:58 +0100 <CodeKiwi> what i really use is this https://dpaste.com/5RBZC5ALQ
2021-03-18 08:29:21 +0100sjtfre(~sjtfre@124.239.70.146)
2021-03-18 08:29:51 +0100chele(~chele@ip5b40237d.dynamic.kabel-deutschland.de)
2021-03-18 08:31:14 +0100molehillish(~molehilli@2600:8800:8d06:1800:e0d0:506b:db48:8ec8) (Ping timeout: 264 seconds)
2021-03-18 08:31:45 +0100 <CodeKiwi> clearly the next feature is to select the ghc compiler and nixpkgs version
2021-03-18 08:32:40 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
2021-03-18 08:33:00 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2021-03-18 08:35:10 +0100Mrbuck(~Mrbuck@gateway/tor-sasl/mrbuck)
2021-03-18 08:36:34 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 265 seconds)
2021-03-18 08:38:42 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Ping timeout: 265 seconds)
2021-03-18 08:39:52 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362)
2021-03-18 08:40:35 +0100rdivyanshu(uid322626@gateway/web/irccloud.com/x-aqtspivhgbbjplug)
2021-03-18 08:44:41 +0100idhugo(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
2021-03-18 08:45:42 +0100knupfer(~Thunderbi@200116b82c062100c4a7805106b9f6d2.dip.versatel-1u1.de) (Ping timeout: 244 seconds)
2021-03-18 08:47:45 +0100sjtfre(~sjtfre@124.239.70.146) (Read error: Connection reset by peer)
2021-03-18 08:47:55 +0100pjb(~t@2a01cb04063ec50019789bb8481aa192.ipv6.abo.wanadoo.fr)
2021-03-18 08:48:05 +0100sjtfre(~sjtfre@124.239.70.146)
2021-03-18 08:48:43 +0100danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
2021-03-18 08:49:21 +0100idhugo(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 256 seconds)
2021-03-18 08:50:04 +0100howdoi(uid224@gateway/web/irccloud.com/x-hubpohkbjuuxxmge) (Quit: Connection closed for inactivity)
2021-03-18 08:50:28 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 245 seconds)
2021-03-18 08:51:13 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net)
2021-03-18 08:55:12 +0100dhruvasagar(~dhruvasag@49.207.63.69)
2021-03-18 08:55:19 +0100z0k(~user@115-186-141-88.nayatel.pk)
2021-03-18 08:55:47 +0100sjtfre(~sjtfre@124.239.70.146) (Read error: Connection reset by peer)
2021-03-18 08:56:06 +0100sjtfre(~sjtfre@124.239.70.146)
2021-03-18 08:56:13 +0100knupfer(~Thunderbi@200116b82c0621001d06987cde0b66e7.dip.versatel-1u1.de)
2021-03-18 08:56:21 +0100 <dhruvasagar> I have a function `f :: (String -> Maybe String)` and I have a `a :: (Maybe String)`, if I do a <$> f, I end up with `Maybe (Maybe String)`, how can I avoid the nesting of maybe ?
2021-03-18 08:57:07 +0100idhugo(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
2021-03-18 08:57:16 +0100 <dminuoso> Use =<< instead of <$>
2021-03-18 08:57:24 +0100 <dminuoso> Or do-notation
2021-03-18 08:57:41 +0100 <dminuoso> Or, you can also use <=< / >=>
2021-03-18 08:57:45 +0100 <dhruvasagar> dminuoso: but how do I return a Maybe String from the do ?
2021-03-18 08:57:49 +0100jonathanx(~jonathan@h-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
2021-03-18 08:58:09 +0100Franciman(~francesco@host-79-53-62-46.retail.telecomitalia.it)
2021-03-18 08:58:18 +0100 <SIben> dhruvasagar: "return x" with x a string
2021-03-18 08:58:38 +0100 <dhruvasagar> SIben: yes that is logical :D, I am getting confused though
2021-03-18 08:58:44 +0100idhugo_(~idhugo@80-62-116-180-mobile.dk.customer.tdc.net)
2021-03-18 08:58:56 +0100 <dhruvasagar> dminuoso: i'll look at `<=<` and `>=>` as well, thanks
2021-03-18 08:59:53 +0100 <SIben> btw dhruvasagar, "<$>" should be used with your function on the left hand side :)
2021-03-18 09:00:00 +0100 <SIben> (not that this matters here since it is not well typed anyway)
2021-03-18 09:00:12 +0100 <dminuoso> dhruvasagar: All three options are equivalent. I tend to favor =<< when applicable.
2021-03-18 09:00:19 +0100 <dminuoso> Though do-notation for Maybe can be handy in some cases.
2021-03-18 09:00:41 +0100knupfer(~Thunderbi@200116b82c0621001d06987cde0b66e7.dip.versatel-1u1.de) (Ping timeout: 244 seconds)
2021-03-18 09:01:18 +0100idhugo(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 245 seconds)
2021-03-18 09:01:34 +0100 <dhruvasagar> maybe my reduction isn't very practical, would you guys be willing to look at my horrible code ?
2021-03-18 09:02:50 +0100 <SIben> Sure :)
2021-03-18 09:03:25 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2021-03-18 09:03:28 +0100sjtfre(~sjtfre@124.239.70.146) (Remote host closed the connection)
2021-03-18 09:03:49 +0100 <dhruvasagar> https://gist.github.com/dhruvasagar/fcda1bd59d96e5320e2ca936e0da39c8
2021-03-18 09:04:22 +0100 <dhruvasagar> SIben: dminuoso it may be bit hard to follow, or not, but the main thing I am struggling with is the manyByIndent
2021-03-18 09:04:58 +0100kuribas(~user@ptr-25vy0i92dp498ona6ki.18120a2.ip6.access.telenet.be)
2021-03-18 09:05:54 +0100 <dhruvasagar> I am doing this as a learning exercise, I don't want to use Parsec at this point
2021-03-18 09:06:04 +0100gds(~user@2a01:4b00:8605:9800:4103:dbd5:9f3c:6103)
2021-03-18 09:06:07 +0100pyuk(~vroom@217.138.252.180)
2021-03-18 09:06:07 +0100puke(~vroom@217.138.252.180) (Read error: Connection reset by peer)
2021-03-18 09:06:25 +0100 <dhruvasagar> A lot of code here is borrowed from the json parser build by tsoding
2021-03-18 09:07:08 +0100bitmagie(~Thunderbi@200116b8060fe700383a25a1bbfaa0e2.dip.versatel-1u1.de) (Quit: bitmagie)
2021-03-18 09:07:59 +0100coot(~coot@37.30.58.223.nat.umts.dynamic.t-mobile.pl)
2021-03-18 09:09:09 +0100 <dhruvasagar> SIben: sorry if it's unreadable
2021-03-18 09:09:30 +0100 <dhruvasagar> looks like I found a solution, perhaps you can help refactor it ?
2021-03-18 09:10:53 +0100 <SIben> dhruvasagar: sorry, I have a meeting in 5 min and it is a bit long :)
2021-03-18 09:11:05 +0100 <dhruvasagar> SIben: that's cool, thanks for trying
2021-03-18 09:12:04 +0100 <SIben> Let me know what you come up with, I can try to help again when I am free :)
2021-03-18 09:12:48 +0100 <dhruvasagar> SIben: manyByIndent p =
2021-03-18 09:12:50 +0100 <dhruvasagar> Parser $ \input -> do
2021-03-18 09:12:51 +0100 <dhruvasagar> (_, indent) <- runParser ws input
2021-03-18 09:12:54 +0100 <dhruvasagar> (rem, a) <- runParser (many (stringP indent *> p <* charP '\n')) input
2021-03-18 09:12:56 +0100 <dhruvasagar> Just (rem, a)
2021-03-18 09:13:08 +0100 <dhruvasagar> SIben: that's what I came up with, it seems to do what I intended, still have to figure out how to use this
2021-03-18 09:13:12 +0100pyuk(~vroom@217.138.252.180) (Quit: pyuk)
2021-03-18 09:13:33 +0100puke(~vroom@217.138.252.180)
2021-03-18 09:13:34 +0100Varis(~Tadas@unaffiliated/varis)
2021-03-18 09:17:05 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2021-03-18 09:24:33 +0100sm2n(~sm2n@bras-base-hmtnon143hw-grc-15-70-54-78-219.dsl.bell.ca)
2021-03-18 09:25:06 +0100hiroaki(~hiroaki@2a02:8108:8c40:2bb8:7ae2:2c33:b1ea:eeb7) (Ping timeout: 265 seconds)
2021-03-18 09:26:25 +0100average(uid473595@gateway/web/irccloud.com/x-movoojltrrxlptod) (Quit: Connection closed for inactivity)
2021-03-18 09:31:12 +0100notzmv(~zmv@unaffiliated/zmv) (Read error: Connection reset by peer)
2021-03-18 09:34:59 +0100Kaiepi(~Kaiepi@47.54.252.148) (Remote host closed the connection)
2021-03-18 09:36:46 +0100hiroaki(~hiroaki@2a02:8108:8c40:2bb8:8fe8:bb5c:e4b1:b3c4)
2021-03-18 09:38:08 +0100datajerk(~datajerk@sense.net) (Ping timeout: 256 seconds)
2021-03-18 09:39:14 +0100Hi-Angel(~constanti@broadband-188-32-15-112.ip.moscow.rt.ru)
2021-03-18 09:39:24 +0100sm2n(~sm2n@bras-base-hmtnon143hw-grc-15-70-54-78-219.dsl.bell.ca) (Ping timeout: 265 seconds)
2021-03-18 09:40:51 +0100 <CodeKiwi> 07:15 slack1256: CodeKiwi: wouldn't have helped, the version of `time` you get in your nix-shell depends on your version of nixpkgs.
2021-03-18 09:42:08 +0100 <CodeKiwi> https://mostlyabsurd.com/posts/2019/06/03/minimal-imports-maximal-imports/ https://mostlyabsurd.com/posts/2019/06/03/minimal-imports-maximal-imports/ is supposed to avoid the problems of a library adding something later that you used
2021-03-18 09:42:27 +0100 <CodeKiwi> oh they're not here :(
2021-03-18 09:42:45 +0100kritzefitz(~kritzefit@fw-front.credativ.com)
2021-03-18 09:42:45 +0100asheshambasta(~user@ptr-e1lysav20kvw9mt8vlk.18120a2.ip6.access.telenet.be)
2021-03-18 09:43:29 +0100 <CodeKiwi> https://mostlyabsurd.com/posts/2019/06/09/minimal-imports-maximal-imports-examples/ was supposed to be the other url...
2021-03-18 09:49:01 +0100Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Ping timeout: 276 seconds)
2021-03-18 09:49:49 +0100Yumasi(~guillaume@2a01:e0a:5cb:4430:2eb3:d0f5:cc9d:3dff)
2021-03-18 09:51:41 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-03-18 09:52:16 +0100jumper149(~jumper149@ip185225.wh.uni-hannover.de)
2021-03-18 09:54:57 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Client Quit)
2021-03-18 09:55:09 +0100datajerk(~datajerk@sense.net)
2021-03-18 09:55:28 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-03-18 09:57:24 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-18 09:58:22 +0100LKoen(~LKoen@194.250.88.92.rev.sfr.net)
2021-03-18 10:00:02 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds)
2021-03-18 10:00:06 +0100freeman42x[m](freeman42x@gateway/shell/matrix.org/x-tkncoclizmblbtxd) (Quit: Idle for 30+ days)
2021-03-18 10:02:57 +0100Boomerang(~Boomerang@2a05:f6c7:2179:0:c023:32c1:e407:f7a0)
2021-03-18 10:03:44 +0100Aquazi(uid312403@gateway/web/irccloud.com/x-hqwyhalzcvtqolcp)
2021-03-18 10:03:52 +0100Sorna(~Sornaensi@79.142.232.102)
2021-03-18 10:05:27 +0100m0rphism(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
2021-03-18 10:06:59 +0100Sornaensis(~Sornaensi@077213203030.dynamic.telenor.dk) (Ping timeout: 256 seconds)
2021-03-18 10:14:24 +0100ejjfunky(7da36f81@125.163.111.129) (Quit: Connection closed)
2021-03-18 10:15:56 +0100lokesh1197(cbc182d2@203.193.130.210)
2021-03-18 10:19:21 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2021-03-18 10:20:20 +0100unyu(~pyon@unaffiliated/pyon)
2021-03-18 10:21:33 +0100dsrt^(dsrt@ip98-184-89-2.mc.at.cox.net) ()
2021-03-18 10:25:35 +0100mouseghost(~draco@87-206-9-185.dynamic.chello.pl)
2021-03-18 10:25:35 +0100mouseghost(~draco@87-206-9-185.dynamic.chello.pl) (Changing host)
2021-03-18 10:25:35 +0100mouseghost(~draco@wikipedia/desperek)
2021-03-18 10:25:37 +0100Mrbuck(~Mrbuck@gateway/tor-sasl/mrbuck) (Ping timeout: 268 seconds)
2021-03-18 10:26:34 +0100Mrbuck(~Mrbuck@gateway/tor-sasl/mrbuck)
2021-03-18 10:26:46 +0100cods(~fred@82-65-232-44.subs.proxad.net) (Ping timeout: 265 seconds)
2021-03-18 10:28:09 +0100MidAutumnHotaru1(~MidAutumn@unaffiliated/midautumnhotaru) (Quit: Quit 啾)
2021-03-18 10:28:29 +0100MidAutumnHotaru1(~MidAutumn@unaffiliated/midautumnhotaru)
2021-03-18 10:30:37 +0100vicfred(vicfred@gateway/vpn/mullvad/vicfred) (Quit: Leaving)
2021-03-18 10:32:16 +0100cods(~fred@82-65-232-44.subs.proxad.net)
2021-03-18 10:37:21 +0100Gurkenglas_(~Gurkengla@unaffiliated/gurkenglas)
2021-03-18 10:38:32 +0100Sathiana(~kath@185-113-98-38.cust.bredband2.com)
2021-03-18 10:40:27 +0100Sathiana(~kath@185-113-98-38.cust.bredband2.com) (Client Quit)
2021-03-18 10:40:46 +0100Sathiana(~kath@185-113-98-38.cust.bredband2.com)
2021-03-18 10:44:11 +0100Guest14375(~textual@2603-7000-3040-0000-99be-88ec-b8de-8f7c.res6.spectrum.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-03-18 10:48:25 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f837:3533:97b:1f44) (Remote host closed the connection)
2021-03-18 10:48:31 +0100dhouthoo(~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be)
2021-03-18 10:50:03 +0100Gurkenglas_(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 256 seconds)
2021-03-18 10:51:09 +0100sm2n(~sm2n@bras-base-hmtnon143hw-grc-15-70-54-78-219.dsl.bell.ca)
2021-03-18 10:51:25 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2021-03-18 10:56:01 +0100Kaiepi(~Kaiepi@47.54.252.148)
2021-03-18 10:57:22 +0100mauro^(mauro@ip98-184-89-2.mc.at.cox.net)
2021-03-18 11:05:29 +0100thc202(~thc202@unaffiliated/thc202)
2021-03-18 11:05:40 +0100average(uid473595@gateway/web/irccloud.com/x-yatkowhamroegbah)
2021-03-18 11:06:48 +0100hololeap_(~hololeap@unaffiliated/hololeap)
2021-03-18 11:07:30 +0100kaletaa_(~kaletaa@188.34.177.83) (Quit: ZNC 1.8.1 - https://znc.in)
2021-03-18 11:07:45 +0100hololeap(~hololeap@unaffiliated/hololeap) (Ping timeout: 264 seconds)
2021-03-18 11:08:45 +0100mrchampion(~mrchampio@38.18.109.23) (Ping timeout: 256 seconds)
2021-03-18 11:09:32 +0100kaletaa(~kaletaa@188.34.177.83)
2021-03-18 11:10:58 +0100son0p(~son0p@181.58.39.182)
2021-03-18 11:12:35 +0100psygate(~psygate@unaffiliated/psygate)
2021-03-18 11:24:51 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2021-03-18 11:26:02 +0100lokesh1197(cbc182d2@203.193.130.210) (Ping timeout: 240 seconds)
2021-03-18 11:27:30 +0100forell(~forell@unaffiliated/forell) (Ping timeout: 256 seconds)
2021-03-18 11:32:27 +0100lozenge_(~lozenge@117.222.64.120)
2021-03-18 11:33:23 +0100Rudd0(~Rudd0@185.189.115.103) (Ping timeout: 245 seconds)
2021-03-18 11:33:24 +0100notzmv(~zmv@unaffiliated/zmv)
2021-03-18 11:34:26 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-03-18 11:34:54 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net) (Quit: WeeChat 3.0.1)
2021-03-18 11:35:59 +0100forell(~forell@unaffiliated/forell)
2021-03-18 11:39:42 +0100Lycurgus(~niemand@98.4.116.165)
2021-03-18 11:40:51 +0100malumore(~malumore@151.62.122.146)
2021-03-18 11:42:08 +0100rdivyanshu(uid322626@gateway/web/irccloud.com/x-aqtspivhgbbjplug) (Quit: Connection closed for inactivity)
2021-03-18 11:43:06 +0100Rudd0(~Rudd0@185.189.115.103)
2021-03-18 11:45:55 +0100Sathiana(~kath@185-113-98-38.cust.bredband2.com) (Quit: WeeChat 3.0)
2021-03-18 11:45:58 +0100Synthetica(uid199651@gateway/web/irccloud.com/x-ircgkbilfzdxjhvn)
2021-03-18 11:46:08 +0100Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
2021-03-18 11:48:24 +0100rond_(594020c5@89-64-32-197.dynamic.chello.pl)
2021-03-18 11:49:26 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b5a7:9e26:9598:47de)
2021-03-18 11:52:23 +0100geowiesnot_bis(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 256 seconds)
2021-03-18 11:53:12 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net)
2021-03-18 11:53:33 +0100Sathiana(~kath@185-113-98-38.cust.bredband2.com)
2021-03-18 11:54:02 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b5a7:9e26:9598:47de) (Ping timeout: 264 seconds)
2021-03-18 11:54:07 +0100Sathiana(~kath@185-113-98-38.cust.bredband2.com) (Client Quit)
2021-03-18 11:54:15 +0100malumore(~malumore@151.62.122.146) (Ping timeout: 265 seconds)
2021-03-18 11:54:28 +0100Sathiana(~kath@185-113-98-38.cust.bredband2.com)
2021-03-18 11:54:34 +0100dyeplexer(~lol@unaffiliated/terpin)
2021-03-18 11:55:39 +0100raichoo(~raichoo@dslb-084-062-113-170.084.062.pools.vodafone-ip.de)
2021-03-18 11:55:53 +0100Sathiana(~kath@185-113-98-38.cust.bredband2.com) (Client Quit)
2021-03-18 11:56:18 +0100Sathiana(~kath@185-113-98-38.cust.bredband2.com)
2021-03-18 11:56:25 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection)
2021-03-18 11:56:52 +0100bahamas(~lucian@unaffiliated/bahamas)
2021-03-18 11:57:23 +0100 <bahamas> can you chain as many transformers as you want in a transformer stack?
2021-03-18 11:58:09 +0100 <dminuoso> Yes.
2021-03-18 11:58:25 +0100aarvar(~foewfoiew@2601:602:a080:fa0:99f2:16e7:abb7:2d80) (Ping timeout: 244 seconds)
2021-03-18 12:00:19 +0100specdrake(~anurag@203.192.236.225) (Ping timeout: 256 seconds)
2021-03-18 12:00:37 +0100Alleria(~textual@zrcout.mskcc.org)
2021-03-18 12:00:50 +0100AlleriaGuest58397
2021-03-18 12:02:01 +0100jumper149(~jumper149@ip185225.wh.uni-hannover.de) (Ping timeout: 256 seconds)
2021-03-18 12:02:05 +0100 <joel135> looking at https://hackage.haskell.org/package/base-4.14.1.0/docs/Foreign-C-String.html
2021-03-18 12:02:08 +0100Sathiana(~kath@185-113-98-38.cust.bredband2.com) (Quit: WeeChat 3.0)
2021-03-18 12:02:23 +0100 <joel135> peekCString -> IO String fail? if so, how to catch it?
2021-03-18 12:02:31 +0100Sathiana(~kath@185-113-98-38.cust.bredband2.com)
2021-03-18 12:03:26 +0100Sathiana(~kath@185-113-98-38.cust.bredband2.com) (Client Quit)
2021-03-18 12:03:51 +0100Sathiana(~kath@185-113-98-38.cust.bredband2.com)
2021-03-18 12:04:08 +0100rond_(594020c5@89-64-32-197.dynamic.chello.pl) (Quit: Connection closed)
2021-03-18 12:06:32 +0100mikeplus64(~mike@unaffiliated/mikeplus64) (Ping timeout: 265 seconds)
2021-03-18 12:08:41 +0100 <dminuoso> What do you mean by "fail" exactly?
2021-03-18 12:09:38 +0100Mrbuck(~Mrbuck@gateway/tor-sasl/mrbuck) (Quit: WeeChat 2.8)
2021-03-18 12:12:13 +0100jamm_(~jamm@unaffiliated/jamm)
2021-03-18 12:13:08 +0100ixlun(~matthew@213.205.241.14)
2021-03-18 12:14:52 +0100jakalx(~jakalx@base.jakalx.net) ("Error from remote client")
2021-03-18 12:15:56 +0100ukari(~ukari@unaffiliated/ukari) (Remote host closed the connection)
2021-03-18 12:16:55 +0100ukari(~ukari@unaffiliated/ukari)
2021-03-18 12:17:04 +0100ixlun(~matthew@213.205.241.14) (Remote host closed the connection)
2021-03-18 12:17:06 +0100 <joel135> i don't know exactly
2021-03-18 12:18:02 +0100ixlun(~matthew@213.205.241.14)
2021-03-18 12:18:05 +0100 <joel135> it is just a curiosity question
2021-03-18 12:18:51 +0100 <joel135> maybe seeing that type made me think that it might fail, since anything could happen in IO, but not sure
2021-03-18 12:19:21 +0100jakalx(~jakalx@base.jakalx.net)
2021-03-18 12:20:13 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-03-18 12:20:29 +0100mauro^(mauro@ip98-184-89-2.mc.at.cox.net) ()
2021-03-18 12:21:54 +0100raichoo(~raichoo@dslb-084-062-113-170.084.062.pools.vodafone-ip.de) (Quit: leaving)
2021-03-18 12:22:28 +0100ixlun(~matthew@213.205.241.14) (Remote host closed the connection)
2021-03-18 12:22:33 +0100raichoo(~raichoo@dslb-084-062-113-170.084.062.pools.vodafone-ip.de)
2021-03-18 12:23:05 +0100malumore(~malumore@151.62.122.146)
2021-03-18 12:23:08 +0100ixlun(~matthew@213.205.241.14)
2021-03-18 12:24:08 +0100jumper149(~jumper149@ip185225.wh.uni-hannover.de)
2021-03-18 12:25:22 +0100jumper149(~jumper149@ip185225.wh.uni-hannover.de) (Client Quit)
2021-03-18 12:25:49 +0100jumper149(~jumper149@ip185225.wh.uni-hannover.de)
2021-03-18 12:26:20 +0100jumper149(~jumper149@ip185225.wh.uni-hannover.de) (Client Quit)
2021-03-18 12:27:06 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-03-18 12:27:47 +0100mikeplus64(~mike@unaffiliated/mikeplus64)
2021-03-18 12:28:47 +0100 <Lycurgus> yes joel135 , I can confirm that anything can happen in IO.
2021-03-18 12:28:48 +0100mrchampion(~mrchampio@38.18.109.23)
2021-03-18 12:29:01 +0100 <joel135> :-)
2021-03-18 12:29:48 +0100jumper149(~jumper149@ip185225.wh.uni-hannover.de)
2021-03-18 12:30:01 +0100 <joel135> i guess i should come back if i have the same question in a more realistic situation, where i am actually concerned about some foreign errors
2021-03-18 12:30:12 +0100stree(~stree@68.36.8.116) (Quit: Caught exception)
2021-03-18 12:30:37 +0100stree(~stree@68.36.8.116)
2021-03-18 12:32:19 +0100 <Lycurgus> if the public log in the topic weren't messed up, I could direct you to a recent convo on exceptions in haskell
2021-03-18 12:33:41 +0100 <Lycurgus> still may be worth googling it for "exceptions" and ofc hs and exceptions generally or come back when it's more active and someone wants to hold forth on the topic
2021-03-18 12:34:45 +0100fl0_id(~fl0_id@2a01:4f8:171:4de::40:2) ("Textual IRC Client: www.textualapp.com")
2021-03-18 12:34:54 +0100 <maerwald> "how to catch an error" is not an easy question in haskell :p
2021-03-18 12:38:52 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-03-18 12:38:56 +0100jonatanb(~jonatanb@83.24.3.77.ipv4.supernova.orange.pl)
2021-03-18 12:39:04 +0100jonatanb(~jonatanb@83.24.3.77.ipv4.supernova.orange.pl) (Remote host closed the connection)
2021-03-18 12:39:15 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-03-18 12:39:29 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-ytqtvgeezlfvcafx)
2021-03-18 12:41:26 +0100Lycurgus(~niemand@98.4.116.165) (Quit: Exeunt)
2021-03-18 12:42:15 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-03-18 12:42:52 +0100jumper149(~jumper149@ip185225.wh.uni-hannover.de) (Quit: WeeChat 3.1)
2021-03-18 12:43:54 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-18 12:44:10 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds)
2021-03-18 12:47:28 +0100LKoen(~LKoen@194.250.88.92.rev.sfr.net) (Remote host closed the connection)
2021-03-18 12:49:03 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
2021-03-18 12:49:05 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-03-18 12:49:22 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-18 12:49:55 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b5a7:9e26:9598:47de)
2021-03-18 12:49:57 +0100jamm_(~jamm@unaffiliated/jamm)
2021-03-18 12:50:15 +0100dsrt^(dsrt@ip98-184-89-2.mc.at.cox.net)
2021-03-18 12:54:38 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b5a7:9e26:9598:47de) (Ping timeout: 264 seconds)
2021-03-18 12:54:45 +0100plutoniix(~q@184.82.209.205) (Quit: Leaving)
2021-03-18 12:55:14 +0100jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
2021-03-18 12:56:21 +0100acidjnk_new(~acidjnk@p200300d0c72b959625b3d356e6f65619.dip0.t-ipconnect.de)
2021-03-18 12:59:10 +0100dramforever(~dram@unaffiliated/dramforever)
2021-03-18 12:59:51 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
2021-03-18 13:01:54 +0100bahamas(~lucian@unaffiliated/bahamas) (Ping timeout: 260 seconds)
2021-03-18 13:05:54 +0100sagecube[m](sagecubema@gateway/shell/matrix.org/x-fvgneeorwuxkhsvd)
2021-03-18 13:06:21 +0100yaroot(~yaroot@138.102.13.160.dy.iij4u.or.jp)
2021-03-18 13:06:53 +0100urodna(~urodna@unaffiliated/urodna)
2021-03-18 13:08:47 +0100sagecube[m](sagecubema@gateway/shell/matrix.org/x-fvgneeorwuxkhsvd) ()
2021-03-18 13:09:19 +0100LKoen(~LKoen@194.250.88.92.rev.sfr.net)
2021-03-18 13:09:55 +0100 <tomsmeding> sorry for the shitpost; this is a source file from the election vote counting software apparently in use in the netherlands: https://tomsmeding.com/vang/Tx0yjl
2021-03-18 13:10:22 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-03-18 13:11:34 +0100 <merijn> tomsmeding: There is not vote counting software
2021-03-18 13:11:35 +0100geekosaur(82650c7a@130.101.12.122)
2021-03-18 13:11:41 +0100 <merijn> tomsmeding: Also, -offtopic :)
2021-03-18 13:11:49 +0100 <tomsmeding> me apologises
2021-03-18 13:11:53 +0100tomsmeding^
2021-03-18 13:13:45 +0100idhugo__(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
2021-03-18 13:14:54 +0100specdrake(~anurag@203.192.236.225)
2021-03-18 13:16:22 +0100idhugo_(~idhugo@80-62-116-180-mobile.dk.customer.tdc.net) (Ping timeout: 260 seconds)
2021-03-18 13:17:02 +0100lozenge_(~lozenge@117.222.64.120) ()
2021-03-18 13:17:41 +0100forgottenone(~forgotten@176.42.16.24) (Quit: Konversation terminated!)
2021-03-18 13:18:10 +0100forgottenone(~forgotten@176.42.16.24)
2021-03-18 13:21:19 +0100Gurkenglas_(~Gurkengla@unaffiliated/gurkenglas)
2021-03-18 13:21:44 +0100Mrbuck(~Mrbuck@gateway/tor-sasl/mrbuck)
2021-03-18 13:22:29 +0100bahamas(~lucian@unaffiliated/bahamas)
2021-03-18 13:23:37 +0100Sathiana(~kath@185-113-98-38.cust.bredband2.com) (Quit: WeeChat 3.0)
2021-03-18 13:24:29 +0100geowiesnot_bis(~user@87-89-181-157.abo.bbox.fr)
2021-03-18 13:24:58 +0100forgottenone(~forgotten@176.42.16.24) (Ping timeout: 260 seconds)
2021-03-18 13:25:26 +0100manjaroi3InsideBreeze
2021-03-18 13:27:21 +0100codygman__(~user@47.186.207.161)
2021-03-18 13:33:32 +0100Sathiana(~kath@185-113-98-38.cust.bredband2.com)
2021-03-18 13:33:45 +0100Kaiepi(~Kaiepi@47.54.252.148) (Read error: Connection reset by peer)
2021-03-18 13:37:44 +0100dramforever(~dram@unaffiliated/dramforever) (Remote host closed the connection)
2021-03-18 13:38:36 +0100ph88(~ph88@ip5f5af71a.dynamic.kabel-deutschland.de)
2021-03-18 13:40:02 +0100 <ph88> does anyone know how to make the argument to an optparse-applicative option optional ? the default value that is available now works for when the option is not given. I would like to have 3 states though: option not given, option given without argument, option given with arguments
2021-03-18 13:40:46 +0100Tario(~Tario@201.192.165.173)
2021-03-18 13:42:09 +0100jumper149(~jumper149@ip185225.wh.uni-hannover.de)
2021-03-18 13:42:53 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz)
2021-03-18 13:43:17 +0100Kaiepi(~Kaiepi@47.54.252.148)
2021-03-18 13:44:19 +0100jakalx(~jakalx@base.jakalx.net) ("Disconnected: Replaced by new connection")
2021-03-18 13:45:19 +0100 <tomsmeding> ph88: what if the argument to the option starts with a '-'?
2021-03-18 13:45:51 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz) (Remote host closed the connection)
2021-03-18 13:46:17 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz)
2021-03-18 13:46:23 +0100 <ph88> same as whatever optparse-applicative does now when the argument start with "-" ... which i don't know
2021-03-18 13:47:16 +0100 <geekosaur> tomsmeding is talking about a case that normally can't happen: is --foo --bar with --foo having your semantics --foo with parameter --bar, or --foo followed by --bar?
2021-03-18 13:47:50 +0100 <geekosaur> basically your requested grammar is ambiguous, which it normally isn't
2021-03-18 13:50:32 +0100peanut_(~peanut@2a02:8388:a101:2600:8bb2:874c:9ad6:7619)
2021-03-18 13:50:46 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b5a7:9e26:9598:47de)
2021-03-18 13:52:20 +0100__minoru__shirae(~shiraeesh@109.166.59.216)
2021-03-18 13:54:25 +0100__minoru__shirae(~shiraeesh@109.166.59.216) (Read error: No route to host)
2021-03-18 13:54:48 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-03-18 13:55:04 +0100 <merijn> ph88: You can't have optional arguments in optparse
2021-03-18 13:55:20 +0100 <merijn> You have either flags (no argument) or options (argument)
2021-03-18 13:55:28 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-03-18 13:55:37 +0100supercoven(~Supercove@dsl-hkibng31-54fabd-233.dhcp.inet.fi)
2021-03-18 13:55:50 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b5a7:9e26:9598:47de) (Ping timeout: 264 seconds)
2021-03-18 13:56:55 +0100ep1ctetus(~epictetus@ip72-194-215-136.sb.sd.cox.net)
2021-03-18 13:57:08 +0100 <iphy> is there something like (a -> c -> (b, c)) -> [a] -> c -> [b]? I want to map [a] to [b], but also keep some state c in each iteration. basically foldr but I don't want to do the list append myself
2021-03-18 13:57:09 +0100LKoen_(~LKoen@194.250.88.92.rev.sfr.net)
2021-03-18 13:58:16 +0100 <mniip> :t mapAccumL
2021-03-18 13:58:16 +0100 <geekosaur> :t mapAccumL
2021-03-18 13:58:18 +0100 <lambdabot> Traversable t => (a -> b -> (a, c)) -> a -> t b -> (a, t c)
2021-03-18 13:58:35 +0100 <iphy> perfect, thanks
2021-03-18 13:58:52 +0100 <iphy> I tried hoogle with the above type signature and it yielded nothing
2021-03-18 13:59:17 +0100 <iphy> should have generalised to Traversable maybe
2021-03-18 13:59:28 +0100 <mniip> you could also traverse with State manually
2021-03-18 13:59:38 +0100LKoen(~LKoen@194.250.88.92.rev.sfr.net) (Ping timeout: 245 seconds)
2021-03-18 13:59:49 +0100Sathiana(~kath@185-113-98-38.cust.bredband2.com) (Quit: WeeChat 3.0)
2021-03-18 13:59:54 +0100 <mniip> :t runState . traverse state
2021-03-18 13:59:56 +0100 <lambdabot> Traversable t => t (s -> (b, s)) -> s -> (t b, s)
2021-03-18 14:00:11 +0100 <iphy> yeah, I think mapAccumL is exactly what I want, though
2021-03-18 14:00:16 +0100 <mniip> :t (runState .) . traverse . state
2021-03-18 14:00:18 +0100 <lambdabot> (Traversable t, MonadState s1 ((->) a)) => (s1 -> (StateT s2 Identity b, s1)) -> t a -> s2 -> (t b, s2)
2021-03-18 14:00:31 +0100 <mniip> :t (runState .) . traverse . (state .)
2021-03-18 14:00:32 +0100 <lambdabot> Traversable t => (a -> s -> (b, s)) -> t a -> s -> (t b, s)
2021-03-18 14:00:50 +0100 <tomsmeding> @hoogle (c -> a -> (c, b)) -> c -> [a] -> (c, [b])
2021-03-18 14:00:50 +0100 <mniip> this is also mapAccumL :P
2021-03-18 14:00:51 +0100 <lambdabot> GHC.OldList mapAccumL :: (acc -> x -> (acc, y)) -> acc -> [x] -> (acc, [y])
2021-03-18 14:00:51 +0100 <lambdabot> GHC.OldList mapAccumR :: (acc -> x -> (acc, y)) -> acc -> [x] -> (acc, [y])
2021-03-18 14:00:51 +0100 <lambdabot> Data.List2010 mapAccumL :: (acc -> x -> (acc, y)) -> acc -> [x] -> (acc, [y])
2021-03-18 14:00:53 +0100icebreak1r(michalc@freeshell.de) (Ping timeout: 265 seconds)
2021-03-18 14:01:08 +0100forgottenone(~forgotten@176.42.16.24)
2021-03-18 14:01:09 +0100 <tomsmeding> iphy: there's just too much variation in how you order the arguments
2021-03-18 14:01:30 +0100 <mniip> I think the block here is the return value of (acc, [y])
2021-03-18 14:01:34 +0100 <mniip> as opposed to [y]
2021-03-18 14:01:43 +0100 <mniip> runState not evalState
2021-03-18 14:01:45 +0100 <tomsmeding> flipping the arguments to the lambda, the parts of the returned pair, the second and third args of mapAccumL, and adding the accumulator to the result lets hoogle find it :p
2021-03-18 14:01:54 +0100 <tomsmeding> I believe all those mutations are necessary
2021-03-18 14:02:19 +0100Sathiana(~kath@185-113-98-38.cust.bredband2.com)
2021-03-18 14:03:43 +0100hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net)
2021-03-18 14:08:09 +0100kav(~kari@dsl-hkibng42-56733f-225.dhcp.inet.fi)
2021-03-18 14:09:42 +0100geekosaur(82650c7a@130.101.12.122) (Ping timeout: 240 seconds)
2021-03-18 14:10:05 +0100codygman`(~user@209.251.131.98)
2021-03-18 14:11:43 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 244 seconds)
2021-03-18 14:12:13 +0100codygman__(~user@47.186.207.161) (Ping timeout: 260 seconds)
2021-03-18 14:14:26 +0100carlomagno(~cararell@148.87.23.7)
2021-03-18 14:17:05 +0100geekosaur(82650c7a@130.101.12.122)
2021-03-18 14:17:35 +0100__minoru__shirae(~shiraeesh@109.166.59.216)
2021-03-18 14:20:19 +0100Sathiana(~kath@185-113-98-38.cust.bredband2.com) (Quit: WeeChat 3.0)
2021-03-18 14:21:18 +0100Sathiana(~kath@185-113-98-38.cust.bredband2.com)
2021-03-18 14:22:18 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-ibeawnzzibcmilki)
2021-03-18 14:23:23 +0100hackageslist 0.2.0.0 - Sized list https://hackage.haskell.org/package/slist-0.2.0.0 (vrom911)
2021-03-18 14:27:44 +0100idhugo_(~idhugo@80-62-116-180-mobile.dk.customer.tdc.net)
2021-03-18 14:29:54 +0100idhugo_(~idhugo@80-62-116-180-mobile.dk.customer.tdc.net) (Read error: Connection reset by peer)
2021-03-18 14:30:06 +0100__minoru__shirae(~shiraeesh@109.166.59.216) (Ping timeout: 260 seconds)
2021-03-18 14:30:16 +0100idhugo(~idhugo@80-62-116-180-mobile.dk.customer.tdc.net)
2021-03-18 14:30:34 +0100idhugo__(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 260 seconds)
2021-03-18 14:32:38 +0100Benzi-Junior(~BenziJuni@88-149-67-143.du.xdsl.is)
2021-03-18 14:32:54 +0100willmoffat(~willmoffa@37.120.211.188)
2021-03-18 14:36:35 +0100hjec(614e8662@rrcs-97-78-134-98.se.biz.rr.com)
2021-03-18 14:37:27 +0100toorevitimirp(~tooreviti@117.182.183.55) (Remote host closed the connection)
2021-03-18 14:37:53 +0100toorevitimirp(~tooreviti@117.182.183.55)
2021-03-18 14:38:55 +0100stree(~stree@68.36.8.116) (Ping timeout: 276 seconds)
2021-03-18 14:42:38 +0100 <ph88> merijn, what about a switch ? it also has --switch1 --switch2 no ?
2021-03-18 14:44:02 +0100LKoen_(~LKoen@194.250.88.92.rev.sfr.net) (Remote host closed the connection)
2021-03-18 14:45:38 +0100__minoru__shirae(~shiraeesh@109.166.59.216)
2021-03-18 14:46:34 +0100 <merijn> switches are just convenience version of flags where the result is boolean
2021-03-18 14:50:45 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser)
2021-03-18 14:51:27 +0100son0p(~son0p@181.58.39.182) (Quit: Lost terminal)
2021-03-18 14:51:55 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b5a7:9e26:9598:47de)
2021-03-18 14:52:15 +0100stree(~stree@68.36.8.116)
2021-03-18 14:56:26 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b5a7:9e26:9598:47de) (Ping timeout: 264 seconds)
2021-03-18 15:02:25 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz) (Quit: Leaving)
2021-03-18 15:02:26 +0100jamm_(~jamm@unaffiliated/jamm)
2021-03-18 15:06:42 +0100geekosaur(82650c7a@130.101.12.122) (Ping timeout: 240 seconds)
2021-03-18 15:07:06 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-03-18 15:07:23 +0100hackagexrefcheck 0.1.3 - https://hackage.haskell.org/package/xrefcheck-0.1.3 (martoon)
2021-03-18 15:07:25 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-03-18 15:07:35 +0100zebrag(~inkbottle@aaubervilliers-654-1-101-29.w86-212.abo.wanadoo.fr)
2021-03-18 15:09:23 +0100hackagefuzzyfind 0.1.0 - Fuzzy text matching https://hackage.haskell.org/package/fuzzyfind-0.1.0 (runar)
2021-03-18 15:09:31 +0100bahamas(~lucian@unaffiliated/bahamas) (Ping timeout: 265 seconds)
2021-03-18 15:09:46 +0100toorevitimirp(~tooreviti@117.182.183.55) (Remote host closed the connection)
2021-03-18 15:10:07 +0100jumper149(~jumper149@ip185225.wh.uni-hannover.de) (Ping timeout: 276 seconds)
2021-03-18 15:13:16 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net)
2021-03-18 15:13:35 +0100tsaka__(~torstein@2a02:587:1b1a:7800:792e:732d:be64:a99d) (Ping timeout: 265 seconds)
2021-03-18 15:15:10 +0100neiluj(~jco@91-167-203-101.subs.proxad.net)
2021-03-18 15:15:16 +0100neiluj(~jco@91-167-203-101.subs.proxad.net) (Changing host)
2021-03-18 15:15:16 +0100neiluj(~jco@unaffiliated/neiluj)
2021-03-18 15:17:01 +0100rj_(~x@gateway/tor-sasl/rj)
2021-03-18 15:18:35 +0100romesrf(~romesrf@44.190.189.46.rev.vodafone.pt)
2021-03-18 15:19:22 +0100romesrf(~romesrf@44.190.189.46.rev.vodafone.pt) (Client Quit)
2021-03-18 15:19:42 +0100romesrf(~romesrf@44.190.189.46.rev.vodafone.pt)
2021-03-18 15:20:24 +0100romesrf(~romesrf@44.190.189.46.rev.vodafone.pt) (Client Quit)
2021-03-18 15:23:39 +0100Wuzzy(~Wuzzy@p57a2ecf2.dip0.t-ipconnect.de)
2021-03-18 15:23:47 +0100geekosaur(82650c7a@130.101.12.122)
2021-03-18 15:25:15 +0100Rudd0(~Rudd0@185.189.115.103) (Ping timeout: 246 seconds)
2021-03-18 15:25:49 +0100dramforever(~dram@unaffiliated/dramforever)
2021-03-18 15:27:51 +0100ep1ctetus(~epictetus@ip72-194-215-136.sb.sd.cox.net) (Remote host closed the connection)
2021-03-18 15:28:09 +0100ep1ctetus(~epictetus@ip72-194-215-136.sb.sd.cox.net)
2021-03-18 15:31:34 +0100LKoen(~LKoen@194.250.88.92.rev.sfr.net)
2021-03-18 15:31:45 +0100justan0theruser(~justanoth@unaffiliated/justanotheruser)
2021-03-18 15:31:51 +0100daveo1234567654(55e6bffd@c-fdbfe655.09-209-73746f1.bbcust.telenor.se)
2021-03-18 15:32:06 +0100spydon97(0d30fb5f@ec2-13-48-251-95.eu-north-1.compute.amazonaws.com)
2021-03-18 15:34:23 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 244 seconds)
2021-03-18 15:35:14 +0100ntkr(uid491148@gateway/web/irccloud.com/x-dcjykuvxwerbfwae) (Quit: Connection closed for inactivity)
2021-03-18 15:36:25 +0100andreas31(~andreas@gateway/tor-sasl/andreas303) (Ping timeout: 268 seconds)
2021-03-18 15:37:13 +0100andreas31(~andreas@gateway/tor-sasl/andreas303)
2021-03-18 15:37:22 +0100shailangsa(~shailangs@host86-162-150-241.range86-162.btcentralplus.com) ()
2021-03-18 15:37:49 +0100spydon97(0d30fb5f@ec2-13-48-251-95.eu-north-1.compute.amazonaws.com) (Quit: Connection closed)
2021-03-18 15:38:02 +0100zerok(~user@115.186.141.88)
2021-03-18 15:39:03 +0100z0k(~user@115-186-141-88.nayatel.pk) (Ping timeout: 256 seconds)
2021-03-18 15:40:58 +0100jumper149(~jumper149@ip185225.wh.uni-hannover.de)
2021-03-18 15:41:30 +0100ixlun(~matthew@213.205.241.14) (Read error: Connection reset by peer)
2021-03-18 15:42:27 +0100rj_(~x@gateway/tor-sasl/rj) (Quit: rj_)
2021-03-18 15:42:41 +0100rj_(~x@gateway/tor-sasl/rj)
2021-03-18 15:44:22 +0100daveo1234567654(55e6bffd@c-fdbfe655.09-209-73746f1.bbcust.telenor.se) (Ping timeout: 240 seconds)
2021-03-18 15:45:44 +0100molehillish(~molehilli@2600:8800:8d06:1800:e0d0:506b:db48:8ec8)
2021-03-18 15:46:38 +0100jumper149(~jumper149@ip185225.wh.uni-hannover.de) (Ping timeout: 260 seconds)
2021-03-18 15:48:36 +0100xcin(~x@159.203.132.140) (Ping timeout: 240 seconds)
2021-03-18 15:49:27 +0100sim590(~sim590@modemcable090.207-203-24.mc.videotron.ca) (Remote host closed the connection)
2021-03-18 15:49:37 +0100xff0x(~xff0x@2001:1a81:520b:5100:2c88:23cc:c327:16b6) (Ping timeout: 260 seconds)
2021-03-18 15:50:04 +0100xff0x(~xff0x@2001:1a81:520b:5100:8fc8:83d7:6af3:caa3)
2021-03-18 15:50:07 +0100Someguy123(~someguy@unaffiliated/compgenius999) (Ping timeout: 272 seconds)
2021-03-18 15:50:45 +0100lemald(~eddie@capybara.lemald.org) (Ping timeout: 272 seconds)
2021-03-18 15:51:14 +0100xcin(~x@159.203.132.140)
2021-03-18 15:51:18 +0100sim590(~sim590@modemcable090.207-203-24.mc.videotron.ca)
2021-03-18 15:52:23 +0100frozenErebus(~frozenEre@94.128.81.163)
2021-03-18 15:52:27 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b5a7:9e26:9598:47de)
2021-03-18 15:52:54 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2021-03-18 15:56:24 +0100ep1ctetus(~epictetus@ip72-194-215-136.sb.sd.cox.net) (Ping timeout: 246 seconds)
2021-03-18 15:57:02 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b5a7:9e26:9598:47de) (Ping timeout: 264 seconds)
2021-03-18 15:59:27 +0100geowiesnot_bis(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 256 seconds)
2021-03-18 16:03:18 +0100Someguy123(~someguy@unaffiliated/compgenius999)
2021-03-18 16:04:08 +0100lemald(~eddie@capybara.lemald.org)
2021-03-18 16:04:14 +0100berberman(~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds)
2021-03-18 16:05:16 +0100berberman(~berberman@unaffiliated/berberman)
2021-03-18 16:05:25 +0100ep1ctetus(~epictetus@ip72-194-215-136.sb.sd.cox.net)
2021-03-18 16:08:34 +0100__minoru__shirae(~shiraeesh@109.166.59.216) (Ping timeout: 260 seconds)
2021-03-18 16:09:16 +0100Shiranai(beed0de4@gateway/web/cgi-irc/kiwiirc.com/ip.190.237.13.228)
2021-03-18 16:09:40 +0100vchlup(~vchlup@nat.brnet.cz) (Read error: Connection reset by peer)
2021-03-18 16:10:12 +0100vchlup(~vchlup@nat.brnet.cz)
2021-03-18 16:10:25 +0100arianvp(~weechat@arianvp.me) (Quit: WeeChat 3.0)
2021-03-18 16:10:37 +0100 <Shiranai> Hello, I was going to start again the fp-course but seems some recent commit broke it https://github.com/system-f/fp-course/issues/402
2021-03-18 16:10:46 +0100arianvp(~weechat@arianvp.me)
2021-03-18 16:10:56 +0100 <Shiranai> how could I fix this? (without using a previous version of the course)
2021-03-18 16:12:56 +0100 <Boomerang> You can enable TypeFamilies when you start ghc/ghci: ghci -XTypeFamilies
2021-03-18 16:13:14 +0100ep1ctetus(~epictetus@ip72-194-215-136.sb.sd.cox.net) (Read error: Connection reset by peer)
2021-03-18 16:13:55 +0100shailangsa(~shailangs@host86-162-150-241.range86-162.btcentralplus.com)
2021-03-18 16:15:29 +0100ep1ctetus(~epictetus@ip72-194-215-136.sb.sd.cox.net)
2021-03-18 16:18:33 +0100 <c_wraith> Better to add a language pragma to that file.
2021-03-18 16:18:44 +0100 <tomsmeding> Shiranai: a better fix would I guess be to add ':set -XTypeFamilies' after line 15 in .ghci ?
2021-03-18 16:19:04 +0100LKoen(~LKoen@194.250.88.92.rev.sfr.net) (Remote host closed the connection)
2021-03-18 16:19:13 +0100 <tomsmeding> or what c_wraith says, but that ship has sailed I guess with that .ghci file
2021-03-18 16:19:24 +0100mouseghost(~draco@wikipedia/desperek) (Quit: mew wew)
2021-03-18 16:19:53 +0100 <tomsmeding> apparently there is another extension that the .ghci is missing: https://github.com/system-f/fp-course/pull/387/commits/051bed156fe17898b0a4fa409594331eebc83584
2021-03-18 16:20:29 +0100wopas32(uid384704@gateway/web/irccloud.com/x-zmlpbitgmcaytcfj)
2021-03-18 16:22:53 +0100neiluj(~jco@unaffiliated/neiluj) (Ping timeout: 260 seconds)
2021-03-18 16:24:28 +0100Mrbuck(~Mrbuck@gateway/tor-sasl/mrbuck) (Quit: WeeChat 2.8)
2021-03-18 16:25:14 +0100xff0x(~xff0x@2001:1a81:520b:5100:8fc8:83d7:6af3:caa3) (Ping timeout: 264 seconds)
2021-03-18 16:25:32 +0100xff0x(~xff0x@141.98.255.146)
2021-03-18 16:26:06 +0100Lycurgus(~niemand@98.4.116.165)
2021-03-18 16:29:25 +0100bahamas(~lucian@unaffiliated/bahamas)
2021-03-18 16:30:23 +0100hackagehaskoin-store 0.50.3 - Storage and index for Bitcoin and Bitcoin Cash https://hackage.haskell.org/package/haskoin-store-0.50.3 (jprupp)
2021-03-18 16:30:54 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311) (Quit: WeeChat 3.0.1)
2021-03-18 16:33:42 +0100geekosaur(82650c7a@130.101.12.122) (Ping timeout: 240 seconds)
2021-03-18 16:34:33 +0100johnw(~johnw@haskell/developer/johnw)
2021-03-18 16:34:53 +0100hackagemohws 0.2.1.8 - Modular Haskell Web Server https://hackage.haskell.org/package/mohws-0.2.1.8 (HenningThielemann)
2021-03-18 16:35:21 +0100xff0x(~xff0x@141.98.255.146) (Ping timeout: 264 seconds)
2021-03-18 16:35:21 +0100ixlun(~matthew@109.249.184.133)
2021-03-18 16:36:50 +0100xff0x(~xff0x@2001:1a81:520b:5100:8fc8:83d7:6af3:caa3)
2021-03-18 16:37:05 +0100 <ixlun> Hi all, I'm trying to compile a haskell module that has C bindings, but the C library is in /opt/local/lib. I'm building with: 'cabal v2-build --extra-include-dirs="/opt/local/include/" --extra-lib-dirs="/opt/local/lib"' but this fails: https://termbin.com/bxa2
2021-03-18 16:37:33 +0100 <ixlun> Interestingly, if you look towards the bottom of the output, the compilation command seems to be ignoring my --extra-* args; they're not being passed to the compiler
2021-03-18 16:37:48 +0100 <ixlun> I'm not sure if this is a bug in cabal, or I'm not using it correctly
2021-03-18 16:39:01 +0100geowiesnot_bis(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-03-18 16:39:23 +0100 <Lycurgus> path problem
2021-03-18 16:40:04 +0100crobbins(~crobbins@2601:2c1:200:ec50:7cb1:bb00:3eca:542b) ()
2021-03-18 16:40:07 +0100myShoggoth(~myShoggot@75.164.81.55)
2021-03-18 16:40:11 +0100 <Lycurgus> (assuming the lib is actually OK, which the err msg indicates might not be)
2021-03-18 16:40:43 +0100 <merijn> Which package depends on sndfile?
2021-03-18 16:40:56 +0100 <merijn> You directly or a dependency? (If so, which one?)
2021-03-18 16:40:57 +0100gioyik(~gioyik@gateway/tor-sasl/gioyik)
2021-03-18 16:41:09 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b5a7:9e26:9598:47de)
2021-03-18 16:41:30 +0100 <ixlun> a dependency, hsndfile
2021-03-18 16:41:33 +0100 <Lycurgus> if it's a distributed lib rather than one you built, try installing the regular dev pkg as suggested
2021-03-18 16:42:10 +0100 <average> I wish that Haskell, in a future version, would have built-in symbolic mathematics
2021-03-18 16:42:12 +0100Kaiepi(~Kaiepi@47.54.252.148) (Remote host closed the connection)
2021-03-18 16:42:39 +0100 <average> All that type theory is converging to that anyways.. so I mean, it should at least go all the way
2021-03-18 16:42:39 +0100 <Lycurgus> ur sayin it dont?
2021-03-18 16:42:54 +0100 <Lycurgus> u want mathematica oder
2021-03-18 16:43:05 +0100 <ixlun> Lycurgus: I'm on MacOS, so packages are installed in a prefix, /opt/local/
2021-03-18 16:43:10 +0100 <average> Lycurgus: kindof
2021-03-18 16:43:21 +0100 <merijn> ixlun: oof, hsndfile looks, eh...outdated to say the least :)
2021-03-18 16:43:24 +0100 <Lycurgus> with brew and port they are
2021-03-18 16:43:27 +0100 <Lycurgus> no wonder
2021-03-18 16:43:39 +0100 <Lycurgus> (u got probs)
2021-03-18 16:43:41 +0100 <merijn> Last change in 2015
2021-03-18 16:44:22 +0100 <ixlun> Works fine on my linux box though
2021-03-18 16:44:24 +0100 <merijn> ixlun: I'm actually not sure whether -extra-lib-dirs applies to *your* code or also to your dependencies
2021-03-18 16:44:41 +0100 <ixlun> Ahh, that might be the issue
2021-03-18 16:44:48 +0100 <merijn> ixlun: Because you need it to apply to your dependencies (i.e. hsdnfile)
2021-03-18 16:44:48 +0100 <Lycurgus> also there's surely some macsyma like hs thing on hackage
2021-03-18 16:45:05 +0100LKoen(~LKoen@194.250.88.92.rev.sfr.net)
2021-03-18 16:45:07 +0100 <average> Yes but that's only an interface
2021-03-18 16:45:38 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b5a7:9e26:9598:47de) (Ping timeout: 264 seconds)
2021-03-18 16:45:39 +0100 <merijn> ixlun: You can try setting it for hsdnfile via cabal.project by doing "package hsdnfile\n ..." (you just gotta find out what ... should be extra-lib-dirs: maybe?)
2021-03-18 16:45:40 +0100 <average> I think if Haskell manages to make symbolic math built into the language.. then it would open so many doors
2021-03-18 16:46:03 +0100 <merijn> ixlun: https://cabal.readthedocs.io/en/latest/cabal-project.html#package-configuration-options
2021-03-18 16:46:20 +0100 <merijn> average: What's stopping you from doing that right now?
2021-03-18 16:46:33 +0100 <average> merijn: I would first have to learn Haskell
2021-03-18 16:46:34 +0100 <merijn> What does "built into the language" even mean?
2021-03-18 16:46:58 +0100 <merijn> average: How can you state things about what is/isn't supported in Haskell without knowing it?
2021-03-18 16:47:05 +0100 <average> merijn: honestly idk. there's no language out there doing it. Even Mathematica isn't doing it
2021-03-18 16:47:26 +0100Guest5530(beed0de4@gateway/web/cgi-irc/kiwiirc.com/ip.190.237.13.228)
2021-03-18 16:47:30 +0100geowiesnot_bis(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds)
2021-03-18 16:47:49 +0100 <average> it's doing it like.. partially
2021-03-18 16:48:07 +0100Unhammer(~Unhammer@gateway/tor-sasl/unhammer) (Remote host closed the connection)
2021-03-18 16:48:33 +0100 <ixlun> Cool, I'll see what I can do :-)
2021-03-18 16:48:52 +0100Unhammer(~Unhammer@gateway/tor-sasl/unhammer)
2021-03-18 16:48:54 +0100 <tomsmeding> average: if you say that Mathematica only partially has symbolic mathematics built in, then I'm not sure what you mean with full symbolic math :p
2021-03-18 16:49:24 +0100 <average> tomsmeding: I guess I don't know either. I guess we have to do it to find out what that means
2021-03-18 16:49:44 +0100 <average> tomsmeding: I had to estimate some project for a client recently. Ended up doing 40% of the project just to be able to estimate it and provide a cost sheet and design for it
2021-03-18 16:49:51 +0100__minoru__shirae(~shiraeesh@109.166.59.216)
2021-03-18 16:49:55 +0100 <average> tomsmeding: If this was carpentry or wood-working, would've been much easier
2021-03-18 16:50:17 +0100 <Shiranai> tomsmeding: I added both `:set -XTypeApplications` `:set -XTypeFamilies` in the .ghci but still not working on ghci, showing the same error, any ideas?
2021-03-18 16:50:18 +0100 <tomsmeding> is that not the eternal problem in software engineering that estimating required time is hard?
2021-03-18 16:50:42 +0100 <tomsmeding> Shiranai: can you post the exact error you are getting?
2021-03-18 16:50:46 +0100 <average> tomsmeding: even cost estimation isn't easy
2021-03-18 16:50:55 +0100 <average> tomsmeding: fortunately I managed to come up with some good approximations
2021-03-18 16:51:05 +0100 <average> tomsmeding: only because I had prior experience with that kind of software
2021-03-18 16:51:20 +0100 <Shiranai> tomsmeding: https://pastebin.com/V3YZjBfj
2021-03-18 16:51:23 +0100 <tomsmeding> average: I dunno, I'm not surprised, estimation is hard :p
2021-03-18 16:51:32 +0100 <average> tomsmeding: any good books about it ?
2021-03-18 16:51:34 +0100coot(~coot@37.30.58.223.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-03-18 16:52:08 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2021-03-18 16:52:46 +0100 <Lycurgus> numerical methods that work, forman acton
2021-03-18 16:53:34 +0100 <average> Lycurgus: is that an answer to my estimation books question ?
2021-03-18 16:53:39 +0100Sorny(~Sornaensi@077213203030.dynamic.telenor.dk)
2021-03-18 16:53:42 +0100 <tomsmeding> Shiranai: what do you get if you type `:set -XTypeFamilies` `:r` in ghci right after you get that error?
2021-03-18 16:54:08 +0100 <tomsmeding> average: I have no idea regarding books, and I suppose that indeed was a recommendation by Lycurgus
2021-03-18 16:54:13 +0100 <Shiranai> oh wow, it works fine; seems my ghci is not reading the .ghci despite saying so
2021-03-18 16:54:19 +0100alx741(~alx741@186.178.109.138)
2021-03-18 16:54:27 +0100 <tomsmeding> Shiranai: did you restart ghci, not just :r?
2021-03-18 16:54:49 +0100 <Shiranai> yes
2021-03-18 16:55:28 +0100 <tomsmeding> Shiranai: ah move that `:set -XTypeFamilies` before line 4 in the .ghci
2021-03-18 16:55:52 +0100 <average> Lycurgus: like tomsmeding said, was that a recommendation for me ?
2021-03-18 16:55:58 +0100 <tomsmeding> Shiranai: or, of course, add {-# LANGUAGE TypeFamilies #-} at the top of the files that produce errors
2021-03-18 16:56:04 +0100 <tomsmeding> that's the best solution
2021-03-18 16:56:06 +0100 <Shiranai> tomsmeding: yup that was it
2021-03-18 16:56:43 +0100 <Shiranai> thank you
2021-03-18 16:56:45 +0100 <Lycurgus> average, it was. But you that's just an artefact of my work/life history, there's doubtless a superior text dedicated to estimation/error
2021-03-18 16:57:06 +0100 <Shiranai> I was looking for the correct pragma name but couldn't find it, where should I search that stuff?
2021-03-18 16:57:15 +0100Sorna(~Sornaensi@79.142.232.102) (Ping timeout: 256 seconds)
2021-03-18 16:57:15 +0100 <Lycurgus> *you can prolly find something more specific
2021-03-18 16:57:42 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-03-18 16:57:44 +0100 <tomsmeding> Shiranai: GHC user's guide, usually
2021-03-18 16:58:08 +0100 <tomsmeding> Shiranai: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/exts/control.html
2021-03-18 16:59:28 +0100 <Shiranai> tomsmeding: I see, thank you
2021-03-18 17:00:02 +0100boistordu(boistordum@gateway/shell/matrix.org/x-adhzavlsrujzyaqb) (Quit: Idle for 30+ days)
2021-03-18 17:00:31 +0100Rudd0(~Rudd0@185.189.115.108)
2021-03-18 17:00:42 +0100stree(~stree@68.36.8.116) (Ping timeout: 256 seconds)
2021-03-18 17:06:23 +0100hackagehaskoin-store-data 0.51.0 - Data for Haskoin Store https://hackage.haskell.org/package/haskoin-store-data-0.51.0 (jprupp)
2021-03-18 17:06:54 +0100glamas_(~glamas@107.182.17.237) (Quit: ZNC 1.7.4 - https://znc.in)
2021-03-18 17:07:03 +0100glamas(~glamas@107.182.17.237)
2021-03-18 17:08:23 +0100 <__minoru__shirae> average: estimating may be useful in some cases, but don't confuse form with substance
2021-03-18 17:08:26 +0100Alleria_(~AllahuAkb@2603-7000-3040-0000-258c-2a70-8204-6956.res6.spectrum.com) (Ping timeout: 264 seconds)
2021-03-18 17:11:03 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b5a7:9e26:9598:47de)
2021-03-18 17:12:07 +0100geekosaur(82650c7a@130.101.12.122)
2021-03-18 17:12:35 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-03-18 17:12:46 +0100stree(~stree@68.36.8.116)
2021-03-18 17:12:57 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-03-18 17:13:02 +0100 <merijn> codygman`: I just realised why your code is broken!
2021-03-18 17:13:03 +0100CoconutCrab(~Cua@unaffiliated/coconutcrab) (Ping timeout: 260 seconds)
2021-03-18 17:13:07 +0100 <average> Lycurgus: you know. this is an interesting idea you propose, except it only partially maps to the problem
2021-03-18 17:13:27 +0100dramforever(~dram@unaffiliated/dramforever) (Ping timeout: 265 seconds)
2021-03-18 17:13:31 +0100 <average> Lycurgus: if only there was a systematic way to estimate..
2021-03-18 17:13:42 +0100 <Lycurgus> i assure there is
2021-03-18 17:13:51 +0100 <average> Lycurgus: please elaborate, i am very curious
2021-03-18 17:14:01 +0100 <average> Lycurgus: i can elaborate too from experience, with examples
2021-03-18 17:14:05 +0100 <Lycurgus> and a copious literature with numerous branches
2021-03-18 17:14:20 +0100mikoto-chan(~anass@gateway/tor-sasl/mikoto-chan)
2021-03-18 17:14:21 +0100frozenErebus(~frozenEre@94.128.81.163) (Ping timeout: 264 seconds)
2021-03-18 17:14:34 +0100 <Lycurgus> one that doesn't get much play these days was popular before or during the so called AI winter
2021-03-18 17:14:47 +0100 <Lycurgus> namely fuzzy math/sets/logic/etc
2021-03-18 17:14:49 +0100 <__minoru__shirae> AI winter?
2021-03-18 17:15:23 +0100hackagehaskoin-store 0.51.0 - Storage and index for Bitcoin and Bitcoin Cash https://hackage.haskell.org/package/haskoin-store-0.51.0 (jprupp)
2021-03-18 17:15:34 +0100 <Lycurgus> I mentioned acton's text because it's pithy and accessible
2021-03-18 17:15:43 +0100 <Shiranai> are there preset settings for the lsp formatter? Out of the box it is adding newlines to every type definition, e.g. `a -> b` becomes `a -> \n b` which imo looks horrible, is this what everyone uses?
2021-03-18 17:15:57 +0100acidjnk_new(~acidjnk@p200300d0c72b959625b3d356e6f65619.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2021-03-18 17:16:14 +0100 <merijn> Shiranai: "no"
2021-03-18 17:16:15 +0100 <Lycurgus> the topic of establishing good estimators is a well worked one in applied mathematics, statistics in particular
2021-03-18 17:17:03 +0100 <Lycurgus> also if you are the one that was asking about symbolic math and complaining that hs/hackage just had interface packages
2021-03-18 17:17:21 +0100 <Lycurgus> that's because hs is metamathematics oriented
2021-03-18 17:17:33 +0100CoconutCrab(~Cua@unaffiliated/coconutcrab)
2021-03-18 17:18:01 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2021-03-18 17:18:08 +0100 <Lycurgus> and mathematics in the sense of practical applied such as mathmematica does needs to be deferred to something actually doing practical mathematics
2021-03-18 17:19:04 +0100 <Lycurgus> also actons text you can get a pdf off the web
2021-03-18 17:19:13 +0100roconnor(~roconnor@host-45-58-230-226.dyn.295.ca)
2021-03-18 17:19:38 +0100 <Lycurgus> it being a half century old may be a distraction
2021-03-18 17:19:47 +0100CoconutCrab(~Cua@unaffiliated/coconutcrab) (Remote host closed the connection)
2021-03-18 17:21:39 +0100Alleria_(~AllahuAkb@2603-7000-3040-0000-f429-7221-6ab1-0f3b.res6.spectrum.com)
2021-03-18 17:23:10 +0100viluon(uid453725@gateway/web/irccloud.com/x-ghtyiurdwpejnnhv)
2021-03-18 17:24:56 +0100 <__minoru__shirae> and then there is a thing that you can choose any self-fulfilling prophecy
2021-03-18 17:25:02 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-03-18 17:25:11 +0100 <__minoru__shirae> it doesn't matter which one you choose
2021-03-18 17:25:43 +0100NinjaTrappeur(~ninja@unaffiliated/ninjatrappeur) (Quit: WeeChat 3.0.1)
2021-03-18 17:26:31 +0100NinjaTrappeur(~ninja@unaffiliated/ninjatrappeur)
2021-03-18 17:27:53 +0100hackagehaskeline 0.8.1.2 - A command-line interface for user input, written in Haskell. https://hackage.haskell.org/package/haskeline-0.8.1.2 (JudahJacobson)
2021-03-18 17:28:06 +0100mikoto-chan(~anass@gateway/tor-sasl/mikoto-chan) (Remote host closed the connection)
2021-03-18 17:28:11 +0100Lycurgus(~niemand@98.4.116.165) (Quit: Exeunt)
2021-03-18 17:28:24 +0100mikoto-chan(~anass@gateway/tor-sasl/mikoto-chan)
2021-03-18 17:28:56 +0100frozenErebus(~frozenEre@94.128.81.163)
2021-03-18 17:32:19 +0100 <Shiranai> merijin: what is everyone using then? How can I set that up?
2021-03-18 17:32:55 +0100mouseghost(~draco@wikipedia/desperek)
2021-03-18 17:33:21 +0100jespada(~jespada@90.254.243.187) (Ping timeout: 246 seconds)
2021-03-18 17:34:37 +0100jespada(~jespada@90.254.243.187)
2021-03-18 17:34:43 +0100Boomerang(~Boomerang@2a05:f6c7:2179:0:c023:32c1:e407:f7a0) (Ping timeout: 265 seconds)
2021-03-18 17:38:14 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-03-18 17:38:33 +0100Deide(~Deide@217.155.19.23)
2021-03-18 17:38:41 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-03-18 17:39:23 +0100hackageflatparse 0.1.1.1 - High-performance parsing from strict bytestrings https://hackage.haskell.org/package/flatparse-0.1.1.1 (AndrasKovacs)
2021-03-18 17:40:01 +0100Boomerang(~Boomerang@2a05:f6c7:2179:0:c023:32c1:e407:f7a0)
2021-03-18 17:42:04 +0100geowiesnot_bis(~user@87-89-181-157.abo.bbox.fr)
2021-03-18 17:42:40 +0100kritzefitz_(~kritzefit@212.86.56.80)
2021-03-18 17:42:44 +0100carlomagno(~cararell@148.87.23.7) (Ping timeout: 265 seconds)
2021-03-18 17:42:54 +0100ixlun(~matthew@109.249.184.133) (Remote host closed the connection)
2021-03-18 17:43:02 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 244 seconds)
2021-03-18 17:43:31 +0100 <pie_> i feel like im studying haskell wrong or something
2021-03-18 17:43:40 +0100carlomagno(~cararell@148.87.23.7)
2021-03-18 17:43:52 +0100 <pie_> how do you end up with all these weird academic people giving youtube talks and writing articles that seem like they have a clue
2021-03-18 17:43:58 +0100 <pie_> have i just not put enough time in? :P
2021-03-18 17:44:17 +0100 <pie_> or do some people just pass the affinity barrier :p
2021-03-18 17:44:50 +0100 <pie_> mostly unrelated, ive been really putting off learning any of this hype new AI stuff for years
2021-03-18 17:44:53 +0100howdoi(uid224@gateway/web/irccloud.com/x-ennflwnjlfvpdgyt)
2021-03-18 17:45:00 +0100 <tomsmeding> Shiranai: there is no consensus, there are multiple formatters in use, and also people that don't use a formatter :p
2021-03-18 17:45:02 +0100jakalx(~jakalx@base.jakalx.net)
2021-03-18 17:45:05 +0100 <pie_> should I look at hasktorch or just stick to the python stuff?
2021-03-18 17:46:37 +0100shad0w_(a0ca254d@160.202.37.77)
2021-03-18 17:46:53 +0100hackagehomotuple 0.2.0.0 - Homotuple, all whose elements are the same type https://hackage.haskell.org/package/homotuple-0.2.0.0 (kakkun61)
2021-03-18 17:47:07 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
2021-03-18 17:47:34 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-03-18 17:47:53 +0100hackagepersistent 2.11.0.4 - Type-safe, multi-backend data serialization. https://hackage.haskell.org/package/persistent-2.11.0.4 (parsonsmatt)
2021-03-18 17:49:45 +0100specdrake(~anurag@203.192.236.225) (Ping timeout: 264 seconds)
2021-03-18 17:51:00 +0100 <koz_> pie_: There are lots of perspectives on How to Haskell.
2021-03-18 17:51:05 +0100 <koz_> It depends on what you wanna get done.
2021-03-18 17:54:03 +0100asheshambasta(~user@ptr-e1lysav20kvw9mt8vlk.18120a2.ip6.access.telenet.be) (Ping timeout: 265 seconds)
2021-03-18 17:55:01 +0100Boomerang(~Boomerang@2a05:f6c7:2179:0:c023:32c1:e407:f7a0) (Ping timeout: 265 seconds)
2021-03-18 17:55:41 +0100specdrake(~anurag@203.192.236.225)
2021-03-18 18:01:54 +0100waleee-cl(uid373333@gateway/web/irccloud.com/x-lvwisugjqkptqqrq)
2021-03-18 18:03:50 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2021-03-18 18:06:04 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b5a7:9e26:9598:47de) (Remote host closed the connection)
2021-03-18 18:06:43 +0100vicfred(vicfred@gateway/vpn/mullvad/vicfred)
2021-03-18 18:07:12 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in)
2021-03-18 18:07:13 +0100dbmikus(~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
2021-03-18 18:08:02 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
2021-03-18 18:10:32 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-03-18 18:13:11 +0100idhugo(~idhugo@80-62-116-180-mobile.dk.customer.tdc.net) (Ping timeout: 256 seconds)
2021-03-18 18:14:19 +0100bahamas(~lucian@unaffiliated/bahamas) (Ping timeout: 256 seconds)
2021-03-18 18:14:26 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-03-18 18:15:33 +0100redmp(~redmp@172.58.19.158)
2021-03-18 18:15:53 +0100peanut_(~peanut@2a02:8388:a101:2600:8bb2:874c:9ad6:7619) (Quit: Leaving)
2021-03-18 18:16:23 +0100kritzefitz(~kritzefit@fw-front.credativ.com) (Remote host closed the connection)
2021-03-18 18:16:38 +0100raichoo(~raichoo@dslb-084-062-113-170.084.062.pools.vodafone-ip.de) (Quit: Lost terminal)
2021-03-18 18:19:12 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
2021-03-18 18:19:14 +0100xff0x(~xff0x@2001:1a81:520b:5100:8fc8:83d7:6af3:caa3) (Ping timeout: 264 seconds)
2021-03-18 18:19:46 +0100arianvp(~weechat@arianvp.me) (Quit: WeeChat 2.9)
2021-03-18 18:20:04 +0100xff0x(~xff0x@2001:1a81:520b:5100:334b:8a6e:b179:1c97)
2021-03-18 18:20:33 +0100arianvp(~weechat@arianvp.me)
2021-03-18 18:22:47 +0100 <monochrom> https://ubikium.gitlab.io/portfolio/2021-03-13-wait-a-moment.html hahaha (from today's HWN)
2021-03-18 18:24:00 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-03-18 18:24:28 +0100 <koz_> fmap fmap fmap sequence fmap rofl
2021-03-18 18:26:05 +0100bahamas(~lucian@unaffiliated/bahamas)
2021-03-18 18:27:08 +0100kuribas(~user@ptr-25vy0i92dp498ona6ki.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2021-03-18 18:28:06 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-03-18 18:28:24 +0100kritzefitz_(~kritzefit@212.86.56.80) (Remote host closed the connection)
2021-03-18 18:28:33 +0100 <koz_> :t fmap fmap fmap sequence fmap
2021-03-18 18:28:35 +0100 <lambdabot> (Traversable t, Monad m) => (a1 -> m a2) -> t a1 -> m (t a2)
2021-03-18 18:28:47 +0100 <koz_> Just... how.
2021-03-18 18:29:40 +0100 <tomsmeding> :t (.) (.) (.) sequence fmap
2021-03-18 18:29:42 +0100 <lambdabot> (Traversable t, Monad m) => (a1 -> m a2) -> t a1 -> m (t a2)
2021-03-18 18:29:55 +0100wopas32(uid384704@gateway/web/irccloud.com/x-zmlpbitgmcaytcfj) (Quit: Connection closed for inactivity)
2021-03-18 18:30:18 +0100 <koz_> Ah yes.
2021-03-18 18:30:30 +0100epicte7us(~epictetus@ip72-194-215-136.sb.sd.cox.net)
2021-03-18 18:30:50 +0100 <koz_> Sadly I don't think mapM is actually defined either of those ways.
2021-03-18 18:31:13 +0100Foritus(~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Ping timeout: 260 seconds)
2021-03-18 18:31:22 +0100 <koz_> :t (<$>) (<$>) (<$>) sequence (<$>)
2021-03-18 18:31:24 +0100 <lambdabot> (Traversable t, Monad m) => (a1 -> m a2) -> t a1 -> m (t a2)
2021-03-18 18:32:08 +0100 <koz_> Something something 'statements dreamed up by the utterly deranged' something. :P
2021-03-18 18:32:58 +0100malumore(~malumore@151.62.122.146) (Ping timeout: 245 seconds)
2021-03-18 18:33:23 +0100ep1ctetus(~epictetus@ip72-194-215-136.sb.sd.cox.net) (Ping timeout: 245 seconds)
2021-03-18 18:34:17 +0100Foritus(~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net)
2021-03-18 18:35:29 +0100 <tomsmeding> :t traverse
2021-03-18 18:35:30 +0100 <lambdabot> (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b)
2021-03-18 18:35:36 +0100 <tomsmeding> the same but more general
2021-03-18 18:35:45 +0100 <tomsmeding> resistence is futile
2021-03-18 18:37:09 +0100elliott__(~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
2021-03-18 18:37:48 +0100Yumasi(~guillaume@2a01:e0a:5cb:4430:2eb3:d0f5:cc9d:3dff) (Ping timeout: 244 seconds)
2021-03-18 18:37:49 +0100 <koz_> Yeah, traverse does everything is a meme is not a meme. :P
2021-03-18 18:37:53 +0100hackageerlang-ffi 1.0.0 - Send messages to an Erlang node using Haskell https://hackage.haskell.org/package/erlang-ffi-1.0.0 (Szetty)
2021-03-18 18:38:14 +0100 <monochrom> s/sequence/sequenceA/ for the Applicative version.
2021-03-18 18:38:26 +0100 <monochrom> :t fmap fmap fmap sequenceA fmap
2021-03-18 18:38:28 +0100 <lambdabot> (Traversable t, Applicative f) => (a1 -> f a2) -> t a1 -> f (t a2)
2021-03-18 18:39:22 +0100geekosaur(82650c7a@130.101.12.122) (Ping timeout: 240 seconds)
2021-03-18 18:41:34 +0100forgottenone(~forgotten@176.42.16.24) (Quit: Konversation terminated!)
2021-03-18 18:41:43 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 260 seconds)
2021-03-18 18:41:47 +0100 <hyperisco> concatenative programming sticks functions together with function composition
2021-03-18 18:41:59 +0100Shiranai(beed0de4@gateway/web/cgi-irc/kiwiirc.com/ip.190.237.13.228) (Quit: Connection closed)
2021-03-18 18:42:08 +0100 <hyperisco> is there an analogue but sticks things together with fmap?
2021-03-18 18:42:22 +0100chele(~chele@ip5b40237d.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2021-03-18 18:42:31 +0100 <koz_> "Bro do u even lift" programming.
2021-03-18 18:42:42 +0100 <monochrom> You can coin the name "functorial programming".
2021-03-18 18:42:53 +0100 <aldum> lol
2021-03-18 18:43:24 +0100 <shad0w_> you could open the youtube channel fun fun functorials
2021-03-18 18:43:28 +0100jrqc(~rofl@96.78.87.197) (Ping timeout: 260 seconds)
2021-03-18 18:46:37 +0100jrqc(~rofl@96.78.87.197)
2021-03-18 18:46:40 +0100 <koz_> Or 'Fun Fun Literature Club'.
2021-03-18 18:46:49 +0100 <koz_> Or 'Fun Fun Revolution'.
2021-03-18 18:47:03 +0100 <infinisil> I wrote a function `f :: Applicative f => Compose Maybe f a -> Compose f Maybe a`
2021-03-18 18:47:10 +0100 <infinisil> Is there a more general implementation of this?
2021-03-18 18:47:42 +0100 <koz_> Something like Compose . sequenceA . unCompose
2021-03-18 18:47:51 +0100 <monochrom> :)
2021-03-18 18:47:55 +0100 <infinisil> Oh yeah that looks like sequence
2021-03-18 18:47:57 +0100 <infinisil> Nice
2021-03-18 18:48:11 +0100 <infinisil> :t sequenceA
2021-03-18 18:48:13 +0100 <lambdabot> (Traversable t, Applicative f) => t (f a) -> f (t a)
2021-03-18 18:48:50 +0100 <koz_> (runCompose? deCompose? compost? decay?)
2021-03-18 18:49:10 +0100 <infinisil> getCompose :)
2021-03-18 18:49:31 +0100 <koz_> Wow, the least fun option.
2021-03-18 18:49:37 +0100 <koz_> It should really be 'decompose'.
2021-03-18 18:50:09 +0100malumore(~malumore@151.62.122.146)
2021-03-18 18:50:43 +0100 <monochrom> newtype Compost f g a = Compost{fertilizer :: f (g a)}
2021-03-18 18:50:48 +0100 <koz_> Or actually, coerce sequenceA might work too.
2021-03-18 18:51:01 +0100 <infinisil> :t coerce
2021-03-18 18:51:03 +0100 <lambdabot> error:
2021-03-18 18:51:03 +0100 <lambdabot> • Variable not in scope: coerce
2021-03-18 18:51:03 +0100 <lambdabot> • Perhaps you meant ‘coerced’ (imported from Control.Lens)
2021-03-18 18:51:13 +0100 <koz_> (maybe, if Traversable doesn't hate on derivation again)
2021-03-18 18:51:33 +0100 <koz_> % :t coerce
2021-03-18 18:51:34 +0100 <yahb> koz_: Coercible a b => a -> b
2021-03-18 18:51:41 +0100 <koz_> Which tells you very little.
2021-03-18 18:52:03 +0100 <koz_> % :t coerce sequenceA
2021-03-18 18:52:03 +0100 <yahb> koz_: (Traversable t, Applicative f, Coercible b (t (f a) -> f (t a))) => b
2021-03-18 18:52:22 +0100 <koz_> I mean, in _theory_ that should work?
2021-03-18 18:52:32 +0100jrqc(~rofl@96.78.87.197) (Ping timeout: 240 seconds)
2021-03-18 18:52:36 +0100 <infinisil> % coerce sequenceA :: Compose Maybe f a -> Compose f Maybe a
2021-03-18 18:52:36 +0100 <yahb> infinisil: ; <interactive>:18:21: error: Not in scope: type constructor or class `Compose'; <interactive>:18:42: error: Not in scope: type constructor or class `Compose'
2021-03-18 18:53:08 +0100 <koz_> % import Data.Functor.Compose (Compose (Compose))
2021-03-18 18:53:09 +0100 <yahb> koz_:
2021-03-18 18:53:12 +0100 <infinisil> Well, the Compose . sequenceA . getCompose works well, and coerce sounds too scary :P
2021-03-18 18:53:30 +0100 <koz_> % :t coerce sequenceA :: Compose Maybe f a -> Compose f Maybe a
2021-03-18 18:53:30 +0100 <yahb> koz_: ; <interactive>:1:1: error:; * Couldn't match representation of type: f1 (Maybe a1); with that of: f0 [a0]; arising from a use of `coerce'; * In the expression: coerce sequenceA :: Compose Maybe f a -> Compose f Maybe a
2021-03-18 18:53:35 +0100 <koz_> Oh ffs.
2021-03-18 18:54:25 +0100 <koz_> There's probably some magic combination of @-nnotations and snails that can direct Coercible properly there.
2021-03-18 18:55:33 +0100 <koz_> :% :set -fshow-foralls
2021-03-18 18:55:39 +0100 <koz_> % :set -fshow-foralls
2021-03-18 18:55:40 +0100 <yahb> koz_: Some flags have not been recognized: -fshow-foralls
2021-03-18 18:55:47 +0100 <koz_> Argh what's that damned flag.
2021-03-18 18:55:52 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-18 18:56:05 +0100 <koz_> % :set -fprint-explicit-foralls
2021-03-18 18:56:05 +0100 <yahb> koz_:
2021-03-18 18:56:13 +0100 <koz_> % :t coerce sequenceA
2021-03-18 18:56:13 +0100 <yahb> koz_: forall {t :: * -> *} {f :: * -> *} {b} {a}. (Traversable t, Applicative f, Coercible b (t (f a) -> f (t a))) => b
2021-03-18 18:56:26 +0100shad0w_(a0ca254d@160.202.37.77) (Quit: Connection closed)
2021-03-18 18:56:27 +0100jrqc(~rofl@96.78.87.197)
2021-03-18 18:56:46 +0100 <koz_> % :t coerce sequenceA @_ @_ (Compose Maybe f a -> Compose f Maybe a)
2021-03-18 18:56:46 +0100 <yahb> koz_: ; <interactive>:1:25: error: View pattern in expression context: Compose Maybe f a -> Compose f Maybe a
2021-03-18 18:56:53 +0100 <koz_> % :t coerce sequenceA @_ @_ @(Compose Maybe f a -> Compose f Maybe a)
2021-03-18 18:56:53 +0100 <yahb> koz_: ; <interactive>:1:40: error: Not in scope: type variable `f'; <interactive>:1:42: error: Not in scope: type variable `a'; <interactive>:1:55: error: Not in scope: type variable `f'; <interactive>:1:63: error: Not in scope: type variable `a'
2021-03-18 18:57:12 +0100 <koz_> % :t coerce sequenceA @Maybe @f @(Compose Maybe f a -> Compose f Maybe a)
2021-03-18 18:57:13 +0100 <yahb> koz_: ; <interactive>:1:26: error: Not in scope: type variable `f'; <interactive>:1:44: error: Not in scope: type variable `f'; <interactive>:1:46: error: Not in scope: type variable `a'; <interactive>:1:59: error: Not in scope: type variable `f'; <interactive>:1:67: error: Not in scope: type variable `a'
2021-03-18 18:57:20 +0100 <koz_> OK I give up rofl.
2021-03-18 18:57:49 +0100 <koz_> Welcome to the biggest issue with Coercible I guess.
2021-03-18 18:58:56 +0100idhugo(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
2021-03-18 19:00:46 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-03-18 19:00:57 +0100rajivr(uid269651@gateway/web/irccloud.com/x-wwtzhstalquejfsh) (Quit: Connection closed for inactivity)
2021-03-18 19:01:05 +0100geekosaur(82650c7a@130.101.12.122)
2021-03-18 19:01:48 +0100raym(~ray@115.187.32.14)
2021-03-18 19:03:03 +0100zebrag(~inkbottle@aaubervilliers-654-1-101-29.w86-212.abo.wanadoo.fr) (Ping timeout: 256 seconds)
2021-03-18 19:04:16 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b5a7:9e26:9598:47de)
2021-03-18 19:05:19 +0100 <shapr> hyperisco: I've seen functorial programming before, I think in an roconnor blog post?
2021-03-18 19:05:59 +0100 <shapr> hyperisco: found what I wsa remembering http://r6.ca/blog/20171010T001746Z.html
2021-03-18 19:06:13 +0100mouseghost(~draco@wikipedia/desperek) (Quit: mew wew)
2021-03-18 19:06:27 +0100bahamas(~lucian@unaffiliated/bahamas) (Ping timeout: 246 seconds)
2021-03-18 19:06:55 +0100 <hyperisco> shapr, ty
2021-03-18 19:08:06 +0100 <hyperisco> basically a generalisation of these effect systems we're seeing
2021-03-18 19:09:22 +0100 <hyperisco> I would like to see how this could be used for general programming, like say SK combinators are shown
2021-03-18 19:10:26 +0100 <shapr> roconnor: did you post more things in the vein of that functor oriented programming subject?
2021-03-18 19:13:23 +0100ph88(~ph88@ip5f5af71a.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2021-03-18 19:13:32 +0100michalz(~user@185.246.204.59) (Remote host closed the connection)
2021-03-18 19:13:44 +0100ph88(~ph88@ip5f5af71a.dynamic.kabel-deutschland.de)
2021-03-18 19:14:12 +0100dyeplexer(~lol@unaffiliated/terpin) (Remote host closed the connection)
2021-03-18 19:15:42 +0100 <bbhoss> anyone using vscode with HSL? sometimes it finds a problem with my code and it seems the only way to clear it is to restart vscode completely. am I missing something?
2021-03-18 19:15:46 +0100 <bbhoss> *HLS
2021-03-18 19:16:11 +0100hyiltiz(~quassel@unaffiliated/hyiltiz) (Quit: No Ping reply in 210 seconds.)
2021-03-18 19:16:38 +0100geowiesnot_bis(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 260 seconds)
2021-03-18 19:17:11 +0100vjok1(vjoki@2a00:d880:3:1::fea1:9ae)
2021-03-18 19:17:13 +0100`slikts(~nelabs@wikipedia/reinis) (Quit: No Ping reply in 180 seconds.)
2021-03-18 19:17:29 +0100vjoki(vjoki@2a00:d880:3:1::fea1:9ae) (Quit: ...)
2021-03-18 19:17:29 +0100vjok1vjoki
2021-03-18 19:18:20 +0100`slikts(~nelabs@2a00:d880:5:395::37ca)
2021-03-18 19:18:20 +0100`slikts(~nelabs@2a00:d880:5:395::37ca) (Changing host)
2021-03-18 19:18:20 +0100`slikts(~nelabs@wikipedia/reinis)
2021-03-18 19:18:27 +0100supercoven_(~Supercove@dsl-hkibng31-54fabd-233.dhcp.inet.fi)
2021-03-18 19:19:44 +0100malumore(~malumore@151.62.122.146) (Ping timeout: 240 seconds)
2021-03-18 19:20:41 +0100stree(~stree@68.36.8.116) (Ping timeout: 244 seconds)
2021-03-18 19:21:43 +0100myShoggoth(~myShoggot@75.164.81.55) (Ping timeout: 245 seconds)
2021-03-18 19:21:43 +0100supercoven(~Supercove@dsl-hkibng31-54fabd-233.dhcp.inet.fi) (Ping timeout: 245 seconds)
2021-03-18 19:22:13 +0100myShoggoth(~myShoggot@75.164.81.55)
2021-03-18 19:23:28 +0100gds(~user@2a01:4b00:8605:9800:4103:dbd5:9f3c:6103) (Ping timeout: 265 seconds)
2021-03-18 19:25:35 +0100jamm_(~jamm@unaffiliated/jamm)
2021-03-18 19:27:08 +0100__minoru__shirae(~shiraeesh@109.166.59.216) (Ping timeout: 245 seconds)
2021-03-18 19:27:23 +0100__minoru__shirae(~shiraeesh@77.94.25.145)
2021-03-18 19:28:31 +0100 <tomsmeding> bbhoss: what kind of problem would it get stuck on?
2021-03-18 19:28:36 +0100puffnfresh(~puffnfres@119-17-138-164.77118a.mel.static.aussiebb.net) (Ping timeout: 256 seconds)
2021-03-18 19:29:30 +0100puffnfresh(~puffnfres@119-17-138-164.77118a.mel.static.aussiebb.net)
2021-03-18 19:29:34 +0100 <bbhoss> in this case just some small issue where the type didnt have an instance of Show and I was using the show fn. added deriving (Show) to it and it builds fine. Restart and the problem is gone
2021-03-18 19:29:39 +0100 <dolio> I know someone who's mentioned probably the same issue.
2021-03-18 19:29:44 +0100jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 240 seconds)
2021-03-18 19:30:03 +0100 <dolio> Somehow some errors make the language server get into an unrecoverable state or something.
2021-03-18 19:30:16 +0100 <dolio> I don't know the details, though.
2021-03-18 19:30:18 +0100 <bbhoss> I've run into this with other extensions but usually there's a way to restart the server without a full editor restart
2021-03-18 19:30:27 +0100 <bbhoss> (other exts with other langs)
2021-03-18 19:31:23 +0100elliott__(~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
2021-03-18 19:32:16 +0100malumore(~malumore@151.62.122.146)
2021-03-18 19:32:50 +0100tomsmedinghas no idea, I don't use vscode, my editor allows me to restart the language server :p
2021-03-18 19:34:24 +0100stree(~stree@68.36.8.116)
2021-03-18 19:35:21 +0100frozenErebus(~frozenEre@94.128.81.163) (Ping timeout: 264 seconds)
2021-03-18 19:36:11 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 244 seconds)
2021-03-18 19:37:27 +0100specdrake(~anurag@203.192.236.225) (Remote host closed the connection)
2021-03-18 19:37:27 +0100bahamas(~lucian@unaffiliated/bahamas)
2021-03-18 19:38:06 +0100Gurkenglas_Gurkenglas
2021-03-18 19:38:23 +0100malumore(~malumore@151.62.122.146) (Ping timeout: 245 seconds)
2021-03-18 19:38:43 +0100 <gentauro> tomsmeding: you use emacs right?
2021-03-18 19:39:00 +0100 <tomsmeding> neovim :p
2021-03-18 19:39:10 +0100 <tomsmeding> have never used emacs
2021-03-18 19:42:08 +0100 <monochrom> neovim = never emacs only vim
2021-03-18 19:42:47 +0100 <epicte7us> bbhoss: I have issues like that as well with HLS and VSCode, if I don't want to completely restart VS code I'll do View -> Command Palette -> Developer: Reload Window
2021-03-18 19:44:08 +0100vjoki(vjoki@2a00:d880:3:1::fea1:9ae) (Ping timeout: 240 seconds)
2021-03-18 19:46:00 +0100vjoki(vjoki@2a00:d880:3:1::fea1:9ae)
2021-03-18 19:46:11 +0100 <geekosaur> neovim: vim is the new emacs
2021-03-18 19:46:34 +0100elliott__(~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
2021-03-18 19:46:56 +0100 <tomsmeding> at least it doesn't have tetris yet
2021-03-18 19:47:49 +0100ph88(~ph88@ip5f5af71a.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
2021-03-18 19:47:50 +0100 <shapr> emacs is the new vim
2021-03-18 19:48:01 +0100 <ephemient> tomsmeding: https://github.com/alec-gibson/nvim-tetris
2021-03-18 19:48:35 +0100 <tomsmeding> ephemient: there is no question that someone has implemented it, but at least it doesn't ship with tetris :p
2021-03-18 19:48:45 +0100hyiltiz(~quassel@31.220.5.250)
2021-03-18 19:48:45 +0100hyiltiz(~quassel@31.220.5.250) (Changing host)
2021-03-18 19:48:45 +0100hyiltiz(~quassel@unaffiliated/hyiltiz)
2021-03-18 19:48:47 +0100raym(~ray@115.187.32.14) (Remote host closed the connection)
2021-03-18 19:49:09 +0100 <ephemient> fair :)
2021-03-18 19:50:49 +0100ph88(~ph88@2a02:8109:9e00:7e5c:342c:fb5e:4a48:8cb)
2021-03-18 19:51:27 +0100geekosaur(82650c7a@130.101.12.122) (Quit: Connection closed)
2021-03-18 19:52:11 +0100solidus-river(~mike@174.127.249.180)
2021-03-18 19:52:46 +0100hjec(614e8662@rrcs-97-78-134-98.se.biz.rr.com) (Quit: Connection closed)
2021-03-18 19:53:20 +0100geekosaur(82650c7a@130.101.12.122)
2021-03-18 19:54:14 +0100`slikts(~nelabs@wikipedia/reinis) (Quit: No Ping reply in 180 seconds.)
2021-03-18 19:55:30 +0100`slikts(~nelabs@2a00:d880:5:395::37ca)
2021-03-18 19:55:30 +0100`slikts(~nelabs@2a00:d880:5:395::37ca) (Changing host)
2021-03-18 19:55:30 +0100`slikts(~nelabs@wikipedia/reinis)
2021-03-18 19:57:15 +0100Vadrigar(~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de)
2021-03-18 20:00:34 +0100Vadrigar(~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de) (Client Quit)
2021-03-18 20:01:07 +0100Pickchea(~private@unaffiliated/pickchea)
2021-03-18 20:01:53 +0100Vadrigar(~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de)
2021-03-18 20:04:07 +0100ircbrowse_tom(~ircbrowse@64.225.78.177)
2021-03-18 20:04:07 +0100Server+CLnt
2021-03-18 20:04:32 +0100berberman(~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds)
2021-03-18 20:05:03 +0100juri_(~juri@178.63.35.222) (Ping timeout: 245 seconds)
2021-03-18 20:07:13 +0100Vadrigar(~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de) (Quit: WeeChat 3.1)
2021-03-18 20:07:53 +0100Vadrigar(~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de)
2021-03-18 20:08:24 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-03-18 20:09:21 +0100idhugo(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 256 seconds)
2021-03-18 20:09:39 +0100Tesseraction(~Tesseract@unaffiliated/tesseraction) (Read error: Connection reset by peer)
2021-03-18 20:10:13 +0100Tesseraction(~Tesseract@unaffiliated/tesseraction)
2021-03-18 20:10:44 +0100bahamas(~lucian@unaffiliated/bahamas) (Quit: leaving)
2021-03-18 20:11:01 +0100puke(~vroom@217.138.252.170)
2021-03-18 20:11:15 +0100 <gentauro> tomsmeding: I tried vi, ended turning off my laptop. I couldn't get out :(
2021-03-18 20:11:54 +0100juri_(~juri@178.63.35.222)
2021-03-18 20:13:25 +0100 <tomsmeding> :p
2021-03-18 20:13:30 +0100 <tomsmeding> it's a trap
2021-03-18 20:13:57 +0100Vadrigar(~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de) (Quit: WeeChat 3.1)
2021-03-18 20:15:25 +0100 <tomsmeding> ircbrowse had some many useful features https://ircbrowse.tomsmeding.com/export/something https://github.com/tomsmeding/ircbrowse/blob/master/src/Ircbrowse/Controllers.hs#L39-L41
2021-03-18 20:15:25 +0100 <solidus-river> gentauro: https://vim-adventures.com/ ?!? great tool
2021-03-18 20:17:45 +0100 <gentauro> solidus-river: last time I tried `vi` was around 2005. Then I met `emacs` and I have never looked for another Operating System. The only thing missing in `emacs` is a good text editor ;)
2021-03-18 20:19:21 +0100 <maerwald> the only good argument pro emacs I agree with is that you have always a consistent key mapping across applications
2021-03-18 20:20:48 +0100 <tomsmeding> a while ago I found myself typing 'gg' in my web browser and very briefly being surprised that the page didn't move
2021-03-18 20:21:09 +0100 <tomsmeding> I was tired then, I believe
2021-03-18 20:21:14 +0100 <dolio> There used to be solutions to that.
2021-03-18 20:21:19 +0100 <ephemient> gentauro: https://github.com/emacs-evil/evil there's your decent editor for emacs :)
2021-03-18 20:21:21 +0100 <maerwald> vim vixxen etc
2021-03-18 20:21:31 +0100 <dolio> I think the plugin restrictions ruined it, though.
2021-03-18 20:21:32 +0100 <maerwald> but you still have to configure separately
2021-03-18 20:21:44 +0100 <tomsmeding> yeah I know there are browser extensions that give you vim-style bindings
2021-03-18 20:21:45 +0100 <maerwald> dolio: works fine... but you have to wait for the page to have loaded
2021-03-18 20:21:48 +0100malumore(~malumore@151.62.122.146)
2021-03-18 20:22:01 +0100 <maerwald> kinda weird
2021-03-18 20:22:30 +0100 <dolio> 'Course, I think restricting plugins was more valuable than vim bindings for browsers.
2021-03-18 20:22:31 +0100 <tomsmeding> I'm not completely sold on vim keybindings in applications they weren't designed for, but eh
2021-03-18 20:23:39 +0100 <oats> I love it for web browsing
2021-03-18 20:23:42 +0100 <oats> qutebrowser++
2021-03-18 20:23:47 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-03-18 20:23:57 +0100Tario(~Tario@201.192.165.173)
2021-03-18 20:25:02 +0100 <dolio> My biggest issue with browsers is text areas not matching text input modes in other stuff. Like ^W killing a browser tab rather than deleting back a word.
2021-03-18 20:26:11 +0100 <oats> heh yeah
2021-03-18 20:27:26 +0100 <dolio> Luckily they're pretty good at being able to restore the closed tab.
2021-03-18 20:28:36 +0100 <monochrom> Now, does ctrl-shift-t restore the word that ctrl-w deleted in a terminal? >:)
2021-03-18 20:29:01 +0100 <dolio> No, but I never need it to.
2021-03-18 20:29:27 +0100 <monochrom> I have needed it a few times.
2021-03-18 20:29:44 +0100malumore(~malumore@151.62.122.146) (Ping timeout: 240 seconds)
2021-03-18 20:30:17 +0100 <monochrom> Especially when I got the initial command line by reverse history search, deleted the last two words, then regretted it.
2021-03-18 20:30:38 +0100Lord_of_Life_(~Lord@unaffiliated/lord-of-life/x-0885362)
2021-03-18 20:30:41 +0100jonathanx(~jonathan@h-176-109.A357.priv.bahnhof.se)
2021-03-18 20:30:50 +0100DavidEichmann(~david@234.109.45.217.dyn.plus.net) (Remote host closed the connection)
2021-03-18 20:30:51 +0100 <ephemient> emacs/readline-style bindings: ctrl-y to bring back what ctrl-w put on the kill ring
2021-03-18 20:31:19 +0100 <ephemient> probably terminal can't do ctrl-shift-t due to no distinction between that and ctrl-t...
2021-03-18 20:31:32 +0100Kaiepi(~Kaiepi@47.54.252.148)
2021-03-18 20:31:40 +0100 <dolio> Oh yeah. I was going to mention that but I forgot it was ^Y.
2021-03-18 20:31:49 +0100 <dolio> I was thinking it was ^K for some reason, but that's the opposite.
2021-03-18 20:31:51 +0100 <tomsmeding> ephemient: ctrl-y only works for the last word; monochrom deleted the last two :p
2021-03-18 20:32:17 +0100 <geekosaur> ctrl-underscore (= undo) also works here
2021-03-18 20:32:18 +0100 <monochrom> ooohhh nice, ctrl-y, thanks
2021-03-18 20:32:28 +0100redmp_(~redmp@172.58.27.184)
2021-03-18 20:32:35 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 256 seconds)
2021-03-18 20:32:36 +0100 <dolio> ^Y brings back everything in the kill buffer, which would be all the words probably.
2021-03-18 20:32:37 +0100 <ephemient> it *should* work even if you ctrl-w'ed multiple words
2021-03-18 20:32:58 +0100romesrf(~romesrf@44.190.189.46.rev.vodafone.pt)
2021-03-18 20:32:58 +0100 <dolio> And having to re-delete some is your punishment that makes you not make mistakes in the future.
2021-03-18 20:33:02 +0100 <monochrom> Restoring too much is better than restoring nothing. :)
2021-03-18 20:33:03 +0100romesrf(~romesrf@44.190.189.46.rev.vodafone.pt) (Client Quit)
2021-03-18 20:33:28 +0100Lord_of_Life_Lord_of_Life
2021-03-18 20:33:51 +0100 <geekosaur> and ctrl-y restored the whole thing for me. (zsh)
2021-03-18 20:34:17 +0100 <monochrom> The thing is these modern unix-style CLI flag-and-option incantations are approaching the complexity of magic spells that you will never remember or synthesize them, you can only recognize them when you see them.
2021-03-18 20:35:26 +0100ajc(~ajc@69.231.232.79)
2021-03-18 20:35:46 +0100redmp(~redmp@172.58.19.158) (Ping timeout: 265 seconds)
2021-03-18 20:36:53 +0100jess(jess@freenode/staff/jess) (Quit: update innit)
2021-03-18 20:37:25 +0100hiroaki(~hiroaki@2a02:8108:8c40:2bb8:8fe8:bb5c:e4b1:b3c4) (Ping timeout: 265 seconds)
2021-03-18 20:37:29 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-18 20:38:24 +0100j(jess@freenode/staff/jess)
2021-03-18 20:38:47 +0100 <monochrom> bash M-r restores the line to initial state. (Now I'm reading the bash man page for real.) This is nice when I'm mucking with the outcome of history search.
2021-03-18 20:39:50 +0100ph88(~ph88@2a02:8109:9e00:7e5c:342c:fb5e:4a48:8cb) (Ping timeout: 265 seconds)
2021-03-18 20:39:57 +0100neiluj(~jco@91-167-203-101.subs.proxad.net)
2021-03-18 20:39:57 +0100neiluj(~jco@91-167-203-101.subs.proxad.net) (Changing host)
2021-03-18 20:39:57 +0100neiluj(~jco@unaffiliated/neiluj)
2021-03-18 20:41:16 +0100jjess
2021-03-18 20:41:19 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-03-18 20:42:16 +0100 <tomsmeding> ah I see, my shell indeed restores everything on ctrl-y; my irc client (weechat) has a broken readline reimplementation that restores only 1 word
2021-03-18 20:43:23 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 245 seconds)
2021-03-18 20:44:02 +0100 <geekosaur> keep in mind that this is arguable, since it's actually conflating emacs kill-region with bsd tty driver delete-last-word
2021-03-18 20:44:25 +0100 <monochrom> I think C-_ is the most general-purpose least-surprise undo we can normally default to.
2021-03-18 20:44:28 +0100 <geekosaur> so it's arguable that there shouldn't be a kill ring involved
2021-03-18 20:46:38 +0100 <dolio> The only thing that seems arguable is which behavior is more convenient most of the time.
2021-03-18 20:47:07 +0100knupfer(~Thunderbi@200116b82c0621002447c2923b633e13.dip.versatel-1u1.de)
2021-03-18 20:47:19 +0100 <dolio> I would probably lean toward the emacs-like behavior for that.
2021-03-18 20:48:18 +0100 <monochrom> Clearly, both command lines and the browser tabs need a version control system >:)
2021-03-18 20:48:19 +0100 <dolio> Perhaps not the full emacs behavior, which would be complicated to implement.
2021-03-18 20:48:51 +0100 <dolio> But having consecutive ^Ws add to the ^Y paste is nice.
2021-03-18 20:49:26 +0100hiroaki(~hiroaki@2a02:8108:8c40:2bb8:de28:da9b:e021:bab6)
2021-03-18 20:49:38 +0100myShoggoth(~myShoggot@75.164.81.55) (Ping timeout: 245 seconds)
2021-03-18 20:51:03 +0100myShoggoth(~myShoggot@75.164.81.55)
2021-03-18 20:54:00 +0100 <bbhoss> do I have to do something special to export data constructors? I'm exporting a couple of types I'm creating with `newtype` but when I import Lib in Spec.hs it can't find them
2021-03-18 20:54:13 +0100 <koz_> bbhoss: How are you exporting them now?
2021-03-18 20:54:29 +0100 <monochrom> module TheExporter(MyType(..)) where
2021-03-18 20:54:43 +0100 <bbhoss> https://www.irccloud.com/pastebin/UhZQRUjf/
2021-03-18 20:55:09 +0100 <monochrom> Yeah you need Ballot(..), Candidate(..)
2021-03-18 20:55:33 +0100 <koz_> If you export 'Foo', you export the type but not the constructors.
2021-03-18 20:55:36 +0100 <bbhoss> literally `..`? also, is there a better way to do this?
2021-03-18 20:55:49 +0100 <koz_> If you export 'Foo(Bar, Baz)', you export the type, and the 'Bar' and 'Baz' constructors.
2021-03-18 20:55:54 +0100 <geekosaur> literally ..
2021-03-18 20:55:55 +0100 <monochrom> No better way. Unless you mean longer way.
2021-03-18 20:56:05 +0100 <koz_> If you export 'Foo(..)', you export the type 'Foo', and all of its constructors.
2021-03-18 20:56:51 +0100 <bbhoss> haha alright, it seemed a little clunky, but I am a n00b obviously. I guess alternatively I could export a function that does this?
2021-03-18 20:56:51 +0100 <geekosaur> there is of course simply exporting everything by not specifying an export list
2021-03-18 20:57:19 +0100teardown(~user@gateway/tor-sasl/mrush)
2021-03-18 20:58:07 +0100 <monochrom> There are times you export just the type name, but hide constructors and field selectors, to present your type as an abstract type.
2021-03-18 20:58:45 +0100 <monochrom> Therefore one way or another, there needs one syntax for type-only, and one other syntax for type-and-its-guts.
2021-03-18 20:58:53 +0100hackagetasty-bench 0.2.3 - Featherlight benchmark framework https://hackage.haskell.org/package/tasty-bench-0.2.3 (Bodigrim)
2021-03-18 20:59:03 +0100 <monochrom> That is the minimum requirement for any syntax design at all.
2021-03-18 20:59:11 +0100idhugo(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
2021-03-18 20:59:12 +0100 <bbhoss> got it, just want to make sure I was being idiomatic
2021-03-18 21:00:23 +0100 <bbhoss> I don't need to export the type AND the MyType(..) do I? It seems to work without exporting the type
2021-03-18 21:01:03 +0100 <edmundnoble> You cannot export a type's constructors without exporting the type
2021-03-18 21:01:14 +0100 <geekosaur> because it'd be meaningless
2021-03-18 21:01:18 +0100 <edmundnoble> Well
2021-03-18 21:01:32 +0100 <edmundnoble> Hm can you export functions without exporting their return type
2021-03-18 21:01:42 +0100 <edmundnoble> Or I suppose more generally, names without exporting their types
2021-03-18 21:01:50 +0100 <Uniaika> hmm
2021-03-18 21:01:57 +0100 <Uniaika> I have a naïve question
2021-03-18 21:02:03 +0100 <edmundnoble> Best kind
2021-03-18 21:02:11 +0100 <bbhoss> right, so exporting MyType(..) implies that the type is exported
2021-03-18 21:02:16 +0100 <edmundnoble> Does yes
2021-03-18 21:02:16 +0100 <Uniaika> if unboxed integers (for instance) are so great for performance, why aren't they the default kind of integer?
2021-03-18 21:02:29 +0100 <edmundnoble> Unboxed integers are not necessarily great for performance
2021-03-18 21:02:33 +0100 <edmundnoble> Because they are not lazy
2021-03-18 21:02:40 +0100 <edmundnoble> But even assuming they were, in all cases, better for performance
2021-03-18 21:02:43 +0100 <mniip> Uniaika, historical reasons
2021-03-18 21:02:56 +0100 <edmundnoble> Type parameters cannot be instantiated by unboxed types in most cases
2021-03-18 21:03:03 +0100 <Uniaika> oh my, mniip and edmund in the chan. I feel like on Discord
2021-03-18 21:03:09 +0100 <Uniaika> edmundnoble: I see!
2021-03-18 21:03:09 +0100 <mniip> we've only very recently figured out the story with runtime representations in kinds
2021-03-18 21:03:09 +0100 <edmundnoble> Lmao I haven't seen you on discord
2021-03-18 21:03:14 +0100 <mniip> hecate
2021-03-18 21:03:20 +0100 <Uniaika> edmundnoble: yes you did :3
2021-03-18 21:03:21 +0100 <edmundnoble> Oh hai
2021-03-18 21:03:32 +0100 <mniip> furthermore you lose polymorphism
2021-03-18 21:03:40 +0100 <Uniaika> mniip: Int vs Int# ?
2021-03-18 21:03:43 +0100 <mniip> yes
2021-03-18 21:03:46 +0100 <mniip> sometime edwardk is trying to win back
2021-03-18 21:03:50 +0100 <Uniaika> but aren't they both concrete types?
2021-03-18 21:03:52 +0100idhugo(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Remote host closed the connection)
2021-03-18 21:03:52 +0100 <edmundnoble> Oh right so if you mean "why aren't they the default" like why isn't that the default `Num` instance
2021-03-18 21:03:57 +0100 <edmundnoble> There is no `Num` instance for `Int#`
2021-03-18 21:03:57 +0100 <mniip> ask him about compiling a package 1700 times with backpack
2021-03-18 21:03:57 +0100 <edmundnoble> At all
2021-03-18 21:04:05 +0100 <dolio> You can't put an Int# in a list.
2021-03-18 21:04:08 +0100 <edmundnoble> Because `Int#` is an unboxed type, so it doesn't have kind `*`
2021-03-18 21:04:09 +0100 <koz_> There is no anything instance for Int#.
2021-03-18 21:04:13 +0100 <edmundnoble> Well
2021-03-18 21:04:16 +0100 <mniip> % [0#]
2021-03-18 21:04:16 +0100 <yahb> mniip: ; <interactive>:31:2: error:; * Couldn't match a lifted type with an unlifted type; When matching types; a :: *; Int# :: TYPE 'GHC.Exts.IntRep; * In the expression: 0#; In the expression: [0#]; In an equation for `it': it = [0#]; * Relevant bindings include it :: [a] (bound at <interactive>:31:1)
2021-03-18 21:04:24 +0100 <mniip> it really doesn't work
2021-03-18 21:04:27 +0100 <edmundnoble> I think you can have type class instances for unlifted types
2021-03-18 21:04:38 +0100 <mniip> you can write things for unlifted types yes
2021-03-18 21:04:38 +0100 <Uniaika> I see I see
2021-03-18 21:04:42 +0100 <edmundnoble> But they will be able to do very little, subject to levity polymorphism's restrictions
2021-03-18 21:04:45 +0100 <dolio> Everything that deals with Int# has to specifically deal with it, and not be polymorphic.
2021-03-18 21:04:48 +0100 <mniip> but you can never accept a runtimerep-polymorphic argument
2021-03-18 21:04:52 +0100 <edmundnoble> Right
2021-03-18 21:04:54 +0100 <koz_> edmundnoble: Really? I thought that type variables for type classes default to Type?
2021-03-18 21:04:58 +0100 <mniip> this includes data constructors and class methods
2021-03-18 21:05:00 +0100 <edmundnoble> The big issue is that unlifted shit doesn't have the kind `*`
2021-03-18 21:05:09 +0100 <edmundnoble> And almost all terms have types with kind `*`
2021-03-18 21:05:14 +0100 <Uniaika> % :k 0#
2021-03-18 21:05:14 +0100 <yahb> Uniaika: ; <interactive>:1:1: error: parse error on input `0#'
2021-03-18 21:05:19 +0100 <Uniaika> dangit
2021-03-18 21:05:21 +0100 <myShoggoth> Streaming GHC GC code reading and analysis: https://www.twitch.tv/myshoggoth
2021-03-18 21:05:23 +0100 <mniip> % :k Int#
2021-03-18 21:05:23 +0100 <yahb> mniip: TYPE 'GHC.Exts.IntRep
2021-03-18 21:05:27 +0100pk37(7aa1ce54@122.161.206.84)
2021-03-18 21:05:28 +0100 <koz_> Uniaika: I recommend reading Kinds Are Calling Conventions.
2021-03-18 21:05:30 +0100petersen(~petersen@redhat/juhp) (Ping timeout: 256 seconds)
2021-03-18 21:05:31 +0100 <edmundnoble> % :k Int
2021-03-18 21:05:31 +0100 <yahb> edmundnoble: *
2021-03-18 21:05:37 +0100 <mniip> * = TYPE LiftedRep
2021-03-18 21:05:40 +0100 <edmundnoble> And `*` is what again,
2021-03-18 21:05:41 +0100 <edmundnoble> Gotcha
2021-03-18 21:05:46 +0100 <koz_> It's a very readable paper and goes into some detail explaining why the restrictions around unlifted types exist.
2021-03-18 21:05:48 +0100 <Uniaika> koz_: great, thanks
2021-03-18 21:06:02 +0100 <edmundnoble> koz_: that's not what you said, you said there are no instances of anything
2021-03-18 21:06:05 +0100 <koz_> (yes, there was a 'Types are Calling Conventions' before it)
2021-03-18 21:06:09 +0100mikoto-c1(~anass@gateway/tor-sasl/mikoto-chan)
2021-03-18 21:06:27 +0100 <edmundnoble> It is true however that if you have a type class with kind for example `* -> Constraint`, you will not be able to have instances for unlifted types
2021-03-18 21:06:42 +0100 <Uniaika> edmundnoble: okay so there is a fundamental conflict between "TYPE LiftedRep" and "TYPE IntRep"
2021-03-18 21:06:48 +0100 <mniip> you can have a polykinded class
2021-03-18 21:06:48 +0100 <edmundnoble> They just don't unify, yes
2021-03-18 21:06:51 +0100 <koz_> edmundnoble: I don't think I said there are no instances fro anything. I said there are no instances of anything for Int#.
2021-03-18 21:07:01 +0100 <dolio> Yes, those are not the same calling convention.
2021-03-18 21:07:03 +0100 <edmundnoble> Right, which is incorrect
2021-03-18 21:07:10 +0100edmundnobleThere can be instances of things for `Int#`
2021-03-18 21:07:16 +0100 <edmundnoble> There are just far fewer
2021-03-18 21:07:26 +0100 <koz_> Wait, so what instances exist for Int#?
2021-03-18 21:07:31 +0100 <koz_> Because I'm not aware of any.
2021-03-18 21:07:34 +0100ukari(~ukari@unaffiliated/ukari) (Remote host closed the connection)
2021-03-18 21:07:38 +0100 <mniip> % class Show# (a :: TYPE r) where show# :: a -> String; instance Show a => Show# a where show# = show; instance Show# Int# where show# x = show (I# x) ++ "#"
2021-03-18 21:07:38 +0100 <yahb> mniip: ; <interactive>:35:55: error: parse error on input `instance'
2021-03-18 21:07:39 +0100gues62271(~username@185.234.208.208.r.toneticgroup.pl)
2021-03-18 21:07:51 +0100petersen(~petersen@redhat/juhp)
2021-03-18 21:07:51 +0100icebreaker(michalc@freeshell.de)
2021-03-18 21:07:51 +0100icebreaker(michalc@freeshell.de) (Changing host)
2021-03-18 21:07:51 +0100icebreaker(michalc@unaffiliated/icebreaker)
2021-03-18 21:07:56 +0100 <mniip> % class Show# (a :: TYPE r) where { show# :: a -> String }; instance Show a => Show# a where { show# = show }; instance Show# Int# where { show# x = show (I# x) ++ "#" }
2021-03-18 21:07:56 +0100 <yahb> mniip:
2021-03-18 21:08:00 +0100 <mniip> % show# 0#
2021-03-18 21:08:00 +0100 <yahb> mniip: "0#"
2021-03-18 21:08:13 +0100 <mniip> this doesn't violate levity polymorphism restrictions
2021-03-18 21:08:16 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds)
2021-03-18 21:08:33 +0100ukari(~ukari@unaffiliated/ukari)
2021-03-18 21:08:43 +0100 <koz_> I admit I was a tad unclear. My intended statement was 'at this present moment, no instances of anything exist for Int# in code'. Not 'there can be no ...'.
2021-03-18 21:08:58 +0100 <edmundnoble> Well now one does ;)
2021-03-18 21:09:10 +0100 <koz_> I generally don't talk of instances in non-constructive terms. :P
2021-03-18 21:09:13 +0100 <edmundnoble> I actually would not be surprised if there was an instance of `Typeable`
2021-03-18 21:09:18 +0100 <mniip> edward is working on fixing that :P
2021-03-18 21:09:21 +0100 <koz_> That's a good question actually.
2021-03-18 21:09:28 +0100 <mniip> % typeRep @Int#
2021-03-18 21:09:28 +0100 <yahb> mniip: ; <interactive>:38:10: error:; * Expected kind `k0 -> *', but `Int#' has kind `TYPE 'GHC.Exts.IntRep'; * In the type `Int#'; In the expression: typeRep @Int#; In an equation for `it': it = typeRep @Int#
2021-03-18 21:09:30 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-18 21:09:40 +0100pk37(7aa1ce54@122.161.206.84) (Client Quit)
2021-03-18 21:09:51 +0100 <mniip> % Type.Reflection.typeRep @Int#
2021-03-18 21:09:51 +0100 <yahb> mniip: Int#
2021-03-18 21:09:55 +0100 <mniip> so it does
2021-03-18 21:10:02 +0100mikoto-chan(~anass@gateway/tor-sasl/mikoto-chan) (Ping timeout: 268 seconds)
2021-03-18 21:10:03 +0100 <dolio> Having 1700 backpack packages isn't going to fix anything.
2021-03-18 21:10:05 +0100 <mniip> I bet it also has an instance of (~) Int#
2021-03-18 21:10:15 +0100 <edmundnoble> Hahahaha
2021-03-18 21:10:19 +0100 <edmundnoble> Yes true
2021-03-18 21:10:30 +0100 <edmundnoble> Cheeky
2021-03-18 21:10:33 +0100 <koz_> I wonder if it has Coercible?
2021-03-18 21:10:39 +0100 <mniip> sure does
2021-03-18 21:10:52 +0100hive-mind(~hivemind@rrcs-67-53-148-69.west.biz.rr.com) (Ping timeout: 276 seconds)
2021-03-18 21:10:56 +0100 <edmundnoble> With unliftednewtypes I'd hope so
2021-03-18 21:11:04 +0100 <mniip> % newtype N = N Int#
2021-03-18 21:11:04 +0100 <yahb> mniip:
2021-03-18 21:11:05 +0100 <koz_> TIL!
2021-03-18 21:11:09 +0100malumore(~malumore@151.62.122.146)
2021-03-18 21:11:11 +0100 <koz_> Thank you #haskell.
2021-03-18 21:11:16 +0100 <mniip> % show# (coerce (N 3#) :: Int#)
2021-03-18 21:11:17 +0100 <yahb> mniip: "3#"
2021-03-18 21:11:25 +0100hive-mind(~hivemind@rrcs-67-53-148-69.west.biz.rr.com)
2021-03-18 21:11:49 +0100 <edmundnoble> There intuitively seems to be many less useful instances of levity-polymorphic type classes than there are levity-monomorphic ones, for sure
2021-03-18 21:12:08 +0100 <mniip> there are many issues
2021-03-18 21:12:28 +0100 <edmundnoble> The lack of `Num` is the obviously painful one that really takes you into Perl-land when you want to do math on unboxed stuff
2021-03-18 21:12:43 +0100 <koz_> edmundnoble: Yep, been there, and it felt like writing Core.
2021-03-18 21:13:07 +0100 <edmundnoble> I recently mangled my code to do math on unboxed stuff, and let me tell you
2021-03-18 21:13:10 +0100 <edmundnoble> Half the allocations
2021-03-18 21:13:15 +0100 <edmundnoble> Exact same time taken
2021-03-18 21:13:22 +0100 <edmundnoble> Facepalm
2021-03-18 21:13:34 +0100 <Uniaika> Thanks to you all
2021-03-18 21:13:40 +0100 <edmundnoble> Same live set size too :P
2021-03-18 21:13:48 +0100 <edmundnoble> Np uwuni
2021-03-18 21:13:56 +0100timCF(~i.tkachuk@m91-129-99-43.cust.tele2.ee)
2021-03-18 21:14:29 +0100 <koz_> When do we get 'Sorts are Calling Conventions'? :P
2021-03-18 21:14:32 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-03-18 21:14:43 +0100 <Uniaika> edmundnoble: UwU
2021-03-18 21:15:15 +0100 <koz_> Uniaika: Nyan nyan.
2021-03-18 21:15:32 +0100sz0(uid110435@gateway/web/irccloud.com/x-tywxgqqycltuflco)
2021-03-18 21:15:38 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2021-03-18 21:15:47 +0100 <timCF> Hello! I have a question. Is type `Either a b` really a functor? Just thinking that functor class implies 1 type parameter, but here we have 2 - it not matching.
2021-03-18 21:15:55 +0100 <Uniaika> koz_: :D
2021-03-18 21:16:05 +0100 <Uniaika> timCF: nope, Either a b is not a functor
2021-03-18 21:16:07 +0100 <Uniaika> that being said
2021-03-18 21:16:09 +0100 <koz_> timCF: 'Either a b' isn't a functor. 'Either a' is.
2021-03-18 21:16:13 +0100 <Uniaika> (Either a) is a functor
2021-03-18 21:16:18 +0100 <koz_> (for all a, even)
2021-03-18 21:16:19 +0100 <Uniaika> and the type parameter is b
2021-03-18 21:16:37 +0100 <Uniaika> same thing with (a,b) tuples
2021-03-18 21:16:50 +0100 <koz_> And a -> b.
2021-03-18 21:16:53 +0100 <Uniaika> timCF: actually, Viktor Dukhovni authored a nice write-up about it
2021-03-18 21:17:00 +0100 <Uniaika> let me find that for you
2021-03-18 21:19:11 +0100 <[exa]> timCF: the 1 parameter should be "missing" in the definition, the functor (Either a) is in fact something like `Either a _`. That way, `fmap (f :: b->c)` can cleanly turn `((Either a) b)` to `((Either a) c)` without trying to interfere with the "base" definition. I added the parentheses there for clarity.
2021-03-18 21:19:16 +0100coot(~coot@37.30.58.223.nat.umts.dynamic.t-mobile.pl)
2021-03-18 21:20:27 +0100rj_(~x@gateway/tor-sasl/rj) (Remote host closed the connection)
2021-03-18 21:20:43 +0100 <timCF> Uniaika: koz_: [exa]: thanks! I did found definition in Prelude, indeed it matches what you did said https://hackage.haskell.org/package/base-4.14.1.0/docs/src/Data.Either.html#line-133
2021-03-18 21:21:01 +0100 <[exa]> timCF: if you would like to see the theoretical reason, fire up ghci and, with :k, try to see the kind of: `Int`, `[Int]`, `[]`, `Maybe`, `Maybe Int` and say `Num` and `Functor`
2021-03-18 21:24:08 +0100 <Uniaika> timCF: https://gitlab.haskell.org/ghc/ghc/-/blob/master/libraries/base/GHC/Base.hs#L515-563
2021-03-18 21:24:13 +0100 <Uniaika> read that
2021-03-18 21:25:12 +0100puke(~vroom@217.138.252.170) (Remote host closed the connection)
2021-03-18 21:26:09 +0100 <monochrom> You can understand "Either X Y" as "(Either X) Y".
2021-03-18 21:26:33 +0100 <Uniaika> timCF: if you want a typeclass that allows you to have both, that's Bifunctor
2021-03-18 21:27:15 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-03-18 21:27:18 +0100 <timCF> Uniaika: monochrom: thanks!
2021-03-18 21:31:21 +0100 <koz_> Uniaika: Bifunctor <3.
2021-03-18 21:31:21 +0100Rudd0(~Rudd0@185.189.115.108) (Ping timeout: 265 seconds)
2021-03-18 21:31:31 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2021-03-18 21:31:44 +0100mikoto-c1(~anass@gateway/tor-sasl/mikoto-chan) (Quit: mikoto-c1)
2021-03-18 21:31:46 +0100 <Uniaika> koz_: yus <3
2021-03-18 21:32:10 +0100 <monochrom> trifunctor = 3
2021-03-18 21:32:19 +0100 <koz_> monochrom: OMG ROFL
2021-03-18 21:32:23 +0100 <koz_> I didn't even see that.
2021-03-18 21:32:31 +0100 <geekosaur> heh
2021-03-18 21:32:50 +0100 <koz_> Thus, Functor <3
2021-03-18 21:32:56 +0100puke(~vroom@217.138.252.170)
2021-03-18 21:33:02 +0100 <Uniaika> monochrom: hahaha
2021-03-18 21:33:27 +0100 <monochrom> Where other people have associative memory, I have pun memory.
2021-03-18 21:34:10 +0100zebrag(~inkbottle@aaubervilliers-654-1-3-8.w83-200.abo.wanadoo.fr)
2021-03-18 21:34:34 +0100mikoto-chan(~anass@gateway/tor-sasl/mikoto-chan)
2021-03-18 21:35:00 +0100aarvar(~foewfoiew@2601:602:a080:fa0:99f2:16e7:abb7:2d80)
2021-03-18 21:35:18 +0100mikoto-chan(~anass@gateway/tor-sasl/mikoto-chan) (Client Quit)
2021-03-18 21:35:32 +0100knupfer(~Thunderbi@200116b82c0621002447c2923b633e13.dip.versatel-1u1.de) (Ping timeout: 244 seconds)
2021-03-18 21:35:32 +0100danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 260 seconds)
2021-03-18 21:35:54 +0100hiroaki(~hiroaki@2a02:8108:8c40:2bb8:de28:da9b:e021:bab6) (Ping timeout: 265 seconds)
2021-03-18 21:37:32 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-03-18 21:40:13 +0100st0rm(~zz@185.189.114.236)
2021-03-18 21:40:27 +0100quinn(~quinn@c-73-223-224-163.hsd1.ca.comcast.net) (Quit: ZNC 1.8.1 - https://znc.in)
2021-03-18 21:41:09 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 256 seconds)
2021-03-18 21:41:58 +0100st0rm(~zz@185.189.114.236) ()
2021-03-18 21:42:33 +0100stree(~stree@68.36.8.116) (Ping timeout: 260 seconds)
2021-03-18 21:42:36 +0100geekosaur(82650c7a@130.101.12.122) (Quit: Connection closed)
2021-03-18 21:42:42 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2021-03-18 21:47:15 +0100quinn(~quinn@c-73-223-224-163.hsd1.ca.comcast.net)
2021-03-18 21:48:22 +0100 <gues62271> hi, which library should I use for smtp/imap? are there any alternatives for HaskellNet?
2021-03-18 21:48:32 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-18 21:48:51 +0100 <[exa]> gues62271: I guess for SMTP clients and IMAP clients?
2021-03-18 21:48:56 +0100hiroaki(~hiroaki@2a02:8108:8c40:2bb8:4243:d03e:128:ecd8)
2021-03-18 21:49:05 +0100 <gues62271> exactly
2021-03-18 21:49:25 +0100 <[exa]> gues62271: there's Network.Mail.SMTP which could work for 99% usecases
2021-03-18 21:50:09 +0100 <gues62271> cool, it would handle 'sending'
2021-03-18 21:50:59 +0100 <[exa]> highly suggest to use the `sendmail` backend, e-mail configuration gets tricky too often to reimplement it
2021-03-18 21:51:03 +0100solidus-river(~mike@174.127.249.180) (Remote host closed the connection)
2021-03-18 21:51:14 +0100 <[exa]> `mime-mail` package helps with making relatively good mails
2021-03-18 21:51:26 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-03-18 21:51:49 +0100jneira(501e6406@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.100.6)
2021-03-18 21:52:09 +0100 <gues62271> thanks
2021-03-18 21:52:12 +0100 <[exa]> anyway I didn't use any imap library, not sure if there are any either
2021-03-18 21:52:24 +0100 <gues62271> I found HaskellNet...
2021-03-18 21:52:36 +0100 <gues62271> https://github.com/qnikst/HaskellNet
2021-03-18 21:52:52 +0100 <[exa]> hm good, that's kinda integrated
2021-03-18 21:52:56 +0100 <gues62271> not sure if it's something that can be trusted ;)
2021-03-18 21:53:27 +0100 <[exa]> I guess it's good for a prototype
2021-03-18 21:53:45 +0100 <[exa]> reimplementing IMAP in haskell shouldn't be that hard actually
2021-03-18 21:53:54 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-03-18 21:54:28 +0100 <[exa]> like, the mail protocols are a mess, but you can always start by improving this one package
2021-03-18 21:55:03 +0100 <gues62271> ok, will play with that and see what I can do
2021-03-18 21:55:08 +0100 <gues62271> thanks, again
2021-03-18 21:55:42 +0100stree(~stree@68.36.8.116)
2021-03-18 21:56:20 +0100 <shapr> gues62271: if you start improving HaskellNet, could you link your repo here?
2021-03-18 21:56:39 +0100 <gues62271> sure
2021-03-18 21:56:47 +0100 <[exa]> gues62271: anyway, what's the higher purpose? (there might be better ways :D )
2021-03-18 21:57:50 +0100 <gues62271> long story short, I want to make simple standalone house monitoring - powerbank + rpi + camera + custom software written in Haskell of course
2021-03-18 21:58:15 +0100 <[exa]> I guess you don't require that it runs on windows right?
2021-03-18 21:58:22 +0100 <gues62271> as the network link is limited there I want to use e-mail for communication in request-response model
2021-03-18 21:58:36 +0100zebrag(~inkbottle@aaubervilliers-654-1-3-8.w83-200.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-03-18 21:58:55 +0100zebrag(~inkbottle@aaubervilliers-654-1-3-8.w83-200.abo.wanadoo.fr)
2021-03-18 21:58:56 +0100 <gues62271> and after move detectors will be installed just some notifications (text, images, sounds and so on)
2021-03-18 21:59:21 +0100 <gues62271> nope, linux of freebsd
2021-03-18 21:59:35 +0100 <shapr> gues62271: sounds nifty
2021-03-18 22:00:02 +0100 <gues62271> but I'm afraid freebsd is not a good Haskell platform now :(
2021-03-18 22:00:03 +0100 <[exa]> if you're on unix, there's a load of reliable tiny utilities for handling mail that you can just execute periodically from haskell and see the nice results
2021-03-18 22:00:03 +0100 <gues62271> pirt
2021-03-18 22:00:05 +0100 <gues62271> pity
2021-03-18 22:00:48 +0100 <gues62271> yeah but that way Haskell would work as some glue script
2021-03-18 22:01:00 +0100 <[exa]> `sendmail` and `fetchmail` would work nicely I guess
2021-03-18 22:01:20 +0100 <[exa]> there's a nice howto on this somewhere around `notmuch`
2021-03-18 22:01:30 +0100_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-03-18 22:01:47 +0100 <[exa]> mutt has its own mail fetcher, pretty good one iirc
2021-03-18 22:02:44 +0100 <gues62271> ok, will give a chance HaskellNet if it fails will try other backends
2021-03-18 22:02:51 +0100elliott__(~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 246 seconds)
2021-03-18 22:08:12 +0100electricityZZZZ(~electrici@108-216-157-17.lightspeed.sntcca.sbcglobal.net) (Quit: Leaving)
2021-03-18 22:10:39 +0100Sathiana(~kath@185-113-98-38.cust.bredband2.com) (Quit: WeeChat 3.0)
2021-03-18 22:10:40 +0100hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 256 seconds)
2021-03-18 22:14:10 +0100Techcable(~Techcable@168.235.93.147) (Quit: ZNC - https://znc.in)
2021-03-18 22:14:58 +0100Techcable(~Techcable@168.235.93.147)
2021-03-18 22:19:38 +0100malumore(~malumore@151.62.122.146) (Ping timeout: 245 seconds)
2021-03-18 22:19:59 +0100Pickchea(~private@unaffiliated/pickchea) (Quit: Leaving)
2021-03-18 22:22:04 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-03-18 22:25:03 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-03-18 22:25:17 +0100Gurkenglas_(~Gurkengla@unaffiliated/gurkenglas)
2021-03-18 22:25:31 +0100cheater1(~user@unaffiliated/cheater)
2021-03-18 22:25:42 +0100Alleria(~textual@mskresolve-a.mskcc.org)
2021-03-18 22:26:05 +0100AlleriaGuest95
2021-03-18 22:26:20 +0100epicte7us(~epictetus@ip72-194-215-136.sb.sd.cox.net) (Read error: Connection reset by peer)
2021-03-18 22:26:28 +0100raoul90(~raoulhida@nomnomnomnom.co.uk)
2021-03-18 22:26:32 +0100Bergle_2(~Bergle_4@101.165.90.119) (Read error: Connection reset by peer)
2021-03-18 22:26:36 +0100raoul9(~raoulhida@nomnomnomnom.co.uk) (Read error: Connection reset by peer)
2021-03-18 22:26:39 +0100puffnfresh_(~puffnfres@45.76.124.5) (Ping timeout: 246 seconds)
2021-03-18 22:26:39 +0100epicte7us(~epictetus@ip72-194-215-136.sb.sd.cox.net)
2021-03-18 22:26:54 +0100Bergle_2(~Bergle_4@101.165.90.119)
2021-03-18 22:26:57 +0100puffnfresh_(~puffnfres@45.76.124.5)
2021-03-18 22:26:57 +0100Guest58397(~textual@zrcout.mskcc.org) (Ping timeout: 264 seconds)
2021-03-18 22:28:03 +0100cheater(~user@unaffiliated/cheater) (Ping timeout: 246 seconds)
2021-03-18 22:28:05 +0100cheater1cheater
2021-03-18 22:28:24 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 246 seconds)
2021-03-18 22:28:38 +0100kupi(uid212005@gateway/web/irccloud.com/x-svypwsrujkkhxdfd)
2021-03-18 22:29:09 +0100samebchase-5(~samebchas@51.15.68.182)
2021-03-18 22:29:15 +0100samebchase-(~samebchas@51.15.68.182) (Ping timeout: 264 seconds)
2021-03-18 22:30:11 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-18 22:30:46 +0100lockshaw(~lockshaw@165.22.163.71) (Quit: ZNC 1.7.2+deb3 - https://znc.in)
2021-03-18 22:30:48 +0100gothos(~gothos@antsy.jhz.name) (Read error: Connection reset by peer)
2021-03-18 22:31:05 +0100MVQq(~anja@198.254.199.42)
2021-03-18 22:31:39 +0100lockshaw(~lockshaw@165.22.163.71)
2021-03-18 22:32:21 +0100rookie101(~rookie@207.154.204.166) (Ping timeout: 264 seconds)
2021-03-18 22:32:48 +0100LKoen(~LKoen@194.250.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
2021-03-18 22:32:53 +0100rookie101(~rookie@207.154.204.166)
2021-03-18 22:33:44 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2021-03-18 22:34:00 +0100MarcelineVQ(~anja@198.254.199.42) (Ping timeout: 246 seconds)
2021-03-18 22:35:33 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-03-18 22:35:36 +0100codygman`(~user@209.251.131.98) (Ping timeout: 256 seconds)
2021-03-18 22:35:55 +0100gothos(~gothos@antsy.jhz.name)
2021-03-18 22:35:56 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-18 22:36:00 +0100[1]MrMobius(~MrMobius@208.58.206.154)
2021-03-18 22:36:11 +0100slack1256(~slack1256@dvc-186-186-101-190.movil.vtr.net)
2021-03-18 22:36:56 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2021-03-18 22:38:04 +0100Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving)
2021-03-18 22:38:21 +0100MrMobius(~MrMobius@208.58.206.154) (Ping timeout: 264 seconds)
2021-03-18 22:38:22 +0100[1]MrMobiusMrMobius
2021-03-18 22:41:28 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-03-18 22:41:42 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-18 22:42:23 +0100acidjnk_new(~acidjnk@p200300d0c72b9511759421c9ddfcc58f.dip0.t-ipconnect.de)
2021-03-18 22:42:44 +0100gues62271(~username@185.234.208.208.r.toneticgroup.pl) (Quit: gues62271)
2021-03-18 22:43:18 +0100caubert(~caubert@136.244.111.235) (Read error: Connection reset by peer)
2021-03-18 22:43:54 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2021-03-18 22:43:55 +0100caubert(~caubert@136.244.111.235)
2021-03-18 22:44:43 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-03-18 22:45:02 +0100dhouthoo(~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) (Quit: WeeChat 3.0)
2021-03-18 22:45:45 +0100Guest95(~textual@mskresolve-a.mskcc.org) (Ping timeout: 256 seconds)
2021-03-18 22:46:14 +0100poscat(~poscat@2408:8207:4825:c7c0::1) (Ping timeout: 264 seconds)
2021-03-18 22:46:32 +0100poscat(~poscat@123.112.148.153)
2021-03-18 22:46:58 +0100xlei(znc@unaffiliated/xlei) (Excess Flood)
2021-03-18 22:47:06 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-03-18 22:48:51 +0100lep_(~lep@94.31.86.183)
2021-03-18 22:50:52 +0100xlei(znc@unaffiliated/xlei)
2021-03-18 22:51:06 +0100zaquest(~notzaques@5.128.210.178) (Ping timeout: 264 seconds)
2021-03-18 22:51:06 +0100lep-delete(~lep@94.31.86.183) (Ping timeout: 264 seconds)
2021-03-18 22:51:11 +0100fendor(~fendor@178.115.131.140.wireless.dyn.drei.com) (Remote host closed the connection)
2021-03-18 22:51:29 +0100zaquest(~notzaques@5.128.210.178)
2021-03-18 22:53:20 +0100merijn(~merijn@83.160.49.249)
2021-03-18 22:53:35 +0100cafce25(~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2021-03-18 22:54:58 +0100alx741(~alx741@186.178.109.138) (Ping timeout: 265 seconds)
2021-03-18 22:55:10 +0100sayola(~vekto@dslb-002-201-085-157.002.201.pools.vodafone-ip.de) (Ping timeout: 264 seconds)
2021-03-18 22:55:21 +0100knupfer(~Thunderbi@mue-88-130-61-178.dsl.tropolys.de)
2021-03-18 22:55:41 +0100sayola(~vekto@dslb-002-201-085-157.002.201.pools.vodafone-ip.de)
2021-03-18 22:57:25 +0100wagle(~wagle@quassel.wagle.io) (Ping timeout: 264 seconds)
2021-03-18 22:57:25 +0100aweinstock(~aweinstoc@cpe-67-248-65-250.nycap.res.rr.com) (Ping timeout: 264 seconds)
2021-03-18 22:57:25 +0100aweinstock(~aweinstoc@cpe-67-248-65-250.nycap.res.rr.com)
2021-03-18 22:58:05 +0100wagle(~wagle@quassel.wagle.io)
2021-03-18 22:58:09 +0100merijn(~merijn@83.160.49.249) (Ping timeout: 246 seconds)
2021-03-18 22:58:30 +0100so(~so@unaffiliated/so) (Ping timeout: 246 seconds)
2021-03-18 22:59:06 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-18 22:59:36 +0100so(~so@unaffiliated/so)
2021-03-18 23:00:28 +0100Rudd0(~Rudd0@185.189.115.98)
2021-03-18 23:00:38 +0100Rudd0(~Rudd0@185.189.115.98) (K-Lined)
2021-03-18 23:01:20 +0100supercoven_(~Supercove@dsl-hkibng31-54fabd-233.dhcp.inet.fi) (Ping timeout: 240 seconds)
2021-03-18 23:03:11 +0100motersen(~user@2001-4dd1-d88a-0-5338-d0f4-6eda-2a0f.ipv6dyn.netcologne.de)
2021-03-18 23:04:13 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
2021-03-18 23:04:27 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-03-18 23:04:42 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-18 23:05:05 +0100sm2n(~sm2n@bras-base-hmtnon143hw-grc-15-70-54-78-219.dsl.bell.ca) (Quit: Leaving)
2021-03-18 23:05:10 +0100Rudd0(~Rudd0@185.189.115.103)
2021-03-18 23:05:49 +0100sm2n(~sm2n@bras-base-hmtnon143hw-grc-15-70-54-78-219.dsl.bell.ca)
2021-03-18 23:07:24 +0100alx741(~alx741@181.196.68.246)
2021-03-18 23:08:57 +0100conal(~conal@66.115.157.150) (Quit: Computer has gone to sleep.)
2021-03-18 23:10:09 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-03-18 23:10:27 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-18 23:13:29 +0100Foritus(~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Quit: ლ(ಠ益ಠლ) .:. <Ashley> my porn is hidden in a folder called "BBC Micro Emulator")
2021-03-18 23:13:58 +0100Foritus(~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net)
2021-03-18 23:14:31 +0100cosimone(~user@93-47-228-249.ip115.fastwebnet.it)
2021-03-18 23:15:09 +0100conal(~conal@66.115.157.150)
2021-03-18 23:15:39 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-03-18 23:16:11 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-18 23:19:17 +0100DavidEichmann(~david@234.109.45.217.dyn.plus.net)
2021-03-18 23:19:59 +0100 <slack1256> Do BangPatterns do anything on newtypes?
2021-03-18 23:21:43 +0100sgibber2018(d055ed90@208.85.237.144)
2021-03-18 23:22:07 +0100comerijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-18 23:22:56 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-03-18 23:23:41 +0100hololeap_hololeap
2021-03-18 23:26:21 +0100Cathy(~Cathy@unaffiliated/cathy) (Ping timeout: 264 seconds)
2021-03-18 23:26:44 +0100 <Uniaika> slack1256: do you know how to use them, first?
2021-03-18 23:27:14 +0100comerijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-03-18 23:27:29 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-18 23:28:48 +0100 <slack1256> Yep, at runtime they ought not to exist so the isomorphism between Foo undefined and undefined holds.
2021-03-18 23:28:55 +0100Cathy(~Cathy@unaffiliated/cathy)
2021-03-18 23:31:03 +0100knupfer(~Thunderbi@mue-88-130-61-178.dsl.tropolys.de) (Ping timeout: 246 seconds)
2021-03-18 23:31:05 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
2021-03-18 23:31:57 +0100 <Uniaika> slack1256: do you know about the strictness difference between newtypes and strict data-types ?
2021-03-18 23:32:02 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2021-03-18 23:32:23 +0100redmp(~redmp@172.58.30.211)
2021-03-18 23:32:32 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-03-18 23:33:17 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-18 23:33:37 +0100 <slack1256> Yeah, if you have single datatypes with strictness and use them only on let matching, they equivalent to newtypes. Case expressions don't do work on newtypes.
2021-03-18 23:33:55 +0100hexfive(~hexfive@50.35.83.177) (Quit: i must go. my people need me.)
2021-03-18 23:34:19 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
2021-03-18 23:35:37 +0100redmp_(~redmp@172.58.27.184) (Ping timeout: 256 seconds)
2021-03-18 23:38:38 +0100hiroaki(~hiroaki@2a02:8108:8c40:2bb8:4243:d03e:128:ecd8) (Remote host closed the connection)
2021-03-18 23:39:18 +0100SegFaultAX(SegFaultAX@unaffiliated/segfaultax) (Quit: ZNC - http://znc.in)
2021-03-18 23:39:51 +0100hiroaki(~hiroaki@2a02:8108:8c40:2bb8:3a03:ce0e:5f24:853e)
2021-03-18 23:41:32 +0100Franciman(~francesco@host-79-53-62-46.retail.telecomitalia.it) (Quit: Leaving)
2021-03-18 23:44:02 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-03-18 23:44:59 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-18 23:45:58 +0100maroloccio(~marolocci@pousada3ja.mma.com.br)
2021-03-18 23:49:00 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
2021-03-18 23:49:19 +0100slack1256(~slack1256@dvc-186-186-101-190.movil.vtr.net) (Remote host closed the connection)
2021-03-18 23:49:24 +0100 <monochrom> seq and therefore BangPatterns does something to newtype too.
2021-03-18 23:49:48 +0100 <monochrom> % newtype MonoN = MonoN Int deriving (Show, Eq)
2021-03-18 23:49:48 +0100 <yahb> monochrom:
2021-03-18 23:50:13 +0100 <monochrom> > let { n :: MonoN; !n = undefined } in ()
2021-03-18 23:50:15 +0100 <lambdabot> error:
2021-03-18 23:50:16 +0100 <lambdabot> Not in scope: type constructor or class ‘MonoN’
2021-03-18 23:50:24 +0100 <monochrom> oops wrong bot
2021-03-18 23:50:30 +0100 <monochrom> % let { n :: MonoN; !n = undefined } in ()
2021-03-18 23:50:30 +0100 <yahb> monochrom: *** Exception: Prelude.undefined; CallStack (from HasCallStack):; error, called at libraries/base/GHC/Err.hs:75:14 in base:GHC.Err; undefined, called at <interactive>:43:24 in interactive:Ghci17
2021-03-18 23:50:35 +0100 <monochrom> % let { n :: MonoN; n = undefined } in ()
2021-03-18 23:50:35 +0100 <yahb> monochrom: ()
2021-03-18 23:50:54 +0100 <monochrom> > seq (undefined :: MonoN) ()
2021-03-18 23:50:55 +0100 <lambdabot> error:
2021-03-18 23:50:55 +0100 <lambdabot> Not in scope: type constructor or class ‘MonoN’
2021-03-18 23:51:00 +0100 <monochrom> % seq (undefined :: MonoN) ()
2021-03-18 23:51:00 +0100 <yahb> monochrom: *** Exception: Prelude.undefined; CallStack (from HasCallStack):; error, called at libraries/base/GHC/Err.hs:75:14 in base:GHC.Err; undefined, called at <interactive>:45:6 in interactive:Ghci18
2021-03-18 23:51:38 +0100 <Axman6> is the question if !(x :: Identity a) the same as (Identity !x)
2021-03-18 23:51:44 +0100 <monochrom> These bottoms also happen if you s/undefined/MonoN undefined/
2021-03-18 23:54:47 +0100 <monochrom> % let { !(MonoN x) = undefined } in ()
2021-03-18 23:54:47 +0100 <yahb> monochrom: *** Exception: Prelude.undefined; CallStack (from HasCallStack):; error, called at libraries/base/GHC/Err.hs:75:14 in base:GHC.Err; undefined, called at <interactive>:46:20 in interactive:Ghci18
2021-03-18 23:54:56 +0100 <monochrom> % let { (MonoN !x) = undefined } in ()
2021-03-18 23:54:56 +0100 <yahb> monochrom: ()
2021-03-18 23:55:00 +0100 <monochrom> Different
2021-03-18 23:55:42 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-03-18 23:56:10 +0100 <Axman6> that genuinely surprises me
2021-03-18 23:56:34 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-03-18 23:56:37 +0100 <monochrom> For maximum accuracy, you can always translate ! back to seq (tedious but the GHC user's guide has it), then take note that both "seq (undefined :: MonoN) ()" and "seq (MonoN undefined) ()" both bomb.
2021-03-18 23:57:18 +0100 <monochrom> What doesn't bomb is "case undefined of MonoN _ -> ()"
2021-03-18 23:57:29 +0100 <monochrom> % case undefined of MonoN _ -> ()
2021-03-18 23:57:29 +0100 <yahb> monochrom: ()
2021-03-18 23:57:48 +0100 <monochrom> So seq is a bit different from pattern matching for newtypes.
2021-03-18 23:58:35 +0100zebrag(~inkbottle@aaubervilliers-654-1-3-8.w83-200.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-03-18 23:58:55 +0100zebrag(~inkbottle@aaubervilliers-654-1-3-8.w83-200.abo.wanadoo.fr)
2021-03-18 23:59:59 +0100Alleria(~textual@2603-7000-3040-0000-7953-b284-70cd-9e2c.res6.spectrum.com)