Home freenode/#haskell: Logs Calendar

Logs on 2021-03-18 (freenode/#haskell)

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

All times are in UTC on 2021-03-18.