2021-02-15 00:00:45 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds) |
2021-02-15 00:02:53 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-15 00:04:20 +0100 | nrh^ | (nrh@ip98-184-89-2.mc.at.cox.net) () |
2021-02-15 00:04:21 +0100 | usr25 | (~J@68.red-83-46-58.dynamicip.rima-tde.net) (Quit: Bye) |
2021-02-15 00:06:53 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-15 00:09:28 +0100 | bnbgg_ | (uid454564@gateway/web/irccloud.com/x-jxwbvqetgazmpwcn) (Quit: Connection closed for inactivity) |
2021-02-15 00:09:39 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-02-15 00:11:00 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 246 seconds) |
2021-02-15 00:11:30 +0100 | polyrain | (~polyrain@124.177.21.171) |
2021-02-15 00:13:54 +0100 | boxscape | (4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) (Quit: Connection closed) |
2021-02-15 00:16:37 +0100 | jedws | (~jedws@101.184.202.248) |
2021-02-15 00:18:33 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-02-15 00:19:45 +0100 | slack1256 | (~slack1256@pc-198-213-46-190.cm.vtr.net) (Ping timeout: 246 seconds) |
2021-02-15 00:19:54 +0100 | shatriff | (~vitaliish@176-52-216-242.irishtelecom.com) |
2021-02-15 00:21:10 +0100 | Lowl3v3l | (~Lowl3v3l@dslb-002-203-233-121.002.203.pools.vodafone-ip.de) (Remote host closed the connection) |
2021-02-15 00:21:47 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:b101:b0cf:b14d:ce6b) |
2021-02-15 00:24:21 +0100 | <Squarism> | Given a "class SomeConst a => AClass a". When you make an instance of AClass wo yet having declared SomeConst a you need to add "instant SomeConst SomeValue => AClass SomeValue". This gets a bit verbose so I wonder if you can "predefine" it per module? |
2021-02-15 00:24:56 +0100 | <Squarism> | If say you have more instances that require SomeConst SomeValue so to speak. |
2021-02-15 00:25:58 +0100 | Ariakenom | (~Ariakenom@2001:9b1:efb:fc00:6820:5e7f:6476:59ce) (Quit: Leaving) |
2021-02-15 00:26:46 +0100 | raehik1 | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds) |
2021-02-15 00:26:52 +0100 | <Axman6> | I don't understand the question |
2021-02-15 00:29:12 +0100 | dsrt^ | (dsrt@ip98-184-89-2.mc.at.cox.net) |
2021-02-15 00:29:33 +0100 | raehik1 | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-02-15 00:30:17 +0100 | <Squarism> | Axman. You have "class SomeConst a => AClass a". You want to define an instance of "AClass Foo". But "SomeConst Foo" is not yet defined at that point in the compilation module dependency graph, but will higher up. |
2021-02-15 00:30:39 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds) |
2021-02-15 00:31:39 +0100 | <Squarism> | I mean i can write "instance SomeConst Foo => AClass Foo" and it works. But i need to do it at every place "SomeConst Foo" is a constraint |
2021-02-15 00:34:27 +0100 | mirrorbird | (~psutcliff@2a00:801:44d:603d:d116:d5a1:4a2f:a08f) (Ping timeout: 272 seconds) |
2021-02-15 00:37:11 +0100 | dhil | (~dhil@80.208.56.181) (Ping timeout: 256 seconds) |
2021-02-15 00:37:21 +0100 | s00pcan | (~chris@075-133-056-178.res.spectrum.com) |
2021-02-15 00:40:08 +0100 | <monochrom> | Huh, I would implement "instance SomeConst SomeValue" as well. |
2021-02-15 00:40:46 +0100 | <monochrom> | I mean, no one does "instance Functor T => Applicative T". Everyone does both "instance Functor T where" and "instance Applicative T where". |
2021-02-15 00:41:08 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-02-15 00:42:01 +0100 | <Axman6> | yeah I didn't even know that was legal |
2021-02-15 00:43:48 +0100 | <monochrom> | Perhaps legal under abuse of FlexibleContext. |
2021-02-15 00:45:42 +0100 | Jd007 | (~Jd007@162.156.11.151) (Quit: Jd007) |
2021-02-15 00:46:11 +0100 | <Squarism> | oh ok |
2021-02-15 00:47:26 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-112-148.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-02-15 00:47:47 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-112-148.w86-198.abo.wanadoo.fr) |
2021-02-15 00:48:01 +0100 | son0p | (~son0p@181.136.122.143) (Quit: Lost terminal) |
2021-02-15 00:52:32 +0100 | fendor | (~fendor@77.119.131.224.wireless.dyn.drei.com) (Remote host closed the connection) |
2021-02-15 00:56:15 +0100 | <NieDzejkob> | http://dev.stephendiehl.com/hask/index.html#partial-functions this document claims that foldr and some other folds are partial for empty lists, but |
2021-02-15 00:56:18 +0100 | <NieDzejkob> | > foldr (+) 3 [] |
2021-02-15 00:56:19 +0100 | <lambdabot> | 3 |
2021-02-15 00:56:23 +0100 | <NieDzejkob> | am I missing something? |
2021-02-15 00:59:17 +0100 | alx741 | (~alx741@186.178.108.225) |
2021-02-15 01:00:05 +0100 | seanparsons | (~sean@cpc145088-gill21-2-0-cust281.20-1.cable.virginm.net) (Quit: ZNC 1.8.1 - https://znc.in) |
2021-02-15 01:00:08 +0100 | atk | (~Arch-TK@ircpuzzles/staff/Arch-TK) (Quit: Well this is unexpected.) |
2021-02-15 01:00:29 +0100 | atk | (~Arch-TK@ircpuzzles/staff/Arch-TK) |
2021-02-15 01:01:01 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-15 01:02:12 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving) |
2021-02-15 01:02:46 +0100 | slack1256 | (~slack1256@dvc-186-186-101-190.movil.vtr.net) |
2021-02-15 01:02:48 +0100 | <alexfmpe> | I don't see how foldr could be partial since it takes an initial value for the accumulator? Stuff like `maximum` is partial though |
2021-02-15 01:03:07 +0100 | <alexfmpe> | "This server could not prove that it is gitlab.haskell.org; its security certificate expired in the last day." <-- uuuh where do I report this? |
2021-02-15 01:03:28 +0100 | <alexfmpe> | browser gives me the big red triangle "Your connection is not private" screen |
2021-02-15 01:03:59 +0100 | seanparsons | (~sean@cpc145088-gill21-2-0-cust281.20-1.cable.virginm.net) |
2021-02-15 01:04:34 +0100 | __monty__ | (~toonn@unaffiliated/toonn) (Quit: leaving) |
2021-02-15 01:04:36 +0100 | m0rphism1 | (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 240 seconds) |
2021-02-15 01:05:15 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 246 seconds) |
2021-02-15 01:06:59 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-15 01:07:19 +0100 | <Axman6> | alexfmpe: #haskell-infrastructure would be a good -place to start |
2021-02-15 01:07:47 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer) |
2021-02-15 01:08:04 +0100 | <hpc> | i don't think that's a haskell.org website though? |
2021-02-15 01:08:16 +0100 | <hpc> | without looking at the page, maybe it was supposed to say foldr1? |
2021-02-15 01:08:19 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-15 01:08:25 +0100 | <hpc> | > foldr1 (+) [] |
2021-02-15 01:08:27 +0100 | <lambdabot> | *Exception: Prelude.foldr1: empty list |
2021-02-15 01:11:52 +0100 | <karasu1[m]> | Hello, I am reading through certain parts of the Haskell Report 2010, like this part about ambiguous types: https://www.haskell.org/onlinereport/haskell2010/haskellch4.html#x10-790004.3.4 |
2021-02-15 01:12:01 +0100 | <karasu1[m]> | But I don't understand how this is justified: "We say that an expression e has an ambiguous type if, in its type ∀ u. cx ⇒ t, there is a type variable u in u that occurs in cx but not in t. Such types are invalid." |
2021-02-15 01:12:13 +0100 | <karasu1[m]> | Why is this "ambiguous"? |
2021-02-15 01:12:37 +0100 | <karasu1[m]> | (also not 100% sure I am understanding the notation correctly) |
2021-02-15 01:12:43 +0100 | quinn | (~quinn@c-73-223-224-163.hsd1.ca.comcast.net) (Quit: ZNC 1.8.1 - https://znc.in) |
2021-02-15 01:12:50 +0100 | viluon | (uid453725@gateway/web/irccloud.com/x-phgigjwjsbgranpk) (Quit: Connection closed for inactivity) |
2021-02-15 01:12:53 +0100 | <ski> | because there's no way to determine which specific type to use in place of the tyvar `u' |
2021-02-15 01:13:07 +0100 | <ski> | @type show . read |
2021-02-15 01:13:08 +0100 | <lambdabot> | String -> String |
2021-02-15 01:13:09 +0100 | <monochrom> | An example is "(Show a, Read a) => String". |
2021-02-15 01:13:20 +0100 | <Axman6> | which a is that? |
2021-02-15 01:13:34 +0100 | <ski> | (although GHCi will "solve" that particular example by defaulting `a' to `()') |
2021-02-15 01:13:44 +0100 | <Axman6> | > show . read $ "()" -- This might actually work... |
2021-02-15 01:13:46 +0100 | <lambdabot> | "()" |
2021-02-15 01:14:05 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds) |
2021-02-15 01:14:10 +0100 | <Axman6> | > show . read $ "1.23" -- This won't, because the exprtession has defaulted a ~ () |
2021-02-15 01:14:12 +0100 | <lambdabot> | "*Exception: Prelude.read: no parse |
2021-02-15 01:14:17 +0100 | <karasu1[m]> | Is this notation explained somewhere: ∀ u. cx ⇒ t? I am lost except for the ∀ symbol lol.. |
2021-02-15 01:14:30 +0100 | <Axman6> | I _think this behaviour is slightly different between ghci and compiled haskell |
2021-02-15 01:15:15 +0100 | <karasu1[m]> | ∀ u. cx ⇒ t, is u supposed to represent a? In the haskell report, there's a bar on top of u |
2021-02-15 01:15:35 +0100 | <ski> | it's supposed to represent a sequence of type variables |
2021-02-15 01:15:43 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds) |
2021-02-15 01:15:52 +0100 | <ski> | (the bar indicates a sequence)* |
2021-02-15 01:16:24 +0100 | <karasu1[m]> | What is the dot and cx supposed to represent? |
2021-02-15 01:16:32 +0100 | <karasu1[m]> | cx are the instances of the sequence of u? |
2021-02-15 01:17:05 +0100 | <ski> | `cx' is some type class constraint context, like `(Show a,Read a)' above |
2021-02-15 01:17:36 +0100 | <Axman6> | the haskell equivalent would be forall u. C u => t |
2021-02-15 01:17:52 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 01:18:05 +0100 | <karasu1[m]> | ohhh..thanks! What about the dot after the u? as in ∀ u. cx ⇒ t? |
2021-02-15 01:18:09 +0100 | <karasu1[m]> | Does that not have any meaning? |
2021-02-15 01:18:16 +0100 | <karasu1[m]> | . |
2021-02-15 01:18:20 +0100 | <ski> | it's just a separator, same as in `forall u.' |
2021-02-15 01:18:25 +0100 | quinn | (~quinn@c-73-223-224-163.hsd1.ca.comcast.net) |
2021-02-15 01:19:09 +0100 | <Axman6> | read's type uis really read :: forall a. Read a => String -> a but foralls are usually inferred |
2021-02-15 01:19:22 +0100 | <monochrom> | "4.1.4 Semantics of Types and Classes" explains the ∀ u. cx ⇒ t notation. |
2021-02-15 01:20:12 +0100 | <karasu1[m]> | <monochrom ""4.1.4 Semantics of Types and Cl"> oh thank you, I was looking in the "Lexical Structure" chapter, no wonder I couldn't find it lol.. |
2021-02-15 01:20:38 +0100 | <alexfmpe> | > (unsafeCoerce (id :: Int -> Int) :: String -> String) "xyz" |
2021-02-15 01:20:39 +0100 | <lambdabot> | error: |
2021-02-15 01:20:39 +0100 | <lambdabot> | Variable not in scope: |
2021-02-15 01:20:39 +0100 | <lambdabot> | unsafeCoerce :: (Int -> Int) -> String -> String |
2021-02-15 01:20:52 +0100 | <alexfmpe> | this outputs "xyz" in ghci, and I have no idea why it works |
2021-02-15 01:21:30 +0100 | <Axman6> | it's probably not guaranteed to work |
2021-02-15 01:21:42 +0100 | <koz_> | In this case you lucked out because they're both lifted. |
2021-02-15 01:21:59 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving) |
2021-02-15 01:22:02 +0100 | <koz_> | s/lifted/boxed |
2021-02-15 01:22:45 +0100 | <koz_> | I _believe_ id can operate on unboxed values too, but if you tried coercing that way, you'd be in trouble possibly. |
2021-02-15 01:23:29 +0100 | <alexfmpe> | `(unsafeCoerce (id :: Int# -> Int#) :: String -> String) "xyz"` |
2021-02-15 01:23:29 +0100 | <alexfmpe> | <interactive>:9:16: error: • Couldn't match a lifted type with an unlifted type |
2021-02-15 01:23:38 +0100 | <Axman6> | yeah that was my first thought too |
2021-02-15 01:23:49 +0100 | <koz_> | Yeah, that doesn't surprise me much. |
2021-02-15 01:24:26 +0100 | <alexfmpe> | was expecting this to only work when the input/output of the functions were coercible to the new ones |
2021-02-15 01:24:55 +0100 | <Axman6> | when it comes to unsafeCoerce there is no notion of coercible, it's up to you to not do stupid things |
2021-02-15 01:25:00 +0100 | <alexfmpe> | having trouble finding any docs on (unsafe) coerce & functions though |
2021-02-15 01:25:11 +0100 | <karasu1[m]> | OK, I think I understand the notation, but I don't understand what the problem would be with ` let x = read "..." in show x`.. we're just printing out x as a String, and a String is well-typed right? |
2021-02-15 01:25:16 +0100 | <koz_> | alexfmpe: The docs are 'lol plz don't'. |
2021-02-15 01:25:20 +0100 | <koz_> | No seriously. |
2021-02-15 01:25:43 +0100 | <Axman6> | koz_: what is the type of x? |
2021-02-15 01:25:46 +0100 | <koz_> | karasu1[m]: show :: (Show a) => a -> String |
2021-02-15 01:25:48 +0100 | <Axman6> | uh kqr* |
2021-02-15 01:25:57 +0100 | <koz_> | Wtf is 'a' here without further indication? |
2021-02-15 01:26:04 +0100 | <Axman6> | urgh, bloody dock coving my typing... karasu1[m] |
2021-02-15 01:27:07 +0100 | DavidEichmann | (~david@234.109.45.217.dyn.plus.net) (Ping timeout: 272 seconds) |
2021-02-15 01:27:16 +0100 | <koz_> | Axman6: Fuzzy typing. |
2021-02-15 01:27:25 +0100 | glguy | (x@freenode/staff/haskell.developer.glguy) (Ping timeout: 600 seconds) |
2021-02-15 01:27:36 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 240 seconds) |
2021-02-15 01:27:41 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2021-02-15 01:27:44 +0100 | <Axman6> | and being lazy |
2021-02-15 01:28:02 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-15 01:28:06 +0100 | <Axman6> | never got out of the habit of <one letter><tab> from smaller channels |
2021-02-15 01:28:09 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds) |
2021-02-15 01:28:15 +0100 | <karasu1[m]> | Wait, the type of `x` whatever `read "..."` returns |
2021-02-15 01:28:25 +0100 | Tops2 | (~Tobias@dyndsl-095-033-023-209.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
2021-02-15 01:28:28 +0100 | <karasu1[m]> | This is the example used in the Haskell Report |
2021-02-15 01:28:29 +0100 | <karasu1[m]> | https://www.haskell.org/onlinereport/haskell2010/haskellch4.html#x10-790004.3.4 |
2021-02-15 01:28:37 +0100 | <koz_> | karasu1[m]: read :: (Read a) => a |
2021-02-15 01:28:48 +0100 | <koz_> | So without indication of what 'a' is, this can't do much for you. |
2021-02-15 01:28:52 +0100 | <Axman6> | karasu1[m]: and _which_ type is that? |
2021-02-15 01:28:57 +0100 | <Axman6> | it has to be _a_ type |
2021-02-15 01:29:00 +0100 | <koz_> | The compiler can't mind-read your intent from a string representation. |
2021-02-15 01:29:35 +0100 | <Axman6> | we would need depenant typing to even possibly be able to tell that when you pass in "1.23" you want a ~ Double, and when you pass in "()" you want a ~ () |
2021-02-15 01:29:47 +0100 | ezrakilty | (~ezrakilty@75-172-120-208.tukw.qwest.net) (Remote host closed the connection) |
2021-02-15 01:29:47 +0100 | <koz_> | Axman6: I don't think that'd be enough even. |
2021-02-15 01:30:02 +0100 | <Axman6> | no |
2021-02-15 01:30:30 +0100 | <Axman6> | but it might be feasible to in some cases determine the type at runtime |
2021-02-15 01:30:47 +0100 | <karasu1[m]> | The docs have the example `read "..."`, but I don't know what type this returns. I tried it in GHCI, and it gives parse error |
2021-02-15 01:31:05 +0100 | <karasu1[m]> | There's nothing about ambiguity yet, since this would result in parse error anyway |
2021-02-15 01:31:05 +0100 | <koz_> | :t read "..." |
2021-02-15 01:31:05 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
2021-02-15 01:31:06 +0100 | <lambdabot> | Read a => a |
2021-02-15 01:31:10 +0100 | <Axman6> | :t let f s = let x = read s in show x in f |
2021-02-15 01:31:11 +0100 | <lambdabot> | String -> String |
2021-02-15 01:31:34 +0100 | <Axman6> | > let f s = let x = read s in show x in f "1.23" |
2021-02-15 01:31:36 +0100 | <lambdabot> | "*Exception: Prelude.read: no parse |
2021-02-15 01:32:03 +0100 | <Axman6> | the compiler here _defaulted_ to a ~ () |
2021-02-15 01:32:16 +0100 | <Axman6> | > let f s = let x = read s in show x in f "()" -- the only thing that can work |
2021-02-15 01:32:18 +0100 | <lambdabot> | "()" |
2021-02-15 01:32:43 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds) |
2021-02-15 01:32:49 +0100 | Tario | (~Tario@201.192.165.173) (Ping timeout: 272 seconds) |
2021-02-15 01:33:00 +0100 | <Axman6> | that code only works because the defaulting rules say that if you've got an ambiguous type, but () can work in that place, then pick (). |
2021-02-15 01:33:13 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
2021-02-15 01:33:19 +0100 | Tario | (~Tario@201.192.165.173) |
2021-02-15 01:33:27 +0100 | <Axman6> | :t let f s = let x = read s in show (x+1) in f |
2021-02-15 01:33:29 +0100 | <lambdabot> | String -> String |
2021-02-15 01:33:29 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
2021-02-15 01:33:41 +0100 | <Axman6> | hmm, I actually expected that to fail |
2021-02-15 01:33:47 +0100 | <Axman6> | oh, defaulting to Integer probably |
2021-02-15 01:33:56 +0100 | <Axman6> | defaulting is such a pain |
2021-02-15 01:34:49 +0100 | ezrakilty | (~ezrakilty@75-172-120-208.tukw.qwest.net) |
2021-02-15 01:35:11 +0100 | <Axman6> | :t let f s = let x = read s in show (fmap (+1) x) in f |
2021-02-15 01:35:13 +0100 | <lambdabot> | error: |
2021-02-15 01:35:13 +0100 | <lambdabot> | • Ambiguous type variable ‘f0’ arising from a use of ‘read’ |
2021-02-15 01:35:13 +0100 | <lambdabot> | prevents the constraint ‘(Read (f0 Integer))’ from being solved. |
2021-02-15 01:37:22 +0100 | <karasu1[m]> | What is `f s`? |
2021-02-15 01:37:24 +0100 | <karasu1[m]> | Is f a function? |
2021-02-15 01:37:33 +0100 | <Axman6> | it's some Functor |
2021-02-15 01:38:00 +0100 | <Axman6> | we used fmap on x, so therefore the value returned by read must be _some_ functor, but which one? |
2021-02-15 01:38:19 +0100 | <Axman6> | it could be [], it could be Maybe, it could be Proxy, it could be Either String |
2021-02-15 01:38:25 +0100 | <karasu1[m]> | I haven't explored Functors yet so I have no idea what they are lol.. |
2021-02-15 01:38:53 +0100 | <karasu1[m]> | But I will read more and come back |
2021-02-15 01:38:57 +0100 | <Axman6> | well it doesn't matter too much, it was just a way to get us past the defaulting rules |
2021-02-15 01:39:31 +0100 | ezrakilty | (~ezrakilty@75-172-120-208.tukw.qwest.net) (Ping timeout: 256 seconds) |
2021-02-15 01:40:30 +0100 | <karasu1[m]> | `let x = read "..." in show x` doesn't say anything about ambiguity though, it seems to fail due to a parse error instead.. |
2021-02-15 01:40:42 +0100 | <karasu1[m]> | Because `read "..."` fails |
2021-02-15 01:40:59 +0100 | <karasu1[m]> | So I'm not sure why they used this example in the Haskell report |
2021-02-15 01:41:19 +0100 | <Axman6> | yes, _because of defaulting_ the compiler is picking a ~ () |
2021-02-15 01:41:20 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 01:41:30 +0100 | <Axman6> | it will _only_ work when you pass in "()" |
2021-02-15 01:43:06 +0100 | <Axman6> | but if we change things so that a cannot be () (or Integer or Double) then it will fail to compile because it can't pick a tyoe |
2021-02-15 01:43:15 +0100 | <ski> | > show (read "(())") |
2021-02-15 01:43:17 +0100 | <lambdabot> | "()" |
2021-02-15 01:45:31 +0100 | conal | (~conal@64.71.133.70) |
2021-02-15 01:45:40 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2021-02-15 01:46:22 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds) |
2021-02-15 01:47:26 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-112-148.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-02-15 01:47:46 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-112-148.w86-198.abo.wanadoo.fr) |
2021-02-15 01:47:47 +0100 | Narinas | (~Narinas@189.223.179.61.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-15 01:49:13 +0100 | Narinas | (~Narinas@189.223.179.61.dsl.dyn.telnor.net) |
2021-02-15 01:51:08 +0100 | Contessa | (88385f6e@136.56.95.110) |
2021-02-15 01:51:44 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 01:53:21 +0100 | <karasu1[m]> | Is a better way of looking at it be that `read "..."` has type `Read a => a`, so it's just type `a`, where `a` has an instance of the `Read` typeclass. But, when you pass this type into `show`, `show` wants something of type `Show a => a`. But, there are many types that are instances of `Show`, and `Show` doesn't know which one to pick, so it can't get to a particular instance to execute. Because `show` can't decide on |
2021-02-15 01:53:21 +0100 | <karasu1[m]> | which instance to use, it's ambiguous. Is this correct? |
2021-02-15 01:56:23 +0100 | Contessa | (88385f6e@136.56.95.110) (Quit: Connection closed) |
2021-02-15 01:56:31 +0100 | <ski> | (no, `show' wants something of type `a', where `Show a' holds (no, that's not the same thing)) |
2021-02-15 01:56:52 +0100 | <ski> | apart from that, it sounds right, yes |
2021-02-15 01:57:00 +0100 | droobertzka | (cf993545@207-153-53-69.fttp.usinternet.com) |
2021-02-15 02:01:20 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds) |
2021-02-15 02:01:29 +0100 | <karasu1[m]> | Is `Show a` supposed to return either true or false? I ask because I've never heard language about `TypeClass a` "holding", I've only heard "hold" in reference to boolean logic.. |
2021-02-15 02:02:38 +0100 | <Axman6> | it either exists or it doesn't, think of it as a fact |
2021-02-15 02:03:11 +0100 | <Axman6> | foo :: Show a => ... -> a -> ... says it can accept any a, as long as there is an instance for Show for that a |
2021-02-15 02:03:12 +0100 | <karasu1[m]> | OK, ty all |
2021-02-15 02:03:52 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 02:04:17 +0100 | mizu_no_oto | (~textual@cpe-66-66-222-11.rochester.res.rr.com) |
2021-02-15 02:04:21 +0100 | <monochrom> | I have no problem using boolean logic for "Int is a Show instance, Int->Int is not". |
2021-02-15 02:04:22 +0100 | alx741 | (~alx741@186.178.108.225) (Quit: alx741) |
2021-02-15 02:04:37 +0100 | <monochrom> | Afterall, what else would you use boolean logic for? |
2021-02-15 02:05:23 +0100 | <karasu1[m]> | Int->Int is not a Show instance? |
2021-02-15 02:05:25 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-15 02:05:29 +0100 | <ski> | nope |
2021-02-15 02:05:29 +0100 | <karasu1[m]> | Is `Int -> Int` a type? |
2021-02-15 02:05:34 +0100 | <ski> | yes |
2021-02-15 02:05:34 +0100 | ph88 | (~ph88@2a02:8109:9e00:7e5c:a5e6:eed6:171f:46a3) |
2021-02-15 02:05:42 +0100 | <karasu1[m]> | Oh it's a function i see |
2021-02-15 02:05:46 +0100 | <monochrom> | And if "Int is a Show instance" is a thing, and I want a succint notation, and Haskell is already going like "Show a", I feel no guilt in writing "Show Int". |
2021-02-15 02:05:46 +0100 | <karasu1[m]> | makes sense |
2021-02-15 02:05:54 +0100 | <ski> | no, it's a type of functions |
2021-02-15 02:06:19 +0100 | <koz_> | As opposed to 'a type of function'. |
2021-02-15 02:06:43 +0100 | <monochrom> | In fact, by the time you go FlexibleContext and MultiParamTypeClass, you have to accept that "Show" is a predicate and "Show Int" is a sentence. |
2021-02-15 02:06:58 +0100 | <karasu1[m]> | nice |
2021-02-15 02:07:21 +0100 | <karasu1[m]> | I always liked those truth tables (this is a lie) |
2021-02-15 02:07:51 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 256 seconds) |
2021-02-15 02:09:36 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2021-02-15 02:09:36 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 240 seconds) |
2021-02-15 02:09:56 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds) |
2021-02-15 02:11:04 +0100 | Jd007 | (~Jd007@162.156.11.151) |
2021-02-15 02:11:19 +0100 | whataday | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2021-02-15 02:12:25 +0100 | whataday | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2021-02-15 02:14:17 +0100 | clog | (~nef@bespin.org) |
2021-02-15 02:14:59 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-15 02:21:22 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 02:21:22 +0100 | droobertzka | (cf993545@207-153-53-69.fttp.usinternet.com) (Ping timeout: 240 seconds) |
2021-02-15 02:25:36 +0100 | johnjay | (~pi@38.120.10.99) (Ping timeout: 240 seconds) |
2021-02-15 02:26:09 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds) |
2021-02-15 02:26:48 +0100 | jedws | (~jedws@101.184.202.248) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-15 02:27:30 +0100 | elliott__ | (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 246 seconds) |
2021-02-15 02:28:33 +0100 | <karasu1[m]> | <Axman6 "the haskell equivalent would be "> Hmm, where can I find the Haskell equivalents for this notation? Also, wouldn't we need to represent the bar above u somehow in this case? |
2021-02-15 02:28:48 +0100 | <karasu1[m]> | ∀ u. cx ⇒ t |
2021-02-15 02:29:26 +0100 | <karasu1[m]> | Is the original, but the bar above u would represent a sequence right? Does forall u. C u => t represent a sequence of `u`s? |
2021-02-15 02:29:45 +0100 | boxscape | (4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) |
2021-02-15 02:34:00 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 02:35:08 +0100 | <ski> | yes, like in `map :: forall a b. (a -> b) -> [a] -> [b]' |
2021-02-15 02:35:55 +0100 | boxscape | (4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) (Quit: Connection closed) |
2021-02-15 02:35:59 +0100 | Guest_22 | (ad121326@173-18-19-38.client.mchsi.com) |
2021-02-15 02:36:01 +0100 | <karasu1[m]> | Hmm, where do you find that? `:t map` gives me `map :: (a -> b) -> [a] -> [b]` |
2021-02-15 02:36:07 +0100 | boxscape | (4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) |
2021-02-15 02:36:09 +0100 | Guest_22 | (ad121326@173-18-19-38.client.mchsi.com) (Client Quit) |
2021-02-15 02:36:24 +0100 | <ski> | that's the form with the `forall' elided |
2021-02-15 02:37:09 +0100 | <karasu1[m]> | Is there a way to make GHCi show the form including the `forall`? |
2021-02-15 02:37:24 +0100 | jedws | (~jedws@101.184.202.248) |
2021-02-15 02:38:06 +0100 | <karasu1[m]> | Or is it just implied all the time? |
2021-02-15 02:38:13 +0100 | <ski> | % :set -fprint-explicit-foralls |
2021-02-15 02:38:13 +0100 | <yahb> | ski: |
2021-02-15 02:38:16 +0100 | <ski> | % :t map |
2021-02-15 02:38:16 +0100 | <yahb> | ski: forall {a} {b}. (a -> b) -> [a] -> [b] |
2021-02-15 02:38:26 +0100 | <ski> | apparently it shows curly brackets around them, now |
2021-02-15 02:40:33 +0100 | <karasu1[m]> | Is there a way to show the u with the bar on top of it in Haskell? |
2021-02-15 02:40:51 +0100 | <ski> | no, because that's not Haskell |
2021-02-15 02:40:52 +0100 | <boxscape> | % :t +v map |
2021-02-15 02:40:52 +0100 | <yahb> | boxscape: forall a b. (a -> b) -> [a] -> [b] |
2021-02-15 02:40:55 +0100 | <karasu1[m]> | I wanted a way to represent that in plain text |
2021-02-15 02:41:24 +0100 | <karasu1[m]> | OK |
2021-02-15 02:41:25 +0100 | <boxscape> | the curly brackets are because it infers the type of map if you type `:t map`, rather than taking the type declaration of the definition |
2021-02-15 02:41:28 +0100 | <ski> | the bar is meta-notation, when talking about Haskell (or other programming languages) |
2021-02-15 02:42:24 +0100 | mnrmnaugh | awk |
2021-02-15 02:43:24 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-15 02:43:35 +0100 | <ski> | the bar notation is only useful if you want to talk about arbitrary sequences of syntactical elements. in actual Haskell, you always have some specific definite number, so you you'd just spell `a b c' out instead of writing a meta-variable with a bar |
2021-02-15 02:43:38 +0100 | polyrain | (~polyrain@124.177.21.171) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-15 02:47:45 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds) |
2021-02-15 02:47:56 +0100 | inkbottle | (~inkbottle@aaubervilliers-654-1-119-56.w86-198.abo.wanadoo.fr) |
2021-02-15 02:49:01 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-15 02:49:16 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-02-15 02:49:54 +0100 | boxscape | (4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) (Quit: Connection closed) |
2021-02-15 02:50:28 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
2021-02-15 02:51:57 +0100 | <karasu1[m]> | Aw man.... I do want to talk about arbitrary sequences of syntactical elements using meta variables.. I guess LaTeX it is.. |
2021-02-15 02:52:00 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-112-148.w86-198.abo.wanadoo.fr) (Ping timeout: 272 seconds) |
2021-02-15 02:53:47 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 272 seconds) |
2021-02-15 02:55:42 +0100 | awk | mnrmnaugh |
2021-02-15 02:56:00 +0100 | boxscape | (4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) |
2021-02-15 02:59:40 +0100 | rajivr | (uid269651@gateway/web/irccloud.com/x-jjwlibcbhlreeuhn) |
2021-02-15 03:00:56 +0100 | Deide | (~Deide@217.155.19.23) (Quit: Seeee yaaaa) |
2021-02-15 03:01:09 +0100 | raehik1 | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds) |
2021-02-15 03:02:25 +0100 | jedws | (~jedws@101.184.202.248) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-15 03:04:10 +0100 | jedws | (~jedws@101.184.202.248) |
2021-02-15 03:06:33 +0100 | Wuzzy | (~Wuzzy@p57a2e574.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
2021-02-15 03:09:29 +0100 | mizu_no_oto | (~textual@cpe-66-66-222-11.rochester.res.rr.com) (Quit: Computer has gone to sleep.) |
2021-02-15 03:10:43 +0100 | mizu_no_oto | (~textual@cpe-66-66-222-11.rochester.res.rr.com) |
2021-02-15 03:11:08 +0100 | mizu_no_oto | (~textual@cpe-66-66-222-11.rochester.res.rr.com) (Client Quit) |
2021-02-15 03:15:29 +0100 | bitmagie | (~Thunderbi@200116b806799500c47356767c14074b.dip.versatel-1u1.de) |
2021-02-15 03:15:43 +0100 | aaa_aaa | (~BlackP@64.64.117.212) |
2021-02-15 03:16:13 +0100 | average | (uid473595@gateway/web/irccloud.com/x-rcnzlofithcjrydg) |
2021-02-15 03:17:55 +0100 | aaa_aaa | (~BlackP@64.64.117.212) () |
2021-02-15 03:17:56 +0100 | xff0x | (~xff0x@2001:1a81:52f8:8e00:23fc:8648:28c:c2cd) (Ping timeout: 240 seconds) |
2021-02-15 03:18:19 +0100 | elliott__ | (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) |
2021-02-15 03:19:59 +0100 | xff0x | (~xff0x@2001:1a81:5334:9d00:2968:4660:12ed:e0e0) |
2021-02-15 03:20:13 +0100 | bitmagie | (~Thunderbi@200116b806799500c47356767c14074b.dip.versatel-1u1.de) (Client Quit) |
2021-02-15 03:23:49 +0100 | alx741 | (~alx741@186.178.108.225) |
2021-02-15 03:26:20 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
2021-02-15 03:27:36 +0100 | raym | (~ray@45.64.220.98) |
2021-02-15 03:29:56 +0100 | jedws | (~jedws@101.184.202.248) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-15 03:30:16 +0100 | Jd007 | (~Jd007@162.156.11.151) (Quit: Jd007) |
2021-02-15 03:31:05 +0100 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 240 seconds) |
2021-02-15 03:31:52 +0100 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) |
2021-02-15 03:33:03 +0100 | Jd007 | (~Jd007@162.156.11.151) |
2021-02-15 03:37:42 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-15 03:42:45 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-02-15 03:43:20 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-15 03:47:36 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds) |
2021-02-15 03:48:07 +0100 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
2021-02-15 03:49:58 +0100 | gentauro | (~gentauro@unaffiliated/gentauro) (Read error: Connection reset by peer) |
2021-02-15 03:50:45 +0100 | gentauro | (~gentauro@unaffiliated/gentauro) |
2021-02-15 03:51:04 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-15 03:53:56 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2021-02-15 03:55:16 +0100 | alx741 | (~alx741@186.178.108.225) (Quit: alx741) |
2021-02-15 03:55:25 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds) |
2021-02-15 03:59:39 +0100 | renzhi | (~renzhi@2607:fa49:6500:6f00::1e43) (Ping timeout: 272 seconds) |
2021-02-15 04:02:38 +0100 | ezrakilty | (~ezrakilty@75-172-120-208.tukw.qwest.net) |
2021-02-15 04:04:57 +0100 | saitamaplus | (uid272474@gateway/web/irccloud.com/x-zjttagjjvsylgivd) (Quit: Connection closed for inactivity) |
2021-02-15 04:06:17 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-15 04:06:53 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 04:11:21 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds) |
2021-02-15 04:13:39 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds) |
2021-02-15 04:16:18 +0100 | ystael | (~ystael@209.6.50.55) (Read error: Connection reset by peer) |
2021-02-15 04:16:43 +0100 | zaquest | (~notzaques@5.128.210.178) (Remote host closed the connection) |
2021-02-15 04:17:01 +0100 | ezrakilty | (~ezrakilty@75-172-120-208.tukw.qwest.net) (Remote host closed the connection) |
2021-02-15 04:21:58 +0100 | glguy | (x@freenode/staff/haskell.developer.glguy) |
2021-02-15 04:23:08 +0100 | Saukk | (~Saukk@83-148-239-3.dynamic.lounea.fi) |
2021-02-15 04:25:17 +0100 | boxscape | (4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) (Quit: Connection closed) |
2021-02-15 04:26:19 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 04:27:05 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
2021-02-15 04:28:16 +0100 | poscat1 | poscat |
2021-02-15 04:28:50 +0100 | FinnElija | (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) |
2021-02-15 04:28:50 +0100 | finn_elija | Guest68125 |
2021-02-15 04:28:50 +0100 | FinnElija | finn_elija |
2021-02-15 04:32:00 +0100 | urodna | (~urodna@unaffiliated/urodna) (Quit: urodna) |
2021-02-15 04:32:04 +0100 | slack1256 | (~slack1256@dvc-186-186-101-190.movil.vtr.net) (Remote host closed the connection) |
2021-02-15 04:32:21 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds) |
2021-02-15 04:32:45 +0100 | cheater | (~user@unaffiliated/cheater) (Ping timeout: 240 seconds) |
2021-02-15 04:32:57 +0100 | zaquest | (~notzaques@5.128.210.178) |
2021-02-15 04:33:00 +0100 | Guest68125 | (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 268 seconds) |
2021-02-15 04:34:19 +0100 | <edwardk> | does anyone in here work at twitter? Someone hacked @kmett, and has been deleting my tweets for the last 24 hours. Attempts to contact anyone through the forms isn't working. |
2021-02-15 04:34:52 +0100 | <edwardk> | The account quickly got locked, but it is now unlocked again, and they are still in control and still deleting my life. |
2021-02-15 04:34:57 +0100 | alx741 | (~alx741@186.178.108.225) |
2021-02-15 04:35:42 +0100 | cheater | (~user@unaffiliated/cheater) |
2021-02-15 04:39:31 +0100 | <glguy> | Yikes! I don't have any Twitter contacts, but that sucks. |
2021-02-15 04:41:41 +0100 | <pjb> | edwardk: or forget it and move to telegram, vk, gab, etc. |
2021-02-15 04:43:44 +0100 | <edwardk> | not really my first option |
2021-02-15 04:43:52 +0100 | <dmj`> | pjb: he shouldn't have to, this isn't right. Twitter won't hard delete tweets. |
2021-02-15 04:44:17 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 04:45:12 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-15 04:45:26 +0100 | theDon | (~td@94.134.91.34) (Ping timeout: 256 seconds) |
2021-02-15 04:45:57 +0100 | <edwardk> | dmj`: well i also can't access my account. they somehow managed to get the change of email through without ever emailing my main address |
2021-02-15 04:46:10 +0100 | plutoniix | (~q@184.82.197.199) |
2021-02-15 04:46:56 +0100 | theDon | (~td@muedsl-82-207-238-067.citykom.de) |
2021-02-15 04:47:43 +0100 | <edwardk> | in other news the 'ad' overhaul is going pretty well. i managed to get .Double modes for all the different AD modes, which means a top level Numeric.AD.Double now works, and is more accurate _and_ faster all at the same time |
2021-02-15 04:49:24 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds) |
2021-02-15 04:49:58 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 256 seconds) |
2021-02-15 04:52:25 +0100 | <dmj`> | edwardk: did you use the web form to login? |
2021-02-15 04:53:03 +0100 | <edwardk> | the web form wants to send an email to the shiny new email address they managed to swap in |
2021-02-15 04:53:21 +0100 | <edwardk> | i filed an issue as well |
2021-02-15 04:53:44 +0100 | <edwardk> | now i'm just in end user limbo |
2021-02-15 04:53:52 +0100 | <swarmcollective> | Does Twitter support 2FA ? |
2021-02-15 04:54:04 +0100 | <edwardk> | probably |
2021-02-15 04:54:13 +0100 | <edwardk> | i'd switch it on... if i could get in ;) |
2021-02-15 04:54:18 +0100 | rdivyanshu | (uid322626@gateway/web/irccloud.com/x-suckjpgzxsxappip) |
2021-02-15 04:57:42 +0100 | <dmj`> | there's gotta be at least one person at twitter on #haskell IRC |
2021-02-15 05:01:56 +0100 | pieguy128_ | (~pieguy128@bras-base-mtrlpq5031w-grc-47-67-70-101-46.dsl.bell.ca) |
2021-02-15 05:01:57 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 05:02:01 +0100 | <dmj`> | @edwardk maybe tweeting @jack would work |
2021-02-15 05:02:23 +0100 | <edwardk> | which requires me to set up another twitter account |
2021-02-15 05:03:37 +0100 | <dmj`> | edwardk: well others can do this for you as well |
2021-02-15 05:04:41 +0100 | pieguy128 | (~pieguy128@bras-base-mtrlpq5031w-grc-39-70-27-244-102.dsl.bell.ca) (Ping timeout: 265 seconds) |
2021-02-15 05:04:45 +0100 | Wuzzy | (~Wuzzy@p5b0df671.dip0.t-ipconnect.de) |
2021-02-15 05:04:46 +0100 | Wuzzy | (~Wuzzy@p5b0df671.dip0.t-ipconnect.de) (Remote host closed the connection) |
2021-02-15 05:05:38 +0100 | ukari | (~ukari@unaffiliated/ukari) |
2021-02-15 05:06:19 +0100 | <glguy> | Well, we can get the word out https://twitter.com/glguy/status/1361164744007188481 |
2021-02-15 05:06:46 +0100 | <dmj`> | https://usercontent.irccloud-cdn.com/file/sJ1g0Jtg/image.png |
2021-02-15 05:07:04 +0100 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) |
2021-02-15 05:08:59 +0100 | <dmj`> | https://twitter.com/dmjio/status/1361165342840664065 |
2021-02-15 05:10:21 +0100 | berberman | (~berberman@unaffiliated/berberman) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-02-15 05:10:49 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-15 05:10:51 +0100 | berberman | (~berberman@unaffiliated/berberman) |
2021-02-15 05:10:56 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds) |
2021-02-15 05:11:02 +0100 | ubert1 | (~Thunderbi@p200300ecdf25d90be6b318fffe838f33.dip0.t-ipconnect.de) |
2021-02-15 05:11:52 +0100 | ubert | (~Thunderbi@p200300ecdf25d9afe6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2021-02-15 05:11:53 +0100 | ubert1 | ubert |
2021-02-15 05:12:55 +0100 | zepheiryan | (~zepheirya@178.239.168.171) (Remote host closed the connection) |
2021-02-15 05:15:05 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds) |
2021-02-15 05:16:55 +0100 | <dmj`> | Gabriel worked at twitter right? |
2021-02-15 05:17:34 +0100 | <alp> | yes |
2021-02-15 05:18:16 +0100 | Mrbuck | (~Mrbuck@gateway/tor-sasl/mrbuck) |
2021-02-15 05:20:26 +0100 | <Axman6> | bgamari: ping |
2021-02-15 05:20:42 +0100 | <bgamari> | is it quick? |
2021-02-15 05:20:46 +0100 | <bgamari> | I'm on my way to bed |
2021-02-15 05:21:09 +0100 | <Axman6> | yes, someone reported earlier the cert for gitlab.haskell.org has expired, and I was pointed to you |
2021-02-15 05:21:46 +0100 | <bgamari> | yes, and I fixed it |
2021-02-15 05:21:55 +0100 | <bgamari> | see ghc-devs |
2021-02-15 05:21:58 +0100 | <Axman6> | (seems to be working for me though, so not sure if it was fixed elsewhere, but they were unable to load anything a few hours ago) |
2021-02-15 05:22:16 +0100 | <Axman6> | great, thanks. Sleep well :) |
2021-02-15 05:22:55 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 05:23:08 +0100 | frozenErebus | (~frozenEre@94.128.81.133) |
2021-02-15 05:25:10 +0100 | shatriff | (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection) |
2021-02-15 05:25:23 +0100 | shatriff | (~vitaliish@176.52.216.242) |
2021-02-15 05:25:55 +0100 | shatriff | (~vitaliish@176.52.216.242) (Remote host closed the connection) |
2021-02-15 05:26:25 +0100 | <dmj`> | those east coast people are still up I bet |
2021-02-15 05:26:27 +0100 | shatriff | (~vitaliish@176-52-216-242.irishtelecom.com) |
2021-02-15 05:27:53 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds) |
2021-02-15 05:29:20 +0100 | p8m | (p8m@gateway/vpn/protonvpn/p8m) (Remote host closed the connection) |
2021-02-15 05:29:46 +0100 | tlyu | (~tlyu@185.163.110.108) |
2021-02-15 05:34:22 +0100 | tribble2 | (~tribble2@unaffiliated/tribble2) |
2021-02-15 05:38:34 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-15 05:39:02 +0100 | Tario | (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
2021-02-15 05:39:15 +0100 | Tario | (~Tario@201.192.165.173) |
2021-02-15 05:39:25 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 05:43:17 +0100 | Noldorin | (~noldorin@unaffiliated/noldorin) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
2021-02-15 05:43:57 +0100 | Tario | (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
2021-02-15 05:44:05 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2021-02-15 05:44:13 +0100 | Tario | (~Tario@201.192.165.173) |
2021-02-15 05:47:21 +0100 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 264 seconds) |
2021-02-15 05:48:33 +0100 | Tario | (~Tario@201.192.165.173) (Ping timeout: 264 seconds) |
2021-02-15 05:56:47 +0100 | myShoggoth | (~myShoggot@75.164.34.42) |
2021-02-15 05:56:55 +0100 | yianni | (18390fbe@d24-57-15-190.home.cgocable.net) |
2021-02-15 05:57:10 +0100 | yianni | (18390fbe@d24-57-15-190.home.cgocable.net) (Client Quit) |
2021-02-15 05:57:30 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 05:57:52 +0100 | rslima_____ | (sid26145@gateway/web/irccloud.com/x-pzkyfbaauotfeqce) (Read error: Connection reset by peer) |
2021-02-15 05:57:53 +0100 | m-renaud | (sid333785@gateway/web/irccloud.com/x-khsxlpiktkditcef) (Read error: Connection reset by peer) |
2021-02-15 05:57:53 +0100 | dani- | (sid341953@gateway/web/irccloud.com/x-mtkabtckykigyffu) (Read error: Connection reset by peer) |
2021-02-15 05:58:01 +0100 | rslima_____ | (sid26145@gateway/web/irccloud.com/x-aypulxwbltevibbl) |
2021-02-15 05:58:03 +0100 | dani- | (sid341953@gateway/web/irccloud.com/x-xwlfrrleofhiyzmn) |
2021-02-15 05:58:07 +0100 | srhb | (sid400352@NixOS/user/srhb) (Read error: Connection reset by peer) |
2021-02-15 05:58:07 +0100 | jackdk | (sid373013@gateway/web/irccloud.com/x-emzaacpvxlnxzzwe) (Read error: Connection reset by peer) |
2021-02-15 05:58:11 +0100 | m-renaud | (sid333785@gateway/web/irccloud.com/x-gyhpqquancngyzvf) |
2021-02-15 05:58:21 +0100 | jackdk | (sid373013@gateway/web/irccloud.com/x-doqzhuxhwcndskts) |
2021-02-15 05:58:26 +0100 | srhb | (sid400352@NixOS/user/srhb) |
2021-02-15 05:58:37 +0100 | inkbottle | (~inkbottle@aaubervilliers-654-1-119-56.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-02-15 05:58:40 +0100 | kozowu | (uid44796@gateway/web/irccloud.com/x-usimnzplijgfpzts) (Read error: Connection reset by peer) |
2021-02-15 05:58:40 +0100 | typetetris | (sid275937@gateway/web/irccloud.com/x-aryagoiaoesrafqs) (Read error: Connection reset by peer) |
2021-02-15 05:58:40 +0100 | Kamuela | (sid111576@gateway/web/irccloud.com/x-ctdjijrpijofxaqi) (Read error: Connection reset by peer) |
2021-02-15 05:58:56 +0100 | kozowu | (uid44796@gateway/web/irccloud.com/x-mwxxuoghbagtiqvu) |
2021-02-15 05:58:56 +0100 | typetetris | (sid275937@gateway/web/irccloud.com/x-jmpcyphyiunkizfv) |
2021-02-15 05:59:02 +0100 | <dmj`> | @edwardk hang tight, I'm sure it will be recovered soon. My account was hacked 5+ years ago (couldn't login etc.) and I got it back so. |
2021-02-15 05:59:02 +0100 | <lambdabot> | Unknown command, try @list |
2021-02-15 05:59:06 +0100 | Kamuela | (sid111576@gateway/web/irccloud.com/x-dslzrevvxrjnszte) |
2021-02-15 05:59:35 +0100 | <edwardk> | its mostly the slow bleed of checking in every few hours to see more history deleted. |
2021-02-15 06:00:36 +0100 | <swarmcollective> | Still no luck with contacting Twitter support? I wish I knew someone. |
2021-02-15 06:01:21 +0100 | myShoggoth | (~myShoggot@75.164.34.42) (Ping timeout: 272 seconds) |
2021-02-15 06:02:27 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds) |
2021-02-15 06:03:06 +0100 | <edwardk> | on the plus side, the trip down the memory hole let me find things like this old visualization of the evolution of the lens source code https://www.youtube.com/watch?v=ADAprOOgi-A&feature=emb_logo |
2021-02-15 06:03:50 +0100 | <swarmcollective> | Oh, interesting. |
2021-02-15 06:04:33 +0100 | <swarmcollective> | This is a good reminder for me to continue to take backups of my online "stuff" ("property"?) |
2021-02-15 06:04:44 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-15 06:05:05 +0100 | alx741 | (~alx741@186.178.108.225) (Ping timeout: 240 seconds) |
2021-02-15 06:05:12 +0100 | <swarmcollective> | I downloaded a 40gig backup a couple weeks ago. |
2021-02-15 06:07:12 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-15 06:07:21 +0100 | <dmj`> | edwardk: didn't know gource let you sub in an audio track :P |
2021-02-15 06:07:47 +0100 | <dmj`> | this is pretty wild |
2021-02-15 06:08:26 +0100 | <edwardk> | i'm amused at how my ADHD-like coding style comes off as super-aggressive in that video |
2021-02-15 06:08:48 +0100 | <edwardk> | you're touching something? let me come over here and bully you away from it. |
2021-02-15 06:09:03 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 246 seconds) |
2021-02-15 06:09:29 +0100 | ph88 | (~ph88@2a02:8109:9e00:7e5c:a5e6:eed6:171f:46a3) (Ping timeout: 272 seconds) |
2021-02-15 06:12:13 +0100 | <Axman6> | edwardk: I've pinged @TwitterSupport to see if there's anything they can do, can't hurt having someone else let them know I guess :\ |
2021-02-15 06:12:21 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 265 seconds) |
2021-02-15 06:12:42 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-02-15 06:16:05 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 06:19:05 +0100 | frozenErebus | (~frozenEre@94.128.81.133) (Ping timeout: 272 seconds) |
2021-02-15 06:19:13 +0100 | alx741 | (~alx741@186.178.108.16) |
2021-02-15 06:21:03 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds) |
2021-02-15 06:23:50 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) (Quit: Leaving) |
2021-02-15 06:24:11 +0100 | minoru_shiraeesh | (~shiraeesh@46.34.207.228) |
2021-02-15 06:24:57 +0100 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) (Quit: WeeChat 3.0) |
2021-02-15 06:25:47 +0100 | <dmj`> | edwardk: there are plenty of accounts on twitter that should be hacked and destroyed, yours is not one of them |
2021-02-15 06:25:53 +0100 | frozenErebus | (~frozenEre@94.128.81.133) |
2021-02-15 06:27:14 +0100 | cheater1 | (~user@unaffiliated/cheater) |
2021-02-15 06:27:44 +0100 | <swarmcollective> | Hopefully they keep at least a few days backup; the question is whether or not they will be willing to do the work to restore from it.. |
2021-02-15 06:28:01 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-15 06:29:05 +0100 | cheater | (~user@unaffiliated/cheater) (Ping timeout: 240 seconds) |
2021-02-15 06:29:09 +0100 | cheater1 | cheater |
2021-02-15 06:29:23 +0100 | <edwardk> | u:w |
2021-02-15 06:29:28 +0100 | <edwardk> | er wrong window |
2021-02-15 06:30:45 +0100 | <dmj`> | swarmcollective: no company hard deletes, not even snap chat, it's all soft deletes |
2021-02-15 06:31:14 +0100 | Orbstheorem | (~roosember@hellendaal.orbstheorem.ch) (Ping timeout: 264 seconds) |
2021-02-15 06:31:19 +0100 | <dmj`> | data is too precious |
2021-02-15 06:31:47 +0100 | <swarmcollective> | Except for cases of "regulatory-compliance" :D |
2021-02-15 06:32:27 +0100 | <dmj`> | well then you cut the CIA in on the deal and you're immune, problem solved. |
2021-02-15 06:33:05 +0100 | ukari | (~ukari@unaffiliated/ukari) (Ping timeout: 240 seconds) |
2021-02-15 06:33:06 +0100 | hololeap | (~hololeap@unaffiliated/hololeap) (Ping timeout: 256 seconds) |
2021-02-15 06:34:06 +0100 | ukari | (~ukari@unaffiliated/ukari) |
2021-02-15 06:34:15 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 06:34:31 +0100 | <Axman6> | One of the security podcasts I listen to usually ends with some funny line, and the other week it was "I don't bother backing up any of my data, because I know the NSA is doing it for me" |
2021-02-15 06:34:53 +0100 | <edwardk> | yeah, but you have to go work for them to get it |
2021-02-15 06:35:02 +0100 | hololeap | (~hololeap@unaffiliated/hololeap) |
2021-02-15 06:35:21 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 264 seconds) |
2021-02-15 06:35:23 +0100 | <Axman6> | Or hope it ends up on wikileaks at some point :) |
2021-02-15 06:36:48 +0100 | kam1 | (~kam1@83.123.64.17) |
2021-02-15 06:37:38 +0100 | kam1 | (~kam1@83.123.64.17) (Read error: Connection reset by peer) |
2021-02-15 06:39:25 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds) |
2021-02-15 06:42:15 +0100 | <dmj`> | doesn't matter, we're on the good side of Twitter, everything will be restored. |
2021-02-15 06:43:42 +0100 | tmciver | (~tmciver@cpe-172-101-40-226.maine.res.rr.com) (Ping timeout: 246 seconds) |
2021-02-15 06:44:24 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-15 06:45:41 +0100 | tmciver | (~tmciver@cpe-172-101-40-226.maine.res.rr.com) |
2021-02-15 06:48:25 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds) |
2021-02-15 06:50:25 +0100 | minoru_shiraeesh | (~shiraeesh@46.34.207.228) (Ping timeout: 240 seconds) |
2021-02-15 06:50:29 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 06:51:05 +0100 | slack1256 | (~slack1256@dvc-186-186-101-190.movil.vtr.net) |
2021-02-15 06:53:51 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:b101:b0cf:b14d:ce6b) (Remote host closed the connection) |
2021-02-15 06:57:51 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:b101:b0cf:b14d:ce6b) |
2021-02-15 07:06:08 +0100 | bandali | (bandali@fsf/emeritus/bandali) (Quit: ZNC - https://znc.in) |
2021-02-15 07:06:10 +0100 | Saukk | (~Saukk@83-148-239-3.dynamic.lounea.fi) (Remote host closed the connection) |
2021-02-15 07:09:03 +0100 | minoru_shiraeesh | (~shiraeesh@46.34.207.228) |
2021-02-15 07:09:05 +0100 | bandali | (bandali@fsf/emeritus/bandali) |
2021-02-15 07:09:53 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds) |
2021-02-15 07:10:17 +0100 | benkolera | (sid285671@gateway/web/irccloud.com/x-gmncvsiyaolgodyc) |
2021-02-15 07:12:31 +0100 | toorevitimirp | (~tooreviti@117.182.183.159) |
2021-02-15 07:13:55 +0100 | rdivyanshu | (uid322626@gateway/web/irccloud.com/x-suckjpgzxsxappip) (Quit: Connection closed for inactivity) |
2021-02-15 07:14:00 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 07:15:26 +0100 | slack1256 | (~slack1256@dvc-186-186-101-190.movil.vtr.net) (Remote host closed the connection) |
2021-02-15 07:16:12 +0100 | johnjay | (~pi@38.120.10.99) |
2021-02-15 07:16:57 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds) |
2021-02-15 07:17:36 +0100 | <whataday> | twitter is full of mob |
2021-02-15 07:19:03 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds) |
2021-02-15 07:22:25 +0100 | elliott__ | (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
2021-02-15 07:22:50 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-15 07:23:35 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2021-02-15 07:24:27 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
2021-02-15 07:26:01 +0100 | <dmj`> | whataday: it's important |
2021-02-15 07:27:06 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 246 seconds) |
2021-02-15 07:31:41 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 07:31:45 +0100 | minoru_shiraeesh | (~shiraeesh@46.34.207.228) (Ping timeout: 264 seconds) |
2021-02-15 07:33:19 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-15 07:34:39 +0100 | tromp_ | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-15 07:34:39 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer) |
2021-02-15 07:36:11 +0100 | forgottenone | (~forgotten@176.42.30.133) |
2021-02-15 07:36:12 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds) |
2021-02-15 07:37:23 +0100 | <whataday> | are there simple tools to clip mp4 videos? |
2021-02-15 07:37:25 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 07:38:08 +0100 | frozenErebus | (~frozenEre@94.128.81.133) (Quit: leaving) |
2021-02-15 07:38:31 +0100 | frozenErebus | (~frozenEre@94.128.81.133) |
2021-02-15 07:38:56 +0100 | tromp_ | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds) |
2021-02-15 07:39:03 +0100 | <Axman6> | whataday: is that a haskell question? |
2021-02-15 07:40:58 +0100 | <whataday> | a haskell tool related to videos? |
2021-02-15 07:41:24 +0100 | <Axman6> | is that what you want? I don't know of any that exist |
2021-02-15 07:42:05 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2021-02-15 07:42:19 +0100 | <whataday> | ok |
2021-02-15 07:42:23 +0100 | danvet | (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
2021-02-15 07:45:32 +0100 | <ephemient> | there are ffmpeg bindings for haskell |
2021-02-15 07:45:51 +0100 | <dmj`> | fuck dude, get kmett's twitter back |
2021-02-15 07:47:36 +0100 | <whataday> | ephemient, aha |
2021-02-15 07:52:13 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-15 07:55:42 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 08:00:21 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds) |
2021-02-15 08:00:25 +0100 | frozenErebus | (~frozenEre@94.128.81.133) (Ping timeout: 240 seconds) |
2021-02-15 08:06:52 +0100 | vchlup | (~vchlup@nat.brnet.cz) |
2021-02-15 08:07:15 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:b101:b0cf:b14d:ce6b) (Remote host closed the connection) |
2021-02-15 08:08:03 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-15 08:09:11 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-15 08:10:37 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 08:12:10 +0100 | plutoniix | (~q@184.82.197.199) (Read error: Connection reset by peer) |
2021-02-15 08:12:30 +0100 | <ukari> | any frp library recommand? |
2021-02-15 08:13:09 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds) |
2021-02-15 08:15:07 +0100 | Orbstheorem | (~roosember@hellendaal.orbstheorem.ch) |
2021-02-15 08:15:44 +0100 | kav | (~kari@dsl-hkibng42-56733f-225.dhcp.inet.fi) (Ping timeout: 258 seconds) |
2021-02-15 08:15:56 +0100 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) (Quit: WeeChat 3.0) |
2021-02-15 08:19:36 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds) |
2021-02-15 08:22:33 +0100 | m0rphism1 | (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) |
2021-02-15 08:24:35 +0100 | hal9001 | (~user@zz2017405567D30FFCD9.userreverse.dion.ne.jp) |
2021-02-15 08:27:32 +0100 | Lowl3v3l | (~Lowl3v3l@dslb-002-203-233-121.002.203.pools.vodafone-ip.de) |
2021-02-15 08:30:27 +0100 | shatriff | (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection) |
2021-02-15 08:30:40 +0100 | <dibblego> | "good side of Twitter" — this is funny :) |
2021-02-15 08:30:57 +0100 | shatriff | (~vitaliish@176-52-216-242.irishtelecom.com) |
2021-02-15 08:31:26 +0100 | shatriff | (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection) |
2021-02-15 08:31:30 +0100 | Varis | (~Tadas@unaffiliated/varis) |
2021-02-15 08:31:37 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 08:31:40 +0100 | shatriff | (~vitaliish@176-52-216-242.irishtelecom.com) |
2021-02-15 08:32:11 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2021-02-15 08:32:13 +0100 | shatriff | (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection) |
2021-02-15 08:32:26 +0100 | puffnfre- | (~puffnfres@45.76.124.5) (Quit: ZNC 1.8.0 - https://znc.in) |
2021-02-15 08:32:32 +0100 | shatriff | (~vitaliish@176-52-216-242.irishtelecom.com) |
2021-02-15 08:32:34 +0100 | vchlup | (~vchlup@nat.brnet.cz) (Remote host closed the connection) |
2021-02-15 08:32:40 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-02-15 08:32:59 +0100 | vchlup | (~vchlup@nat.brnet.cz) |
2021-02-15 08:33:01 +0100 | shatriff | (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection) |
2021-02-15 08:33:15 +0100 | shatriff | (~vitaliish@176-52-216-242.irishtelecom.com) |
2021-02-15 08:33:48 +0100 | shatriff | (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection) |
2021-02-15 08:35:09 +0100 | <ij> | ephemient, I was also wondering whether they do use the same repr. |
2021-02-15 08:35:16 +0100 | dwt | (~dwt@c-98-200-58-177.hsd1.tx.comcast.net) (Ping timeout: 240 seconds) |
2021-02-15 08:35:27 +0100 | BIG_JIMMY_D | (~jim@108.61.185.76) (Ping timeout: 256 seconds) |
2021-02-15 08:36:38 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds) |
2021-02-15 08:37:17 +0100 | puffnfresh_ | (~puffnfres@45.76.124.5) |
2021-02-15 08:40:09 +0100 | polyrain | (~polyrain@2001:8003:e4d8:4101:c1c4:c9d6:1224:9fe6) |
2021-02-15 08:40:17 +0100 | Mrbuck | (~Mrbuck@gateway/tor-sasl/mrbuck) (Ping timeout: 268 seconds) |
2021-02-15 08:40:58 +0100 | BIG_JIMMY_D | (~jim@108.61.185.76) |
2021-02-15 08:41:45 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) |
2021-02-15 08:43:23 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-02-15 08:43:31 +0100 | frozenErebus | (~frozenEre@94.128.81.133) |
2021-02-15 08:45:44 +0100 | kav | (~kari@dsl-hkibng42-56733f-225.dhcp.inet.fi) |
2021-02-15 08:46:35 +0100 | pera | (~pera@unaffiliated/pera) |
2021-02-15 08:46:46 +0100 | tlyu | (~tlyu@185.163.110.108) (Remote host closed the connection) |
2021-02-15 08:48:50 +0100 | pera | (~pera@unaffiliated/pera) (Client Quit) |
2021-02-15 08:48:58 +0100 | michalz | (~user@185.246.204.79) |
2021-02-15 08:49:14 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 08:49:45 +0100 | polyrain | (~polyrain@2001:8003:e4d8:4101:c1c4:c9d6:1224:9fe6) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-15 08:50:56 +0100 | Jd007 | (~Jd007@162.156.11.151) (Quit: Jd007) |
2021-02-15 08:52:46 +0100 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer) |
2021-02-15 08:53:54 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds) |
2021-02-15 08:54:19 +0100 | <dminuoso> | ukari: Depends a bit what you intend to do. reflex enjoys wide usage |
2021-02-15 08:54:32 +0100 | <dminuoso> | fsvo "wide" |
2021-02-15 08:54:57 +0100 | polyrain | (~polyrain@2001:8003:e4d8:4101:c1c4:c9d6:1224:9fe6) |
2021-02-15 08:57:42 +0100 | Dufaer | (4d38337f@77-56-51-127.dclient.hispeed.ch) (Ping timeout: 240 seconds) |
2021-02-15 08:58:38 +0100 | cgfbee | (~bot@oc1.itim-cj.ro) (Quit: cgfbee) |
2021-02-15 08:59:55 +0100 | <dmj`> | dibblego: moral compass still exists |
2021-02-15 09:01:12 +0100 | <dibblego> | dmj`: my compass goes all bonkers if I point it at twitter |
2021-02-15 09:01:46 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2021-02-15 09:04:47 +0100 | <dmj`> | @package elerea |
2021-02-15 09:04:47 +0100 | <lambdabot> | https://hackage.haskell.org/package/elerea |
2021-02-15 09:05:01 +0100 | <dmj`> | @ukari: |
2021-02-15 09:05:01 +0100 | <lambdabot> | Unknown command, try @list |
2021-02-15 09:05:38 +0100 | <dmj`> | @dibblego: they know |
2021-02-15 09:05:39 +0100 | <lambdabot> | Unknown command, try @list |
2021-02-15 09:06:55 +0100 | johnjay | (~pi@38.120.10.99) (Ping timeout: 272 seconds) |
2021-02-15 09:07:31 +0100 | <dibblego> | who? magnetic interference? |
2021-02-15 09:07:38 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:b101:b0cf:b14d:ce6b) |
2021-02-15 09:07:39 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-02-15 09:07:44 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 09:07:49 +0100 | idhugo_ | (~idhugo@80-62-117-97-mobile.dk.customer.tdc.net) |
2021-02-15 09:08:20 +0100 | plutoniix | (~q@184.82.197.199) |
2021-02-15 09:10:45 +0100 | Rudd0 | (~Rudd0@185.189.115.108) (Ping timeout: 264 seconds) |
2021-02-15 09:11:21 +0100 | polyrain | (~polyrain@2001:8003:e4d8:4101:c1c4:c9d6:1224:9fe6) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-15 09:11:52 +0100 | coco | (~coco@85.195.206.253) (Quit: WeeChat 2.9) |
2021-02-15 09:12:11 +0100 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: leaving) |
2021-02-15 09:12:38 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds) |
2021-02-15 09:12:38 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds) |
2021-02-15 09:13:53 +0100 | idhugo_ | (~idhugo@80-62-117-97-mobile.dk.customer.tdc.net) (Ping timeout: 272 seconds) |
2021-02-15 09:14:17 +0100 | idhugo | (~idhugo@80-62-117-86-mobile.dk.customer.tdc.net) |
2021-02-15 09:15:47 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-02-15 09:18:45 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 09:19:14 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:b101:b0cf:b14d:ce6b) (Ping timeout: 264 seconds) |
2021-02-15 09:20:24 +0100 | kritzefitz | (~kritzefit@fw-front.credativ.com) |
2021-02-15 09:23:57 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds) |
2021-02-15 09:25:27 +0100 | nemesit|znc_ | (~nemesit@myriadvisuals.com) (Remote host closed the connection) |
2021-02-15 09:25:44 +0100 | viluon | (uid453725@gateway/web/irccloud.com/x-bizhpjepnxgymjot) |
2021-02-15 09:25:46 +0100 | nemesit|znc | (~nemesit@2a01:488:66:1000:2ea3:4eeb:0:1) |
2021-02-15 09:32:00 +0100 | ph88 | (~ph88@2a02:8109:9e00:7e5c:a5f0:7da4:fcd6:f1eb) |
2021-02-15 09:33:35 +0100 | saitamaplus | (uid272474@gateway/web/irccloud.com/x-irdzpaiuvuekrsyx) |
2021-02-15 09:35:26 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 09:35:26 +0100 | xff0x | (~xff0x@2001:1a81:5334:9d00:2968:4660:12ed:e0e0) (Ping timeout: 264 seconds) |
2021-02-15 09:36:11 +0100 | xff0x | (~xff0x@2001:1a81:5334:9d00:4786:d4f7:7834:be51) |
2021-02-15 09:39:31 +0100 | berberman_ | (~berberman@unaffiliated/berberman) |
2021-02-15 09:39:54 +0100 | cgfbee | (~bot@oc1.itim-cj.ro) |
2021-02-15 09:39:56 +0100 | chele | (~chele@ip5b40237d.dynamic.kabel-deutschland.de) |
2021-02-15 09:40:06 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds) |
2021-02-15 09:40:23 +0100 | berberman | (~berberman@unaffiliated/berberman) (Ping timeout: 272 seconds) |
2021-02-15 09:41:22 +0100 | kuribas | (~user@ptr-25vy0i99dyv62vdc1ue.18120a2.ip6.access.telenet.be) |
2021-02-15 09:42:57 +0100 | borne | (~fritjof@200116b864008e00d8bba186ea6b909e.dip.versatel-1u1.de) |
2021-02-15 09:44:04 +0100 | m0rphism1 | (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 256 seconds) |
2021-02-15 09:47:58 +0100 | weikum | (~weikum@90.218.153.39) |
2021-02-15 09:50:43 +0100 | hekkaidekapus} | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2021-02-15 09:51:04 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 09:51:47 +0100 | frozenErebus | (~frozenEre@94.128.81.133) (Ping timeout: 265 seconds) |
2021-02-15 09:52:14 +0100 | berberman_ | (~berberman@unaffiliated/berberman) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-02-15 09:53:11 +0100 | berberman | (~berberman@unaffiliated/berberman) |
2021-02-15 09:53:40 +0100 | hekkaidekapus{ | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds) |
2021-02-15 09:55:13 +0100 | Mrbuck | (~Mrbuck@gateway/tor-sasl/mrbuck) |
2021-02-15 09:56:08 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds) |
2021-02-15 09:56:17 +0100 | pavonia | (~user@unaffiliated/siracusa) (Quit: Bye!) |
2021-02-15 09:58:10 +0100 | jonathanx | (~jonathan@h-176-109.A357.priv.bahnhof.se) (Remote host closed the connection) |
2021-02-15 09:59:35 +0100 | wilkie | (~wilkie@185.163.110.108) |
2021-02-15 10:00:08 +0100 | ciderpunx[m] | (ciderpunxm@gateway/shell/matrix.org/x-nfhcjeegyfehqzkm) (Quit: Idle for 30+ days) |
2021-02-15 10:02:26 +0100 | RusAlex | (~Chel@unaffiliated/rusalex) (Quit: WeeChat 2.7.1) |
2021-02-15 10:03:45 +0100 | jonathanx | (~jonathan@h-176-109.A357.priv.bahnhof.se) |
2021-02-15 10:03:50 +0100 | LKoen | (~LKoen@96.252.88.92.rev.sfr.net) |
2021-02-15 10:04:58 +0100 | berberman | (~berberman@unaffiliated/berberman) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-02-15 10:06:14 +0100 | berberman | (~berberman@unaffiliated/berberman) |
2021-02-15 10:06:15 +0100 | raehik1 | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-02-15 10:08:10 +0100 | michalz | (~user@185.246.204.79) (Remote host closed the connection) |
2021-02-15 10:08:25 +0100 | michalz | (~user@185.246.204.93) |
2021-02-15 10:08:56 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-15 10:12:49 +0100 | Liskni_si | (~liskin@ackle.nomi.cz) () |
2021-02-15 10:13:42 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds) |
2021-02-15 10:14:20 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 10:14:40 +0100 | RusAlex | (~Chel@unaffiliated/rusalex) |
2021-02-15 10:14:43 +0100 | frozenErebus | (~frozenEre@94.128.81.133) |
2021-02-15 10:16:14 +0100 | berberman | (~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds) |
2021-02-15 10:16:44 +0100 | berberman | (~berberman@unaffiliated/berberman) |
2021-02-15 10:18:38 +0100 | weikum | (~weikum@90.218.153.39) (Read error: Connection reset by peer) |
2021-02-15 10:18:38 +0100 | vchlup | (~vchlup@nat.brnet.cz) (Remote host closed the connection) |
2021-02-15 10:18:53 +0100 | chele | (~chele@ip5b40237d.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
2021-02-15 10:18:55 +0100 | vchlup | (~vchlup@nat.brnet.cz) |
2021-02-15 10:18:56 +0100 | zariuq | (~zar@fw1.ciirc.cvut.cz) |
2021-02-15 10:18:57 +0100 | frozenErebus | (~frozenEre@94.128.81.133) (Ping timeout: 246 seconds) |
2021-02-15 10:19:04 +0100 | chele | (~chele@ip5b40237d.dynamic.kabel-deutschland.de) |
2021-02-15 10:19:04 +0100 | Jajik | (xchlup2@gateway/shell/fi.muni.cz/x-wwrhdukwaxbktttf) (Quit: Ping timeout (120 seconds)) |
2021-02-15 10:19:04 +0100 | xsarnik0 | (xsarnik@gateway/shell/fi.muni.cz/x-jfjbrmgxfogbjeng) (Quit: Ping timeout (120 seconds)) |
2021-02-15 10:19:09 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds) |
2021-02-15 10:19:20 +0100 | weikum | (~weikum@90.218.153.39) |
2021-02-15 10:19:20 +0100 | Jajik | (xchlup2@gateway/shell/fi.muni.cz/x-bsscdxcvqqdthevk) |
2021-02-15 10:19:26 +0100 | russruss4 | (~russruss@my.russellmcc.com) (Quit: Ping timeout (120 seconds)) |
2021-02-15 10:19:29 +0100 | ahri | (~ahri@178.209.40.84) (Quit: Ping timeout (120 seconds)) |
2021-02-15 10:19:45 +0100 | feuerbach_ | (~feuerbach@178.62.103.229) (Quit: ZNC 1.8.1 - https://znc.in) |
2021-02-15 10:19:48 +0100 | russruss4 | (~russruss@my.russellmcc.com) |
2021-02-15 10:19:49 +0100 | ahri | (~ahri@178.209.40.84) |
2021-02-15 10:19:54 +0100 | feuerbach | (~feuerbach@unaffiliated/feuerbach) |
2021-02-15 10:19:58 +0100 | blissful | (~blissful@unaffiliated/azuline) (Remote host closed the connection) |
2021-02-15 10:20:20 +0100 | blissful | (~blissful@unaffiliated/azuline) |
2021-02-15 10:20:21 +0100 | dminuoso | (~dminuoso@unaffiliated/dminuoso) (Remote host closed the connection) |
2021-02-15 10:20:28 +0100 | clynamen_ | (~clynamen@net-93-66-46-121.cust.vodafonedsl.it) (Quit: ZNC 1.7.5 - https://znc.in) |
2021-02-15 10:20:30 +0100 | dustinm | (~dustinm@static.38.6.217.95.clients.your-server.de) (Quit: Leaving) |
2021-02-15 10:20:30 +0100 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine) |
2021-02-15 10:20:42 +0100 | NieDzejkob | (~quassel@188.123.215.55) (Remote host closed the connection) |
2021-02-15 10:20:47 +0100 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 265 seconds) |
2021-02-15 10:20:47 +0100 | gareth__ | (~gareth__@104.236.161.134) (Ping timeout: 265 seconds) |
2021-02-15 10:20:48 +0100 | clynamen | (~clynamen@net-93-66-46-121.cust.vodafonedsl.it) |
2021-02-15 10:20:49 +0100 | zar | (~zar@fw1.ciirc.cvut.cz) (Remote host closed the connection) |
2021-02-15 10:20:52 +0100 | xsarnik0 | (xsarnik@gateway/shell/fi.muni.cz/x-wnxdqkgdvvnfetic) |
2021-02-15 10:21:05 +0100 | wagle | (~wagle@quassel.wagle.io) (Remote host closed the connection) |
2021-02-15 10:21:06 +0100 | dminuoso | (~dminuoso@unaffiliated/dminuoso) |
2021-02-15 10:21:44 +0100 | dustinm | (~dustinm@static.38.6.217.95.clients.your-server.de) |
2021-02-15 10:21:45 +0100 | andjjj23 | (~irc@107.170.228.47) (Ping timeout: 265 seconds) |
2021-02-15 10:21:50 +0100 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) |
2021-02-15 10:21:53 +0100 | NieDzejkob | (~quassel@188.123.215.55) |
2021-02-15 10:22:03 +0100 | andjjj23 | (~irc@107.170.228.47) |
2021-02-15 10:22:15 +0100 | wagle | (~wagle@quassel.wagle.io) |
2021-02-15 10:22:22 +0100 | toorevitimirp | (~tooreviti@117.182.183.159) (Remote host closed the connection) |
2021-02-15 10:22:42 +0100 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) |
2021-02-15 10:22:53 +0100 | gareth__ | (~gareth__@104.236.161.134) |
2021-02-15 10:23:21 +0100 | __monty__ | (~toonn@unaffiliated/toonn) |
2021-02-15 10:23:23 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-02-15 10:28:03 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds) |
2021-02-15 10:30:08 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-15 10:31:06 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 10:31:36 +0100 | danza | (~francesco@151.74.111.178) |
2021-02-15 10:32:17 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) |
2021-02-15 10:35:46 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
2021-02-15 10:36:04 +0100 | xff0x | (~xff0x@2001:1a81:5334:9d00:4786:d4f7:7834:be51) (Ping timeout: 268 seconds) |
2021-02-15 10:36:13 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds) |
2021-02-15 10:36:24 +0100 | xff0x | (~xff0x@2001:1a81:5334:9d00:2035:d6b3:d6fb:5680) |
2021-02-15 10:37:34 +0100 | rembo10 | (~rembo10@wally.codeshy.com) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-02-15 10:38:01 +0100 | rembo10 | (~rembo10@wally.codeshy.com) |
2021-02-15 10:40:31 +0100 | Narinas | (~Narinas@189.223.179.61.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-15 10:40:45 +0100 | Narinas | (~Narinas@189.223.179.61.dsl.dyn.telnor.net) |
2021-02-15 10:46:23 +0100 | rembo10 | (~rembo10@wally.codeshy.com) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-02-15 10:46:45 +0100 | fendor | (~fendor@178.165.129.143.wireless.dyn.drei.com) |
2021-02-15 10:47:51 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 10:49:10 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 268 seconds) |
2021-02-15 10:50:05 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) |
2021-02-15 10:50:38 +0100 | rembo10 | (~rembo10@wally.codeshy.com) |
2021-02-15 10:51:50 +0100 | ulidtko|kk | (~ulidtko@194.54.80.38) |
2021-02-15 10:52:43 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 268 seconds) |
2021-02-15 10:54:12 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-02-15 10:56:05 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-15 10:58:45 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
2021-02-15 10:58:49 +0100 | Guest_28 | (8b2f9951@139.47.153.81) |
2021-02-15 11:03:14 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 11:04:41 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) |
2021-02-15 11:05:16 +0100 | Rudd0 | (~Rudd0@185.189.115.103) |
2021-02-15 11:05:55 +0100 | hnOsmium0001 | (uid453710@gateway/web/irccloud.com/x-kpbpuzyuhnpbsdju) (Quit: Connection closed for inactivity) |
2021-02-15 11:07:02 +0100 | Guest_28 | (8b2f9951@139.47.153.81) (Quit: Connection closed) |
2021-02-15 11:07:54 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds) |
2021-02-15 11:07:54 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-02-15 11:15:49 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) |
2021-02-15 11:18:12 +0100 | thc202 | (~thc202@unaffiliated/thc202) |
2021-02-15 11:19:11 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 272 seconds) |
2021-02-15 11:19:51 +0100 | edwtjo | (~edwtjo@fsf/member/edwtjo) (Ping timeout: 246 seconds) |
2021-02-15 11:20:37 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 268 seconds) |
2021-02-15 11:21:08 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 11:23:18 +0100 | <tomjaguarpaw> | As I understand it, GHC 9.0 requires (unreleased) cabal 3.4. Does anyone know why? |
2021-02-15 11:25:01 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-02-15 11:26:02 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds) |
2021-02-15 11:26:04 +0100 | haritz | (~hrtz@unaffiliated/haritz) (Ping timeout: 256 seconds) |
2021-02-15 11:28:38 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-15 11:28:42 +0100 | <merijn> | tomjaguarpaw: Why it requires it or why it's unreleased? |
2021-02-15 11:28:45 +0100 | wz1000 | (~wz1000@static.11.113.47.78.clients.your-server.de) (Ping timeout: 264 seconds) |
2021-02-15 11:28:54 +0100 | <arahael> | I'd assume that GHC 9 is just that new. |
2021-02-15 11:29:02 +0100 | <tomjaguarpaw> | Why it requires it |
2021-02-15 11:29:11 +0100 | <merijn> | tomjaguarpaw: Support, presumably |
2021-02-15 11:29:16 +0100 | <tomjaguarpaw> | I mean, which technical aspect of 3.4 does GHC rely on? |
2021-02-15 11:29:22 +0100 | <tomjaguarpaw> | Support? |
2021-02-15 11:29:24 +0100 | haritz | (~hrtz@62.3.70.206) |
2021-02-15 11:29:24 +0100 | haritz | (~hrtz@62.3.70.206) (Changing host) |
2021-02-15 11:29:24 +0100 | haritz | (~hrtz@unaffiliated/haritz) |
2021-02-15 11:29:43 +0100 | <tomjaguarpaw> | s/does GHC/does GHC 9.0/ |
2021-02-15 11:29:44 +0100 | tribble2 | (~tribble2@unaffiliated/tribble2) (Read error: Connection reset by peer) |
2021-02-15 11:29:49 +0100 | <merijn> | tomjaguarpaw: Consider an other, old example: When cabal-install started using the global store, that required GHC's package database to be hash aware |
2021-02-15 11:30:03 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds) |
2021-02-15 11:30:20 +0100 | <merijn> | tomjaguarpaw: I think you have causality reversed? |
2021-02-15 11:30:29 +0100 | edwtjo | (~edwtjo@fsf/member/edwtjo) |
2021-02-15 11:30:42 +0100 | <merijn> | tomjaguarpaw: GHC 9 presumably does something/exposes an interface that requires new cabal code to deal with |
2021-02-15 11:30:51 +0100 | <merijn> | tomjaguarpaw: So 3.2 and older can't deal with GHC 9 |
2021-02-15 11:31:19 +0100 | <tomjaguarpaw> | Ah, could be |
2021-02-15 11:31:46 +0100 | <tomjaguarpaw> | Still, I'd be interested to know what that is |
2021-02-15 11:31:54 +0100 | <merijn> | tomjaguarpaw: When docs says "GHC requires Cabal 3.4" you should interpret it as "older Cabal's don't support this GHC" |
2021-02-15 11:34:03 +0100 | <merijn> | tomjaguarpaw: You'd probably have to ask in #ghc, I don't see anything obvious in the release notes |
2021-02-15 11:34:30 +0100 | <merijn> | In general Cabal doesn't really try to be forward compatible, though. Only backwards compatible |
2021-02-15 11:35:25 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds) |
2021-02-15 11:35:44 +0100 | <merijn> | tomjaguarpaw: ah |
2021-02-15 11:35:50 +0100 | <merijn> | tomjaguarpaw: https://github.com/haskell/cabal/blob/master/release-notes/Cabal-3.4.0.0.md |
2021-02-15 11:37:23 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 11:37:38 +0100 | haritz | (~hrtz@unaffiliated/haritz) (Ping timeout: 265 seconds) |
2021-02-15 11:38:11 +0100 | wz1000 | (~wz1000@static.11.113.47.78.clients.your-server.de) |
2021-02-15 11:38:58 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) |
2021-02-15 11:41:29 +0100 | Franciman | (~francesco@host-82-49-79-189.retail.telecomitalia.it) |
2021-02-15 11:41:36 +0100 | tsaka__ | (~torstein@athedsl-258913.home.otenet.gr) (Ping timeout: 240 seconds) |
2021-02-15 11:42:19 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-02-15 11:42:28 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds) |
2021-02-15 11:43:06 +0100 | haritz | (~hrtz@62.3.70.206) |
2021-02-15 11:43:06 +0100 | haritz | (~hrtz@62.3.70.206) (Changing host) |
2021-02-15 11:43:06 +0100 | haritz | (~hrtz@unaffiliated/haritz) |
2021-02-15 11:47:11 +0100 | frozenErebus | (~frozenEre@94.128.81.133) |
2021-02-15 11:48:08 +0100 | hal9001` | (~user@zz2017405567D30FFCD9.userreverse.dion.ne.jp) |
2021-02-15 11:48:33 +0100 | son0p | (~son0p@181.58.39.182) |
2021-02-15 11:49:45 +0100 | hal9001 | (~user@zz2017405567D30FFCD9.userreverse.dion.ne.jp) (Ping timeout: 240 seconds) |
2021-02-15 11:54:48 +0100 | <tomjaguarpaw> | merijn: Thanks! |
2021-02-15 11:55:24 +0100 | frozenErebus | (~frozenEre@94.128.81.133) (Ping timeout: 272 seconds) |
2021-02-15 11:55:30 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 11:58:37 +0100 | weikum | (~weikum@90.218.153.39) (Quit: Connection error?!) |
2021-02-15 12:00:33 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds) |
2021-02-15 12:05:20 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2021-02-15 12:05:41 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-15 12:05:46 +0100 | frozenErebus | (~frozenEre@94.128.81.133) |
2021-02-15 12:07:10 +0100 | DavidEichmann | (~david@234.109.45.217.dyn.plus.net) |
2021-02-15 12:07:23 +0100 | haritz | (~hrtz@unaffiliated/haritz) (Ping timeout: 256 seconds) |
2021-02-15 12:10:02 +0100 | dhil | (~dhil@80.208.56.181) |
2021-02-15 12:11:07 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 272 seconds) |
2021-02-15 12:12:54 +0100 | <__monty__> | Hmm, this doesn't sound backwards compatible? "build-depends: thispkg:somesublib" |
2021-02-15 12:13:15 +0100 | haritz | (~hrtz@62.3.70.206) |
2021-02-15 12:13:15 +0100 | haritz | (~hrtz@62.3.70.206) (Changing host) |
2021-02-15 12:13:15 +0100 | haritz | (~hrtz@unaffiliated/haritz) |
2021-02-15 12:13:21 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 12:13:23 +0100 | <__monty__> | You need to specify the "thispkg" to get the behavior from before 3.4? |
2021-02-15 12:14:01 +0100 | <__monty__> | Why not require the package specifier for external libraries instead? That way things'd be backwards compatible and still solve the issue? |
2021-02-15 12:15:10 +0100 | minoru_shiraeesh | (~shiraeesh@46.34.206.33) |
2021-02-15 12:17:22 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:91f6:aac5:ae3f:98b4) |
2021-02-15 12:17:40 +0100 | irc_user | (uid423822@gateway/web/irccloud.com/x-ywgoyvpgklsytbwc) (Quit: Connection closed for inactivity) |
2021-02-15 12:17:57 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds) |
2021-02-15 12:18:58 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-02-15 12:21:33 +0100 | minoru_shiraeesh | (~shiraeesh@46.34.206.33) (Ping timeout: 264 seconds) |
2021-02-15 12:21:47 +0100 | rfc08x001 | (~quassel@183.215.49.196) |
2021-02-15 12:22:14 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:91f6:aac5:ae3f:98b4) (Ping timeout: 264 seconds) |
2021-02-15 12:22:37 +0100 | Mrbuck | (~Mrbuck@gateway/tor-sasl/mrbuck) (Quit: WeeChat 1.9.1) |
2021-02-15 12:29:08 +0100 | idhugo | (~idhugo@80-62-117-86-mobile.dk.customer.tdc.net) (Remote host closed the connection) |
2021-02-15 12:29:33 +0100 | idhugo | (~idhugo@80-62-117-86-mobile.dk.customer.tdc.net) |
2021-02-15 12:30:29 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 12:32:56 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-02-15 12:33:49 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-15 12:34:25 +0100 | shatriff | (~vitaliish@176-52-216-242.irishtelecom.com) |
2021-02-15 12:35:12 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds) |
2021-02-15 12:40:00 +0100 | frozenErebus | (~frozenEre@94.128.81.133) (Ping timeout: 246 seconds) |
2021-02-15 12:40:33 +0100 | Wojciech_K | (~wojciechk@2001:41d0:a:5be4::449) |
2021-02-15 12:40:47 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Ping timeout: 268 seconds) |
2021-02-15 12:41:52 +0100 | kam1 | (~kam1@83.123.64.17) |
2021-02-15 12:42:22 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-15 12:43:37 +0100 | kam1 | (~kam1@83.123.64.17) (Read error: Connection reset by peer) |
2021-02-15 12:43:44 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2021-02-15 12:44:26 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-02-15 12:44:27 +0100 | usr25 | (~usr25@unaffiliated/usr25) |
2021-02-15 12:45:08 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-15 12:46:10 +0100 | kam1 | (~kam1@83.123.64.17) |
2021-02-15 12:46:23 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 12:47:05 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds) |
2021-02-15 12:47:08 +0100 | idhugo | (~idhugo@80-62-117-86-mobile.dk.customer.tdc.net) (Remote host closed the connection) |
2021-02-15 12:47:34 +0100 | idhugo | (~idhugo@80.62.117.86) |
2021-02-15 12:47:49 +0100 | kam1 | (~kam1@83.123.64.17) (Read error: Connection reset by peer) |
2021-02-15 12:50:05 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-02-15 12:50:19 +0100 | rfc08x001 | (~quassel@183.215.49.196) ("https://quassel-irc.org - Chat comfortably. Anywhere.") |
2021-02-15 12:50:43 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-15 12:50:57 +0100 | mnrmnaugh | (~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 264 seconds) |
2021-02-15 12:51:08 +0100 | idhugo | (~idhugo@80.62.117.86) (Remote host closed the connection) |
2021-02-15 12:51:34 +0100 | idhugo | (~idhugo@80-62-117-86-mobile.dk.customer.tdc.net) |
2021-02-15 12:51:35 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds) |
2021-02-15 12:54:07 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Client Quit) |
2021-02-15 12:54:15 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-15 12:54:31 +0100 | <merijn> | __monty__: The cabal file format isn't backwards compatible |
2021-02-15 12:54:38 +0100 | <merijn> | __monty__: cabal-install is |
2021-02-15 12:54:58 +0100 | <merijn> | __monty__: The entire point of versioning the CABAL format is that it allows for backwards incompatible changes |
2021-02-15 12:55:13 +0100 | weikum | (~weikum@90.218.153.39) |
2021-02-15 12:55:31 +0100 | mnrmnaugh | (~mnrmnaugh@unaffiliated/mnrmnaugh) |
2021-02-15 12:55:35 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds) |
2021-02-15 12:56:01 +0100 | <__monty__> | Ah, right. |
2021-02-15 12:56:04 +0100 | <__monty__> | Thanks : ) |
2021-02-15 12:56:05 +0100 | <merijn> | __monty__: cabal-install is backwards compatible in that "newer versions will correctly parse packages using old specs" |
2021-02-15 12:56:35 +0100 | <__monty__> | I forgot the cabal version is usually (always?) in the file. |
2021-02-15 12:56:43 +0100 | <merijn> | It's mandatory |
2021-02-15 12:57:15 +0100 | <merijn> | Although legacy syntax lets you put it somewhere other than the start, which required a whole complicated compat scheme :p |
2021-02-15 12:57:55 +0100 | kam1 | (~kam1@83.123.64.17) |
2021-02-15 12:58:06 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-15 12:58:16 +0100 | kam1 | (~kam1@83.123.64.17) (Read error: Connection reset by peer) |
2021-02-15 12:58:52 +0100 | <merijn> | __monty__: See: https://github.com/haskell/cabal/issues/4899 |
2021-02-15 12:58:53 +0100 | frozenErebus | (~frozenEre@94.128.81.133) |
2021-02-15 13:00:13 +0100 | <__monty__> | Ah, interesting read. Feels similar to protocol or marshalling versioning. |
2021-02-15 13:00:31 +0100 | kam1 | (~kam1@83.123.64.17) |
2021-02-15 13:00:41 +0100 | <merijn> | Yeah |
2021-02-15 13:00:49 +0100 | <merijn> | There's 2 kinds of formats/protocols |
2021-02-15 13:01:07 +0100 | <merijn> | Those with a version number at the very start and those who wish they'd be smart enough to do that ;) |
2021-02-15 13:01:14 +0100 | kam1 | (~kam1@83.123.64.17) (Read error: Connection reset by peer) |
2021-02-15 13:01:46 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-02-15 13:02:35 +0100 | Tops2 | (~Tobias@dyndsl-095-033-017-002.ewe-ip-backbone.de) |
2021-02-15 13:02:46 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-02-15 13:03:03 +0100 | <merijn> | Me: I know what I'm doing, I don't need versioning here. |
2021-02-15 13:03:16 +0100 | <merijn> | Also me, 2 years later: FFS, what was I thinking?!? |
2021-02-15 13:03:24 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 13:04:58 +0100 | kam1 | (~kam1@83.123.64.17) |
2021-02-15 13:05:32 +0100 | <__monty__> | Past us are so cocky : ) |
2021-02-15 13:05:47 +0100 | kam1 | (~kam1@83.123.64.17) (Read error: Connection reset by peer) |
2021-02-15 13:06:56 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
2021-02-15 13:07:38 +0100 | kam1 | (~kam1@83.123.64.17) |
2021-02-15 13:08:00 +0100 | kam1 | (~kam1@83.123.64.17) (Read error: Connection reset by peer) |
2021-02-15 13:08:52 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds) |
2021-02-15 13:11:23 +0100 | plutoniix | (~q@184.82.197.199) (Quit: Leaving) |
2021-02-15 13:18:03 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-02-15 13:18:05 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:91f6:aac5:ae3f:98b4) |
2021-02-15 13:18:51 +0100 | kmein | (~weechat@static.173.83.99.88.clients.your-server.de) (Quit: ciao kakao) |
2021-02-15 13:19:07 +0100 | kmein | (~weechat@static.173.83.99.88.clients.your-server.de) |
2021-02-15 13:19:09 +0100 | lawr3nce | (~lawr3nce@gateway/tor-sasl/lawr3nce) |
2021-02-15 13:20:13 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 13:22:26 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:91f6:aac5:ae3f:98b4) (Ping timeout: 240 seconds) |
2021-02-15 13:25:25 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds) |
2021-02-15 13:25:26 +0100 | wilkie | (~wilkie@185.163.110.108) (Remote host closed the connection) |
2021-02-15 13:29:08 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2021-02-15 13:30:08 +0100 | idhugo | (~idhugo@80-62-117-86-mobile.dk.customer.tdc.net) (Remote host closed the connection) |
2021-02-15 13:30:36 +0100 | idhugo | (~idhugo@80-62-117-86-mobile.dk.customer.tdc.net) |
2021-02-15 13:32:40 +0100 | boxscape | (4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) |
2021-02-15 13:35:00 +0100 | tsaka__ | (~torstein@2a02:587:1b14:d00:5ec3:abec:812c:b3e2) |
2021-02-15 13:35:42 +0100 | kam1 | (~kam1@83.123.64.17) |
2021-02-15 13:36:06 +0100 | Moe_Epsilon | (~Moe_Epsil@195.140.213.38) |
2021-02-15 13:36:14 +0100 | kam1 | (~kam1@83.123.64.17) (Read error: Connection reset by peer) |
2021-02-15 13:36:48 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 13:37:22 +0100 | kam1 | (~kam1@83.123.64.17) |
2021-02-15 13:37:50 +0100 | kam1 | (~kam1@83.123.64.17) (Read error: Connection reset by peer) |
2021-02-15 13:41:51 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds) |
2021-02-15 13:44:32 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection) |
2021-02-15 13:45:44 +0100 | Tario | (~Tario@201.192.165.173) |
2021-02-15 13:51:24 +0100 | usr25 | (~usr25@unaffiliated/usr25) (Read error: Connection reset by peer) |
2021-02-15 13:55:03 +0100 | tremon | (~aschuring@217-63-61-89.cable.dynamic.v4.ziggo.nl) |
2021-02-15 13:55:26 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 13:59:24 +0100 | lawr3nce | (~lawr3nce@gateway/tor-sasl/lawr3nce) (Quit: Leaving) |
2021-02-15 14:00:09 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds) |
2021-02-15 14:03:18 +0100 | LKoen_ | (~LKoen@96.252.88.92.rev.sfr.net) |
2021-02-15 14:05:18 +0100 | LKoen | (~LKoen@96.252.88.92.rev.sfr.net) (Ping timeout: 256 seconds) |
2021-02-15 14:07:18 +0100 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) |
2021-02-15 14:08:06 +0100 | bitmagie | (~Thunderbi@200116b806b8a300e0c422df71fa9953.dip.versatel-1u1.de) |
2021-02-15 14:09:17 +0100 | sagax | (~sagax_nb@213.138.71.146) (Remote host closed the connection) |
2021-02-15 14:12:10 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 14:12:56 +0100 | frozenErebus | (~frozenEre@94.128.81.133) (Ping timeout: 240 seconds) |
2021-02-15 14:14:08 +0100 | geekosaur | (82650c7a@130.101.12.122) |
2021-02-15 14:16:57 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds) |
2021-02-15 14:18:48 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:91f6:aac5:ae3f:98b4) |
2021-02-15 14:19:12 +0100 | Sheilong | (uid293653@gateway/web/irccloud.com/x-ptedpsphubsivqqo) |
2021-02-15 14:19:48 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 272 seconds) |
2021-02-15 14:22:14 +0100 | sagax | (~sagax_nb@213.138.71.146) |
2021-02-15 14:24:02 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:91f6:aac5:ae3f:98b4) (Ping timeout: 264 seconds) |
2021-02-15 14:24:08 +0100 | pavonia | (~user@unaffiliated/siracusa) |
2021-02-15 14:25:24 +0100 | son0p | (~son0p@181.58.39.182) (Quit: Lost terminal) |
2021-02-15 14:29:58 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-119-56.w86-198.abo.wanadoo.fr) |
2021-02-15 14:30:00 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 14:30:04 +0100 | son0p | (~son0p@181.58.39.182) |
2021-02-15 14:32:17 +0100 | bitmagie | (~Thunderbi@200116b806b8a300e0c422df71fa9953.dip.versatel-1u1.de) (Quit: bitmagie) |
2021-02-15 14:34:27 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
2021-02-15 14:34:48 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds) |
2021-02-15 14:36:38 +0100 | idhugo | (~idhugo@80-62-117-86-mobile.dk.customer.tdc.net) (Remote host closed the connection) |
2021-02-15 14:37:02 +0100 | idhugo | (~idhugo@80-62-117-86-mobile.dk.customer.tdc.net) |
2021-02-15 14:40:25 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 268 seconds) |
2021-02-15 14:41:27 +0100 | Noldorin | (~noldorin@unaffiliated/noldorin) |
2021-02-15 14:44:08 +0100 | <dminuoso> | Is there a reason fromList from containers replaces an already existing item? |
2021-02-15 14:44:23 +0100 | <dminuoso> | % Data.Set.fromList [F 1 "foo", F 1 "bar"] -- Here Eq/Ord is defined on the first field only |
2021-02-15 14:44:23 +0100 | <yahb> | dminuoso: fromList [F {foo = 1, bar = "bar"}] |
2021-02-15 14:45:01 +0100 | shutdown_-h_now | (~arjan@2001:1c06:2d0b:2312:40b3:9495:b829:f8f6) (Ping timeout: 272 seconds) |
2021-02-15 14:46:38 +0100 | idhugo | (~idhugo@80-62-117-86-mobile.dk.customer.tdc.net) (Remote host closed the connection) |
2021-02-15 14:47:06 +0100 | idhugo | (~idhugo@80-62-117-86-mobile.dk.customer.tdc.net) |
2021-02-15 14:48:08 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 14:50:44 +0100 | shutdown_-h_now | (~arjan@2001:1c06:2d0b:2312:e4b5:89f2:f8c9:6ba7) |
2021-02-15 14:52:15 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-15 14:52:26 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) |
2021-02-15 14:53:22 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds) |
2021-02-15 14:54:35 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2021-02-15 14:55:04 +0100 | <merijn> | dminuoso: Because you are violating the assumption of Ord being a total order? |
2021-02-15 14:56:13 +0100 | <merijn> | Map has a defined behaviour for duplicate keys, because duplicate keys with different values need some sort of logical handling |
2021-02-15 14:56:32 +0100 | <merijn> | dminuoso: There's no reason for Set to account for that because equal elements are, well, equal? |
2021-02-15 14:56:47 +0100 | <dminuoso> | merijn: Its not a complaint, I was just curious. |
2021-02-15 14:57:04 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2021-02-15 14:57:09 +0100 | <dminuoso> | Im just using Set for a quick sorted nubOrd |
2021-02-15 14:57:25 +0100 | <dminuoso> | (I cant keep sets, because I need ordered lists shortly afterwards again) |
2021-02-15 14:57:26 +0100 | <merijn> | dminuoso: It's presumably an artifact of fromList having a linear time on sorted input? |
2021-02-15 14:57:49 +0100 | <dminuoso> | Ah |
2021-02-15 14:58:00 +0100 | Deide | (~Deide@217.155.19.23) |
2021-02-15 14:59:41 +0100 | <dminuoso> | merijn: Nevermind, I think I found it. It seems because in the un-ordered case, it does a simple `foldl'` |
2021-02-15 14:59:42 +0100 | dhouthoo | (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) |
2021-02-15 15:00:48 +0100 | alx741 | (~alx741@186.178.108.16) (Quit: alx741) |
2021-02-15 15:01:51 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-02-15 15:03:46 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-02-15 15:04:11 +0100 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
2021-02-15 15:04:13 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 15:04:45 +0100 | raehik1 | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds) |
2021-02-15 15:06:07 +0100 | raehik1 | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-02-15 15:08:30 +0100 | carlomagno | (~cararell@148.87.23.11) |
2021-02-15 15:08:36 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2021-02-15 15:14:42 +0100 | geekosaur | (82650c7a@130.101.12.122) (Ping timeout: 240 seconds) |
2021-02-15 15:15:34 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds) |
2021-02-15 15:16:28 +0100 | geekosaur | (82650c7a@130.101.12.122) |
2021-02-15 15:21:06 +0100 | xelxebar_ | (~xelxebar@gateway/tor-sasl/xelxebar) |
2021-02-15 15:21:07 +0100 | xelxebar | (~xelxebar@gateway/tor-sasl/xelxebar) (Ping timeout: 268 seconds) |
2021-02-15 15:21:20 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 15:25:18 +0100 | rdivyanshu | (uid322626@gateway/web/irccloud.com/x-khsbgkvcrzwdbncz) |
2021-02-15 15:25:38 +0100 | frozenErebus | (~frozenEre@94.128.81.133) |
2021-02-15 15:26:18 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds) |
2021-02-15 15:26:47 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-02-15 15:30:05 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2021-02-15 15:32:55 +0100 | bnbgg_ | (uid454564@gateway/web/irccloud.com/x-wmmvfcpjvawodsxk) |
2021-02-15 15:36:52 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-02-15 15:37:07 +0100 | urodna | (~urodna@unaffiliated/urodna) |
2021-02-15 15:38:14 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 15:41:20 +0100 | shatriff | (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection) |
2021-02-15 15:41:36 +0100 | shatriff | (~vitaliish@176-52-216-242.irishtelecom.com) |
2021-02-15 15:42:56 +0100 | shatriff | (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection) |
2021-02-15 15:43:05 +0100 | mimi_vx | (~mimi@2a01:490:16:1026:54d:93e0:a239:fb65) (Quit: WeeChat 3.0.1) |
2021-02-15 15:43:20 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds) |
2021-02-15 15:47:28 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-119-56.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-02-15 15:47:47 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-119-56.w86-198.abo.wanadoo.fr) |
2021-02-15 15:53:10 +0100 | Wuzzy | (~Wuzzy@p5b0df671.dip0.t-ipconnect.de) |
2021-02-15 15:54:11 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 15:54:51 +0100 | geekosaur | (82650c7a@130.101.12.122) (Quit: Connection closed) |
2021-02-15 15:58:16 +0100 | raym | (~ray@45.64.220.98) (Quit: leaving) |
2021-02-15 15:58:31 +0100 | raym | (~ray@45.64.220.98) |
2021-02-15 15:58:45 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2021-02-15 15:59:05 +0100 | mud | (~mud@unaffiliated/kadoban) (Ping timeout: 240 seconds) |
2021-02-15 16:01:39 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
2021-02-15 16:01:54 +0100 | kritzefitz | (~kritzefit@fw-front.credativ.com) (Remote host closed the connection) |
2021-02-15 16:02:24 +0100 | caubert | (~caubert@207.246.80.112) (Ping timeout: 272 seconds) |
2021-02-15 16:02:33 +0100 | ep1ctetus | (~epictetus@ip72-194-215-136.sb.sd.cox.net) |
2021-02-15 16:03:20 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Read error: Connection reset by peer) |
2021-02-15 16:03:38 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) |
2021-02-15 16:04:38 +0100 | idhugo | (~idhugo@80-62-117-86-mobile.dk.customer.tdc.net) (Remote host closed the connection) |
2021-02-15 16:05:04 +0100 | idhugo | (~idhugo@80-62-117-86-mobile.dk.customer.tdc.net) |
2021-02-15 16:10:47 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 16:14:13 +0100 | <zebrag> | I struggle figuring what would be the counit-epsilon with free/forgetful adjunction with monoids. The unit-eta is `return` of the list-monad. And epsilon is not a morphism in Hask. And then I'm stuck. |
2021-02-15 16:14:34 +0100 | idhugo_ | (~idhugo@130.225.16.16) |
2021-02-15 16:15:02 +0100 | jneira | (501ca940@gateway/web/cgi-irc/kiwiirc.com/ip.80.28.169.64) |
2021-02-15 16:15:13 +0100 | <zebrag> | Even the "take underlying set" operation, I'm not sure of. |
2021-02-15 16:15:16 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2021-02-15 16:15:54 +0100 | <zebrag> | Is zero part of the underlying set? |
2021-02-15 16:16:56 +0100 | idhugo | (~idhugo@80-62-117-86-mobile.dk.customer.tdc.net) (Ping timeout: 240 seconds) |
2021-02-15 16:18:08 +0100 | idhugo_ | (~idhugo@130.225.16.16) (Remote host closed the connection) |
2021-02-15 16:18:35 +0100 | idhugo_ | (~idhugo@130.225.16.16) |
2021-02-15 16:19:02 +0100 | idhugo_ | (~idhugo@130.225.16.16) (Max SendQ exceeded) |
2021-02-15 16:19:34 +0100 | idhugo_ | (~idhugo@130.225.16.16) |
2021-02-15 16:20:06 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:91f6:aac5:ae3f:98b4) |
2021-02-15 16:20:07 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
2021-02-15 16:21:33 +0100 | frozenErebus | (~frozenEre@94.128.81.133) (Ping timeout: 246 seconds) |
2021-02-15 16:24:26 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 16:24:56 +0100 | <dminuoso> | zebrag: "take the underlying set of a structure" is meant in a handwavy/suggestive sense. |
2021-02-15 16:25:14 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:91f6:aac5:ae3f:98b4) (Ping timeout: 264 seconds) |
2021-02-15 16:25:32 +0100 | <dminuoso> | or perhaps, if you read the wiki article, then something else is meant |
2021-02-15 16:25:37 +0100 | <merijn> | All of Hask is handwavy and suggestive :p |
2021-02-15 16:26:08 +0100 | <dminuoso> | zebrag: If you were referring to the wiki article, then it means something along the lines of "a forgetful functor" takes a monoid to just a set. |
2021-02-15 16:26:13 +0100 | <zebrag> | I don't see something obvious from `[Int]` to `Int`, where `Int` is natural number monoid with plus and zero. The problem is with `[]` and `[0]`, they will be mapped to the same element |
2021-02-15 16:26:26 +0100 | <dminuoso> | (a monoid is a set with some extra "structure", and the forgetful functor forgets about that "extra structure") |
2021-02-15 16:26:53 +0100 | <dminuoso> | zebrag: Yeah you need to think bigger here. |
2021-02-15 16:27:16 +0100 | <zebrag> | My best guess is `[]` is not part of the free monoid generated from `Int` |
2021-02-15 16:27:25 +0100 | <dminuoso> | zebrag: Start off, perhaps, with the categories Set (where objects are sets and morphisms are functions between sets) and Mon (where objects are monoids, and arrows are monoid homomorphisms) |
2021-02-15 16:28:43 +0100 | kam1 | (~kam1@83.123.64.17) |
2021-02-15 16:29:21 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds) |
2021-02-15 16:29:26 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Quit: p-core) |
2021-02-15 16:29:45 +0100 | kam1 | (~kam1@83.123.64.17) (Read error: Connection reset by peer) |
2021-02-15 16:30:55 +0100 | Jd007 | (~Jd007@162.156.11.151) |
2021-02-15 16:31:40 +0100 | m0rphism1 | (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) |
2021-02-15 16:33:14 +0100 | maier | (~maier@i59F67B70.versanet.de) |
2021-02-15 16:34:28 +0100 | <zebrag> | epsilon seems to be a sort of eval function, from https://unapologetic.wordpress.com/2007/07/17/the-unit-and-counit-of-an-adjunction/ |
2021-02-15 16:34:41 +0100 | <zebrag> | I'll stick to that for the present and move on |
2021-02-15 16:34:57 +0100 | <zebrag> | Thanks a lot for the help |
2021-02-15 16:36:31 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) |
2021-02-15 16:38:28 +0100 | kam1 | (~kam1@83.123.64.17) |
2021-02-15 16:39:37 +0100 | notzmv` | notzmv |
2021-02-15 16:39:52 +0100 | notzmv | (~user@191.13.168.188) (Changing host) |
2021-02-15 16:39:52 +0100 | notzmv | (~user@unaffiliated/zmv) |
2021-02-15 16:39:57 +0100 | caubert | (~caubert@136.244.111.235) |
2021-02-15 16:40:04 +0100 | deviantfero | (~deviantfe@190.150.27.58) |
2021-02-15 16:40:22 +0100 | jamm_ | (~jamm@unaffiliated/jamm) |
2021-02-15 16:40:38 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2021-02-15 16:40:53 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 16:41:05 +0100 | berberman | (~berberman@unaffiliated/berberman) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-02-15 16:41:46 +0100 | berberman | (~berberman@unaffiliated/berberman) |
2021-02-15 16:43:07 +0100 | minoru_shiraeesh | (~shiraeesh@46.34.207.245) |
2021-02-15 16:46:00 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds) |
2021-02-15 16:47:28 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-119-56.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-02-15 16:47:47 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-119-56.w86-198.abo.wanadoo.fr) |
2021-02-15 16:48:51 +0100 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Ping timeout: 246 seconds) |
2021-02-15 16:49:18 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 268 seconds) |
2021-02-15 16:50:37 +0100 | frozenErebus | (~frozenEre@94.128.81.133) |
2021-02-15 16:54:50 +0100 | <maerwald> | any streamly experts know how to do: t m [a] -> t m a? |
2021-02-15 16:55:22 +0100 | <Franciman> | something like |
2021-02-15 16:55:30 +0100 | <Franciman> | yield |
2021-02-15 16:55:34 +0100 | <sshine> | if I'm doing 'stack install', that places a binary executable in ~/.local/bin, but what if that program depends on a textfile, e.g. one you might have placed in /usr/local/share, is there a way to install non-executable files into some common location? maybe ~/.local/share? |
2021-02-15 16:55:35 +0100 | <Franciman> | ? |
2021-02-15 16:55:39 +0100 | <Franciman> | i.e. |
2021-02-15 16:55:42 +0100 | <Franciman> | supposing it is a monad |
2021-02-15 16:55:49 +0100 | <Franciman> | res <- stream |
2021-02-15 16:55:57 +0100 | <Franciman> | yield for each res |
2021-02-15 16:56:06 +0100 | <maerwald> | yield :: IsStream t => a -> t m a |
2021-02-15 16:56:09 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 265 seconds) |
2021-02-15 16:56:10 +0100 | <maerwald> | I cannot follow |
2021-02-15 16:56:18 +0100 | <Franciman> | ah it is a real lib |
2021-02-15 16:56:19 +0100 | <Franciman> | wait |
2021-02-15 16:56:23 +0100 | <maerwald> | yes |
2021-02-15 16:56:31 +0100 | <Franciman> | I was on delphi's 26 years history page |
2021-02-15 16:56:52 +0100 | <merijn> | sshine: data-files should be installed somewhere accessible |
2021-02-15 16:57:28 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 16:57:58 +0100 | <Franciman> | :t sequenceA_ |
2021-02-15 16:57:59 +0100 | <lambdabot> | (Foldable t, Applicative f) => t (f a) -> f () |
2021-02-15 16:58:01 +0100 | <sshine> | merijn, I've never tried to distribute an executable, and I've never tried that it depends on another file. I don't suppose 'stack install' is really a favorite package manager for non-developers, so maybe one wants to think of other installation mechanisms, kinda like how pandoc gets bundled with OS package managers. but at the same time, I really just want a simplest possible solution. |
2021-02-15 16:58:08 +0100 | idhugo_ | (~idhugo@130.225.16.16) (Ping timeout: 256 seconds) |
2021-02-15 16:58:11 +0100 | <Franciman> | :t sequenceA |
2021-02-15 16:58:12 +0100 | <lambdabot> | (Traversable t, Applicative f) => t (f a) -> f (t a) |
2021-02-15 16:58:24 +0100 | <Franciman> | ok, I don't know |
2021-02-15 16:59:07 +0100 | <merijn> | sshine: tbh, stack doesn't really have an interface for packaging things for, say, OS package managers |
2021-02-15 16:59:33 +0100 | <sshine> | merijn, so I could do a PPA for Ubuntu, and I could use AUR for Arch... but eh. I think some people use npm/npx simply because that's something a lot of people have? E.g. Elm and PureScript use that, IIRC? |
2021-02-15 16:59:34 +0100 | <merijn> | sshine: That's what the Setup.hs interface to Cabal (note: not cabal-install) is intended for |
2021-02-15 16:59:34 +0100 | goepsilongo | (~goepsilon@2603-7000-ab00-62ed-0000-0000-0000-0c67.res6.spectrum.com) |
2021-02-15 16:59:48 +0100 | <Franciman> | maerwald, what is the type of yield x >> yield x ? |
2021-02-15 17:00:18 +0100 | <sshine> | merijn, ah. so Setup.hs is the installer. I've literally ignored that file for years. :-D |
2021-02-15 17:00:22 +0100 | <merijn> | sshine: The way to access read-only data from code is: https://cabal.readthedocs.io/en/latest/cabal-package.html#accessing-data-files-from-package-code |
2021-02-15 17:00:38 +0100 | <sshine> | merijn, thx! |
2021-02-15 17:00:43 +0100 | <maerwald> | Franciman: yield creates a singleton stream |
2021-02-15 17:00:47 +0100 | <merijn> | sshine: Well, it's not so much an installer as it is "the interface that packagers wrap to control installation" |
2021-02-15 17:01:14 +0100 | <Franciman> | if you do yielad x >> yield x, do you get a stream returning two items? |
2021-02-15 17:01:26 +0100 | <maerwald> | you can also just include static data files in your binary |
2021-02-15 17:01:36 +0100 | <maerwald> | that's pretty popular in rust for example |
2021-02-15 17:01:39 +0100 | <merijn> | sshine: Setup.hs exposes a flag to specify the target directory for data files and the Paths_<x> interface makes sure the runtime code gets access to that compile time path |
2021-02-15 17:02:03 +0100 | <sshine> | merijn, you're being very helpful. thanks. |
2021-02-15 17:02:06 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds) |
2021-02-15 17:02:37 +0100 | <merijn> | sshine: So if you instal via stack/cabal-install your code will access the default locations ~/.cabal/store/.../your-package and whatever stack uses |
2021-02-15 17:02:58 +0100 | <merijn> | sshine: If someone creates a distro package using Setup.hs then your code will use whatever they specify during packaging |
2021-02-15 17:03:04 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 17:03:12 +0100 | <Franciman> | merijn, is the Setup.hs a standardized thing? |
2021-02-15 17:03:50 +0100 | <sshine> | Franciman, it's in the Cabal package which both `stack` and `cabal-install` use, so sorta. |
2021-02-15 17:04:07 +0100 | <merijn> | Franciman: Setup.hs *is* the spec of CABAL (in the sense of #1 here: https://gist.github.com/merijn/8152d561fb8b011f9313c48d876ceb07) |
2021-02-15 17:04:33 +0100 | <Franciman> | tusen takk |
2021-02-15 17:04:51 +0100 | ep1ctetus | (~epictetus@ip72-194-215-136.sb.sd.cox.net) (Ping timeout: 265 seconds) |
2021-02-15 17:05:20 +0100 | <merijn> | Franciman: See also: https://cabal.readthedocs.io/en/latest/setup-commands.html |
2021-02-15 17:05:56 +0100 | <Franciman> | I want to create my own package manager |
2021-02-15 17:05:57 +0100 | <maerwald> | I don't see where Setup.hs is *specced* |
2021-02-15 17:06:09 +0100 | goepsilongo | (~goepsilon@2603-7000-ab00-62ed-0000-0000-0000-0c67.res6.spectrum.com) (Quit: WeeChat 3.0) |
2021-02-15 17:06:17 +0100 | <Franciman> | and have a universal way of building |
2021-02-15 17:06:22 +0100 | <Franciman> | so Setup.hs is cool |
2021-02-15 17:06:26 +0100 | <Franciman> | ty |
2021-02-15 17:07:06 +0100 | <maerwald> | it looks implementation defined to me |
2021-02-15 17:08:09 +0100 | <merijn> | maerwald: Currently, yes, because no one has kept the original spec up to date, afaik |
2021-02-15 17:08:17 +0100 | <merijn> | maerwald: The original is here: https://www.haskell.org/cabal/proposal/pkg-spec.pdf |
2021-02-15 17:08:19 +0100 | <Franciman> | is it my understanding that cabal-install is just a build system? |
2021-02-15 17:08:22 +0100 | <Franciman> | and not a package manager? |
2021-02-15 17:08:44 +0100 | <maerwald> | those terms are not as well defined as you might want anyway |
2021-02-15 17:08:58 +0100 | <sshine> | Franciman, https://gist.github.com/merijn/8152d561fb8b011f9313c48d876ceb07 :-D |
2021-02-15 17:09:56 +0100 | <maerwald> | cabal-install is more of a package manager, since it's the cli tool |
2021-02-15 17:10:20 +0100 | <maerwald> | the build system is .cabal file format (and Setup.hs etc) |
2021-02-15 17:10:33 +0100 | <maerwald> | thank god we have the same name for 5 different things |
2021-02-15 17:10:57 +0100 | <Franciman> | :) |
2021-02-15 17:11:08 +0100 | <sshine> | maerwald, you mean cabal, cabal-install, Cabal, CABAL, and The Haskell Cabal? :-D |
2021-02-15 17:11:34 +0100 | <sshine> | wait, .cabal. |
2021-02-15 17:11:48 +0100 | <Franciman> | ok I understand |
2021-02-15 17:11:50 +0100 | <Franciman> | ty |
2021-02-15 17:12:04 +0100 | <sshine> | I like how you said "I understand" after I just mentioned 6 things that are all named the same, haha. |
2021-02-15 17:12:36 +0100 | <maerwald> | it means "ok, shut up, I'm back to netflix", but in a polite way :) |
2021-02-15 17:12:59 +0100 | <maerwald> | also, cabal.project... what is that? |
2021-02-15 17:13:10 +0100 | <maerwald> | now its cabal. instead of .cabal |
2021-02-15 17:13:24 +0100 | <Franciman> | LOL |
2021-02-15 17:13:41 +0100 | <maerwald> | "how do we name project files...?" hmmm |
2021-02-15 17:13:43 +0100 | <Franciman> | nono I was finishing the reading of your comments |
2021-02-15 17:13:55 +0100 | <merijn> | maerwald: Well, do you have a better name? |
2021-02-15 17:14:07 +0100 | <merijn> | Naming thing's hard >.> |
2021-02-15 17:14:08 +0100 | <Franciman> | stack.yaml |
2021-02-15 17:14:12 +0100 | <maerwald> | merijn: cabal.yaml |
2021-02-15 17:14:12 +0100 | <Franciman> | *flame starts* |
2021-02-15 17:14:21 +0100 | frozenErebus | (~frozenEre@94.128.81.133) (Ping timeout: 264 seconds) |
2021-02-15 17:14:28 +0100 | <merijn> | YAML is never better than anything |
2021-02-15 17:14:37 +0100 | <sshine> | maerwald, we definitely need two different project files, foo.cabal and cabal.project, that work slightly differently. also, we want package.json and stack.yaml, just so we have Cabal (the file format), YAML *and* JSON. |
2021-02-15 17:14:41 +0100 | <merijn> | YAML is a *god* awful format |
2021-02-15 17:14:57 +0100 | <maerwald> | sshine: my brain shut off half way through your sentence, but I agree :D |
2021-02-15 17:15:19 +0100 | sshine | looks around the room for obligatory Dhall remark. |
2021-02-15 17:15:25 +0100 | <merijn> | sshine: "work slightly differently"? In what way is the function of cabal.project and .cabal remotely related? |
2021-02-15 17:15:43 +0100 | <maerwald> | merijn: ah, it's marvellous, you can specify ghc options in both |
2021-02-15 17:15:54 +0100 | <merijn> | maerwald: Sure. So? |
2021-02-15 17:15:55 +0100 | <maerwald> | and let the user figure out which one is active in what circumtance |
2021-02-15 17:15:57 +0100 | <Franciman> | I think the best format is Scheme |
2021-02-15 17:15:59 +0100 | <Franciman> | _change my mind_ |
2021-02-15 17:16:18 +0100 | <merijn> | maerwald: Users should never deal with cabal.project |
2021-02-15 17:16:20 +0100 | <sshine> | merijn, I have no idea! I just read the docs saying "The general syntax of a cabal.project file is similar to that of a Cabal file: there are a number of fields, some of which live inside stanzas: ..." and assumed they live in the same domain and share syntax 🤷 |
2021-02-15 17:16:24 +0100 | <merijn> | If they are, that's on you |
2021-02-15 17:16:33 +0100 | <maerwald> | merijn: I'm a user |
2021-02-15 17:16:40 +0100 | <Franciman> | lulz |
2021-02-15 17:16:52 +0100 | <sshine> | merijn, it's just funny: cabal.project isn't a Cabal file? :-D |
2021-02-15 17:16:59 +0100 | <sshine> | who's on first base? |
2021-02-15 17:17:18 +0100 | <merijn> | sshine: The distinction is this: .cabal files specify a package/how to build, in the abstract sense for long term packaging (like Hackage) |
2021-02-15 17:17:46 +0100 | <maerwald> | sshine: yeah, they basically invented 3 new file extensions: project, freeze and local |
2021-02-15 17:17:50 +0100 | <maerwald> | and none of them make much sense |
2021-02-15 17:17:55 +0100 | <merijn> | sshine: cabal.project is a file that specify "a specific build setup on a specific machine" (i.e. it is for developers of a package, not users) |
2021-02-15 17:18:31 +0100 | <dcoutts> | One has to remember that there are two roles: package author and package builder. Sometimes you're one person filling both roles, but often they're different people. |
2021-02-15 17:18:53 +0100 | <merijn> | sshine: As developer tool/environment, cabal.project lets you override/change/whatever the details of the .cabal file in ways that are useful/good for *developers* but not for *users* |
2021-02-15 17:19:26 +0100 | <maerwald> | merijn: in reality, users (builders) will make use of cabal.project as well |
2021-02-15 17:19:29 +0100 | <merijn> | sshine: For example, as a package developer, I may want my unreleased development version to depend on other unreleased development versions |
2021-02-15 17:19:57 +0100 | <dcoutts> | Package builders use the project file. Package authors use the package file. If you fill both roles you'll use both. |
2021-02-15 17:20:16 +0100 | <merijn> | sshine: Which is what cabal.project lets you do, but .cabal won't, because depending on unreleased packages is obviously not something that makes sense for users of a package |
2021-02-15 17:20:46 +0100 | <maerwald> | merijn: you're assuming that hackage works and doesn't require you to constantly fork stuff |
2021-02-15 17:21:25 +0100 | goepsilongo | (~goepsilon@2603-7000-ab00-62ed-0000-0000-0000-0c67.res6.spectrum.com) |
2021-02-15 17:21:38 +0100 | <merijn> | maerwald: I'm well aware that your approach to Haskell is "fork everything personally and make your own copy", but lots of people don't seem to have that problem. |
2021-02-15 17:21:45 +0100 | <merijn> | maerwald: I'm not assuming anything |
2021-02-15 17:21:46 +0100 | <maerwald> | merijn: erm no |
2021-02-15 17:22:02 +0100 | <merijn> | I'm saying "there's two different roles which have their own file" |
2021-02-15 17:22:23 +0100 | <maerwald> | merijn: I provided PRs to all the libs I used for e.g. ghcup, but most of them never got a reply |
2021-02-15 17:22:35 +0100 | <maerwald> | also see the thread on the ML |
2021-02-15 17:22:37 +0100 | <maerwald> | it's a known issue |
2021-02-15 17:22:52 +0100 | <sshine> | it is a problem. it is kinda demotivating. |
2021-02-15 17:24:02 +0100 | <merijn> | Trying to combat open source maintainer burnout by complaining about unresponsiveness of burned out maintainers seems an interesting strategy, unlikely to succeed :) |
2021-02-15 17:24:34 +0100 | <sshine> | I attended a Perl conference in 2018 or 2019 where, prior to the conference, there had been a hackathon aimed at improving various things. in that hackathon, authors of something like 20-25% of all packages on CPAN were present in one room. I think that is both impressive and scary. I guess we have a different problem in the Haskell package ecosystem :) |
2021-02-15 17:24:35 +0100 | <maerwald> | merijn: that's not what I said. The solution is to appoint co-maintainers before you figure out you're burned out |
2021-02-15 17:24:57 +0100 | <maerwald> | edward does that since years and it works well, other maintainers don't |
2021-02-15 17:26:25 +0100 | <merijn> | maerwald: That problem is entirely orthogonal to tooling, though |
2021-02-15 17:26:44 +0100 | <maerwald> | yeah, I've no idea why we're talking about this |
2021-02-15 17:26:50 +0100 | <maerwald> | :D |
2021-02-15 17:27:02 +0100 | <merijn> | We were talking tooling and different roles, then you complained about Hackage not working and requiring people to fork stuff |
2021-02-15 17:27:28 +0100 | <merijn> | None of which seems relevant to the role separation related to .cabal and cabal.project |
2021-02-15 17:27:35 +0100 | frozenErebus | (~frozenEre@94.128.81.133) |
2021-02-15 17:27:56 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-02-15 17:28:10 +0100 | <maerwald> | we're talking en passe, I guess |
2021-02-15 17:30:08 +0100 | <merijn> | maerwald: Well, the only reason behind your comment I can figure out "but I usually have to be both roles", but "I am usually both roles" seems like a poor reason not to separate the concerns of both roles into different files |
2021-02-15 17:30:56 +0100 | <maerwald> | merijn: I wasn't arguing against the separation |
2021-02-15 17:31:08 +0100 | <maerwald> | just pointing out that users are exposed to both, imo |
2021-02-15 17:31:23 +0100 | <maerwald> | in a lot of cases, at least |
2021-02-15 17:31:34 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-02-15 17:33:29 +0100 | borne | (~fritjof@200116b864008e00d8bba186ea6b909e.dip.versatel-1u1.de) (Ping timeout: 272 seconds) |
2021-02-15 17:33:59 +0100 | borne | (~fritjof@200116b864008e00d8bba186ea6b909e.dip.versatel-1u1.de) |
2021-02-15 17:39:46 +0100 | ixaxaar | (~ixaxaar@49.207.197.94) |
2021-02-15 17:39:47 +0100 | Narinas | (~Narinas@189.223.179.61.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-15 17:40:49 +0100 | Narinas | (~Narinas@189.223.179.61.dsl.dyn.telnor.net) |
2021-02-15 17:41:35 +0100 | LKoen_ | (~LKoen@96.252.88.92.rev.sfr.net) (Remote host closed the connection) |
2021-02-15 17:42:05 +0100 | idhugo_ | (~idhugo@80-62-117-97-mobile.dk.customer.tdc.net) |
2021-02-15 17:45:36 +0100 | idhugo__ | (~idhugo@130.225.16.16) |
2021-02-15 17:45:58 +0100 | ep1ctetus | (~epictetus@ip72-194-215-136.sb.sd.cox.net) |
2021-02-15 17:46:22 +0100 | LKoen | (~LKoen@96.252.88.92.rev.sfr.net) |
2021-02-15 17:47:28 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-119-56.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-02-15 17:47:46 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-119-56.w86-198.abo.wanadoo.fr) |
2021-02-15 17:48:00 +0100 | idhugo_ | (~idhugo@80-62-117-97-mobile.dk.customer.tdc.net) (Ping timeout: 246 seconds) |
2021-02-15 17:48:05 +0100 | ep1ctetus | (~epictetus@ip72-194-215-136.sb.sd.cox.net) (Read error: Connection reset by peer) |
2021-02-15 17:48:41 +0100 | borne | (~fritjof@200116b864008e00d8bba186ea6b909e.dip.versatel-1u1.de) (Ping timeout: 272 seconds) |
2021-02-15 17:50:02 +0100 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
2021-02-15 17:50:35 +0100 | idhugo_ | (~idhugo@130.225.16.16) |
2021-02-15 17:50:47 +0100 | geekosaur | (82650c7a@130.101.12.122) |
2021-02-15 17:50:58 +0100 | ep1ctetus | (~epictetus@ip72-194-215-136.sb.sd.cox.net) |
2021-02-15 17:51:54 +0100 | conal | (~conal@64.71.133.70) |
2021-02-15 17:52:56 +0100 | idhugo__ | (~idhugo@130.225.16.16) (Ping timeout: 240 seconds) |
2021-02-15 17:53:57 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:91f6:aac5:ae3f:98b4) |
2021-02-15 17:54:11 +0100 | <sshine> | merijn, so is the idea that I run e.g. 'stack install --some-param=/usr/local/share' and then getDataDir :: IO FilePath resolves to that? |
2021-02-15 17:54:18 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds) |
2021-02-15 17:56:24 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2021-02-15 17:57:02 +0100 | bitmapper | (uid464869@gateway/web/irccloud.com/x-jugdutpahsvcqbpy) (Quit: Connection closed for inactivity) |
2021-02-15 17:59:27 +0100 | ph88 | (~ph88@2a02:8109:9e00:7e5c:a5f0:7da4:fcd6:f1eb) (Ping timeout: 268 seconds) |
2021-02-15 17:59:56 +0100 | zaquest | (~notzaques@5.128.210.178) (Ping timeout: 240 seconds) |
2021-02-15 18:02:18 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 18:06:51 +0100 | Nahra | (~Nahra@unaffiliated/nahra) |
2021-02-15 18:06:59 +0100 | mupf | (~micha@v22017094964653601.ultrasrv.de) (Quit: WeeChat 2.9) |
2021-02-15 18:07:29 +0100 | boristheblade | (~boristheb@37-219-251-173.nat.bb.dnainternet.fi) |
2021-02-15 18:07:29 +0100 | mupf | (~micha@v22017094964653601.ultrasrv.de) |
2021-02-15 18:08:49 +0100 | conal | (~conal@64.71.133.70) (Read error: Connection reset by peer) |
2021-02-15 18:10:46 +0100 | <gentauro> | sshine: «… authors of something like 20-25% ofall packages on CPAN were present in one room …» Isn't it the same for the event in Switzerland done by Jasper? |
2021-02-15 18:11:14 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds) |
2021-02-15 18:11:16 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) |
2021-02-15 18:11:30 +0100 | zaquest | (~notzaques@5.128.210.178) |
2021-02-15 18:13:23 +0100 | <danza> | sshine, if you want static files to be shared between different packages, probably the solution is to handle this in your application logic |
2021-02-15 18:13:23 +0100 | gentauro | done by Jasper and many others |
2021-02-15 18:14:00 +0100 | conal | (~conal@64.71.133.70) |
2021-02-15 18:14:03 +0100 | <danza> | if you want just to add some static files to be used by a single package, then there is no need for options passed to `stack install` |
2021-02-15 18:14:08 +0100 | <Franciman> | hi danza |
2021-02-15 18:14:17 +0100 | <danza> | hey Franciman :) |
2021-02-15 18:14:23 +0100 | <Franciman> | :) |
2021-02-15 18:16:31 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-02-15 18:17:23 +0100 | maier | (~maier@i59F67B70.versanet.de) (Quit: Lost terminal) |
2021-02-15 18:19:06 +0100 | bitmagie | (~Thunderbi@200116b806b8a300e0c422df71fa9953.dip.versatel-1u1.de) |
2021-02-15 18:19:27 +0100 | bitmagie | (~Thunderbi@200116b806b8a300e0c422df71fa9953.dip.versatel-1u1.de) (Client Quit) |
2021-02-15 18:20:10 +0100 | bitmagie | (~Thunderbi@200116b806b8a300e0c422df71fa9953.dip.versatel-1u1.de) |
2021-02-15 18:20:36 +0100 | bitmagie | (~Thunderbi@200116b806b8a300e0c422df71fa9953.dip.versatel-1u1.de) (Client Quit) |
2021-02-15 18:21:04 +0100 | goepsilongo | (~goepsilon@2603-7000-ab00-62ed-0000-0000-0000-0c67.res6.spectrum.com) (Quit: WeeChat 3.0) |
2021-02-15 18:22:18 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 18:23:24 +0100 | jamm_ | (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
2021-02-15 18:25:05 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-02-15 18:26:19 +0100 | bitmagie | (~Thunderbi@200116b806b8a300e0c422df71fa9953.dip.versatel-1u1.de) |
2021-02-15 18:26:49 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-15 18:27:01 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds) |
2021-02-15 18:28:19 +0100 | bitmagie | (~Thunderbi@200116b806b8a300e0c422df71fa9953.dip.versatel-1u1.de) (Client Quit) |
2021-02-15 18:28:23 +0100 | kuribas | (~user@ptr-25vy0i99dyv62vdc1ue.18120a2.ip6.access.telenet.be) (Remote host closed the connection) |
2021-02-15 18:29:35 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 18:30:14 +0100 | Franciman | (~francesco@host-82-49-79-189.retail.telecomitalia.it) (Quit: Leaving) |
2021-02-15 18:31:56 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-02-15 18:33:01 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-15 18:36:17 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds) |
2021-02-15 18:38:02 +0100 | boxscape | (4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) (Quit: Connection closed) |
2021-02-15 18:38:02 +0100 | xff0x | (~xff0x@2001:1a81:5334:9d00:2035:d6b3:d6fb:5680) (Ping timeout: 260 seconds) |
2021-02-15 18:38:37 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-02-15 18:38:38 +0100 | xff0x | (~xff0x@2001:1a81:5334:9d00:bb11:df35:e496:c5c1) |
2021-02-15 18:38:49 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-15 18:38:52 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 18:41:15 +0100 | puffnfresh_ | (~puffnfres@45.76.124.5) (Quit: ZNC 1.8.0 - https://znc.in) |
2021-02-15 18:42:51 +0100 | puffnfresh_ | (~puffnfres@45.76.124.5) |
2021-02-15 18:45:01 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-02-15 18:45:31 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-02-15 18:45:48 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds) |
2021-02-15 18:45:59 +0100 | slack1256 | (~slack1256@45.4.2.52) |
2021-02-15 18:46:30 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
2021-02-15 18:46:36 +0100 | whitten | (c75a9d0b@199.90.157.11) |
2021-02-15 18:47:27 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-119-56.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-02-15 18:47:46 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-119-56.w86-198.abo.wanadoo.fr) |
2021-02-15 18:49:45 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 240 seconds) |
2021-02-15 18:50:41 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-15 18:51:43 +0100 | hseg | (~gesh@IGLD-84-228-239-97.inter.net.il) |
2021-02-15 18:53:15 +0100 | son0p | (~son0p@181.58.39.182) (Quit: Lost terminal) |
2021-02-15 18:53:28 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0.1) |
2021-02-15 18:54:05 +0100 | slack1256 | (~slack1256@45.4.2.52) (Ping timeout: 265 seconds) |
2021-02-15 18:57:48 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 18:58:22 +0100 | mupf | (~micha@v22017094964653601.ultrasrv.de) (Quit: WeeChat 3.0) |
2021-02-15 19:00:42 +0100 | mupf | (~micha@v22017094964653601.ultrasrv.de) |
2021-02-15 19:01:14 +0100 | srhb | (sid400352@NixOS/user/srhb) (Ping timeout: 264 seconds) |
2021-02-15 19:01:23 +0100 | dani- | (sid341953@gateway/web/irccloud.com/x-xwlfrrleofhiyzmn) (Ping timeout: 260 seconds) |
2021-02-15 19:01:26 +0100 | <sm[m]> | sshine: another approach, and the most practical one IMHO, is to embed data files in your executable. That way it can work without depending on a particular install method |
2021-02-15 19:01:44 +0100 | ghuntley | (sid16877@gateway/web/irccloud.com/x-sdjwqtshmjczadqw) (Ping timeout: 268 seconds) |
2021-02-15 19:01:51 +0100 | ocharles | (sid30093@musicbrainz/user/ocharles) (Read error: Connection reset by peer) |
2021-02-15 19:01:53 +0100 | <sm[m]> | and can keep working without depending on particular filesystem state |
2021-02-15 19:01:58 +0100 | Kamuela | (sid111576@gateway/web/irccloud.com/x-dslzrevvxrjnszte) (Ping timeout: 260 seconds) |
2021-02-15 19:01:58 +0100 | milessabin | (sid86799@gateway/web/irccloud.com/x-gczjgphsfdxbizpq) (Ping timeout: 260 seconds) |
2021-02-15 19:02:02 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
2021-02-15 19:02:05 +0100 | ocharles | (sid30093@musicbrainz/user/ocharles) |
2021-02-15 19:02:07 +0100 | srhb | (sid400352@NixOS/user/srhb) |
2021-02-15 19:02:31 +0100 | dani- | (sid341953@gateway/web/irccloud.com/x-opdkvfjmdgjlowks) |
2021-02-15 19:03:33 +0100 | milessabin | (sid86799@gateway/web/irccloud.com/x-uhwnuarrughueshe) |
2021-02-15 19:03:45 +0100 | carlomagno1 | (~cararell@148.87.23.11) |
2021-02-15 19:03:56 +0100 | idhugo_ | (~idhugo@130.225.16.16) (Ping timeout: 240 seconds) |
2021-02-15 19:03:58 +0100 | ghuntley | (sid16877@gateway/web/irccloud.com/x-vtpfnlotgnkvkxhw) |
2021-02-15 19:03:59 +0100 | Kamuela | (sid111576@gateway/web/irccloud.com/x-irfjzeihbihfpcqu) |
2021-02-15 19:04:27 +0100 | carlomagno | (~cararell@148.87.23.11) (Ping timeout: 256 seconds) |
2021-02-15 19:05:51 +0100 | mud | (~mud@unaffiliated/kadoban) |
2021-02-15 19:09:32 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-15 19:11:19 +0100 | ph88 | (~ph88@2a02:8109:9e00:7e5c:a5f0:7da4:fcd6:f1eb) |
2021-02-15 19:11:33 +0100 | bitmapper | (uid464869@gateway/web/irccloud.com/x-gappxernotuudgxa) |
2021-02-15 19:13:10 +0100 | <NieDzejkob> | I'm reading this document on typechecking with GADTs. Since the parse function is implemented in Template Haskell, does this mean that the typechecker described has a runtime dependency on GHC? http://okmij.org/ftp/tagless-final/typed-compilation.html |
2021-02-15 19:14:08 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 256 seconds) |
2021-02-15 19:15:58 +0100 | <merijn> | NieDzejkob: Template Haskell is compile time |
2021-02-15 19:16:04 +0100 | <merijn> | So, no |
2021-02-15 19:16:23 +0100 | rajivr | (uid269651@gateway/web/irccloud.com/x-jjwlibcbhlreeuhn) (Quit: Connection closed for inactivity) |
2021-02-15 19:17:43 +0100 | deja | (~deja@213162080090.public.t-mobile.at) (Quit: requested) |
2021-02-15 19:19:16 +0100 | hnOsmium0001 | (uid453710@gateway/web/irccloud.com/x-xzxwzcbrnrsklakp) |
2021-02-15 19:20:20 +0100 | deja | (~deja@213162080090.public.t-mobile.at) |
2021-02-15 19:21:46 +0100 | bnbgg_ | (uid454564@gateway/web/irccloud.com/x-wmmvfcpjvawodsxk) (Quit: Connection closed for inactivity) |
2021-02-15 19:21:52 +0100 | <monochrom> | With staged and/or meta programming, you now have two "compile time"s and two "run time"s. |
2021-02-15 19:22:29 +0100 | <NieDzejkob> | oh, I think I see what's happening. Their example runs the parser at compile time |
2021-02-15 19:22:37 +0100 | <merijn> | monochrom: Eh, you're underestimating |
2021-02-15 19:22:53 +0100 | <merijn> | monochrom: With staged compilation we can have as many compile times as we like! |
2021-02-15 19:23:06 +0100 | <monochrom> | Yeah yeah details. |
2021-02-15 19:23:14 +0100 | <merijn> | monochrom: The limitation to just one stage in Template Haskell is fairly arbitrary and sad :( |
2021-02-15 19:23:21 +0100 | <NieDzejkob> | is there a way of lifting an untyped expression into a GADT typed expression without a run of GHC in the middle? |
2021-02-15 19:23:53 +0100 | <merijn> | NieDzejkob: Depends what you mean? |
2021-02-15 19:24:54 +0100 | rdivyanshu | (uid322626@gateway/web/irccloud.com/x-khsbgkvcrzwdbncz) (Quit: Connection closed for inactivity) |
2021-02-15 19:25:30 +0100 | raehik1 | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds) |
2021-02-15 19:25:39 +0100 | <NieDzejkob> | I guess I'd like to write something like parse :: String -> Expr and typecheck :: Expr -> Either TypeError (TExpr ty) |
2021-02-15 19:25:41 +0100 | <monochrom> | Have no untyped expressions in the first place? Then there is nothing to run, any time. |
2021-02-15 19:26:12 +0100 | <merijn> | NieDzejkob: That is, generally, a recipe for pain :) |
2021-02-15 19:26:18 +0100 | <merijn> | NieDzejkob: You'd have to CPS it |
2021-02-15 19:26:32 +0100 | <NieDzejkob> | as in continuation passing? |
2021-02-15 19:26:55 +0100 | <merijn> | "Expr -> (forall ty . TExpr ty -> Either TypeError Foo) -> Either TypeError Foo" <- something like that |
2021-02-15 19:26:55 +0100 | <NieDzejkob> | perhaps there's some ghc extension to do that for me? |
2021-02-15 19:26:59 +0100 | <monochrom> | Pretty sure "Expr -> Either TypeError (TExpr ty)" is the wrong type. |
2021-02-15 19:27:14 +0100 | <NieDzejkob> | yeah, I'd need something like exists ty. TExpr ty |
2021-02-15 19:28:03 +0100 | <merijn> | NieDzejkob: Yeah, either you do an existential wrapping of TExpr via "data SomeExpr = forall ty . SomeExpr (TExpr ty)" or you take the Rank2 CPS approach I mentioned before |
2021-02-15 19:28:11 +0100 | <merijn> | NieDzejkob: Those are your only options |
2021-02-15 19:28:37 +0100 | Aquazi | (uid312403@gateway/web/irccloud.com/x-hwiundvvsjogiwru) |
2021-02-15 19:29:52 +0100 | turion | (~turion@2a02:810d:8abf:c4a8:ec49:8e35:b593:1422) |
2021-02-15 19:32:33 +0100 | natechan | (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds) |
2021-02-15 19:33:08 +0100 | <NieDzejkob> | okay, say I do the wrapping like that and now I want to 'lift' a forall ty. TExpr ty -> TExpr ty -> TExpr ty into a SomeExpr -> SomeExpr -> Either TypesDiffer SomeExpr. Is that possible? |
2021-02-15 19:33:08 +0100 | <monochrom> | I think the section "Typed compilation to HOAS as emulation of staging" doesn't use TH? |
2021-02-15 19:36:50 +0100 | <NieDzejkob> | looks like the first link of Typed compilation via GADTs doesn't either |
2021-02-15 19:37:56 +0100 | xff0x | (~xff0x@2001:1a81:5334:9d00:bb11:df35:e496:c5c1) (Ping timeout: 240 seconds) |
2021-02-15 19:38:48 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
2021-02-15 19:38:51 +0100 | xff0x | (~xff0x@2001:1a81:5334:9d00:9872:1d01:b37b:25f0) |
2021-02-15 19:39:21 +0100 | DirefulSalt | (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) |
2021-02-15 19:39:52 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-15 19:42:34 +0100 | Wuzzy | (~Wuzzy@p5b0df671.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
2021-02-15 19:45:15 +0100 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 246 seconds) |
2021-02-15 19:46:03 +0100 | superstar64 | (6ccefa7c@108-206-250-124.lightspeed.miamfl.sbcglobal.net) |
2021-02-15 19:46:38 +0100 | <superstar64> | i just realized you can use operators as arguments `f (!) a b = a ! b` |
2021-02-15 19:46:56 +0100 | <merijn> | superstar64: Correct :) |
2021-02-15 19:47:24 +0100 | <superstar64> | how useful is it though? |
2021-02-15 19:47:27 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-119-56.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-02-15 19:47:33 +0100 | <merijn> | "it depends" |
2021-02-15 19:47:46 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-119-56.w86-198.abo.wanadoo.fr) |
2021-02-15 19:50:04 +0100 | thongpv87 | (~thongpv87@103.6.151.121) |
2021-02-15 19:50:31 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:91f6:aac5:ae3f:98b4) (Remote host closed the connection) |
2021-02-15 19:51:47 +0100 | Helena | (d9498b5b@gateway/web/cgi-irc/kiwiirc.com/ip.217.73.139.91) |
2021-02-15 19:52:24 +0100 | natechan | (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-02-15 19:53:10 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
2021-02-15 19:53:13 +0100 | elliott__ | (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) |
2021-02-15 19:55:19 +0100 | mastarija | (~mastarija@93-136-136-241.adsl.net.t-com.hr) |
2021-02-15 19:55:28 +0100 | <swarmcollective> | Useful for pattern matching? A special implementation when a specific operator is passed? |
2021-02-15 19:55:42 +0100 | geekosaur | (82650c7a@130.101.12.122) (Ping timeout: 240 seconds) |
2021-02-15 19:55:57 +0100 | <merijn> | swarmcollective: No |
2021-02-15 19:56:04 +0100 | <merijn> | swarmcollective: That doesn't check for specific operators |
2021-02-15 19:56:20 +0100 | <merijn> | swarmcollective: It's just defining a function argument whose variable name is an operator |
2021-02-15 19:56:41 +0100 | <merijn> | :t let foo (!) x y = x ! y in foo |
2021-02-15 19:56:42 +0100 | <lambdabot> | (t1 -> t2 -> t3) -> t1 -> t2 -> t3 |
2021-02-15 19:56:50 +0100 | <merijn> | > let foo (!) x y = x ! y in foo (+) 3 5 |
2021-02-15 19:56:52 +0100 | <lambdabot> | 8 |
2021-02-15 19:57:05 +0100 | <merijn> | > let foo (!) x y = x ! y in foo elem 3 [1..5] |
2021-02-15 19:57:06 +0100 | <lambdabot> | True |
2021-02-15 19:57:27 +0100 | <merijn> | > let foo (!) x y = x ! y in foo const 3 True |
2021-02-15 19:57:28 +0100 | <lambdabot> | 3 |
2021-02-15 19:57:28 +0100 | <swarmcollective> | Ahhh! :D |
2021-02-15 19:58:16 +0100 | <merijn> | That's the same as "let foo f x y = f x y", except we get to use an operator :) |
2021-02-15 19:58:26 +0100 | <swarmcollective> | :t const |
2021-02-15 19:58:27 +0100 | <lambdabot> | a -> b -> a |
2021-02-15 19:59:13 +0100 | saitamaplus | (uid272474@gateway/web/irccloud.com/x-irdzpaiuvuekrsyx) (Quit: Connection closed for inactivity) |
2021-02-15 19:59:50 +0100 | turion | (~turion@2a02:810d:8abf:c4a8:ec49:8e35:b593:1422) (Quit: Leaving.) |
2021-02-15 20:00:02 +0100 | Helena | (d9498b5b@gateway/web/cgi-irc/kiwiirc.com/ip.217.73.139.91) (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
2021-02-15 20:00:47 +0100 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) |
2021-02-15 20:03:28 +0100 | berberman_ | (~berberman@unaffiliated/berberman) |
2021-02-15 20:04:51 +0100 | berberman | (~berberman@unaffiliated/berberman) (Ping timeout: 272 seconds) |
2021-02-15 20:05:14 +0100 | Ariakenom | (~Ariakenom@2001:9b1:efb:fc00:5936:de4c:8779:9728) |
2021-02-15 20:08:19 +0100 | thc202 | (~thc202@unaffiliated/thc202) (Quit: thc202) |
2021-02-15 20:08:27 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-15 20:10:01 +0100 | DTZUZU_ | (~DTZUZU@207.81.119.43) |
2021-02-15 20:11:03 +0100 | DTZUZU | (~DTZUZU@205.ip-149-56-132.net) (Read error: Connection reset by peer) |
2021-02-15 20:11:35 +0100 | DTZUZU__ | (~DTZUZU@205.ip-149-56-132.net) |
2021-02-15 20:12:05 +0100 | frozenErebus | (~frozenEre@94.128.81.133) (Ping timeout: 240 seconds) |
2021-02-15 20:14:04 +0100 | LKoen | (~LKoen@96.252.88.92.rev.sfr.net) (Read error: Connection reset by peer) |
2021-02-15 20:14:25 +0100 | DTZUZU_ | (~DTZUZU@207.81.119.43) (Ping timeout: 240 seconds) |
2021-02-15 20:14:32 +0100 | LKoen | (~LKoen@96.252.88.92.rev.sfr.net) |
2021-02-15 20:17:53 +0100 | geekosaur | (82650c7a@130.101.12.122) |
2021-02-15 20:18:46 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-02-15 20:22:12 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
2021-02-15 20:23:23 +0100 | shatriff | (~vitaliish@176-52-216-242.irishtelecom.com) |
2021-02-15 20:23:37 +0100 | mizu_no_oto | (~textual@cpe-66-66-222-11.rochester.res.rr.com) |
2021-02-15 20:23:58 +0100 | jamm_ | (~jamm@unaffiliated/jamm) |
2021-02-15 20:24:30 +0100 | mizu_no_oto | (~textual@cpe-66-66-222-11.rochester.res.rr.com) (Client Quit) |
2021-02-15 20:25:42 +0100 | mastarija | (~mastarija@93-136-136-241.adsl.net.t-com.hr) (Remote host closed the connection) |
2021-02-15 20:26:04 +0100 | mastarija | (~mastarija@93-136-136-241.adsl.net.t-com.hr) |
2021-02-15 20:28:17 +0100 | jamm_ | (~jamm@unaffiliated/jamm) (Ping timeout: 260 seconds) |
2021-02-15 20:28:55 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-15 20:32:38 +0100 | mastarija | (~mastarija@93-136-136-241.adsl.net.t-com.hr) (Quit: Leaving) |
2021-02-15 20:34:19 +0100 | raehik1 | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-02-15 20:35:39 +0100 | <monochrom> | I think "foldr (!) z (x:xs) = x ! foldr (!) z xs" can read pretty nicely. Or any symbol you prefer. |
2021-02-15 20:38:51 +0100 | <geekosaur> | there's a few other examples like that too |
2021-02-15 20:38:56 +0100 | <geekosaur> | @src on |
2021-02-15 20:38:56 +0100 | <lambdabot> | (*) `on` f = \x y -> f x * f y |
2021-02-15 20:39:32 +0100 | <geekosaur> | but it's not especially widespread, possibly because it's not that well known |
2021-02-15 20:40:12 +0100 | <merijn> | About as well known as whitespace escaping in string literals :p |
2021-02-15 20:40:39 +0100 | <monochrom> | liftA2 (!) (Just x) (Just y) = Just (x ! y) |
2021-02-15 20:40:57 +0100 | danvet | (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds) |
2021-02-15 20:43:09 +0100 | frozenErebus | (~frozenEre@94.128.81.133) |
2021-02-15 20:45:44 +0100 | Narinas | (~Narinas@189.223.179.61.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-15 20:46:16 +0100 | raehik1 | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
2021-02-15 20:46:17 +0100 | Narinas | (~Narinas@189.223.179.61.dsl.dyn.telnor.net) |
2021-02-15 20:47:23 +0100 | <zzz> | c |
2021-02-15 20:47:27 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-119-56.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-02-15 20:47:46 +0100 | <geekosaur> | d |
2021-02-15 20:47:47 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-119-56.w86-198.abo.wanadoo.fr) |
2021-02-15 20:48:50 +0100 | <monochrom> | /ban you all |
2021-02-15 20:49:12 +0100 | <Clint> | :-O |
2021-02-15 20:49:23 +0100 | <monochrom> | y'all. https://www.smbc-comics.com/comic/second-strike >:) |
2021-02-15 20:49:32 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:91f6:aac5:ae3f:98b4) |
2021-02-15 20:50:35 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2021-02-15 20:51:24 +0100 | lawid | (~quassel@dslb-090-186-198-195.090.186.pools.vodafone-ip.de) (Ping timeout: 246 seconds) |
2021-02-15 20:51:51 +0100 | chele | (~chele@ip5b40237d.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
2021-02-15 20:52:10 +0100 | raehik1 | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-02-15 20:52:29 +0100 | lawid | (~quassel@dslb-090-186-198-195.090.186.pools.vodafone-ip.de) |
2021-02-15 20:52:51 +0100 | <tomsmeding> | My new PC can detect bad parallelisation in haskell. When I run a single-threaded Haskell program with +RTS -N, so using the parallel GC, it uses lots of CPU and my PC makes noise. If I add -qg to disable parallel GC, it uses one core of CPU as expected and makes no noise. |
2021-02-15 20:54:04 +0100 | Lycurgus | (~niemand@cpe-45-46-139-165.buffalo.res.rr.com) |
2021-02-15 20:54:48 +0100 | <hololeap> | i'm having a hard time figuring out the status of -XLinearTypes. is it merged into a version of GHC yet? |
2021-02-15 20:55:06 +0100 | <Lycurgus> | the latest |
2021-02-15 20:55:07 +0100 | <geekosaur> | 9.0 |
2021-02-15 20:55:15 +0100 | <geekosaur> | aka the latest |
2021-02-15 20:55:32 +0100 | <monochrom> | Please use liquid cooling to reduce fan noise. >:) |
2021-02-15 20:55:59 +0100 | <Lycurgus> | early adopters |
2021-02-15 20:56:24 +0100 | <geekosaur> | pretty much. also note that a decent chunk of hackage doesn't work with it yet |
2021-02-15 20:56:55 +0100 | <monochrom> | Please use "ghcup install ghc 9.0.1" to obtain linear types. :) |
2021-02-15 20:57:16 +0100 | <monochrom> | And yeah it doesn't build current Cabal or something. |
2021-02-15 20:57:36 +0100 | <geekosaur> | it requires cabal 3.4 but that should be released at this point |
2021-02-15 20:57:45 +0100 | <hololeap> | ok, i can wait, but it's good to know that's where i can find it |
2021-02-15 20:57:59 +0100 | Lycurgus | don't ever need the hs bleeding edge |
2021-02-15 20:58:58 +0100 | ixaxaar | (~ixaxaar@49.207.197.94) (Ping timeout: 256 seconds) |
2021-02-15 20:59:45 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving) |
2021-02-15 20:59:45 +0100 | lawid | (~quassel@dslb-090-186-198-195.090.186.pools.vodafone-ip.de) (Ping timeout: 240 seconds) |
2021-02-15 21:00:01 +0100 | epicte7us | (~epictetus@ip72-194-215-136.sb.sd.cox.net) |
2021-02-15 21:00:17 +0100 | Mrbuck | (~Mrbuck@gateway/tor-sasl/mrbuck) |
2021-02-15 21:00:25 +0100 | <tomsmeding> | monochrom: I have liquid cooling and the fans are not the issue :p |
2021-02-15 21:01:09 +0100 | <monochrom> | Hrm, the kind of noise that electronic components make when working hard? |
2021-02-15 21:01:22 +0100 | lawid | (~quassel@ipservice-092-219-052-231.092.219.pools.vodafone-ip.de) |
2021-02-15 21:01:26 +0100 | <tomsmeding> | I think it's coil whine, which is I guess what you're going at |
2021-02-15 21:02:01 +0100 | <monochrom> | Yeah that. |
2021-02-15 21:02:23 +0100 | <tomsmeding> | running prime95 (all-core continuous utilisation) gives no noise, but running a busy-loop on each core that sleeps for 1 microsecond every ~10000 iterations gives lots of noise |
2021-02-15 21:02:47 +0100 | <tomsmeding> | I deduce that parallel GC on a single-threaded haskell program does lots of synchronisation :) |
2021-02-15 21:02:52 +0100 | __minoru__shirae | (~shiraeesh@109.166.59.64) |
2021-02-15 21:02:57 +0100 | minoru_shiraeesh | (~shiraeesh@46.34.207.245) (Ping timeout: 264 seconds) |
2021-02-15 21:02:57 +0100 | ep1ctetus | (~epictetus@ip72-194-215-136.sb.sd.cox.net) (Ping timeout: 246 seconds) |
2021-02-15 21:03:28 +0100 | <tomsmeding> | I shall use this in the future to alert me that I've forgotten -qg |
2021-02-15 21:04:56 +0100 | <geekosaur> | just in time for it to not be needed any more? (supposedly it's becoming the default iirc) |
2021-02-15 21:04:59 +0100 | carlomagno1 | (~cararell@148.87.23.11) (Remote host closed the connection) |
2021-02-15 21:05:01 +0100 | frozenErebus | (~frozenEre@94.128.81.133) (Quit: leaving) |
2021-02-15 21:05:03 +0100 | petersen | (~petersen@redhat/juhp) (Ping timeout: 246 seconds) |
2021-02-15 21:05:23 +0100 | <sshine> | merijn, okay, so 'appie_datadir=~/tmp ~/.local/bin/appie' does make getDataDir :: IO FilePath spit out ~/tmp, but is there a way to provide another default when compiling the executable? I thought, actually, that the appie_datadir variable was one you provided when building the app, not when running it. I thought: when the packager compiles the program for distribution, they want to be able to specify |
2021-02-15 21:05:29 +0100 | <sshine> | e.g. /usr/local/share or ~/.local/share, or whatever, and then Setup.hs would move local files to that directory... |
2021-02-15 21:05:38 +0100 | <tomsmeding> | geekosaur: ooh that would be very nice |
2021-02-15 21:05:48 +0100 | shatriff | (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection) |
2021-02-15 21:06:22 +0100 | shatriff | (~vitaliish@176-52-216-242.irishtelecom.com) |
2021-02-15 21:06:31 +0100 | mnrmnaugh | slartibatfast |
2021-02-15 21:06:40 +0100 | carlomagno | (~cararell@148.87.23.11) |
2021-02-15 21:06:59 +0100 | slartibatfast | slartibartfast |
2021-02-15 21:07:02 +0100 | <merijn> | sshine: No, you specify either via flags at compile time or overload with env variable at runtime |
2021-02-15 21:07:12 +0100 | petersen | (~petersen@redhat/juhp) |
2021-02-15 21:07:13 +0100 | slartibartfast | mnrmnaugh |
2021-02-15 21:08:14 +0100 | <monochrom> | This is great. The phenomenon is bidirectional, sound can cause EM activity too, basically the loudspeaker-microphone duality. |
2021-02-15 21:08:15 +0100 | conal | (~conal@64.71.133.70) |
2021-02-15 21:08:18 +0100 | finn_elija | (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 268 seconds) |
2021-02-15 21:08:49 +0100 | <monochrom> | "Real programmers speak very focusedly to the CPU" bwahahahahaha |
2021-02-15 21:09:05 +0100 | <tomsmeding> | real programmers use a dog whistle |
2021-02-15 21:09:15 +0100 | <monochrom> | Heh that's even better |
2021-02-15 21:09:37 +0100 | finn_elija | (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) |
2021-02-15 21:10:01 +0100 | <monochrom> | No wonder real programmers whine all the time. |
2021-02-15 21:11:42 +0100 | <tomsmeding> | :D |
2021-02-15 21:12:37 +0100 | <merijn> | tomsmeding: parallel GC in multi-threaded Haskell is basically just as worthless :p |
2021-02-15 21:13:38 +0100 | lawid_ | (~quassel@ipservice-092-219-052-231.092.219.pools.vodafone-ip.de) |
2021-02-15 21:13:45 +0100 | lawid | (~quassel@ipservice-092-219-052-231.092.219.pools.vodafone-ip.de) (Ping timeout: 264 seconds) |
2021-02-15 21:14:12 +0100 | deviantfero | (~deviantfe@190.150.27.58) (Quit: WeeChat 3.0) |
2021-02-15 21:14:16 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
2021-02-15 21:16:56 +0100 | lawid | (~quassel@dslb-002-202-157-179.002.202.pools.vodafone-ip.de) |
2021-02-15 21:17:09 +0100 | <hololeap> | "Real programmers speak very focusedly to the CPU" -- can we make this a quote? |
2021-02-15 21:17:38 +0100 | Lycurgus | (~niemand@cpe-45-46-139-165.buffalo.res.rr.com) (Quit: Exeunt) |
2021-02-15 21:18:11 +0100 | <geekosaur> | @remember monochrom Real programmers speak very focusedly to the CPU |
2021-02-15 21:18:11 +0100 | <lambdabot> | I will never forget. |
2021-02-15 21:18:41 +0100 | <monochrom> | I think the dog whistle version is better. |
2021-02-15 21:18:53 +0100 | <monochrom> | @remember tomsmeding real programmers use a dog whistle |
2021-02-15 21:18:53 +0100 | <lambdabot> | Good to know. |
2021-02-15 21:19:01 +0100 | kmein | (~weechat@static.173.83.99.88.clients.your-server.de) (Quit: ciao kakao) |
2021-02-15 21:19:13 +0100 | <tomsmeding> | \o/ my first quote |
2021-02-15 21:19:16 +0100 | kmein | (~weechat@static.173.83.99.88.clients.your-server.de) |
2021-02-15 21:19:32 +0100 | <hololeap> | of course, the context is what makes it funny, but it has been ensconced |
2021-02-15 21:20:31 +0100 | <monochrom> | also, even my version, s/speak very focusedly to the CPU/whine at the machine/ would be an infinite improvement |
2021-02-15 21:20:36 +0100 | lawid_ | (~quassel@ipservice-092-219-052-231.092.219.pools.vodafone-ip.de) (Ping timeout: 240 seconds) |
2021-02-15 21:21:11 +0100 | <hololeap> | ensconced i say! |
2021-02-15 21:21:27 +0100 | <monochrom> | the pun on "whine" being both human whine and coil whine |
2021-02-15 21:25:18 +0100 | deviantfero | (~deviantfe@190.150.27.58) |
2021-02-15 21:30:59 +0100 | ph88 | (~ph88@2a02:8109:9e00:7e5c:a5f0:7da4:fcd6:f1eb) (Ping timeout: 272 seconds) |
2021-02-15 21:32:39 +0100 | louk | (~louk@216.164.51.248) |
2021-02-15 21:33:16 +0100 | <louk> | Hi, noob here. |
2021-02-15 21:33:24 +0100 | <louk> | map head [[1], [2], [3]] |
2021-02-15 21:33:28 +0100 | <louk> | [1,2,3] |
2021-02-15 21:33:35 +0100 | usr25 | (~usr25@unaffiliated/usr25) |
2021-02-15 21:33:39 +0100 | <louk> | (sum . map) head [[1], [2], [3]] |
2021-02-15 21:33:42 +0100 | <Uniaika> | > map head [[1], [2], [3]] |
2021-02-15 21:33:43 +0100 | <louk> | error |
2021-02-15 21:33:44 +0100 | <lambdabot> | [1,2,3] |
2021-02-15 21:33:49 +0100 | <louk> | why? |
2021-02-15 21:33:56 +0100 | <sshine> | > sum (map head [[1], [2], [3]]) |
2021-02-15 21:33:58 +0100 | <lambdabot> | 6 |
2021-02-15 21:33:58 +0100 | <Uniaika> | louk: you combine sum and head on each element, not on the result |
2021-02-15 21:34:10 +0100 | <sshine> | > sum $ map head [[1], [2], [3]] |
2021-02-15 21:34:11 +0100 | <lambdabot> | 6 |
2021-02-15 21:34:14 +0100 | <Uniaika> | let's see what the error says |
2021-02-15 21:34:16 +0100 | <Uniaika> | > (sum . map) head [[1], [2], [3]] |
2021-02-15 21:34:18 +0100 | <lambdabot> | error: |
2021-02-15 21:34:18 +0100 | <lambdabot> | • Couldn't match type ‘[b0]’ with ‘[[a0]] -> t’ |
2021-02-15 21:34:18 +0100 | <lambdabot> | Expected type: ([b0] -> b0) -> [[b0]] -> [[a0]] -> t |
2021-02-15 21:34:24 +0100 | <sshine> | > sum $ map head $ [[1], [2], [3]] |
2021-02-15 21:34:26 +0100 | <lambdabot> | 6 |
2021-02-15 21:34:26 +0100 | <Uniaika> | yeah that one is not great |
2021-02-15 21:34:30 +0100 | <sshine> | > sum . map head $ [[1], [2], [3]] |
2021-02-15 21:34:32 +0100 | <lambdabot> | 6 |
2021-02-15 21:34:42 +0100 | <sshine> | > (sum . map head) [[1], [2], [3]] |
2021-02-15 21:34:44 +0100 | <lambdabot> | 6 |
2021-02-15 21:34:45 +0100 | <sshine> | sorry for spam :) |
2021-02-15 21:35:16 +0100 | <monochrom> | Huh what error? |
2021-02-15 21:35:49 +0100 | <monochrom> | OK I see, nevermind. |
2021-02-15 21:36:31 +0100 | <hololeap> | :t sum . map |
2021-02-15 21:36:31 +0100 | <Uniaika> | louk: is that clearer? |
2021-02-15 21:36:32 +0100 | <lambdabot> | (Foldable ((->) [a]), Num [b]) => (a -> b) -> [b] |
2021-02-15 21:36:39 +0100 | <sshine> | :t map head |
2021-02-15 21:36:40 +0100 | <lambdabot> | [[b]] -> [b] |
2021-02-15 21:36:47 +0100 | <louk> | sort of |
2021-02-15 21:37:05 +0100 | <roconnor> | anyone know if Wren is still around? |
2021-02-15 21:37:10 +0100 | <louk> | this (sum . map head) [[1], [2], [3]] |
2021-02-15 21:37:10 +0100 | <louk> | was what I was looking for |
2021-02-15 21:37:43 +0100 | <Uniaika> | roconnor: nope :/ |
2021-02-15 21:38:01 +0100 | <monochrom> | My algebraic perspective: (sum . map) head xs = ((sum . map) head) xs = (sum (map head)) xs = nonsense |
2021-02-15 21:38:18 +0100 | <sshine> | louk, so 'map head' is a function that takes a list of lists of b's, and produces a list of b's. 'sum (map head xss)' takes the sum of the heads of xss, and when you compose functions, 'f (g x)' becomes '(f . g) x'... |
2021-02-15 21:38:30 +0100 | <louk> | But I expected sum . map to create a function which applies map to "head" and a list first and then applies sum |
2021-02-15 21:38:31 +0100 | <roconnor> | oh wren is on twitter. |
2021-02-15 21:38:54 +0100 | <louk> | this doesn't work either: sum . (map head) [[1], [2], [3]] |
2021-02-15 21:39:05 +0100 | turion | (~turion@2a02:810d:8abf:c4a8:ec49:8e35:b593:1422) |
2021-02-15 21:39:45 +0100 | <glguy> | sum . (map head) [[1], [2], [3]] --parses as-- sum . ((map head) [[1], [2], [3]]) |
2021-02-15 21:39:48 +0100 | <geekosaur> | that's no different, because function application is already the highest precedence thing there |
2021-02-15 21:40:09 +0100 | <Uniaika> | yep', it's better to explictly put the parens, like glguy showed you |
2021-02-15 21:40:11 +0100 | <tomsmeding> | louk: that works for single-argument functions |
2021-02-15 21:40:28 +0100 | <tomsmeding> | map takes two arguments before it produces something you can sum |
2021-02-15 21:40:42 +0100 | <hololeap> | louk: that's the same as: \x -> sum ((map head) [[1], [2], [3]] x) |
2021-02-15 21:40:48 +0100 | <louk> | @tomsmedinq but I expect (map head) to create func of one arg |
2021-02-15 21:40:48 +0100 | <lambdabot> | Unknown command, try @list |
2021-02-15 21:40:58 +0100 | <tomsmeding> | louk: true! |
2021-02-15 21:41:04 +0100 | <louk> | true? but...? |
2021-02-15 21:41:11 +0100 | <monochrom> | Do the algebra. |
2021-02-15 21:41:19 +0100 | <sshine> | louk, if you expect 'map head' to be a function of one arg, you'd be right! |
2021-02-15 21:41:43 +0100 | <tomsmeding> | but '(sum . map) head [[1],[2],[3]]' is the same as 'sum (map head) [[1],[2],[3]]' |
2021-02-15 21:42:06 +0100 | <tomsmeding> | whereas you want 'sum (map head [[1],[2],[3]])', which you can write as '(sum . map head) [[1],[2],[3]]' |
2021-02-15 21:42:06 +0100 | <sshine> | louk, that means to convert 'sum (map head xss)' using the 'f (g x) = (f . g) x' rule, you'd want both f and g to be functions of one argument, so f = sum and g = map head? |
2021-02-15 21:42:13 +0100 | <louk> | @tomsmedinq no: |
2021-02-15 21:42:13 +0100 | <lambdabot> | Unknown command, try @list |
2021-02-15 21:42:13 +0100 | <louk> | 'sum (map head) [[1],[2],[3]] |
2021-02-15 21:42:17 +0100 | <louk> | sum (map head) [[1],[2],[3]] |
2021-02-15 21:42:38 +0100 | <louk> | • Couldn't match type ‘[b0]’ with ‘[[Integer]] -> t’ |
2021-02-15 21:42:38 +0100 | <louk> | Expected type: [[b0]] -> [[Integer]] -> t |
2021-02-15 21:42:38 +0100 | <louk> | Actual type: [[b0]] -> [b0] |
2021-02-15 21:42:49 +0100 | <louk> | so they are somehow different |
2021-02-15 21:42:56 +0100 | <tomsmeding> | which doesn't work, because that's passing two arguments to sum: 'map head' and '[[1],[2],[3]]' |
2021-02-15 21:42:57 +0100 | <monochrom> | VERY DIFFERENT |
2021-02-15 21:43:10 +0100 | <hololeap> | louk: `sum (map head)` is very different from `sum . (map head)` |
2021-02-15 21:43:37 +0100 | <monochrom> | f g x = (f g) x ≠ f (g x) |
2021-02-15 21:43:38 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-15 21:43:58 +0100 | <monochrom> | sum (map head) xs = (sum (map head)) xs ≠ sum ((map head) xs) |
2021-02-15 21:44:01 +0100 | <monochrom> | Sleep on that. |
2021-02-15 21:44:36 +0100 | <monochrom> | Sleep on that until you believe it. |
2021-02-15 21:44:54 +0100 | <hololeap> | louk, maybe this would help? https://stackoverflow.com/questions/940382/what-is-the-difference-between-dot-and-dollar-sign?nore… |
2021-02-15 21:45:15 +0100 | Robin[m]2 | (robinrobin@gateway/shell/matrix.org/x-vxihtgxkxfbpdtry) |
2021-02-15 21:46:00 +0100 | <hololeap> | there's a big difference between function application and function composition. they might seem similar at first, but once you understand that the answer will be obvious |
2021-02-15 21:47:00 +0100 | <monochrom> | I didn't find them similar at all. Not even when I was a beginner. |
2021-02-15 21:47:07 +0100 | <hololeap> | `sum (map head)` is _applying_ `(map head)` to the `sum` function |
2021-02-15 21:47:20 +0100 | <merijn> | I would say the reverse |
2021-02-15 21:47:33 +0100 | <merijn> | I would say it's applying "sum" to (map head) |
2021-02-15 21:47:35 +0100 | <louk> | @hololeap I understand theres difference between application and composition. the discussion somehow moved to that but it's not what I want |
2021-02-15 21:47:35 +0100 | <lambdabot> | Unknown command, try @list |
2021-02-15 21:47:36 +0100 | weikum | (~weikum@90.218.153.39) (Ping timeout: 240 seconds) |
2021-02-15 21:47:38 +0100 | <louk> | loop |
2021-02-15 21:47:39 +0100 | Franciman | (~francesco@host-82-49-79-189.retail.telecomitalia.it) |
2021-02-15 21:47:47 +0100 | <monochrom> | It's only that today's beginners learn from "f $ g $ h $ x" and "f . g . h $ x" and get confused. I blame it on $. |
2021-02-15 21:47:54 +0100 | <louk> | sum . (map head) [[1], [2], [3]] |
2021-02-15 21:47:59 +0100 | <louk> | this won'e work |
2021-02-15 21:48:02 +0100 | <louk> | and (sum . (map head)) [[1], [2], [3]] |
2021-02-15 21:48:05 +0100 | <louk> | that is ok |
2021-02-15 21:48:15 +0100 | <monochrom> | With "f (g (h x))" and "(f . g . h) x" it is pretty clear what's going on. |
2021-02-15 21:48:23 +0100 | <merijn> | louk: The precedence of prefix function application is *always* higher than infix operators |
2021-02-15 21:48:29 +0100 | <louk> | so to me dot had more priority than application |
2021-02-15 21:48:38 +0100 | <geekosaur> | you are composing sum with ((map head) [[1], [2], [3]]) |
2021-02-15 21:48:38 +0100 | <dolio> | Well, it doesn't. |
2021-02-15 21:48:38 +0100 | <ski> | application, or `$' ? |
2021-02-15 21:48:44 +0100 | <hololeap> | no, nothing has higher priority than application |
2021-02-15 21:48:54 +0100 | <geekosaur> | record updates do |
2021-02-15 21:49:03 +0100 | <hololeap> | geekosaur: shush |
2021-02-15 21:49:03 +0100 | <monochrom> | Or at least, pretty clear the parse trees are different. (And then we get to talk about semantic equality.) |
2021-02-15 21:49:04 +0100 | <louk> | so a . b c is in fact: |
2021-02-15 21:49:09 +0100 | <louk> | a . (b c)? |
2021-02-15 21:49:12 +0100 | <hololeap> | yes |
2021-02-15 21:49:13 +0100 | <merijn> | louk: Yes |
2021-02-15 21:49:23 +0100 | <geekosaur> | but it also matters what follows it |
2021-02-15 21:49:28 +0100 | <louk> | how? |
2021-02-15 21:49:38 +0100 | <merijn> | "by definition" |
2021-02-15 21:49:55 +0100 | <louk> | ok, I got my answer thanks |
2021-02-15 21:50:00 +0100 | <louk> | will dig deeper |
2021-02-15 21:50:32 +0100 | Nahra | (~Nahra@unaffiliated/nahra) (Quit: leaving) |
2021-02-15 21:50:49 +0100 | <merijn> | louk: (.) is just a function like any other, and per the Haskell Report infix operators are, by definition, lower precedence then prefix function application |
2021-02-15 21:51:04 +0100 | <hololeap> | a . b c d = a . (b c d) ≠ (a . b c) d |
2021-02-15 21:51:38 +0100 | <louk> | how does that work with >>=? |
2021-02-15 21:51:56 +0100 | <merijn> | "the same"? |
2021-02-15 21:52:07 +0100 | <hololeap> | % :i (>>=) |
2021-02-15 21:52:08 +0100 | <yahb> | hololeap: type Monad :: (* -> *) -> Constraint; class Applicative m => Monad m where; (>>=) :: forall a b. m a -> (a -> m b) -> m b; ...; -- Defined in `GHC.Base'; infixl 1 >>= |
2021-02-15 21:53:00 +0100 | <hololeap> | infixl 1 means it has precedence level 1 (very low) |
2021-02-15 21:53:28 +0100 | <ephemient> | $ is lower (infixr 0) |
2021-02-15 21:54:02 +0100 | <hololeap> | and infixl means it's left-associative |
2021-02-15 21:54:43 +0100 | <monochrom> | Show an example actual code you don't understand. |
2021-02-15 21:55:05 +0100 | <ephemient> | although `ma >>= \a -> f $ a` does work out "as expected", due to \ |
2021-02-15 21:55:25 +0100 | <louk> | main = getArgs >>= sum . (map (read :: String -> Int)) |
2021-02-15 21:55:32 +0100 | <louk> | heres how I interpret this code |
2021-02-15 21:55:47 +0100 | <louk> | geArgs returns "IO [String]" |
2021-02-15 21:56:09 +0100 | <ephemient> | but `ma >>= f $ b` is almost certainly not correct, because it parses like `(ma >>= f) $ (b)` |
2021-02-15 21:56:27 +0100 | <monochrom> | OK >>= is level 1, . is level 9, . has higher precedence. |
2021-02-15 21:56:30 +0100 | <louk> | then >>= converts that to "[String]" and at the same time supplies it to composite function of sum . (...) |
2021-02-15 21:56:45 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
2021-02-15 21:56:49 +0100 | <monochrom> | getArgs >>= (sum . map (read :: ...)) |
2021-02-15 21:56:55 +0100 | <ski> | main = (getArgs >>= (sum . (map (read :: String -> Int)))) -- how that's parsed, since `.' binds tighter than `>>=' |
2021-02-15 21:57:12 +0100 | <monochrom> | Stop thinking. Look up the predence table for real. |
2021-02-15 21:57:45 +0100 | <hololeap> | louk, what's the type of `sum . (map (read :: String -> Int))` ? |
2021-02-15 21:57:45 +0100 | <ephemient> | `getArgs :: IO [String]`, `(>>=) :: Monad m => m a -> (a -> m b) -> m b`, therefore `getArgs >>= f` requires `f :: [String] -> IO b` |
2021-02-15 21:57:52 +0100 | <ski> | ("then >>= converts that to \"[String]\"" is also rather .. inaccurate) |
2021-02-15 21:58:01 +0100 | <monochrom> | If you parse it wrong, all the rest of your thinking is just make-believe. |
2021-02-15 21:58:15 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds) |
2021-02-15 21:58:18 +0100 | <monochrom> | Building on sand not solid foundation. |
2021-02-15 21:58:21 +0100 | <louk> | I expect that type is function which takes list and returns int |
2021-02-15 21:58:22 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-02-15 21:58:37 +0100 | ski | . o O ( "order of operations" ) |
2021-02-15 21:58:51 +0100 | <hololeap> | louk, can you show it as it's written in haskell? |
2021-02-15 21:59:14 +0100 | <louk> | here: |
2021-02-15 21:59:28 +0100 | <louk> | :t map (read :: String -> Int) |
2021-02-15 21:59:29 +0100 | <louk> | map (read :: String -> Int) :: [String] -> [Int] |
2021-02-15 21:59:30 +0100 | <lambdabot> | [String] -> [Int] |
2021-02-15 21:59:34 +0100 | <ephemient> | (>>=) :: m a -> (a -> m b) -> m b. in order to apply it to IO [String], m = IO and a = [String], therefore the next argument is [String] -> IO b |
2021-02-15 21:59:40 +0100 | <louk> | it takes list of strings and returns list of ints |
2021-02-15 21:59:47 +0100 | <louk> | and then this is applied to "sum" |
2021-02-15 21:59:54 +0100 | <louk> | sum [int] -> int? |
2021-02-15 21:59:56 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-02-15 22:00:01 +0100 | <hololeap> | ok, so `[String] -> Int` |
2021-02-15 22:00:21 +0100 | <louk> | yes, so I expect the above to be [String] -> [Int] |
2021-02-15 22:00:26 +0100 | <ephemient> | [String] -> [Int] =/= [String] -> IO b |
2021-02-15 22:00:26 +0100 | <louk> | yes, so I expect the above to be [String] -> Int |
2021-02-15 22:00:42 +0100 | <louk> | I understand the error message says that |
2021-02-15 22:00:44 +0100 | <louk> | but |
2021-02-15 22:00:44 +0100 | <hololeap> | what is (>>=) expecting on its right-hand side? |
2021-02-15 22:00:57 +0100 | <monochrom> | What ephemient said. |
2021-02-15 22:01:06 +0100 | <monochrom> | When are you going to listen, for a change? |
2021-02-15 22:01:19 +0100 | borne | (~fritjof@200116b864008e00d8bba186ea6b909e.dip.versatel-1u1.de) |
2021-02-15 22:01:23 +0100 | <monochrom> | Why do you ask, if you won't read answers? |
2021-02-15 22:01:23 +0100 | <louk> | I think >>= takes IO [String] and on the right side calls function with that [String] |
2021-02-15 22:01:26 +0100 | weikum | (~weikum@90.218.153.39) |
2021-02-15 22:01:36 +0100 | <louk> | it's not easy to comprehend those answers |
2021-02-15 22:01:57 +0100 | <monochrom> | Then you ask "what does your answer mean?" not pretend they never happened. |
2021-02-15 22:02:05 +0100 | <monochrom> | I'm done. |
2021-02-15 22:02:23 +0100 | <hololeap> | louk, in this case, since the left hand is `IO [String]`, the right side is expected to be `[String] -> IO a` |
2021-02-15 22:02:43 +0100 | <tomsmeding> | (where a = Int in this case) |
2021-02-15 22:02:52 +0100 | <turion> | louk: Don't worry :) it takes some time |
2021-02-15 22:03:22 +0100 | <hololeap> | `sum . (map (read :: String -> Int))` :: [String] -> Int |
2021-02-15 22:03:43 +0100 | <hololeap> | but we need a function of the type `String -> IO Int` |
2021-02-15 22:04:02 +0100 | <louk> | Okay this is another thing which I was missing |
2021-02-15 22:04:03 +0100 | <NieDzejkob> | okay, I read some more about GADTs. Is there a way of handling type variables in the guest language? I think I would need a way of generating type-level tokens at runtime |
2021-02-15 22:04:04 +0100 | <louk> | (>>=) :: m a -> (a -> m b) -> m b |
2021-02-15 22:04:09 +0100 | <louk> | -> ... m b |
2021-02-15 22:04:30 +0100 | <hololeap> | louk: do you know how to convert a function of the type `[String] -> Int` to a function of the type `[String] -> IO Int` ? |
2021-02-15 22:04:31 +0100 | <louk> | so if I have IO [String] then I must return IO something |
2021-02-15 22:04:44 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-02-15 22:05:13 +0100 | <ski> | to use `>>=', yes the right operand must then be a function computing an `IO'-action as result |
2021-02-15 22:05:17 +0100 | <ephemient> | yes. you cannot* escape IO |
2021-02-15 22:05:46 +0100 | <hololeap> | hint: how do you convert `Int` to `IO Int` (really `Int` to `m Int`, where `m` is any Monad) ? |
2021-02-15 22:06:13 +0100 | <louk> | hololeap: [String] -> IO Int was another thing I am looking how to do. I was searching for "constructor" like IO value |
2021-02-15 22:06:15 +0100 | <ski> | @quote escape.having |
2021-02-15 22:06:15 +0100 | <lambdabot> | shachaf says: You can never escape having learned monads. If you learn two monads, though, you can go back to only knowing one. |
2021-02-15 22:06:28 +0100 | <hololeap> | what function has the signature `Monad m => a -> m a` |
2021-02-15 22:06:43 +0100 | <xsperry> | :t return |
2021-02-15 22:06:45 +0100 | <lambdabot> | Monad m => a -> m a |
2021-02-15 22:06:50 +0100 | <louk> | return? |
2021-02-15 22:07:13 +0100 | <ski> | `IO' is an abstract data type (like `Int',`Integer',`Float',`Double',`Char',`(->)',`Array',..), there are no data constructors exported |
2021-02-15 22:07:16 +0100 | hseg | (~gesh@IGLD-84-228-239-97.inter.net.il) (Quit: WeeChat 3.0) |
2021-02-15 22:07:20 +0100 | <ephemient> | or `pure :: Applicative f => a -> f a` but yeah, same deal |
2021-02-15 22:07:23 +0100 | <superstar64> | louk `pure` works too |
2021-02-15 22:07:24 +0100 | usr25_tm | (~usr25@unaffiliated/usr25) |
2021-02-15 22:07:42 +0100 | <tomsmeding> | and in fact, pure = return |
2021-02-15 22:08:24 +0100 | raehik1 | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.0) |
2021-02-15 22:08:44 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds) |
2021-02-15 22:08:58 +0100 | <hololeap> | louk: correct, so how would you take your function: `sum . (map (read :: String -> Int))` :: [String] -> Int |
2021-02-15 22:09:20 +0100 | <hololeap> | and combine it with `return`, to create a function with the signature `[String] -> IO Int` |
2021-02-15 22:09:45 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
2021-02-15 22:10:50 +0100 | <superstar64> | `(return .) :: Monad m => (a1 -> a2) -> a1 -> m a2` |
2021-02-15 22:11:05 +0100 | usr25 | (~usr25@unaffiliated/usr25) (Ping timeout: 240 seconds) |
2021-02-15 22:11:39 +0100 | <louk> | main = getArgs >>= return . sum . (map (read :: String -> Int)) |
2021-02-15 22:11:45 +0100 | <louk> | this is what compiled |
2021-02-15 22:11:54 +0100 | <louk> | but where the return value went? |
2021-02-15 22:12:02 +0100 | <louk> | I expected it to be program exit code |
2021-02-15 22:12:06 +0100 | <superstar64> | return value? |
2021-02-15 22:12:07 +0100 | <louk> | but |
2021-02-15 22:12:12 +0100 | <louk> | it's main |
2021-02-15 22:12:22 +0100 | <louk> | so I expected return code of main to be visible from shell |
2021-02-15 22:12:41 +0100 | <tomsmeding> | the name 'return' has nothing to do with the 'return' you know from C, C++, Java, Python, Ruby, whatever |
2021-02-15 22:12:53 +0100 | <tomsmeding> | its function is literally: wrap this thing in an IO value |
2021-02-15 22:12:58 +0100 | <tomsmeding> | it does nothing more |
2021-02-15 22:13:01 +0100 | <louk> | I understand |
2021-02-15 22:13:03 +0100 | <geekosaur> | and in any case, the result of main is discarded, only side effects are retained |
2021-02-15 22:13:03 +0100 | <superstar64> | you have to explicitily exit with System.Exit for that https://hackage.haskell.org/package/base-4.14.1.0/docs/System-Exit.html |
2021-02-15 22:13:03 +0100 | <louk> | but |
2021-02-15 22:13:15 +0100 | <geekosaur> | most commonly we do main :: IO () |
2021-02-15 22:13:18 +0100 | <louk> | ah ok, so main is discared |
2021-02-15 22:13:40 +0100 | <louk> | ah ok, so result from main is discared |
2021-02-15 22:13:41 +0100 | <ski> | only the result of its execution is discarded |
2021-02-15 22:13:57 +0100 | <monochrom> | could be useful if I run main in ghci. I sometimes take advantage of that. |
2021-02-15 22:13:59 +0100 | <geekosaur> | but occasionally it's useful to make main a recursive == looping action, so any return type is permitted |
2021-02-15 22:14:25 +0100 | <geekosaur> | I should say result type ot avoid confusing it with `return` |
2021-02-15 22:14:33 +0100 | <superstar64> | louk, try doing `print .` instead of `return .` to make your program have output |
2021-02-15 22:14:42 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2021-02-15 22:14:53 +0100 | <ski> | @hoogle exitWith |
2021-02-15 22:14:54 +0100 | <lambdabot> | System.Exit exitWith :: ExitCode -> IO a |
2021-02-15 22:14:54 +0100 | <lambdabot> | Protolude exitWith :: () => ExitCode -> IO a |
2021-02-15 22:14:54 +0100 | <lambdabot> | BasePrelude exitWith :: () => ExitCode -> IO a |
2021-02-15 22:15:02 +0100 | <ski> | @hoogle Int -> ExitCode |
2021-02-15 22:15:04 +0100 | <lambdabot> | System.Exit ExitFailure :: Int -> ExitCode |
2021-02-15 22:15:04 +0100 | <lambdabot> | GHC.IO.Exception ExitFailure :: Int -> ExitCode |
2021-02-15 22:15:04 +0100 | <lambdabot> | Protolude ExitFailure :: Int -> ExitCode |
2021-02-15 22:15:41 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-02-15 22:16:01 +0100 | <ski> | @type System.Exit.exitWith . System.Exit.ExitFailure =<< readLn |
2021-02-15 22:16:02 +0100 | <lambdabot> | IO b |
2021-02-15 22:17:41 +0100 | fendor_ | (~fendor@178.165.129.143.wireless.dyn.drei.com) |
2021-02-15 22:17:55 +0100 | <ephemient> | exitWith is effectively limited to 8 bits (that's all that POSIX will pass on to the parent process) |
2021-02-15 22:17:57 +0100 | fendor | (~fendor@178.165.129.143.wireless.dyn.drei.com) (Remote host closed the connection) |
2021-02-15 22:18:24 +0100 | <ephemient> | that limitation has nothing to do with Haskell though |
2021-02-15 22:18:59 +0100 | son0p | (~son0p@181.136.122.143) |
2021-02-15 22:19:30 +0100 | fendor_ | fendor |
2021-02-15 22:19:58 +0100 | <merijn> | ephemient: Haskell's Report isn't limited to such petty things as posix, though... |
2021-02-15 22:20:12 +0100 | <ephemient> | as an experiment, you can try `main = exitWith (ExitFailure {-various values-})`, then running your program in a shell, followed by `echo $?` which will print the exit code |
2021-02-15 22:21:30 +0100 | fendor_ | (~fendor@178.165.129.143.wireless.dyn.drei.com) |
2021-02-15 22:21:41 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds) |
2021-02-15 22:22:31 +0100 | <ephemient> | I'm not sure how to print exit status on Windows (don't have one lying around) but in theory those are 32-bit. not sure if the CRT function that GHC RTS calls retains that though |
2021-02-15 22:23:16 +0100 | jedws | (~jedws@101.184.202.248) |
2021-02-15 22:23:18 +0100 | <ski> | % catch (exitWith (ExitFailure 257)) (\(ExitFailure n) -> return n) |
2021-02-15 22:23:18 +0100 | <yahb> | ski: 257 |
2021-02-15 22:24:11 +0100 | Moe_Epsilon | (~Moe_Epsil@195.140.213.38) (Remote host closed the connection) |
2021-02-15 22:25:05 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-02-15 22:25:54 +0100 | forgottenone | (~forgotten@176.42.30.133) (Remote host closed the connection) |
2021-02-15 22:27:16 +0100 | <NieDzejkob> | Oh looks like I'm looking for DataKinds |
2021-02-15 22:27:36 +0100 | <ski> | for your GADTs ? |
2021-02-15 22:30:05 +0100 | conal | (~conal@64.71.133.70) |
2021-02-15 22:30:43 +0100 | <koala_man> | how can I specify that a cabal dependency is on disk, so that cabal won't download and try to compile an older version? |
2021-02-15 22:31:13 +0100 | <koala_man> | I want to build my code with ghc9, but to do that I have to make changes to regex-base and cabal "helpfully" downloads and tries to install the old version |
2021-02-15 22:31:28 +0100 | <dcoutts> | koala_man: list it in your cabal.project file, e.g. point to the local directory or tarball. |
2021-02-15 22:31:29 +0100 | <sclv> | you can use cabal.project files to vendor dependencies |
2021-02-15 22:31:44 +0100 | <sclv> | also head.hackage as a repo often has fixed stuff already |
2021-02-15 22:33:17 +0100 | <NieDzejkob> | ski: yeah, that way the guest type a -> b can correspond to Haskell type TyVar "a" -> TyVar "b" |
2021-02-15 22:33:35 +0100 | fendor | (~fendor@178.165.129.143.wireless.dyn.drei.com) (Remote host closed the connection) |
2021-02-15 22:33:35 +0100 | Varis | (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
2021-02-15 22:33:56 +0100 | <ski> | sounds painful |
2021-02-15 22:34:04 +0100 | fendor_ | fendor |
2021-02-15 22:34:14 +0100 | fendor | (~fendor@178.165.129.143.wireless.dyn.drei.com) (Read error: Connection reset by peer) |
2021-02-15 22:34:30 +0100 | superstar64 | (6ccefa7c@108-206-250-124.lightspeed.miamfl.sbcglobal.net) (Quit: Connection closed) |
2021-02-15 22:34:50 +0100 | leah2 | (~leah@vuxu.org) (Ping timeout: 264 seconds) |
2021-02-15 22:35:06 +0100 | <koala_man> | nice, thanks |
2021-02-15 22:35:25 +0100 | fendor | (~fendor@178.165.129.143.wireless.dyn.drei.com) |
2021-02-15 22:36:15 +0100 | <NieDzejkob> | or, actually, I just need other code to not be able to prove to GHC that the two type variables are the same haskell type... |
2021-02-15 22:36:51 +0100 | borne | (~fritjof@200116b864008e00d8bba186ea6b909e.dip.versatel-1u1.de) (Ping timeout: 272 seconds) |
2021-02-15 22:38:42 +0100 | <NieDzejkob> | I'm probably overengineering this |
2021-02-15 22:40:12 +0100 | louk | (~louk@216.164.51.248) (Quit: Leaving) |
2021-02-15 22:40:37 +0100 | BitcoinMarkets | (~BitcoinMa@217.146.82.202) |
2021-02-15 22:42:39 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds) |
2021-02-15 22:43:02 +0100 | leah2 | (~leah@vuxu.org) |
2021-02-15 22:43:14 +0100 | <monochrom> | koala_man: https://cabal.readthedocs.io/en/3.4/installing-packages.html#local-no-index-repositories can also be handy, in which case you don't need cabal.project and you can override hackage. |
2021-02-15 22:43:48 +0100 | dhouthoo | (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) (Quit: WeeChat 3.0) |
2021-02-15 22:45:40 +0100 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) |
2021-02-15 22:46:59 +0100 | <koala_man> | it was a single line cabal.project which worked well for testing |
2021-02-15 22:47:26 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-119-56.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-02-15 22:47:47 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-119-56.w86-198.abo.wanadoo.fr) |
2021-02-15 22:49:40 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-02-15 22:51:57 +0100 | geekosaur | (82650c7a@130.101.12.122) (Quit: Connection closed) |
2021-02-15 22:54:45 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 240 seconds) |
2021-02-15 22:55:05 +0100 | pie_ | (~pie_bnc]@unaffiliated/pie-/x-0787662) (Ping timeout: 256 seconds) |
2021-02-15 22:55:07 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2021-02-15 22:55:08 +0100 | vancz | (~vancz@unaffiliated/vancz) (Ping timeout: 256 seconds) |
2021-02-15 23:00:35 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds) |
2021-02-15 23:02:43 +0100 | <edwardk> | NieDzejkob: to generate type variables use quantification. this is how ST does it. How reflection does it. |
2021-02-15 23:02:54 +0100 | Deide1 | (~Deide@217.155.19.23) |
2021-02-15 23:02:59 +0100 | <edwardk> | runST :: (forall s. ST s a) -> a |
2021-02-15 23:03:17 +0100 | <edwardk> | there's no other type that will typecheck as equal to that 's'. |
2021-02-15 23:03:36 +0100 | <edwardk> | reify :: a -> (forall s. Reifies s a => Proxy s -> r) -> r |
2021-02-15 23:03:41 +0100 | conal | (~conal@64.71.133.70) |
2021-02-15 23:03:45 +0100 | <edwardk> | same thing |
2021-02-15 23:04:00 +0100 | <edwardk> | which is what makes reflect :: Reifies s a => proxy s -> a -- sound |
2021-02-15 23:04:08 +0100 | <NieDzejkob> | how about named type constructors. Same thing? |
2021-02-15 23:04:16 +0100 | Deide | (~Deide@217.155.19.23) (Ping timeout: 240 seconds) |
2021-02-15 23:04:49 +0100 | <edwardk> | yes, though you'll want do to it more like the cps'd style of reify than runST. |
2021-02-15 23:05:26 +0100 | <edwardk> | niedzejkob :: (forall (s :: MyKind). Proxy s -> r) -> r |
2021-02-15 23:05:35 +0100 | <edwardk> | now 's' looks like a type that inhabits kind MyKind |
2021-02-15 23:06:19 +0100 | <edwardk> | niedzejkob f = f Proxy -- the implementation is also boring |
2021-02-15 23:06:37 +0100 | turion | (~turion@2a02:810d:8abf:c4a8:ec49:8e35:b593:1422) (Ping timeout: 272 seconds) |
2021-02-15 23:06:47 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving) |
2021-02-15 23:06:48 +0100 | pavonia | (~user@unaffiliated/siracusa) (Read error: Connection reset by peer) |
2021-02-15 23:07:01 +0100 | <edwardk> | you need to work inside the call to that function with the 'fresh' type variable, hence the cps'd style |
2021-02-15 23:07:20 +0100 | <edwardk> | well, you can package it up into a GADT |
2021-02-15 23:07:58 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-15 23:08:03 +0100 | <edwardk> | data Box where Box :: forall (s :: MyKind). Proxy s -> Box |
2021-02-15 23:08:05 +0100 | fresheyeball | (~isaac@ec2-35-155-97-88.us-west-2.compute.amazonaws.com) |
2021-02-15 23:08:10 +0100 | dhil | (~dhil@80.208.56.181) (Ping timeout: 256 seconds) |
2021-02-15 23:08:31 +0100 | <edwardk> | and then case mybox of Box (Proxy :: Proxy s) -> ... gives you access to 's' in local scope. |
2021-02-15 23:08:50 +0100 | <edwardk> | and you can make one with 'niedzejkob Box' |
2021-02-15 23:08:54 +0100 | <fresheyeball> | is there a nice tool for automatically providing the church encoding for a given type? |
2021-02-15 23:09:04 +0100 | <edwardk> | or just calling 'Box Proxy' |
2021-02-15 23:09:45 +0100 | <edwardk> | fresheyeball: sounds like a fun project for GHC.Generics |
2021-02-15 23:09:48 +0100 | <tromp> | is there a function Eq a => [a] -> [(Int,a)] that counts number of each element occuring ? |
2021-02-15 23:10:05 +0100 | greety | (bab7262d@186.183.38.45) |
2021-02-15 23:10:35 +0100 | pavonia | (~user@ip5f5bd527.dynamic.kabel-deutschland.de) |
2021-02-15 23:10:37 +0100 | pavonia | Guest4963 |
2021-02-15 23:10:44 +0100 | <edwardk> | if the occurrences of each a's are in run you can use map length . group -- otherwise you're going to need to write something that gathers them |
2021-02-15 23:11:06 +0100 | borne | (~fritjof@200116b864008e00d8bba186ea6b909e.dip.versatel-1u1.de) |
2021-02-15 23:11:30 +0100 | <edwardk> | in the discrimination package, rather than Data.List the 'group' function it offers does such non-adjacent gathering, but requires a stronger constraint than Eq, because with Eq you are stuck O(n^2) |
2021-02-15 23:11:34 +0100 | <tromp> | that would just give the [Int]. but indeed they're not in runs |
2021-02-15 23:11:34 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
2021-02-15 23:11:49 +0100 | <tromp> | yes, can assme Ord |
2021-02-15 23:11:55 +0100 | <tromp> | assume |
2021-02-15 23:11:55 +0100 | <edwardk> | map (length &&& head) . betterGroup |
2021-02-15 23:11:57 +0100 | <edwardk> | ok |
2021-02-15 23:12:06 +0100 | <edwardk> | with Ord its easy enough |
2021-02-15 23:12:49 +0100 | <tromp> | ok, can define that myself. just wondered if it's in some existing module |
2021-02-15 23:14:16 +0100 | <__monty__> | Oh, so this is what happens when Europe goes to bed. edwardk just takes over answering *all* the questions. : ) |
2021-02-15 23:15:08 +0100 | <edwardk> | i think its in one of those foo-extras packages that has 5000 unrelated functions someone needed in their life (john goerzen has one i think, but meh) |
2021-02-15 23:15:44 +0100 | <edwardk> | > toList $ fromListWith (+) ((,1) <$> ["hi","hi","bye","hi"]) |
2021-02-15 23:15:46 +0100 | <lambdabot> | error: |
2021-02-15 23:15:46 +0100 | <lambdabot> | Ambiguous occurrence ‘toList’ |
2021-02-15 23:15:46 +0100 | <lambdabot> | It could refer to |
2021-02-15 23:15:54 +0100 | <edwardk> | > Data.Foldable.toList $ fromListWith (+) ((,1) <$> ["hi","hi","bye","hi"]) |
2021-02-15 23:15:56 +0100 | <lambdabot> | error: |
2021-02-15 23:15:56 +0100 | <lambdabot> | • Variable not in scope: |
2021-02-15 23:15:56 +0100 | <lambdabot> | fromListWith :: (a0 -> a0 -> a0) -> [([Char], t1)] -> t0 a |
2021-02-15 23:16:02 +0100 | <edwardk> | > Data.Foldable.toList $ M.fromListWith (+) ((,1) <$> ["hi","hi","bye","hi"]) |
2021-02-15 23:16:04 +0100 | <lambdabot> | [1,3] |
2021-02-15 23:16:14 +0100 | <edwardk> | > M.toList $ M.fromListWith (+) ((,1) <$> ["hi","hi","bye","hi"]) |
2021-02-15 23:16:16 +0100 | <lambdabot> | [("bye",1),("hi",3)] |
2021-02-15 23:16:26 +0100 | <edwardk> | feel free to flip |
2021-02-15 23:16:39 +0100 | <edwardk> | > fmap Data.Tuple.swap $ M.toList $ M.fromListWith (+) ((,1) <$> ["hi","hi","bye","hi"]) |
2021-02-15 23:16:42 +0100 | <lambdabot> | [(1,"bye"),(3,"hi")] |
2021-02-15 23:16:49 +0100 | <fresheyeball> | is it possible to make a church encoded type pattern matchable with pattern synonyms" |
2021-02-15 23:16:51 +0100 | <fresheyeball> | ? |
2021-02-15 23:16:59 +0100 | <edwardk> | fresheyeball: yes |
2021-02-15 23:17:04 +0100 | <tromp> | thx, edwardk ! |
2021-02-15 23:17:22 +0100 | <edwardk> | though with current pattern synonyms you won't be able to check completeness of the patterns |
2021-02-15 23:17:43 +0100 | <fresheyeball> | that's ok for now |
2021-02-15 23:18:06 +0100 | <fresheyeball> | it's only worth it to do this if I get a performance bump by switiching to church encoding |
2021-02-15 23:18:12 +0100 | <fresheyeball> | right now that is not yet determined |
2021-02-15 23:18:16 +0100 | Guest4963 | (~user@ip5f5bd527.dynamic.kabel-deutschland.de) (Changing host) |
2021-02-15 23:18:16 +0100 | Guest4963 | (~user@unaffiliated/siracusa) |
2021-02-15 23:18:27 +0100 | <fresheyeball> | edwardk: what would that look like? |
2021-02-15 23:18:37 +0100 | <edwardk> | one sec. let me write the library |
2021-02-15 23:18:48 +0100 | <fresheyeball> | lol |
2021-02-15 23:18:49 +0100 | <dolio> | Pattern matching on Church encodings is basically the worst operation. |
2021-02-15 23:19:01 +0100 | <fresheyeball> | dolio: can you expand on that? |
2021-02-15 23:19:12 +0100 | <fresheyeball> | I only want to do this so I can get to compiling faster |
2021-02-15 23:19:37 +0100 | __monty__ | (~toonn@unaffiliated/toonn) (Quit: leaving) |
2021-02-15 23:20:53 +0100 | <edwardk> | church encoding builds a big recursive data type. if you use something like scott-encoding you can peel a single layer off |
2021-02-15 23:21:06 +0100 | <fresheyeball> | I have never heard of scott-encoding |
2021-02-15 23:21:12 +0100 | <edwardk> | pattern matching one layer in church means rebuilding everything in the layers underneath |
2021-02-15 23:21:49 +0100 | <fresheyeball> | I just want to avoid the intemediate data type here |
2021-02-15 23:21:55 +0100 | <edwardk> | think of a list. do you define it church style? List a = forall r. (a -> r -> r) -> r -> r |
2021-02-15 23:21:57 +0100 | <dolio> | Church encoding optimizes some recursive operations at the expense of making one-step pattern matching bad. To peel off the outer layer of an encoded type you must rebuild the rest of the structure. |
2021-02-15 23:22:15 +0100 | <dolio> | It's not just an everything-is-just-faster thing. |
2021-02-15 23:22:28 +0100 | <fresheyeball> | ok so |
2021-02-15 23:22:30 +0100 | <fresheyeball> | newtype Maybe a = Maybe { unMaybe :: forall r. r -> (a -> r) -> r } |
2021-02-15 23:22:34 +0100 | <fresheyeball> | is a church maybe for example |
2021-02-15 23:22:36 +0100 | <edwardk> | or do you define it like data List a = List (forall r. (a -> List a -> r) -> r -> r) |
2021-02-15 23:22:39 +0100 | <fresheyeball> | what would a scott maybe look like? |
2021-02-15 23:22:46 +0100 | <edwardk> | it is both the scott and the church encoding for that type |
2021-02-15 23:22:49 +0100 | <dolio> | For non-recursive types they're the same. |
2021-02-15 23:22:58 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-02-15 23:23:26 +0100 | <fresheyeball> | https://gitlab.com/fresheyeball/Shpadoinkle/-/blob/master/core/Shpadoinkle/Core.hs#L91 |
2021-02-15 23:23:32 +0100 | <fresheyeball> | so nitty gritty here |
2021-02-15 23:23:38 +0100 | <fresheyeball> | this is the type in question |
2021-02-15 23:23:39 +0100 | <edwardk> | notice how 'r' occurs double negated in Church but not explicitly so in Mogensen-Scott? |
2021-02-15 23:23:45 +0100 | Guest4963 | pavonia |
2021-02-15 23:23:57 +0100 | <fresheyeball> | I did some profiling and learned that a good bit of performance is eaten up building this type |
2021-02-15 23:24:06 +0100 | <fresheyeball> | and then traversing it to encode it as another encoding for JavaScript |
2021-02-15 23:24:08 +0100 | Deide1 | Deide |
2021-02-15 23:24:21 +0100 | <edwardk> | if you need to case analyze on it with patterns church is bad. |
2021-02-15 23:24:22 +0100 | <fresheyeball> | I thought perhaps church encoding the thing, would avoid this overhead |
2021-02-15 23:24:31 +0100 | <fresheyeball> | so let's say Scott encoding |
2021-02-15 23:24:41 +0100 | <fresheyeball> | does my approach sound reasonable to you? |
2021-02-15 23:24:47 +0100 | <edwardk> | if you just need to write a function that is defined by cases and recurses the same way all the way down and you can just sort of describe that as a fold like operation its fine |
2021-02-15 23:24:51 +0100 | <dolio> | Scott encodings are equivalent to data types. |
2021-02-15 23:25:14 +0100 | <fresheyeball> | Am I off base thinking that if I changing to a function based encoding with `newtype` will make this go faster? |
2021-02-15 23:25:25 +0100 | average | (uid473595@gateway/web/irccloud.com/x-rcnzlofithcjrydg) (Quit: Connection closed for inactivity) |
2021-02-15 23:25:26 +0100 | <fresheyeball> | is there something else you might recommend to get some speedup here? |
2021-02-15 23:26:00 +0100 | <edwardk> | ChurchHtml m a = forall r. ((Text -> [(Text, Prop m a)] -> [r] -> r) -> JSM RawNode -> Text -> r) |
2021-02-15 23:26:10 +0100 | <edwardk> | then don't use patterns to access it |
2021-02-15 23:26:15 +0100 | <edwardk> | use the big eliminator you have there |
2021-02-15 23:26:21 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
2021-02-15 23:26:25 +0100 | <edwardk> | if you can do it in one pass like that, then church might be a win |
2021-02-15 23:26:51 +0100 | <edwardk> | if you have to look at the outer most constructor then totally change control flow and decide whether you are doing more susbtitution or more pattern matching? then church will be a loss. |
2021-02-15 23:27:01 +0100 | <fresheyeball> | edwardk: the only functions that really use patterns are in that same file |
2021-02-15 23:27:28 +0100 | <fresheyeball> | it's just map and hoist stuff, can those be refactored to not use patterns? |
2021-02-15 23:27:31 +0100 | <fresheyeball> | right now I think yes |
2021-02-15 23:27:52 +0100 | <edwardk> | cataH is already a conversion to church encoding |
2021-02-15 23:28:00 +0100 | <edwardk> | just with the arguments flipped |
2021-02-15 23:28:11 +0100 | <edwardk> | pull the last arg to the front and you get out a church encoded Html m a |
2021-02-15 23:28:15 +0100 | <fresheyeball> | that's a neat observation |
2021-02-15 23:28:22 +0100 | <dolio> | Encoding is only going to make things better if the way it's going to allow you to make some operations asymptotically faster, or not store something in memory or similar. |
2021-02-15 23:28:25 +0100 | <fresheyeball> | I know there is some relationship between church encodings and catamorphisms |
2021-02-15 23:28:37 +0100 | <dolio> | It's not an optimization because the in-memory representation is more efficient than a data type. |
2021-02-15 23:28:39 +0100 | <fresheyeball> | dolio: right |
2021-02-15 23:28:51 +0100 | <fresheyeball> | I don't know if this helps or not yet |
2021-02-15 23:29:04 +0100 | <fresheyeball> | and I don't have the experience to infer |
2021-02-15 23:29:21 +0100 | <edwardk> | hoistHtml is cheap on the church encoded rep |
2021-02-15 23:29:52 +0100 | <edwardk> | as is map |
2021-02-15 23:30:03 +0100 | <fresheyeball> | well that's good |
2021-02-15 23:30:06 +0100 | <edwardk> | both are 'whole expression at a time' kinda things that church encoding is good at |
2021-02-15 23:30:09 +0100 | <fresheyeball> | because that is most of what uses patterns |
2021-02-15 23:30:34 +0100 | <fresheyeball> | wait, are you THEE edwardk? |
2021-02-15 23:30:47 +0100 | <edwardk> | not sure about THEE, but i write a lot of haskell, yes |
2021-02-15 23:30:58 +0100 | <fresheyeball> | k is kmett I mean |
2021-02-15 23:31:01 +0100 | <edwardk> | yes |
2021-02-15 23:31:10 +0100 | <fresheyeball> | well you rock |
2021-02-15 23:31:14 +0100 | <edwardk> | thanks! |
2021-02-15 23:31:42 +0100 | <fresheyeball> | nubProps is a bad one |
2021-02-15 23:31:58 +0100 | <fresheyeball> | I know some ways to improve it by using `Map` instead |
2021-02-15 23:32:09 +0100 | <fresheyeball> | what does your intuition say about church on that function? |
2021-02-15 23:32:44 +0100 | <fresheyeball> | also I don't understand how your ChurchHtml manages to not be recursive |
2021-02-15 23:32:54 +0100 | <edwardk> | go look at list first |
2021-02-15 23:33:00 +0100 | <edwardk> | before jumping in the deep end |
2021-02-15 23:33:03 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2021-02-15 23:33:18 +0100 | <edwardk> | List a = forall r. (a -> r -> r) -> r -> r -- is defining a list in terms of what foldr for that list is |
2021-02-15 23:33:20 +0100 | <edwardk> | :t foldr |
2021-02-15 23:33:21 +0100 | <lambdabot> | Foldable t => (a -> b -> b) -> b -> t a -> b |
2021-02-15 23:33:33 +0100 | <edwardk> | :t \l f z -> foldr f z l |
2021-02-15 23:33:34 +0100 | <lambdabot> | Foldable t => t a -> (a -> b -> b) -> b -> b |
2021-02-15 23:33:41 +0100 | <fresheyeball> | hmm |
2021-02-15 23:33:59 +0100 | <edwardk> | you tell me what you want if you see a cons and what you want if you see a nil. |
2021-02-15 23:34:00 +0100 | conal | (~conal@64.71.133.70) |
2021-02-15 23:34:02 +0100 | <fresheyeball> | edwardk: you are not hirable are you? lol |
2021-02-15 23:34:11 +0100 | <edwardk> | probably not in your price range ;) |
2021-02-15 23:34:15 +0100 | <fresheyeball> | this process is going to take me alot of time it seems |
2021-02-15 23:34:42 +0100 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) (Quit: gone to sleep. ZZZzzz…) |
2021-02-15 23:35:03 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-02-15 23:35:37 +0100 | epicte7us | (~epictetus@ip72-194-215-136.sb.sd.cox.net) (Read error: Connection reset by peer) |
2021-02-15 23:35:57 +0100 | monochrom | cries |
2021-02-15 23:37:00 +0100 | <Franciman> | edwardk, I can hire you and pay 200k a year |
2021-02-15 23:37:09 +0100 | <monochrom> | I have [e| MyCtor $(f x)|] and I was wondering why the semantics changes between TemplateHaskell and TemplateHaskellQuotes |
2021-02-15 23:37:10 +0100 | <Franciman> | but we would be doing react + js |
2021-02-15 23:37:28 +0100 | <Franciman> | + cleaning bathrooms |
2021-02-15 23:37:50 +0100 | <Franciman> | maybe 200k a year is too little in the US |
2021-02-15 23:37:58 +0100 | <edwardk> | franciman: wait until bitcoin crashes and i'm poor |
2021-02-15 23:38:01 +0100 | <monochrom> | "Clearly", it is a syntactic change in the first place. Under TemplateHaskellQuotes, we're looking at [e| MyCtor $ (f x)|], where "$" is just Prelude.$ |
2021-02-15 23:38:25 +0100 | <Franciman> | edwardk, lol I hope not |
2021-02-15 23:40:37 +0100 | <monochrom> | edwardk registered himself on one of those "get a tutor" websites, and quoted an astronomical rate. |
2021-02-15 23:40:47 +0100 | <Franciman> | :) |
2021-02-15 23:40:54 +0100 | <edwardk> | monochrom: didn't stop people from paying it |
2021-02-15 23:41:01 +0100 | <monochrom> | "I can teach you Haskell for $5e10 per hour" or something. |
2021-02-15 23:41:21 +0100 | greety | (bab7262d@186.183.38.45) () |
2021-02-15 23:41:31 +0100 | <edwardk> | monochrom: at that price you only need one hit ;) |
2021-02-15 23:43:01 +0100 | tekacs | (tekacs@2a01:7e00::f03c:91ff:fe93:43aa) |
2021-02-15 23:45:52 +0100 | usr25_tm | (~usr25@unaffiliated/usr25) (Read error: Connection reset by peer) |
2021-02-15 23:46:27 +0100 | usr25 | (~usr25@unaffiliated/usr25) |
2021-02-15 23:47:27 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-119-56.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-02-15 23:47:46 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-119-56.w86-198.abo.wanadoo.fr) |
2021-02-15 23:48:22 +0100 | <edwardk> | i think the rate was actually something on the order of a few hundred/hour or so, which is honestly a reasonable consulting rate for most, but doing it as a one-off is not worth billing. Folks just have level set an expectation that tutoring is an activity that you get done for cheap. |
2021-02-15 23:48:22 +0100 | b4er | (~b4er@193.27.14.109) (Remote host closed the connection) |
2021-02-15 23:49:28 +0100 | <edwardk> | https://www.lesswrong.com/posts/MzKKi7niyEqkBPnyu/your-cheerful-price |
2021-02-15 23:52:14 +0100 | <hololeap> | the linear-types implementation page talks about Multiplicity which can either be One or Omega |
2021-02-15 23:52:37 +0100 | michalz | (~user@185.246.204.93) (Remote host closed the connection) |
2021-02-15 23:52:37 +0100 | <hololeap> | can someone show me an example of each in practice? |
2021-02-15 23:52:42 +0100 | <Franciman> | omega means infinite |
2021-02-15 23:52:47 +0100 | <hololeap> | i'm not very familiar with linear types in general |
2021-02-15 23:52:47 +0100 | <Franciman> | it is the regular usage |
2021-02-15 23:52:55 +0100 | <Franciman> | you can use any time you want |
2021-02-15 23:53:15 +0100 | <Franciman> | (omega is the smallest "natural number" that is infinite) |
2021-02-15 23:53:35 +0100 | <Franciman> | an example of a thing that you can't write if a variable is marked as One |
2021-02-15 23:53:38 +0100 | <Franciman> | is |
2021-02-15 23:53:41 +0100 | <Franciman> | a -> (a, a) |
2021-02-15 23:53:44 +0100 | <Franciman> | it would be |
2021-02-15 23:53:48 +0100 | <Franciman> | f :: a -> (a, a) |
2021-02-15 23:53:51 +0100 | <Franciman> | f a = (a, a) |
2021-02-15 23:53:53 +0100 | <Franciman> | but inside f |
2021-02-15 23:53:59 +0100 | <Franciman> | you can use a at most once |
2021-02-15 23:54:03 +0100 | <Franciman> | if its multiplicity is One |
2021-02-15 23:54:10 +0100 | <edwardk> | hololeap: omega is 'what you use day to day. one would be something like a file handle you want to ensure the user closes at the end, but are willing to thread through intermediate operations by hand |
2021-02-15 23:54:34 +0100 | <edwardk> | ooh, i should go update my transients code to use linear haskell. no users, can move it to ghc 9 |
2021-02-15 23:54:45 +0100 | <monochrom> | haha |
2021-02-15 23:54:52 +0100 | <hololeap> | ok |
2021-02-15 23:55:40 +0100 | <hololeap> | so would this be valid? `const :: a # One -> b # Omega -> a` |
2021-02-15 23:56:44 +0100 | <Franciman> | what is the implementation? |
2021-02-15 23:56:48 +0100 | <Franciman> | const a b = a |
2021-02-15 23:56:49 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving) |
2021-02-15 23:56:49 +0100 | <hololeap> | and equivalent to `const a #-> b -> a` ? |
2021-02-15 23:56:54 +0100 | <Franciman> | how many times do you use a ? |
2021-02-15 23:56:55 +0100 | <hololeap> | https://gitlab.haskell.org/ghc/ghc/-/wikis/linear-types/implementation |
2021-02-15 23:57:46 +0100 | <hololeap> | Franciman: i'm using the standard definition of const: \a _ -> a |
2021-02-15 23:57:49 +0100 | <Franciman> | ok |
2021-02-15 23:57:56 +0100 | <Franciman> | so how many times do you use a in the body of the lambda? |
2021-02-15 23:58:06 +0100 | <hololeap> | exactly once |
2021-02-15 23:58:19 +0100 | <Franciman> | how many times are you using b (you called it _) ? |
2021-02-15 23:58:24 +0100 | <hololeap> | zero |
2021-02-15 23:58:37 +0100 | <Franciman> | now the multiplicity |
2021-02-15 23:58:44 +0100 | <Franciman> | indicates the Max amount of times you can use a var |
2021-02-15 23:58:47 +0100 | <Franciman> | right? |
2021-02-15 23:58:49 +0100 | <Franciman> | so it typechecks |
2021-02-15 23:59:08 +0100 | <hololeap> | ok, just confirming |
2021-02-15 23:59:16 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) (Quit: Leaving) |
2021-02-15 23:59:34 +0100 | <Franciman> | the -#> arrow |
2021-02-15 23:59:36 +0100 | Axman6 | races to become edwardk's first transients user |
2021-02-15 23:59:42 +0100 | <Franciman> | is basically: |
2021-02-15 23:59:47 +0100 | <Franciman> | a # One -> b |