2021-07-13 00:00:07 +0200 | <chisui> | Seems bad |
2021-07-13 00:00:27 +0200 | <geekosaur> | think of it as type level undefined, maybe? |
2021-07-13 00:00:40 +0200 | <boxscape> | it is bad if you want to have a consistent type theory |
2021-07-13 00:01:05 +0200 | <boxscape> | (haskell's type system isn't consistent in more than one way) |
2021-07-13 00:01:20 +0200 | <monochrom> | Haskell is not for arguing. |
2021-07-13 00:01:21 +0200 | <boxscape> | s/isn't consistent/is inconsistent |
2021-07-13 00:01:50 +0200 | <monochrom> | Unpopular opinion: It is the stance "use Haskell for proofs" that is inconsistent. |
2021-07-13 00:02:20 +0200 | mikoto-chan | (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Ping timeout: 256 seconds) |
2021-07-13 00:02:48 +0200 | <maralorn> | monochrom: +1 |
2021-07-13 00:03:35 +0200 | <chisui> | Well I tried to create a category implementation `data Phantom k (a :: k) (b :: k) = Phantom` and `type Empty = Phantom Void` |
2021-07-13 00:03:54 +0200 | <maralorn> | I have been confused and slightly insecure about the Haskell typesystem for years because people kept saying it is inconsistent. |
2021-07-13 00:04:04 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2021-07-13 00:04:37 +0200 | <monochrom> | The Haskell term system, type system, and kind system are very much consistent. |
2021-07-13 00:05:02 +0200 | <monochrom> | You do lose a few axioms you would expect from other logics, yes. |
2021-07-13 00:05:03 +0200 | <chisui> | monochrom: if you allow bottom? |
2021-07-13 00:05:21 +0200 | <Hecate> | 👀 |
2021-07-13 00:07:40 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-13 00:07:44 +0200 | <monochrom> | You should still feel insecure that you can still make a mistake of non-termination in Haskell, yes. |
2021-07-13 00:08:10 +0200 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2021-07-13 00:08:47 +0200 | <monochrom> | But looking at how C programmers don't really feel insecure with even less safety nets, I would say "take it easy". |
2021-07-13 00:08:57 +0200 | rostero | (uid236576@id-236576.tooting.irccloud.com) (Quit: Connection closed for inactivity) |
2021-07-13 00:10:08 +0200 | oxide | (~lambda@user/oxide) (Quit: oxide) |
2021-07-13 00:10:36 +0200 | <chisui> | Well I like type systems where you can't write `unsafeCoerce` |
2021-07-13 00:10:40 +0200 | <monochrom> | My opinion on ensuring termination and doing so ergonomically is still with: don't do it with types, do it with an extra static analysis tool. |
2021-07-13 00:11:37 +0200 | <monochrom> | I can change my opinion when I see an ergonomic dependently typed language. I don't think Agda etc have achieved it. |
2021-07-13 00:13:43 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:6d00:2ab2:6519:235b) |
2021-07-13 00:13:46 +0200 | alx741 | (~alx741@186.178.108.22) |
2021-07-13 00:14:13 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:6d00:2ab2:6519:235b) (Remote host closed the connection) |
2021-07-13 00:14:22 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:6d00:2ab2:6519:235b) |
2021-07-13 00:18:03 +0200 | sheepduck | (~sheepduck@user/sheepduck) |
2021-07-13 00:18:21 +0200 | <chisui> | monochrom: You are completely right. Nevertheless I was stumped by this. I mean GHC even warned my that this would be an issue. |
2021-07-13 00:18:33 +0200 | o1lo01ol1o | (~o1lo01ol1@bl7-89-228.dsl.telepac.pt) (Remote host closed the connection) |
2021-07-13 00:18:47 +0200 | hololeap | (~hololeap@user/hololeap) |
2021-07-13 00:22:44 +0200 | Atum_ | (IRC@user/atum/x-2392232) (Quit: Atum_) |
2021-07-13 00:23:36 +0200 | hololeap | (~hololeap@user/hololeap) (Remote host closed the connection) |
2021-07-13 00:24:04 +0200 | hololeap | (~hololeap@user/hololeap) |
2021-07-13 00:24:11 +0200 | dudek | (~dudek@185.150.236.155) (Quit: Leaving) |
2021-07-13 00:25:23 +0200 | <maralorn> | chisui: I am not convinced that unsafeCoerce is even a property of the typesystem. |
2021-07-13 00:27:13 +0200 | <geekosaur> | I see it as a property of the language to evade the typesystem |
2021-07-13 00:29:46 +0200 | <boxscape> | Well, if your typesystem is logically inconsistent (like haskell's), that means it allows you to construct a function of type `forall a b . a -> b`, at least. Though whether it allows you to construct a function that behaves like unsafeCoerce is a different matter |
2021-07-13 00:33:46 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2021-07-13 00:33:55 +0200 | dfg | (dfg@2600:3c00::f03c:92ff:feb4:be75) (Changing host) |
2021-07-13 00:33:55 +0200 | dfg | (dfg@user/dfg) |
2021-07-13 00:34:37 +0200 | chomwitt | (~Pitsikoko@2a02:587:dc04:e00:12c3:7bff:fe6d:d374) |
2021-07-13 00:38:15 +0200 | zeenk | (~zeenk@2a02:2f04:a106:9600:82fb:aed9:ca9:38d3) (Quit: Konversation terminated!) |
2021-07-13 00:40:05 +0200 | warnz | (~warnz@2600:1700:77c0:5610:acd9:fdbc:f96e:2452) |
2021-07-13 00:41:58 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-07-13 00:43:24 +0200 | wallymathieu | (~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-07-13 00:43:47 +0200 | chisui | (~chisui@200116b8667bfd006d48966f94785d9f.dip.versatel-1u1.de) (Quit: Client closed) |
2021-07-13 00:44:06 +0200 | son0p | (~ff@181.136.122.143) (Remote host closed the connection) |
2021-07-13 00:44:30 +0200 | Core8687 | (~Core8687@2804:14c:8793:8e2f:c580:1df5:d4d4:84b3) (Ping timeout: 272 seconds) |
2021-07-13 00:44:33 +0200 | warnz | (~warnz@2600:1700:77c0:5610:acd9:fdbc:f96e:2452) (Ping timeout: 255 seconds) |
2021-07-13 00:46:05 +0200 | <monochrom> | @quote monochrom unsafeCoerce |
2021-07-13 00:46:05 +0200 | <lambdabot> | monochrom says: isTrue = (unsafeCoerce :: Either a b -> Bool) . (unsafeCoerce :: Maybe c -> Either a b) . (unsafeCoerce :: Bool -> Maybe c) |
2021-07-13 00:47:04 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: Lost terminal) |
2021-07-13 00:47:16 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-07-13 00:52:39 +0200 | <Guest25> | how efficient is Foreign.Storable.peek? like say I have a Ptr Int and need the value multiple times, should I call (peek ptr) each time or store the value as a Haskell Int on the first call? |
2021-07-13 00:52:56 +0200 | <Guest25> | (doing some FFI stuff or I wouldn't be dealing with Ptrs manually) |
2021-07-13 00:54:18 +0200 | <geekosaur> | reasonably efficient but it'll still do the peek each time instead of optimizing it down via CSE. then again if this matters to performance you're arguably making a mistake somewhere else |
2021-07-13 00:55:47 +0200 | <Guest25> | cool thanks! |
2021-07-13 00:55:52 +0200 | <Guest25> | and yeah, it probably won't matter |
2021-07-13 00:56:58 +0200 | <hololeap> | with optparse-applicative, I want to use a specific configuration if no options are passed to the command line. how can I do this? |
2021-07-13 00:58:27 +0200 | <monochrom> | I think I specified default values for every option. |
2021-07-13 00:58:57 +0200 | drd | (~drd@93-39-151-19.ip76.fastwebnet.it) (Ping timeout: 255 seconds) |
2021-07-13 00:59:27 +0200 | <hpc> | it's also Alternative, so maybe you can have options <|> defaultOptions |
2021-07-13 01:01:23 +0200 | <hololeap> | hpc, that's what I was thinking but I haven't used the library enough to have an intuition for how it works |
2021-07-13 01:03:04 +0200 | <hpc> | it's pretty much like any other parser's Alternative, but you don't have to worry about using try to not consume input |
2021-07-13 01:04:39 +0200 | <monochrom> | https://github.com/treblacy/random-read/blob/eb89d291e687b72269c30d2a2903cd26cf8f6f73/random-read.hs is how I did it with every option having "<> value mydefaultforthis" |
2021-07-13 01:04:46 +0200 | phaazon | (~phaazon@2001:41d0:a:fe76::1) |
2021-07-13 01:04:57 +0200 | <hololeap> | so, when does it fail (in the Alternative sense)? when options are given out-of-order? when they are not given? |
2021-07-13 01:05:48 +0200 | <hpc> | whenever the parser would error out normally |
2021-07-13 01:05:57 +0200 | <hpc> | if the program would bail out with help text, instead try this other parser |
2021-07-13 01:06:18 +0200 | <hololeap> | hm, it sounds like I'll just have to play around with it until I build an intuition for it |
2021-07-13 01:07:23 +0200 | <geekosaur> | sounds to me like it would work best if there's otherwise at least one required option |
2021-07-13 01:08:34 +0200 | <hpc> | yeah, but if the program would do the right thing in that case problem solved :D |
2021-07-13 01:08:50 +0200 | <hpc> | who even needs the alternate parser at that point |
2021-07-13 01:09:43 +0200 | <hpc> | hololeap: if it helps, normally the Alternative instance is so you can do things like "foo --create --name=foo" vs "foo --delete --id=12345" |
2021-07-13 01:10:57 +0200 | <hpc> | data FooAction = Create String | Delete Int | Version | Help | etc etc |
2021-07-13 01:11:22 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-07-13 01:18:25 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:6d00:2ab2:6519:235b) (Remote host closed the connection) |
2021-07-13 01:19:08 +0200 | caubert | (~caubert@136.244.111.235) (Quit: WeeChat 3.1) |
2021-07-13 01:19:20 +0200 | caubert | (~caubert@136.244.111.235) |
2021-07-13 01:19:58 +0200 | acidjnk | (~acidjnk@p200300d0c72b95096d4cdcac61b6b349.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
2021-07-13 01:22:03 +0200 | notzmv | (~zmv@user/notzmv) (Ping timeout: 276 seconds) |
2021-07-13 01:25:16 +0200 | o1lo01ol1o | (~o1lo01ol1@bl7-89-228.dsl.telepac.pt) |
2021-07-13 01:25:37 +0200 | cjb | (~cjb@user/cjb) |
2021-07-13 01:27:53 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Quit: ec) |
2021-07-13 01:29:33 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 255 seconds) |
2021-07-13 01:29:36 +0200 | o1lo01ol1o | (~o1lo01ol1@bl7-89-228.dsl.telepac.pt) (Ping timeout: 256 seconds) |
2021-07-13 01:32:49 +0200 | zmt01 | (~zmt00@user/zmt00) |
2021-07-13 01:35:16 +0200 | zmt00 | (~zmt00@user/zmt00) (Ping timeout: 256 seconds) |
2021-07-13 01:39:00 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Ping timeout: 255 seconds) |
2021-07-13 01:40:01 +0200 | dre_ | (~dre@2001:8003:c932:c301:44a6:1427:4d7d:b99a) |
2021-07-13 01:42:04 +0200 | Raugh | (~mike@174.127.249.180) |
2021-07-13 01:42:52 +0200 | dre_ | dre |
2021-07-13 01:43:08 +0200 | <Raugh> | I'm trying to use Database.PostgreSQL.Simple with queries read from a file but I can't figure out how to go from [Char] to Query. The docs say to use overloaded strings and construct the Queries in place but I'm reading them from a file |
2021-07-13 01:48:23 +0200 | <geekosaur> | https://hackage.haskell.org/package/postgresql-simple-0.6.4/docs/src/Database.PostgreSQL.Simple.Ty… |
2021-07-13 01:48:30 +0200 | <geekosaur> | evil hack, but. |
2021-07-13 01:48:45 +0200 | <Axman6> | @hoodle IsString |
2021-07-13 01:48:45 +0200 | <lambdabot> | Data.String class IsString a |
2021-07-13 01:48:45 +0200 | <lambdabot> | GHC.Exts class IsString a |
2021-07-13 01:48:45 +0200 | <lambdabot> | Distribution.Compat.Prelude.Internal class IsString a |
2021-07-13 01:48:52 +0200 | <geekosaur> | (you're defeating its intended type safety) |
2021-07-13 01:49:01 +0200 | <Axman6> | @hoogle fromString |
2021-07-13 01:49:01 +0200 | <lambdabot> | Data.String fromString :: IsString a => String -> a |
2021-07-13 01:49:01 +0200 | <lambdabot> | GHC.Exts fromString :: IsString a => String -> a |
2021-07-13 01:49:01 +0200 | <lambdabot> | Data.Text.Internal.Builder fromString :: String -> Builder |
2021-07-13 01:49:42 +0200 | <AWizzArd> | Raugh: the `Query` constructor takes a ByteString. You could try let q = Query (BS.pack "SELECT from file") |
2021-07-13 01:50:15 +0200 | <AWizzArd> | Raugh: possibly you can read it directly as ByteString from the file. |
2021-07-13 01:50:46 +0200 | <AWizzArd> | I am doing something similar. I read strings as BS from Postgres actually. I have queries stored in there. I retrieve them and then run them. |
2021-07-13 01:52:39 +0200 | <Axman6> | Isn't that what stored procedures are for? |
2021-07-13 01:52:48 +0200 | <Raugh> | interesting, ok, trying each method. Its not escaping a substituted table name correct for me either and I'm realizing it might not be set up to run multiple statements at once out of the box so I think I have a bit of digging to do |
2021-07-13 01:53:05 +0200 | <hololeap> | how would I make a --help option with optparse-applicative? |
2021-07-13 01:53:13 +0200 | <Axman6> | no, it almost certainly isn't |
2021-07-13 01:53:14 +0200 | <AWizzArd> | Axman6: sure, but in my case the queries are editable by certain admin users. |
2021-07-13 01:53:21 +0200 | <Axman6> | quick hack would be to split on ; |
2021-07-13 01:53:45 +0200 | argento | (~argent0@168-227-97-29.ptr.westnet.com.ar) |
2021-07-13 01:54:38 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:6d00:2ab2:6519:235b) |
2021-07-13 01:54:50 +0200 | argento | (~argent0@168-227-97-29.ptr.westnet.com.ar) (Client Quit) |
2021-07-13 01:55:21 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-13 01:56:56 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-07-13 01:57:08 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-13 01:59:11 +0200 | <hololeap> | this seems really convoluted for such a common use case |
2021-07-13 02:00:11 +0200 | myShoggoth | (~myShoggot@97-120-70-214.ptld.qwest.net) |
2021-07-13 02:01:17 +0200 | <Axman6> | hololeap: https://github.com/pcapriotti/optparse-applicative |
2021-07-13 02:02:39 +0200 | <hololeap> | Axman6: ha, I should have looked there first ... :) |
2021-07-13 02:03:12 +0200 | vicfred | (~vicfred@user/vicfred) |
2021-07-13 02:05:09 +0200 | <AWizzArd> | Looking for: (Traversable t) => t a -> Maybe a |
2021-07-13 02:05:51 +0200 | <Axman6> | (^? traverse) :P |
2021-07-13 02:05:59 +0200 | <Axman6> | :t (^? traverse) |
2021-07-13 02:06:00 +0200 | <lambdabot> | Traversable t => t a -> Maybe a |
2021-07-13 02:06:28 +0200 | <glguy> | :t foldr (\x _ -> Just x) Nothing |
2021-07-13 02:06:29 +0200 | <lambdabot> | Foldable t => t a -> Maybe a |
2021-07-13 02:06:36 +0200 | <Raugh> | hmm, neither fromString nor BS.pack are working for me |
2021-07-13 02:06:41 +0200 | <Raugh> | constructor not in scope |
2021-07-13 02:07:15 +0200 | <Raugh> | AWizzArd: are you using that exact syntax? for me its a type error |
2021-07-13 02:08:31 +0200 | <geekosaur> | looks to me like the Query data constructor might not be exported |
2021-07-13 02:08:42 +0200 | <AWizzArd> | What is your type error? In my code I have literally: (Query qry) where `qry` is coming from my DB from an earlier query. |
2021-07-13 02:09:22 +0200 | <AWizzArd> | geekosaur: I am doing import Database.PostgreSQL.Simple.Types ( Query (..) ) |
2021-07-13 02:09:25 +0200 | <geekosaur> | which was a worry given the docs said it was a wrapped ByteString with a restricted API for type safety |
2021-07-13 02:09:56 +0200 | <geekosaur> | AWizzArd, that might well succeed importing nothing if the data constructor isn't exported |
2021-07-13 02:10:17 +0200 | <AWizzArd> | geekosaur: I can at least tell that my code runs/works. |
2021-07-13 02:10:31 +0200 | <geekosaur> | what version of postgresql-simple? |
2021-07-13 02:10:40 +0200 | <Axman6> | it's ecported in the latest release |
2021-07-13 02:10:45 +0200 | <Axman6> | exported* |
2021-07-13 02:11:12 +0200 | <Raugh> | how do i tell which version got pulled in by stack? |
2021-07-13 02:11:23 +0200 | <AWizzArd> | geekosaur: https://hackage.haskell.org/package/postgresql-simple-0.6.4/docs/src/Database.PostgreSQL.Simple.Ty… |
2021-07-13 02:11:33 +0200 | <Raugh> | Yeah I'm impoerting Query (..) |
2021-07-13 02:11:33 +0200 | <AWizzArd> | In there I see an export. |
2021-07-13 02:11:48 +0200 | <AWizzArd> | Raugh: can you please paste the type error that you see? |
2021-07-13 02:11:55 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
2021-07-13 02:12:13 +0200 | <Raugh> | 0.6.4 |
2021-07-13 02:12:14 +0200 | <geekosaur> | yeh, I just checked that myself |
2021-07-13 02:12:22 +0200 | <geekosaur> | so it's exported |
2021-07-13 02:12:35 +0200 | <AWizzArd> | newtype Query = Query { fromQuery :: ByteString } deriving (Eq, Ord, Typeable)} deriving (Eq, Ord, Typeable) |
2021-07-13 02:12:41 +0200 | yaroot | (~yaroot@6.3.30.125.dy.iij4u.or.jp) (Quit: The Lounge - https://thelounge.chat) |
2021-07-13 02:13:01 +0200 | <AWizzArd> | Raugh: if you import Query (..) and pass in a ByteString then it will work. |
2021-07-13 02:13:06 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 240 seconds) |
2021-07-13 02:13:17 +0200 | <Raugh> | ok its imported now i'm on to bytesting errors i should be able to figure these out |
2021-07-13 02:13:30 +0200 | yaroot | (~yaroot@6.3.30.125.dy.iij4u.or.jp) |
2021-07-13 02:13:54 +0200 | <Raugh> | BS.pack is expecting a Word8 not [Char] going to the docs |
2021-07-13 02:13:59 +0200 | <AWizzArd> | Raugh: from what module do you try to import ByteString? The PG lib is doing it like this: import Data.ByteString (ByteString) |
2021-07-13 02:14:11 +0200 | <AWizzArd> | I keep forgetting if this is strict or lazy. |
2021-07-13 02:14:28 +0200 | <Raugh> | import qualified Data.ByteString as BS (pack) |
2021-07-13 02:14:30 +0200 | <geekosaur> | Raugh, you should probably use what I pasted originally, which deals with UTF8 |
2021-07-13 02:14:58 +0200 | <geekosaur> | there's an ugly hack Data.ByteString.Char8 but that will fail if there's any Unicode involved |
2021-07-13 02:15:22 +0200 | <geekosaur> | it pack will appear to work but silently produce garbage |
2021-07-13 02:15:25 +0200 | <geekosaur> | *its |
2021-07-13 02:15:32 +0200 | <AWizzArd> | Raugh: how do you read from your file? Are you using something like https://hackage.haskell.org/package/bytestring-0.11.1.0/docs/Data-ByteString.html#v:readFile |
2021-07-13 02:15:56 +0200 | mikolaj__ | (~mikon@duch.mimuw.edu.pl) (Ping timeout: 265 seconds) |
2021-07-13 02:16:06 +0200 | <Raugh> | geekosaur: I couldn't parse what you posted, should I be using Data.String fromString? |
2021-07-13 02:16:48 +0200 | <Raugh> | I'm using a derpy yaml config of all things, maybe its time to go back to the books on this one. |
2021-07-13 02:17:05 +0200 | <geekosaur> | https://hackage.haskell.org/package/postgresql-simple-0.6.4/docs/src/Database.PostgreSQL.Simple.Ty… which uses stringUtf8 and fromString |
2021-07-13 02:17:34 +0200 | mikolaj | (~mikon@duch.mimuw.edu.pl) |
2021-07-13 02:17:40 +0200 | <geekosaur> | alternately read the ByteString as a ByteString and just wrap it in Query |
2021-07-13 02:18:03 +0200 | chomwitt | (~Pitsikoko@2a02:587:dc04:e00:12c3:7bff:fe6d:d374) (Remote host closed the connection) |
2021-07-13 02:18:44 +0200 | <AWizzArd> | Raugh: yeah, what geekosaur just wrote sounds good. Can you possibly use a `readFile` function that will actually give you directly a BS? |
2021-07-13 02:19:20 +0200 | Danishman | (~Allan@2-104-144-110-cable.dk.customer.tdc.net) (Quit: Leaving) |
2021-07-13 02:19:54 +0200 | <AWizzArd> | glguy: ah, interesting foldr! |
2021-07-13 02:20:32 +0200 | mikail_ | (~mikail@2a02:c7f:bd83:fd00:55cf:122f:957a:f66f) |
2021-07-13 02:20:36 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-07-13 02:20:49 +0200 | Vajb | (~Vajb@2001:999:62:1d53:26b1:6c9b:c1ed:9c01) |
2021-07-13 02:22:08 +0200 | <Raugh> | geekosaur: oh interesting, i'll try it that uses some parts of postgresql.simple as well |
2021-07-13 02:22:17 +0200 | trufas | (~trufas@177.240.218.218) (Ping timeout: 252 seconds) |
2021-07-13 02:22:50 +0200 | trufas | (~trufas@177.240.218.218) |
2021-07-13 02:25:08 +0200 | mikail_ | (~mikail@2a02:c7f:bd83:fd00:55cf:122f:957a:f66f) (Ping timeout: 256 seconds) |
2021-07-13 02:27:23 +0200 | warnz | (~warnz@2600:1700:77c0:5610:acd9:fdbc:f96e:2452) |
2021-07-13 02:28:07 +0200 | Deide | (~Deide@user/deide) (Quit: Seeee yaaaa) |
2021-07-13 02:30:06 +0200 | dajoer | (~david@user/gvx) |
2021-07-13 02:31:56 +0200 | warnz | (~warnz@2600:1700:77c0:5610:acd9:fdbc:f96e:2452) (Ping timeout: 256 seconds) |
2021-07-13 02:31:57 +0200 | Vajb | (~Vajb@2001:999:62:1d53:26b1:6c9b:c1ed:9c01) (Read error: Connection reset by peer) |
2021-07-13 02:32:50 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) |
2021-07-13 02:34:25 +0200 | <Raugh> | lol, ok copied the same composition of funcions in as a helper but now for some reason its injecting table names in my sql wrong its adding quotes around them I must be using the wrong type. I'm using Only String as the table name |
2021-07-13 02:35:31 +0200 | <c_wraith> | most parameterized query libraries don't let you parameterize the name of the table |
2021-07-13 02:38:04 +0200 | tabemann_ | tabemann |
2021-07-13 02:38:17 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-13 02:39:10 +0200 | mikail_ | (~mikail@2a02:c7f:bd83:fd00:55cf:122f:957a:f66f) |
2021-07-13 02:39:59 +0200 | chris-the-slurpa | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-13 02:41:00 +0200 | <Raugh> | ok, i think i'm starting to be able to walk here. Theres an Identifier in types i can use to tell it to treat it as a table name |
2021-07-13 02:41:34 +0200 | myShoggoth | (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 256 seconds) |
2021-07-13 02:42:40 +0200 | retro_ | (~retro@90.218.175.34) |
2021-07-13 02:46:49 +0200 | retroid_ | (~retro@90.218.175.34) (Ping timeout: 268 seconds) |
2021-07-13 02:47:12 +0200 | <Raugh> | AWizzArd: geekosaur: thanks! |
2021-07-13 02:49:48 +0200 | favonia | (~favonia@user/favonia) |
2021-07-13 02:52:08 +0200 | warnz | (~warnz@2600:1700:77c0:5610:acd9:fdbc:f96e:2452) |
2021-07-13 02:52:48 +0200 | mikail_ | (~mikail@2a02:c7f:bd83:fd00:55cf:122f:957a:f66f) (Ping timeout: 255 seconds) |
2021-07-13 02:56:45 +0200 | codedmart | (codedmart@2600:3c01::f03c:92ff:fefe:8511) (Quit: ZNC 1.7.5+deb4 - https://znc.in) |
2021-07-13 02:56:51 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 255 seconds) |
2021-07-13 02:57:01 +0200 | codedmart | (~codedmart@li335-49.members.linode.com) |
2021-07-13 03:08:18 +0200 | warnz | (~warnz@2600:1700:77c0:5610:acd9:fdbc:f96e:2452) (Remote host closed the connection) |
2021-07-13 03:12:44 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-07-13 03:17:49 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-07-13 03:20:07 +0200 | notzmv | (~zmv@user/notzmv) |
2021-07-13 03:20:09 +0200 | Jonno_FT1 | (~come@api.carswap.me) (Quit: Reconnecting) |
2021-07-13 03:20:15 +0200 | Jonno_FTW | (~come@api.carswap.me) |
2021-07-13 03:21:02 +0200 | smichel17 | (~smichel17@2601:193:8300:4b9::600) (Quit: smichel17) |
2021-07-13 03:22:04 +0200 | Jonno_FTW | (~come@api.carswap.me) (Changing host) |
2021-07-13 03:22:04 +0200 | Jonno_FTW | (~come@user/jonno-ftw/x-0835346) |
2021-07-13 03:29:25 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-07-13 03:29:48 +0200 | xff0x | (~xff0x@2001:1a81:52d6:3f00:1a58:61d8:8aa3:1417) (Ping timeout: 272 seconds) |
2021-07-13 03:29:59 +0200 | <hololeap> | Axman6: that answered my question about how to get the --help option, but I would like to get some more fine-grained control over options that I don't think is going to be convenient using the Applicative and Alternative interface, |
2021-07-13 03:30:42 +0200 | chris-the-slurpa | (~chris@81.96.113.213) |
2021-07-13 03:30:50 +0200 | Vajb | (~Vajb@85-76-37-111-nat.elisa-mobile.fi) |
2021-07-13 03:31:02 +0200 | <hololeap> | I would like to do further processing of the arguments that were passed in, and have the option to exit and print the help outside the execParser function |
2021-07-13 03:31:25 +0200 | xff0x | (~xff0x@2001:1a81:5314:1800:204a:df94:d24b:de67) |
2021-07-13 03:31:46 +0200 | <hololeap> | so having something like `printHelp :: ParserInfo a -> IO ()` would be very useful |
2021-07-13 03:34:03 +0200 | <hololeap> | for instance, I don't want to allow a certain number to be less than 1, but I don't think it's possible to check this within the Parser since there is no Monad instance |
2021-07-13 03:37:01 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-13 03:38:33 +0200 | Vajb | (~Vajb@85-76-37-111-nat.elisa-mobile.fi) (Read error: Connection reset by peer) |
2021-07-13 03:40:21 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) |
2021-07-13 03:48:20 +0200 | alx741 | (~alx741@186.178.108.22) (Quit: alx741) |
2021-07-13 03:51:20 +0200 | pavonia | (~user@user/siracusa) (Read error: Connection reset by peer) |
2021-07-13 03:55:14 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
2021-07-13 03:55:37 +0200 | smtnet3 | (~asdfasdfa@202.36.244.25) |
2021-07-13 03:56:10 +0200 | pavonia | (~user@user/siracusa) |
2021-07-13 03:56:12 +0200 | <dmj`> | hololeap: optparse-applicative supports all of that |
2021-07-13 04:03:54 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 276 seconds) |
2021-07-13 04:06:13 +0200 | hendursaga | (~weechat@user/hendursaga) (Ping timeout: 244 seconds) |
2021-07-13 04:06:20 +0200 | myShoggoth | (~myShoggot@97-120-70-214.ptld.qwest.net) |
2021-07-13 04:08:13 +0200 | hendursaga | (~weechat@user/hendursaga) |
2021-07-13 04:09:48 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-13 04:11:40 +0200 | wei2912 | (~wei2912@112.199.250.21) |
2021-07-13 04:15:21 +0200 | wei2912 | (~wei2912@112.199.250.21) (Read error: Connection reset by peer) |
2021-07-13 04:16:10 +0200 | wei2912 | (~wei2912@112.199.250.21) |
2021-07-13 04:16:34 +0200 | P1RATEZ | (piratez@user/p1ratez) (Remote host closed the connection) |
2021-07-13 04:19:36 +0200 | td_ | (~td@94.134.91.208) (Ping timeout: 272 seconds) |
2021-07-13 04:19:42 +0200 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2021-07-13 04:19:42 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (molybdenum.libera.chat (Nickname regained by services))) |
2021-07-13 04:19:42 +0200 | finn_elija | FinnElija |
2021-07-13 04:21:03 +0200 | td_ | (~td@94.134.91.7) |
2021-07-13 04:21:18 +0200 | derelict | (~derelict@user/derelict) (Ping timeout: 256 seconds) |
2021-07-13 04:21:34 +0200 | koz- | (~koz@121.99.240.58) |
2021-07-13 04:22:05 +0200 | koz | (~koz@2404:4408:4309:8800:f7ec:14dd:f995:fa8c) (Ping timeout: 255 seconds) |
2021-07-13 04:22:31 +0200 | koz- | koz |
2021-07-13 04:25:03 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 255 seconds) |
2021-07-13 04:30:21 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-13 04:35:32 +0200 | zmt01 | (~zmt00@user/zmt00) (Quit: Gone.) |
2021-07-13 04:38:48 +0200 | zmt00 | (~zmt00@user/zmt00) |
2021-07-13 04:42:52 +0200 | phma | (phma@2001:5b0:211b:d008:91ae:cdcd:6362:add2) (Read error: Connection reset by peer) |
2021-07-13 04:47:58 +0200 | phma | (~phma@host-67-44-208-254.hnremote.net) |
2021-07-13 04:48:27 +0200 | myShoggoth | (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 255 seconds) |
2021-07-13 04:54:36 +0200 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 276 seconds) |
2021-07-13 04:57:33 +0200 | danso | (~danso@23-233-111-52.cpe.pppoe.ca) (Ping timeout: 268 seconds) |
2021-07-13 04:58:35 +0200 | danso | (~danso@23-233-111-52.cpe.pppoe.ca) |
2021-07-13 05:00:05 +0200 | finsternis | (~X@23.226.237.192) (Remote host closed the connection) |
2021-07-13 05:00:13 +0200 | <hololeap> | dmj`: how do you just print out the help as an IO operation? |
2021-07-13 05:00:33 +0200 | eggplant_ | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-13 05:02:34 +0200 | myShoggoth | (~myShoggot@97-120-70-214.ptld.qwest.net) |
2021-07-13 05:02:51 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:6d00:2ab2:6519:235b) (Ping timeout: 255 seconds) |
2021-07-13 05:05:09 +0200 | <dmj`> | hololeap: you can do it all purely before you print anything, https://hackage.haskell.org/package/optparse-applicative-0.16.1.0/docs/Options-Applicative.html#v:… |
2021-07-13 05:06:41 +0200 | hook54321_ | hook54321 |
2021-07-13 05:08:58 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-13 05:10:40 +0200 | <dmj`> | hololeap: running a failing parser purely will get you the help object |
2021-07-13 05:12:22 +0200 | o1lo01ol1o | (~o1lo01ol1@bl7-89-228.dsl.telepac.pt) |
2021-07-13 05:12:23 +0200 | <hololeap> | dmj`: that makes sense, but I have an Int that represents string length which needs to be >=1 ... as far as I can tell, there would be no way to check this and have the parser fail until after the parser was run, even running it purely |
2021-07-13 05:14:39 +0200 | <hololeap> | even if that were possible, there are some other fine-grained things I would like to do, such as ensuring at least one of a set of options is passed, or none at all |
2021-07-13 05:15:26 +0200 | <hololeap> | it can be done with the Alternative instance, but it just makes more sense to have a second level of argument validation after the Parser is run, and it would be nice to have the option to print the help screen there |
2021-07-13 05:15:54 +0200 | <glguy> | hololeap: an flag taking an option would use something like: option :: ReadM a -> Mod OptionFields a -> Parser a |
2021-07-13 05:15:56 +0200 | <dmj`> | hololeap: you can validate the arguments before you run the parser, then just run your parser with prefShowHelpOnEmpty = True |
2021-07-13 05:15:56 +0200 | thiross | (~user@173.242.113.143.16clouds.com) |
2021-07-13 05:16:08 +0200 | <glguy> | ReadM is a Monad, so you can do arbitrary dependencies there (like checking for >= 1) |
2021-07-13 05:16:20 +0200 | <glguy> | hololeap: is that what you're asking about? |
2021-07-13 05:16:50 +0200 | o1lo01ol1o | (~o1lo01ol1@bl7-89-228.dsl.telepac.pt) (Ping timeout: 256 seconds) |
2021-07-13 05:17:58 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
2021-07-13 05:21:00 +0200 | <hololeap> | glguy: that was one of my concerns, and you make a good point about ReadM being a Monad. I will remember that |
2021-07-13 05:22:36 +0200 | <hololeap> | but in general, I want to do some validation of arguments that seem like they would be much easier to do _after_ running the Parser, and I would like to have access to the help text in case I want to print that out |
2021-07-13 05:23:12 +0200 | <hololeap> | I could just move on and print out an error without the help text |
2021-07-13 05:24:40 +0200 | phma | (~phma@host-67-44-208-254.hnremote.net) (Read error: Connection reset by peer) |
2021-07-13 05:25:07 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2021-07-13 05:25:48 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 255 seconds) |
2021-07-13 05:34:11 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-07-13 05:37:28 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-13 05:38:56 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 256 seconds) |
2021-07-13 05:39:49 +0200 | phma | (phma@2001:5b0:211f:8638:196:5581:d6d8:1f7e) |
2021-07-13 05:42:54 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-07-13 05:52:05 +0200 | thiross | (~user@173.242.113.143.16clouds.com) (Remote host closed the connection) |
2021-07-13 05:52:22 +0200 | thiross | (~user@173.242.113.143.16clouds.com) |
2021-07-13 06:02:12 +0200 | juhp | (~juhp@128.106.188.66) (Quit: juhp) |
2021-07-13 06:02:25 +0200 | juhp | (~juhp@128.106.188.66) |
2021-07-13 06:04:57 +0200 | thiross | (~user@173.242.113.143.16clouds.com) (Ping timeout: 255 seconds) |
2021-07-13 06:11:56 +0200 | nick80 | (~nick@76-236-222-208.lightspeed.tukrga.sbcglobal.net) |
2021-07-13 06:12:13 +0200 | <nick80> | hello |
2021-07-13 06:13:37 +0200 | <glguy> | hi |
2021-07-13 06:19:48 +0200 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 255 seconds) |
2021-07-13 06:20:10 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds) |
2021-07-13 06:20:42 +0200 | prite | (~pritam@user/pritambaral) |
2021-07-13 06:29:47 +0200 | hatz_ | (~user@2a05:f480:1400:f44:5400:3ff:fe6d:f349) (Quit: hatz_) |
2021-07-13 06:31:29 +0200 | hatz_ | (~user@2a05:f480:1400:f44:5400:3ff:fe6d:f349) |
2021-07-13 06:37:16 +0200 | bontaq | (~user@ool-18e47f8d.dyn.optonline.net) (Ping timeout: 272 seconds) |
2021-07-13 06:42:24 +0200 | myShoggoth | (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 256 seconds) |
2021-07-13 06:44:59 +0200 | nick80 | (~nick@76-236-222-208.lightspeed.tukrga.sbcglobal.net) (Quit: Connection closed) |
2021-07-13 06:48:46 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) (Quit: leaving) |
2021-07-13 06:51:00 +0200 | sheepduck | (~sheepduck@user/sheepduck) (Remote host closed the connection) |
2021-07-13 06:59:35 +0200 | hexfive | (~eric@50.35.83.177) (Quit: WeeChat 3.0) |
2021-07-13 07:06:13 +0200 | berberman_ | (~berberman@user/berberman) |
2021-07-13 07:06:36 +0200 | berberman | (~berberman@user/berberman) (Ping timeout: 255 seconds) |
2021-07-13 07:08:18 +0200 | qbt | (~edun@user/edun) |
2021-07-13 07:09:03 +0200 | warnz | (~warnz@2600:1700:77c0:5610:acd9:fdbc:f96e:2452) |
2021-07-13 07:11:21 +0200 | o1lo01ol1o | (~o1lo01ol1@bl7-89-228.dsl.telepac.pt) |
2021-07-13 07:12:44 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds) |
2021-07-13 07:12:44 +0200 | o1lo01ol1o | (~o1lo01ol1@bl7-89-228.dsl.telepac.pt) (Read error: Connection reset by peer) |
2021-07-13 07:12:53 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-07-13 07:13:17 +0200 | cjb | (~cjb@user/cjb) (Quit: rcirc on GNU Emacs 28.0.50) |
2021-07-13 07:14:00 +0200 | warnz | (~warnz@2600:1700:77c0:5610:acd9:fdbc:f96e:2452) (Ping timeout: 272 seconds) |
2021-07-13 07:15:09 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 255 seconds) |
2021-07-13 07:21:57 +0200 | whoschen | (~user@58.210.85.58) |
2021-07-13 07:28:00 +0200 | favonia | (~favonia@user/favonia) |
2021-07-13 07:29:28 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2021-07-13 07:30:26 +0200 | Guest25 | (~Guest25@187.83.249.216.dyn.smithville.net) (Quit: Client closed) |
2021-07-13 07:34:06 +0200 | jneira | (~jneira@212.8.115.226) |
2021-07-13 07:39:35 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-13 07:53:24 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2021-07-13 08:03:19 +0200 | fef | (~thedawn@user/thedawn) |
2021-07-13 08:04:37 +0200 | whoschen | (~user@58.210.85.58) (ERC (IRC client for Emacs 27.1)) |
2021-07-13 08:07:48 +0200 | danso | (~danso@23-233-111-52.cpe.pppoe.ca) (Ping timeout: 255 seconds) |
2021-07-13 08:14:10 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-07-13 08:16:10 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-13 08:20:51 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 255 seconds) |
2021-07-13 08:20:55 +0200 | danso | (~danso@23-233-111-52.cpe.pppoe.ca) |
2021-07-13 08:21:24 +0200 | Raugh | (~mike@174.127.249.180) (Remote host closed the connection) |
2021-07-13 08:26:12 +0200 | beka | (~beka@104.193.170-244.PUBLIC.monkeybrains.net) |
2021-07-13 08:37:26 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 256 seconds) |
2021-07-13 08:41:56 +0200 | fendor | (~fendor@178.115.59.187.wireless.dyn.drei.com) |
2021-07-13 08:42:18 +0200 | favonia | (~favonia@user/favonia) |
2021-07-13 08:45:01 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2021-07-13 08:46:30 +0200 | danso | (~danso@23-233-111-52.cpe.pppoe.ca) (Ping timeout: 256 seconds) |
2021-07-13 08:48:02 +0200 | a6a45081-2b83 | (~aditya@223.226.229.57) |
2021-07-13 08:53:22 +0200 | chris-the-slurpa | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-13 08:59:03 +0200 | chele | (~chele@user/chele) |
2021-07-13 09:00:31 +0200 | danso | (~danso@23-233-111-52.cpe.pppoe.ca) |
2021-07-13 09:01:00 +0200 | o1lo01ol1o | (~o1lo01ol1@bl7-89-228.dsl.telepac.pt) |
2021-07-13 09:06:09 +0200 | o1lo01ol1o | (~o1lo01ol1@bl7-89-228.dsl.telepac.pt) (Ping timeout: 276 seconds) |
2021-07-13 09:07:20 +0200 | wwalker | wwalker_comatose |
2021-07-13 09:09:20 +0200 | neceve | (~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f) |
2021-07-13 09:10:03 +0200 | beka | (~beka@104.193.170-244.PUBLIC.monkeybrains.net) (Ping timeout: 276 seconds) |
2021-07-13 09:11:52 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-07-13 09:12:20 +0200 | Vajb | (~Vajb@2001:999:62:1d53:26b1:6c9b:c1ed:9c01) |
2021-07-13 09:15:36 +0200 | acidjnk | (~acidjnk@p200300d0c72b95096d4cdcac61b6b349.dip0.t-ipconnect.de) |
2021-07-13 09:16:33 +0200 | jlamothe | (~jlamothe@198.251.60.157) (Ping timeout: 268 seconds) |
2021-07-13 09:17:47 +0200 | Obo | (~roberto@70.pool90-171-81.dynamic.orange.es) |
2021-07-13 09:18:00 +0200 | jlamothe | (~jlamothe@198.251.60.157) |
2021-07-13 09:20:18 +0200 | jespada | (~jespada@90.254.247.46) (Ping timeout: 265 seconds) |
2021-07-13 09:21:24 +0200 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) |
2021-07-13 09:22:31 +0200 | jespada | (~jespada@90.254.247.46) |
2021-07-13 09:22:57 +0200 | vicfred | (~vicfred@user/vicfred) (Quit: Leaving) |
2021-07-13 09:24:45 +0200 | trufas | (~trufas@177.240.218.218) (Ping timeout: 255 seconds) |
2021-07-13 09:27:03 +0200 | o1lo01ol1o | (~o1lo01ol1@bl7-89-228.dsl.telepac.pt) |
2021-07-13 09:28:42 +0200 | trufas | (~trufas@177.240.218.218) |
2021-07-13 09:30:11 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-13 09:31:16 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 256 seconds) |
2021-07-13 09:32:06 +0200 | Pickchea | (~private@user/pickchea) |
2021-07-13 09:33:51 +0200 | eggplant_ | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-07-13 09:34:54 +0200 | MQ-17J | (~MQ-17J@8.21.10.15) |
2021-07-13 09:41:51 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 255 seconds) |
2021-07-13 09:41:53 +0200 | MQ-17J | (~MQ-17J@8.21.10.15) (Read error: Connection reset by peer) |
2021-07-13 09:42:04 +0200 | MQ-17J | (~MQ-17J@8.21.10.15) |
2021-07-13 09:42:16 +0200 | favonia | (~favonia@user/favonia) |
2021-07-13 09:42:44 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) |
2021-07-13 09:45:37 +0200 | euandreh | (~euandreh@2804:14c:33:9fe5:3720:61ec:ee32:2ddc) (Ping timeout: 246 seconds) |
2021-07-13 09:46:49 +0200 | euandreh | (~euandreh@2804:14c:33:9fe5:50a8:9802:856c:54ce) |
2021-07-13 09:52:51 +0200 | wallymathieu | (~wallymath@81-234-151-21-no94.tbcn.telia.com) |
2021-07-13 09:53:20 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
2021-07-13 09:57:09 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 255 seconds) |
2021-07-13 09:57:34 +0200 | favonia | (~favonia@user/favonia) |
2021-07-13 09:57:35 +0200 | ubert | (~Thunderbi@p2e5a50e5.dip0.t-ipconnect.de) |
2021-07-13 09:58:36 +0200 | ubert | (~Thunderbi@p2e5a50e5.dip0.t-ipconnect.de) (Remote host closed the connection) |
2021-07-13 09:59:35 +0200 | ubert | (~Thunderbi@p2e5a50e5.dip0.t-ipconnect.de) |
2021-07-13 10:01:52 +0200 | Vajb | (~Vajb@2001:999:62:1d53:26b1:6c9b:c1ed:9c01) (Read error: Connection reset by peer) |
2021-07-13 10:02:05 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) |
2021-07-13 10:06:42 +0200 | hendursa1 | (~weechat@user/hendursaga) |
2021-07-13 10:08:55 +0200 | hendursaga | (~weechat@user/hendursaga) (Ping timeout: 244 seconds) |
2021-07-13 10:10:19 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-07-13 10:10:30 +0200 | jlamothe | (~jlamothe@198.251.60.157) (Ping timeout: 276 seconds) |
2021-07-13 10:12:59 +0200 | AlexZenon_2 | (~alzenon@94.233.240.7) |
2021-07-13 10:13:31 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
2021-07-13 10:13:40 +0200 | AlexZenon | (~alzenon@94.233.240.7) (Read error: Connection reset by peer) |
2021-07-13 10:16:00 +0200 | jlamothe | (~jlamothe@198.251.60.157) |
2021-07-13 10:17:32 +0200 | juhp | (~juhp@128.106.188.66) (Quit: juhp) |
2021-07-13 10:17:46 +0200 | juhp | (~juhp@128.106.188.66) |
2021-07-13 10:18:56 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 272 seconds) |
2021-07-13 10:19:21 +0200 | favonia | (~favonia@user/favonia) |
2021-07-13 10:24:23 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-13 10:25:09 +0200 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2021-07-13 10:25:36 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
2021-07-13 10:26:24 +0200 | anonymous-haskel | (~anonymous@78.155.54.115) |
2021-07-13 10:26:58 +0200 | anonymous-haskel | (~anonymous@78.155.54.115) (Client Quit) |
2021-07-13 10:27:27 +0200 | haskell-anon | (~haskell-a@78.155.54.115) |
2021-07-13 10:27:48 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 272 seconds) |
2021-07-13 10:27:56 +0200 | Lord_of_Life_ | Lord_of_Life |
2021-07-13 10:28:30 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 256 seconds) |
2021-07-13 10:29:21 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 276 seconds) |
2021-07-13 10:33:18 +0200 | zaquest | (~notzaques@5.128.210.178) (Remote host closed the connection) |
2021-07-13 10:34:08 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-07-13 10:35:04 +0200 | michalz | (~michalz@185.246.204.45) |
2021-07-13 10:44:24 +0200 | ubert | (~Thunderbi@p2e5a50e5.dip0.t-ipconnect.de) (Ping timeout: 255 seconds) |
2021-07-13 10:45:27 +0200 | Xnuk | (~xnuk@45.76.202.58) (Quit: ZNC - https://znc.in) |
2021-07-13 10:45:44 +0200 | Xnuk | (~xnuk@vultr.xnu.kr) |
2021-07-13 10:45:56 +0200 | zeenk | (~zeenk@2a02:2f04:a106:9600:82fb:aed9:ca9:38d3) |
2021-07-13 10:46:08 +0200 | tom__ | (~tom@2a00:23c8:9700:8001:a918:fa2c:4713:fcbd) |
2021-07-13 10:46:45 +0200 | Katarushisu | (~Katarushi@cpc152083-finc20-2-0-cust170.4-2.cable.virginm.net) (Ping timeout: 258 seconds) |
2021-07-13 10:48:27 +0200 | azeem | (~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it) (Ping timeout: 255 seconds) |
2021-07-13 10:48:39 +0200 | a6a45081-2b83 | (~aditya@223.226.229.57) (Remote host closed the connection) |
2021-07-13 10:49:39 +0200 | azeem | (~azeem@176.201.21.158) |
2021-07-13 10:50:01 +0200 | zincy__ | (~tom@2a00:23c8:9700:8001:6c68:60ee:e6e9:8a4c) (Ping timeout: 246 seconds) |
2021-07-13 10:50:04 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-07-13 10:51:05 +0200 | zcombinator | (~zcombinat@host-80-104-237-159.retail.telecomitalia.it) |
2021-07-13 10:51:48 +0200 | zaquest | (~notzaques@5.128.210.178) |
2021-07-13 10:52:15 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-07-13 10:52:24 +0200 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) |
2021-07-13 10:52:40 +0200 | haykam1 | (~haykam@static.100.2.21.65.clients.your-server.de) (Remote host closed the connection) |
2021-07-13 10:52:52 +0200 | haykam1 | (~haykam@static.100.2.21.65.clients.your-server.de) |
2021-07-13 10:56:10 +0200 | hatz_ | (~user@2a05:f480:1400:f44:5400:3ff:fe6d:f349) () |
2021-07-13 10:57:38 +0200 | Katarushisu | (~Katarushi@cpc152083-finc20-2-0-cust170.4-2.cable.virginm.net) |
2021-07-13 11:02:20 +0200 | ubert | (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) |
2021-07-13 11:03:21 +0200 | GIANTWORLDKEEPER | (~pjetcetal@128-71-13-182.broadband.corbina.ru) (Read error: Connection reset by peer) |
2021-07-13 11:09:36 +0200 | azeem | (~azeem@176.201.21.158) (Ping timeout: 255 seconds) |
2021-07-13 11:11:25 +0200 | azeem | (~azeem@176.201.21.158) |
2021-07-13 11:13:41 +0200 | GIANTWORLDKEEPER | (~pjetcetal@128-71-13-182.broadband.corbina.ru) |
2021-07-13 11:16:34 +0200 | azeem | (~azeem@176.201.21.158) (Ping timeout: 272 seconds) |
2021-07-13 11:17:35 +0200 | azeem | (~azeem@176.201.21.158) |
2021-07-13 11:24:02 +0200 | junkicide | (~user@2a01:e0a:195:20c0:3def:71a:a949:5adb) |
2021-07-13 11:25:23 +0200 | <junkicide> | I have the function length . lines <$> readFile "countLines.hs" but it gives an error when I try to fmap it over a list of filenames and I can't understand why |
2021-07-13 11:25:46 +0200 | <Rembane> | junkicide: What's the error and what's your code? |
2021-07-13 11:26:15 +0200 | azeem | (~azeem@176.201.21.158) (Ping timeout: 255 seconds) |
2021-07-13 11:26:30 +0200 | <junkicide> | countLines :: String -> String -> IO () |
2021-07-13 11:26:30 +0200 | <junkicide> | countLines str ext = do files <- getDirectoryContents str |
2021-07-13 11:26:30 +0200 | <junkicide> | let filtered = [do y <- readFile x | x <- files, ext == takeWhile (/='.') (reverse x)] |
2021-07-13 11:26:30 +0200 | <junkicide> | putStrLn $ show $ zip files $ fmap ( length . lines) filtered |
2021-07-13 11:27:20 +0200 | <junkicide> | hang on, this isn't the right one |
2021-07-13 11:28:20 +0200 | fef | (~thedawn@user/thedawn) (Quit: Leaving) |
2021-07-13 11:28:28 +0200 | azeem | (~azeem@176.201.21.158) |
2021-07-13 11:28:44 +0200 | GIANTWORLDKEEPER | pj_ |
2021-07-13 11:29:22 +0200 | <Rembane> | junkicide: Put it in a pastebin instead, like for instance: https://paste.tomsmeding.com/ |
2021-07-13 11:30:22 +0200 | <junkicide> | ok that's useful, thanks |
2021-07-13 11:31:05 +0200 | <Rembane> | No worries. :) |
2021-07-13 11:31:46 +0200 | shutdown_-h_now | (~arjan@82-75-187-100.cable.dynamic.v4.ziggo.nl) (Ping timeout: 265 seconds) |
2021-07-13 11:33:35 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2021-07-13 11:33:54 +0200 | <junkicide> | here it is |
2021-07-13 11:33:55 +0200 | <junkicide> | https://paste.tomsmeding.com/vaSgxQD6 |
2021-07-13 11:34:01 +0200 | <smtnet3> | seems to work on my end |
2021-07-13 11:34:03 +0200 | agua | (~agua@2804:18:49:ccb3:1:0:1397:e350) |
2021-07-13 11:34:35 +0200 | <smtnet3> | (length . lines) <$> readFile "Chapter6.hs" |
2021-07-13 11:35:11 +0200 | <junkicide> | yeah the problem comes when I try to fmap it over a list of filenames |
2021-07-13 11:36:12 +0200 | <Rembane> | junkicide: You need to use one fmap to do things on IO, and then another fmap to do things on the contents of list. |
2021-07-13 11:36:22 +0200 | <smtnet3> | try fmap . fmap |
2021-07-13 11:36:32 +0200 | hyiltiz | (~quassel@31.220.5.250) (Ping timeout: 268 seconds) |
2021-07-13 11:36:53 +0200 | <smtnet3> | :t (fmap . fmap) |
2021-07-13 11:36:54 +0200 | <lambdabot> | (Functor f1, Functor f2) => (a -> b) -> f1 (f2 a) -> f1 (f2 b) |
2021-07-13 11:36:57 +0200 | hyiltiz | (~quassel@31.220.5.250) |
2021-07-13 11:37:30 +0200 | azeem | (~azeem@176.201.21.158) (Ping timeout: 255 seconds) |
2021-07-13 11:37:41 +0200 | shutdown_-h_now | (~arjan@82-75-187-100.cable.dynamic.v4.ziggo.nl) |
2021-07-13 11:38:10 +0200 | <junkicide> | oh, fmap . fmap doesn't seem to work right away but I see where the problem is |
2021-07-13 11:38:22 +0200 | <junkicide> | thanks smtnet3 and Rembane |
2021-07-13 11:38:58 +0200 | <smtnet3> | junkicide, n/w |
2021-07-13 11:41:25 +0200 | azeem | (~azeem@176.201.7.106) |
2021-07-13 11:42:45 +0200 | pesada | (~agua@2804:14c:8793:8e2f:98f1:8c28:1a2b:634a) |
2021-07-13 11:44:10 +0200 | Core8606 | (~agua@2804:18:49:ccb3:1:0:1397:e350) |
2021-07-13 11:44:24 +0200 | agua | (~agua@2804:18:49:ccb3:1:0:1397:e350) (Read error: Connection reset by peer) |
2021-07-13 11:44:44 +0200 | mikoto-chan | (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) |
2021-07-13 11:46:57 +0200 | pesada | (~agua@2804:14c:8793:8e2f:98f1:8c28:1a2b:634a) (Ping timeout: 255 seconds) |
2021-07-13 11:47:06 +0200 | fef | (~thedawn@user/thedawn) |
2021-07-13 11:47:28 +0200 | fef | (~thedawn@user/thedawn) (Client Quit) |
2021-07-13 11:50:02 +0200 | <haskell-anon> | how do you make lsp's "jump to definition" work with dependencies |
2021-07-13 11:50:32 +0200 | jippiedoe | (~david@145.107.129.65) |
2021-07-13 11:52:53 +0200 | lep- | (~lep@94.31.97.183) |
2021-07-13 11:53:16 +0200 | lep | (~lep@94.31.86.183) (Read error: Connection reset by peer) |
2021-07-13 11:54:00 +0200 | lep | (~lep@94.31.86.183) |
2021-07-13 11:56:22 +0200 | <smtnet3> | w/ emacs, haskell-anon |
2021-07-13 11:56:24 +0200 | <smtnet3> | *? |
2021-07-13 11:56:35 +0200 | <haskell-anon> | yes, with emacs |
2021-07-13 11:56:52 +0200 | <Rembane> | junkicide: np! |
2021-07-13 11:57:05 +0200 | qbt | (~edun@user/edun) (Quit: WeeChat 3.2) |
2021-07-13 11:57:42 +0200 | <smtnet3> | unrelated but why is this the case with multiple shadowing bindings... let seems to take precedence over where https://pastebin.com/XBgTHEvw |
2021-07-13 11:57:44 +0200 | lep- | (~lep@94.31.97.183) (Ping timeout: 272 seconds) |
2021-07-13 11:58:20 +0200 | <smtnet3> | haskell-anon, there's an lsp discord if you don't find your answer here |
2021-07-13 11:58:47 +0200 | <haskell-anon> | ok |
2021-07-13 11:58:47 +0200 | <smtnet3> | lsp is a pain to setup if you don't know the whole shebang of it all |
2021-07-13 11:59:23 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) |
2021-07-13 11:59:49 +0200 | <tomsmeding> | smtnet3: the where-block is attached to the whole function right-hand side here |
2021-07-13 12:00:24 +0200 | <tomsmeding> | haskell-anon: there is also #haskell-language-server on this irc network :) |
2021-07-13 12:00:53 +0200 | fef | (~thedawn@user/thedawn) |
2021-07-13 12:02:52 +0200 | __monty__ | (~toonn@user/toonn) |
2021-07-13 12:10:32 +0200 | Atum_ | (IRC@user/atum/x-2392232) |
2021-07-13 12:11:03 +0200 | <smtnet3> | ah thanks, makes sense |
2021-07-13 12:11:10 +0200 | chexum | (~chexum@gateway/tor-sasl/chexum) (Quit: -) |
2021-07-13 12:14:04 +0200 | Kugge | (~Kugge@2a01:cb15:81e5:f00:cdab:bdca:57aa:ef6f) |
2021-07-13 12:15:44 +0200 | wallymathieu | (~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-07-13 12:18:26 +0200 | agua | (~agua@2804:14c:8793:8e2f:5173:dc4e:eaad:a0b8) |
2021-07-13 12:20:21 +0200 | chexum | (~chexum@gateway/tor-sasl/chexum) |
2021-07-13 12:21:51 +0200 | Kugge | (~Kugge@2a01:cb15:81e5:f00:cdab:bdca:57aa:ef6f) (Quit: Client closed) |
2021-07-13 12:23:06 +0200 | Core8606 | (~agua@2804:18:49:ccb3:1:0:1397:e350) (Ping timeout: 276 seconds) |
2021-07-13 12:24:09 +0200 | chexum | (~chexum@gateway/tor-sasl/chexum) (Client Quit) |
2021-07-13 12:24:23 +0200 | <fef> | feel Recursion is too hard. |
2021-07-13 12:25:11 +0200 | <fef> | and finding recurrence relation the most hardest part |
2021-07-13 12:26:06 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-13 12:30:14 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-13 12:30:49 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-07-13 12:31:00 +0200 | kadobanana | (~mud@user/kadoban) |
2021-07-13 12:31:06 +0200 | pesada | (~agua@2804:18:49:ccb3:1:0:1397:e350) |
2021-07-13 12:31:56 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds) |
2021-07-13 12:34:18 +0200 | agua | (~agua@2804:14c:8793:8e2f:5173:dc4e:eaad:a0b8) (Ping timeout: 256 seconds) |
2021-07-13 12:34:43 +0200 | pj_ | (~pjetcetal@128-71-13-182.broadband.corbina.ru) (Quit: EXIT) |
2021-07-13 12:35:13 +0200 | GIANTWORLDKEEPER | (~pjetcetal@128-71-13-182.broadband.corbina.ru) |
2021-07-13 12:35:54 +0200 | <smtnet3> | if you're completely new to recursion the first time it can feel a little weird |
2021-07-13 12:36:45 +0200 | Obo | (~roberto@70.pool90-171-81.dynamic.orange.es) (Ping timeout: 276 seconds) |
2021-07-13 12:36:51 +0200 | <smtnet3> | come back to it again after a little while again. There's also some great resources on youtube that introduce the concept very well |
2021-07-13 12:37:38 +0200 | dre | (~dre@2001:8003:c932:c301:44a6:1427:4d7d:b99a) (Quit: Leaving) |
2021-07-13 12:37:55 +0200 | tlax | (tlax@kapsi.fi) (Ping timeout: 258 seconds) |
2021-07-13 12:38:12 +0200 | ent | (entgod@kapsi.fi) (Ping timeout: 268 seconds) |
2021-07-13 12:41:08 +0200 | ent | (entgod@kapsi.fi) |
2021-07-13 12:41:08 +0200 | tlax | (tlax@kapsi.fi) |
2021-07-13 12:42:57 +0200 | <fef> | smtnet3, not new |
2021-07-13 12:43:44 +0200 | fef | (~thedawn@user/thedawn) (Remote host closed the connection) |
2021-07-13 12:46:06 +0200 | AlexZenon_2 | AlexZenon |
2021-07-13 12:46:30 +0200 | ubert | (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) (Ping timeout: 272 seconds) |
2021-07-13 12:55:21 +0200 | azeem | (~azeem@176.201.7.106) (Ping timeout: 255 seconds) |
2021-07-13 12:55:41 +0200 | azeem | (~azeem@176.201.7.106) |
2021-07-13 12:59:30 +0200 | ent | (entgod@kapsi.fi) (Ping timeout: 276 seconds) |
2021-07-13 13:01:44 +0200 | ent | (entgod@kapsi.fi) |
2021-07-13 13:02:33 +0200 | oxide | (~lambda@user/oxide) |
2021-07-13 13:04:20 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-07-13 13:05:28 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 256 seconds) |
2021-07-13 13:05:31 +0200 | MorrowM | (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 258 seconds) |
2021-07-13 13:05:39 +0200 | haskell-anon | (~haskell-a@78.155.54.115) (Quit: Client closed) |
2021-07-13 13:05:45 +0200 | cheater | (~Username@user/cheater) |
2021-07-13 13:06:10 +0200 | Morrow | (~Morrow@bzq-110-168-31-106.red.bezeqint.net) |
2021-07-13 13:07:06 +0200 | AlexNoo_ | (~AlexNoo@178.34.162.3) |
2021-07-13 13:09:53 +0200 | AlexZenon | (~alzenon@94.233.240.7) (Ping timeout: 265 seconds) |
2021-07-13 13:09:53 +0200 | Alex_test | (~al_test@94.233.240.7) (Ping timeout: 265 seconds) |
2021-07-13 13:10:51 +0200 | AlexNoo | (~AlexNoo@94.233.240.7) (Ping timeout: 265 seconds) |
2021-07-13 13:11:44 +0200 | MidAutumnMoon9 | (~MidAutumn@user/midautumnmoon) (Quit: Leaving for a break - theLounge) |
2021-07-13 13:12:22 +0200 | MidAutumnMoon9 | (~MidAutumn@user/midautumnmoon) |
2021-07-13 13:13:44 +0200 | Pickchea | (~private@user/pickchea) (Ping timeout: 272 seconds) |
2021-07-13 13:14:35 +0200 | Alex_test | (~al_test@178.34.162.3) |
2021-07-13 13:14:45 +0200 | AlexZenon | (~alzenon@178.34.162.3) |
2021-07-13 13:20:16 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2021-07-13 13:23:30 +0200 | niemand | (~niemand@p2e52f80a.dip0.t-ipconnect.de) |
2021-07-13 13:29:53 +0200 | smichel17 | (~smichel17@c-73-68-217-18.hsd1.ma.comcast.net) |
2021-07-13 13:30:29 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-07-13 13:30:40 +0200 | jneira | (~jneira@212.8.115.226) (Quit: Client closed) |
2021-07-13 13:31:16 +0200 | jneira | (~jneira@212.8.115.226) |
2021-07-13 13:31:48 +0200 | pbrisbin | (~patrick@pool-173-49-147-28.phlapa.fios.verizon.net) (Ping timeout: 255 seconds) |
2021-07-13 13:31:59 +0200 | wei2912 | (~wei2912@112.199.250.21) (Quit: Lost terminal) |
2021-07-13 13:32:04 +0200 | Teacup | (~teacup@user/teacup) (Ping timeout: 246 seconds) |
2021-07-13 13:32:06 +0200 | azeem | (~azeem@176.201.7.106) (Ping timeout: 256 seconds) |
2021-07-13 13:33:16 +0200 | azeem | (~azeem@176.201.7.106) |
2021-07-13 13:33:36 +0200 | Teacup | (~teacup@user/teacup) |
2021-07-13 13:33:57 +0200 | jippiedoe | (~david@145.107.129.65) (Ping timeout: 276 seconds) |
2021-07-13 13:36:35 +0200 | Pickchea | (~private@user/pickchea) |
2021-07-13 13:37:22 +0200 | jippiedoe | (~david@145.107.129.65) |
2021-07-13 13:37:35 +0200 | ubert | (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) |
2021-07-13 13:38:51 +0200 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) |
2021-07-13 13:38:53 +0200 | ukari | (~ukari@user/ukari) (Remote host closed the connection) |
2021-07-13 13:39:27 +0200 | ukari | (~ukari@user/ukari) |
2021-07-13 13:41:58 +0200 | Obo | (~roberto@70.pool90-171-81.dynamic.orange.es) |
2021-07-13 13:42:19 +0200 | junkicide | (~user@2a01:e0a:195:20c0:3def:71a:a949:5adb) (Remote host closed the connection) |
2021-07-13 13:43:52 +0200 | cheater1__ | (~Username@user/cheater) |
2021-07-13 13:45:04 +0200 | bontaq | (~user@ool-18e47f8d.dyn.optonline.net) |
2021-07-13 13:46:02 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 272 seconds) |
2021-07-13 13:46:05 +0200 | cheater1__ | cheater |
2021-07-13 13:48:30 +0200 | AlexNoo_ | AlexNoo |
2021-07-13 13:53:22 +0200 | anandprabhu | (~anandprab@94.202.243.198) |
2021-07-13 13:58:00 +0200 | pieguy128 | (~pieguy128@bras-base-mtrlpq5031w-grc-57-65-92-163-194.dsl.bell.ca) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-07-13 13:58:18 +0200 | pieguy128 | (~pieguy128@bras-base-mtrlpq5031w-grc-57-65-92-163-194.dsl.bell.ca) |
2021-07-13 13:58:39 +0200 | azeem | (~azeem@176.201.7.106) (Ping timeout: 276 seconds) |
2021-07-13 14:00:36 +0200 | ubert | (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) (Ping timeout: 272 seconds) |
2021-07-13 14:00:38 +0200 | azeem | (~azeem@176.201.7.106) |
2021-07-13 14:09:30 +0200 | azeem | (~azeem@176.201.7.106) (Ping timeout: 256 seconds) |
2021-07-13 14:10:36 +0200 | azeem | (~azeem@176.201.32.198) |
2021-07-13 14:11:24 +0200 | niemand | (~niemand@p2e52f80a.dip0.t-ipconnect.de) (Quit: Connection closed) |
2021-07-13 14:12:52 +0200 | juhp | (~juhp@128.106.188.66) (Quit: juhp) |
2021-07-13 14:13:06 +0200 | juhp | (~juhp@128.106.188.66) |
2021-07-13 14:17:49 +0200 | ph88 | (~ph88@2a02:8109:9e00:7e5c:f009:5606:b7ea:3eb0) (Quit: Leaving) |
2021-07-13 14:17:54 +0200 | mikail_ | (~mikail@2a02:c7f:bd83:fd00:55cf:122f:957a:f66f) |
2021-07-13 14:19:30 +0200 | azeem | (~azeem@176.201.32.198) (Ping timeout: 255 seconds) |
2021-07-13 14:19:58 +0200 | azeem | (~azeem@176.201.32.198) |
2021-07-13 14:24:26 +0200 | wolfshappen | (~waff@irc.furworks.de) |
2021-07-13 14:27:31 +0200 | favonia | (~favonia@user/favonia) |
2021-07-13 14:28:20 +0200 | smarton | (~smarton@gnu/webmaster/smarton) (Quit: ZNC 1.7.2+deb3 - https://znc.in) |
2021-07-13 14:28:33 +0200 | smarton | (~smarton@gnu/webmaster/smarton) |
2021-07-13 14:29:12 +0200 | mikail_ | (~mikail@2a02:c7f:bd83:fd00:55cf:122f:957a:f66f) (Ping timeout: 276 seconds) |
2021-07-13 14:31:09 +0200 | prite | (~pritam@user/pritambaral) (Ping timeout: 276 seconds) |
2021-07-13 14:31:57 +0200 | wolfshappen | (~waff@irc.furworks.de) (Quit: later) |
2021-07-13 14:32:06 +0200 | pbrisbin | (~patrick@pool-173-49-147-28.phlapa.fios.verizon.net) |
2021-07-13 14:32:22 +0200 | wolfshappen | (~waff@irc.furworks.de) |
2021-07-13 14:33:46 +0200 | azeem | (~azeem@176.201.32.198) (Read error: Connection reset by peer) |
2021-07-13 14:34:24 +0200 | mikoto-chan | (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Ping timeout: 276 seconds) |
2021-07-13 14:36:09 +0200 | azeem | (~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it) |
2021-07-13 14:38:36 +0200 | Obo | (~roberto@70.pool90-171-81.dynamic.orange.es) (Ping timeout: 272 seconds) |
2021-07-13 14:39:28 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2021-07-13 14:42:35 +0200 | hseg | (~gesh@185.120.126.10) |
2021-07-13 14:43:19 +0200 | <hseg> | hi. for a bit of pretty-printing, would like to define a type ~ (String, a -> b) and give it a Category instance |
2021-07-13 14:43:29 +0200 | <hseg> | not sure how to spell the deriving via clause for this though |
2021-07-13 14:44:23 +0200 | <hseg> | like, if I were just deriving (* -> *) -> Constraint I could derive via (K1 String :*: T) |
2021-07-13 14:45:01 +0200 | <hseg> | but not sure how to make that product feed two arguments to the factors |
2021-07-13 14:46:34 +0200 | lbseale | (~lbseale@user/ep1ctetus) |
2021-07-13 14:47:10 +0200 | <hseg> | also, is there a way to derivevia a single-constructor data type via its obvious repacking into a tuple? |
2021-07-13 14:47:10 +0200 | azeem | (~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it) (Read error: Connection reset by peer) |
2021-07-13 14:47:31 +0200 | azeem | (~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it) |
2021-07-13 14:47:35 +0200 | <hseg> | eg data V3 a = V3 a a a deriving C via ((a,a,a) ?) |
2021-07-13 14:47:50 +0200 | <Hecate> | davean: o/ hi! Could you remind me how you deal with routing API calls in Happstack to a Servant/WAI server? :) |
2021-07-13 14:47:53 +0200 | <hseg> | .. oops, ? and ) transposed there |
2021-07-13 14:50:53 +0200 | <hseg> | ah nm, can get away with Endo String :*: Endo a in my usecase, no need for the full power of Category |
2021-07-13 14:51:09 +0200 | jneira | (~jneira@212.8.115.226) (Quit: Client closed) |
2021-07-13 14:53:08 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 256 seconds) |
2021-07-13 14:53:37 +0200 | cheater | (~Username@user/cheater) |
2021-07-13 14:55:46 +0200 | <hseg> | hrm. is a bit painful though, would prefer a full category |
2021-07-13 14:57:48 +0200 | lbseale | (~lbseale@user/ep1ctetus) (Ping timeout: 276 seconds) |
2021-07-13 15:00:42 +0200 | mikoto-chan | (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) |
2021-07-13 15:00:51 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-13 15:01:08 +0200 | alx741 | (~alx741@186.178.108.22) |
2021-07-13 15:03:10 +0200 | roconnor | (~roconnor@host-45-78-194-41.dyn.295.ca) |
2021-07-13 15:03:16 +0200 | <roconnor> | Module ‘Data.ByteString.Short’ does not export ‘reverse’. :( |
2021-07-13 15:04:10 +0200 | qbt | (~edun@user/edun) |
2021-07-13 15:04:42 +0200 | ukari | (~ukari@user/ukari) (Remote host closed the connection) |
2021-07-13 15:05:36 +0200 | ukari | (~ukari@user/ukari) |
2021-07-13 15:06:00 +0200 | thecoder | (~mrrobot@static-47-206-93-60.tamp.fl.frontiernet.net) |
2021-07-13 15:07:40 +0200 | agua | (~agua@2804:18:46:bafa:1:0:1551:7319) |
2021-07-13 15:10:09 +0200 | pesada | (~agua@2804:18:49:ccb3:1:0:1397:e350) (Ping timeout: 276 seconds) |
2021-07-13 15:12:58 +0200 | Pickchea | (~private@user/pickchea) (Ping timeout: 256 seconds) |
2021-07-13 15:15:31 +0200 | zebrag | (~chris@user/zebrag) |
2021-07-13 15:17:12 +0200 | anandprabhu | (~anandprab@94.202.243.198) (Quit: Leaving) |
2021-07-13 15:18:36 +0200 | hseg | (~gesh@185.120.126.10) (Ping timeout: 276 seconds) |
2021-07-13 15:22:18 +0200 | <maerwald> | roconnor: yeah |
2021-07-13 15:22:32 +0200 | <maerwald> | roconnor: I've been creating my own prelude for it in another project |
2021-07-13 15:23:43 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-13 15:24:11 +0200 | <maerwald> | I'm not sure if that was a concious decision to leave it crippled |
2021-07-13 15:24:33 +0200 | <maerwald> | I mean, it's obvious that many operations require copying the entire bytestring |
2021-07-13 15:24:35 +0200 | Pickchea | (~private@user/pickchea) |
2021-07-13 15:25:57 +0200 | hseg | (~gesh@185.120.126.10) |
2021-07-13 15:26:11 +0200 | <maerwald> | https://github.com/hasufell/abstract-filepath/blob/master/lib/AbstractFilePath/ShortByteString.hs but I don't have 'reverse', lol |
2021-07-13 15:28:21 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 255 seconds) |
2021-07-13 15:30:02 +0200 | <davean> | Hecate: https://hackage.haskell.org/package/happstack-server-7.7.1.1/docs/Happstack-Server-Internal-Monads… You build the happstack Request from WAI's, you call runServerPartT and then you convert the response back. IIRC, its been a long, long while. |
2021-07-13 15:31:36 +0200 | chris-the-slurpa | (~chris@81.96.113.213) |
2021-07-13 15:32:00 +0200 | chris-the-slurpa | (~chris@81.96.113.213) (Read error: Connection reset by peer) |
2021-07-13 15:32:12 +0200 | chris-the-slurpa | (~chris@81.96.113.213) |
2021-07-13 15:33:37 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2021-07-13 15:34:37 +0200 | dibblego | (~dibblego@122-199-1-30.ip4.superloop.com) (Changing host) |
2021-07-13 15:34:37 +0200 | dibblego | (~dibblego@haskell/developer/dibblego) |
2021-07-13 15:35:06 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 255 seconds) |
2021-07-13 15:38:25 +0200 | <Hecate> | davean: okay so it's really more about embedding Happstack in WAI and converting. :) Thank you! |
2021-07-13 15:38:32 +0200 | <davean> | yep |
2021-07-13 15:40:48 +0200 | jolly | (~jolly@208.180.97.158) (Quit: Connection closed) |
2021-07-13 15:44:36 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 258 seconds) |
2021-07-13 15:45:00 +0200 | cheater | (~Username@user/cheater) |
2021-07-13 15:47:54 +0200 | favonia | (~favonia@user/favonia) (Remote host closed the connection) |
2021-07-13 15:49:04 +0200 | favonia | (~favonia@user/favonia) |
2021-07-13 15:52:12 +0200 | hseg | (~gesh@185.120.126.10) (Ping timeout: 255 seconds) |
2021-07-13 15:52:47 +0200 | ubert | (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) |
2021-07-13 15:53:07 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2021-07-13 15:53:46 +0200 | acidjnk | (~acidjnk@p200300d0c72b95096d4cdcac61b6b349.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
2021-07-13 15:57:39 +0200 | zcombinator | (~zcombinat@host-80-104-237-159.retail.telecomitalia.it) (Quit: WeeChat 3.2) |
2021-07-13 16:00:18 +0200 | wallymathieu | (~wallymath@81-234-151-21-no94.tbcn.telia.com) |
2021-07-13 16:01:19 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-07-13 16:02:07 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) |
2021-07-13 16:02:16 +0200 | michalz | (~michalz@185.246.204.45) (Remote host closed the connection) |
2021-07-13 16:03:13 +0200 | juhp | (~juhp@128.106.188.66) (Quit: juhp) |
2021-07-13 16:03:28 +0200 | juhp | (~juhp@128.106.188.66) |
2021-07-13 16:05:16 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-13 16:06:36 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Ping timeout: 255 seconds) |
2021-07-13 16:07:22 +0200 | mjs2600 | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Ping timeout: 256 seconds) |
2021-07-13 16:07:46 +0200 | Vajb | (~Vajb@2001:999:62:1d53:26b1:6c9b:c1ed:9c01) |
2021-07-13 16:08:57 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
2021-07-13 16:10:12 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds) |
2021-07-13 16:10:36 +0200 | shutdown_-h_now | (~arjan@82-75-187-100.cable.dynamic.v4.ziggo.nl) (Ping timeout: 276 seconds) |
2021-07-13 16:15:39 +0200 | shutdown_-h_now | (~arjan@82-75-187-100.cable.dynamic.v4.ziggo.nl) |
2021-07-13 16:16:38 +0200 | hendursa1 | (~weechat@user/hendursaga) (Quit: hendursa1) |
2021-07-13 16:17:17 +0200 | hendursaga | (~weechat@user/hendursaga) |
2021-07-13 16:18:23 +0200 | Atum__ | (IRC@user/atum/x-2392232) |
2021-07-13 16:18:48 +0200 | wwalker_comatose | wwalker |
2021-07-13 16:20:03 +0200 | stevenxl | (~stevenlei@66.63.167.105) |
2021-07-13 16:20:22 +0200 | smichel17 | (~smichel17@c-73-68-217-18.hsd1.ma.comcast.net) (Quit: smichel17) |
2021-07-13 16:21:02 +0200 | smichel17 | (~smichel17@2601:193:8300:4b9::600) |
2021-07-13 16:22:18 +0200 | Atum_ | (IRC@user/atum/x-2392232) (Ping timeout: 276 seconds) |
2021-07-13 16:23:45 +0200 | warnz | (~warnz@104-55-100-55.lightspeed.lsvlky.sbcglobal.net) |
2021-07-13 16:28:02 +0200 | Obo | (~roberto@70.pool90-171-81.dynamic.orange.es) |
2021-07-13 16:28:08 +0200 | infinisil | (~infinisil@2001:470:69fc:105::ff8) (*.net *.split) |
2021-07-13 16:28:08 +0200 | vbeatrice[m] | (~vbeatrice@2001:470:69fc:105::3ebf) (*.net *.split) |
2021-07-13 16:28:08 +0200 | jellz[m] | (~jellzmatr@2001:470:69fc:105::2daa) (*.net *.split) |
2021-07-13 16:28:08 +0200 | adziahel[m] | (~adziahelm@2001:470:69fc:105::b4d) (*.net *.split) |
2021-07-13 16:28:08 +0200 | unrooted | (~unrooted@2001:470:69fc:105::a4a) (*.net *.split) |
2021-07-13 16:28:08 +0200 | fabfianda[m] | (~fabfianda@2001:470:69fc:105::6db) (*.net *.split) |
2021-07-13 16:28:08 +0200 | peddie | (~peddie@2001:470:69fc:105::25d) (*.net *.split) |
2021-07-13 16:28:08 +0200 | img | (~img@user/img) (*.net *.split) |
2021-07-13 16:28:08 +0200 | troydm | (~troydm@host-176-37-124-197.b025.la.net.ua) (*.net *.split) |
2021-07-13 16:28:08 +0200 | sqrt2 | (~ben@tunnel330957-pt.tunnel.tserv6.fra1.ipv6.he.net) (*.net *.split) |
2021-07-13 16:28:08 +0200 | sshine | (~simon@hubris.eta.solutions) (*.net *.split) |
2021-07-13 16:28:08 +0200 | synthmeat | (~synthmeat@user/synthmeat) (*.net *.split) |
2021-07-13 16:28:08 +0200 | dminuoso | (~dminuoso@user/dminuoso) (*.net *.split) |
2021-07-13 16:28:08 +0200 | dextaa | (~DV@aftr-37-201-214-197.unity-media.net) (*.net *.split) |
2021-07-13 16:28:09 +0200 | welterde | (welterde@thinkbase.srv.welterde.de) (*.net *.split) |
2021-07-13 16:28:09 +0200 | AWizzArd | (~code@user/awizzard) (*.net *.split) |
2021-07-13 16:28:09 +0200 | vjoki | (~vjoki@2a00:d880:3:1::fea1:9ae) (*.net *.split) |
2021-07-13 16:28:09 +0200 | oldmate | (~spider@user/oldmate) (*.net *.split) |
2021-07-13 16:28:09 +0200 | jle` | (~justin@cpe-23-240-75-236.socal.res.rr.com) (*.net *.split) |
2021-07-13 16:28:09 +0200 | xlei | (znc@pool-68-129-84-118.nycmny.fios.verizon.net) (*.net *.split) |
2021-07-13 16:28:09 +0200 | liskin | (~liskin@xmonad/liskin) (*.net *.split) |
2021-07-13 16:28:09 +0200 | wz1000 | (~zubin@static.11.113.47.78.clients.your-server.de) (*.net *.split) |
2021-07-13 16:28:09 +0200 | bastelfreak | (~bastelfre@basteles-bastelknecht.bastelfreak.org) (*.net *.split) |
2021-07-13 16:28:09 +0200 | cocreature | (~moritz@2a03:b0c0:3:d0::c8:f001) (*.net *.split) |
2021-07-13 16:28:13 +0200 | AWizzArd_ | (~code@gehrels.uberspace.de) |
2021-07-13 16:28:17 +0200 | sqrt2_ | (~ben@80-108-18-7.cable.dynamic.surfer.at) |
2021-07-13 16:28:18 +0200 | sshine | (~simon@hubris.eta.solutions) |
2021-07-13 16:28:28 +0200 | troydm | (~troydm@host-176-37-124-197.b025.la.net.ua) |
2021-07-13 16:28:29 +0200 | oldmate | (~spider@vps-951ce37a.vps.ovh.ca) |
2021-07-13 16:28:38 +0200 | wz1000 | (~zubin@static.11.113.47.78.clients.your-server.de) |
2021-07-13 16:28:38 +0200 | liskin | (~liskin@ackle.nomi.cz) |
2021-07-13 16:28:41 +0200 | dextaa | (~DV@aftr-37-201-214-197.unity-media.net) |
2021-07-13 16:28:42 +0200 | vjoki | (~vjoki@2a00:d880:3:1::fea1:9ae) |
2021-07-13 16:28:43 +0200 | jle` | (~justin@cpe-23-240-75-236.socal.res.rr.com) |
2021-07-13 16:28:52 +0200 | dminuoso | (~dminuoso@static.88-198-218-68.clients.your-server.de) |
2021-07-13 16:28:56 +0200 | bastelfreak | (~bastelfre@basteles-bastelknecht.bastelfreak.org) |
2021-07-13 16:28:57 +0200 | welterde | (welterde@thinkbase.srv.welterde.de) |
2021-07-13 16:29:09 +0200 | cocreature | (~moritz@2a03:b0c0:3:d0::c8:f001) |
2021-07-13 16:29:14 +0200 | synthmeat | (~synthmeat@user/synthmeat) |
2021-07-13 16:29:49 +0200 | welterde | (welterde@thinkbase.srv.welterde.de) (Client Quit) |
2021-07-13 16:29:57 +0200 | welterde | (welterde@thinkbase.srv.welterde.de) |
2021-07-13 16:31:06 +0200 | liskin | (~liskin@ackle.nomi.cz) (Client Quit) |
2021-07-13 16:31:15 +0200 | liskin | (~liskin@ackle.nomi.cz) |
2021-07-13 16:32:41 +0200 | fendor | (~fendor@178.115.59.187.wireless.dyn.drei.com) (Remote host closed the connection) |
2021-07-13 16:32:48 +0200 | liskin | (~liskin@ackle.nomi.cz) (Changing host) |
2021-07-13 16:32:48 +0200 | liskin | (~liskin@xmonad/liskin) |
2021-07-13 16:33:49 +0200 | fendor | (~fendor@178.115.59.187.wireless.dyn.drei.com) |
2021-07-13 16:36:44 +0200 | xlei | (znc@pool-68-129-84-118.nycmny.fios.verizon.net) |
2021-07-13 16:36:51 +0200 | img | (~img@user/img) |
2021-07-13 16:37:35 +0200 | warnz | (~warnz@104-55-100-55.lightspeed.lsvlky.sbcglobal.net) (Remote host closed the connection) |
2021-07-13 16:41:22 +0200 | Pickchea | (~private@user/pickchea) (Ping timeout: 256 seconds) |
2021-07-13 16:43:04 +0200 | wallymathieu | (~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-07-13 16:46:47 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-13 16:50:09 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-07-13 16:51:00 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
2021-07-13 17:00:37 +0200 | zinc | zdleaf |
2021-07-13 17:00:37 +0200 | johnw | (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) |
2021-07-13 17:05:43 +0200 | <guibou> | I'm wondering about "full lazyness", CAF and memoization function. If you have a 'memo' function, such as the one available in the hackage package 'memoize' or 'uglymemo'. If you use it like: myFunctionMemo = memo f, it works, but if you use it like: myFunctionMemo s = memo f s, it may not works, unless GHC "floats" "memo f" out. All of the "pure" memoization library I know are based on this fact. |
2021-07-13 17:05:49 +0200 | <guibou> | However, is this guaranteed and if yes, why? (pointers to the right part of documentation highly appreciated). |
2021-07-13 17:07:34 +0200 | hughjfchen | (~hughjfche@vmi556545.contaboserver.net) |
2021-07-13 17:09:39 +0200 | hughjfchen | (~hughjfche@vmi556545.contaboserver.net) (Client Quit) |
2021-07-13 17:10:42 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-13 17:10:48 +0200 | <guibou> | (the keywords I do have in mind are related to "full lazyness", "CAF", "fully/partially saturated", but nothing precise enough in order to find details about this behavior. |
2021-07-13 17:12:06 +0200 | derelict | (~derelict@user/derelict) |
2021-07-13 17:12:30 +0200 | jippiedoe | (~david@145.107.129.65) (Ping timeout: 272 seconds) |
2021-07-13 17:12:54 +0200 | liskin | (~liskin@xmonad/liskin) (Quit: liskin) |
2021-07-13 17:13:02 +0200 | liskin | (~liskin@xmonad/liskin) |
2021-07-13 17:13:33 +0200 | juhp | (~juhp@128.106.188.66) (Quit: juhp) |
2021-07-13 17:13:48 +0200 | juhp | (~juhp@128.106.188.66) |
2021-07-13 17:15:33 +0200 | Pickchea | (~private@user/pickchea) |
2021-07-13 17:16:18 +0200 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 272 seconds) |
2021-07-13 17:16:41 +0200 | mr-red | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) |
2021-07-13 17:17:04 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 256 seconds) |
2021-07-13 17:17:21 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-07-13 17:19:02 +0200 | chomwitt | (~Pitsikoko@2a02:587:dc04:e00:12c3:7bff:fe6d:d374) |
2021-07-13 17:19:03 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-07-13 17:20:28 +0200 | chris-the-slurpa | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-13 17:26:47 +0200 | Kaiepi | (~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection) |
2021-07-13 17:28:02 +0200 | mr-red | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-07-13 17:28:56 +0200 | Kaiepi | (~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) |
2021-07-13 17:29:51 +0200 | MQ-17J | (~MQ-17J@8.21.10.15) (Ping timeout: 255 seconds) |
2021-07-13 17:29:55 +0200 | rostero | (uid236576@id-236576.tooting.irccloud.com) |
2021-07-13 17:30:08 +0200 | MQ-17J | (~MQ-17J@8.21.10.15) |
2021-07-13 17:30:21 +0200 | Kaiepi | (~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection) |
2021-07-13 17:32:14 +0200 | ukari | (~ukari@user/ukari) (Remote host closed the connection) |
2021-07-13 17:33:26 +0200 | ukari | (~ukari@user/ukari) |
2021-07-13 17:34:51 +0200 | Kaiepi | (~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) |
2021-07-13 17:36:37 +0200 | Kaiepi | (~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection) |
2021-07-13 17:37:00 +0200 | <lechner> | Hi, Haskell is so much better than Java! "return type polymorphism" https://joyofhaskell.com/posts/2017-03-15-typeclasses-in-translation.html |
2021-07-13 17:37:52 +0200 | hexfive | (~eric@50.35.83.177) |
2021-07-13 17:38:36 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 256 seconds) |
2021-07-13 17:38:45 +0200 | cheater | (~Username@user/cheater) |
2021-07-13 17:40:09 +0200 | <dsal> | modern idiomatic java is the worst thing I've had to deal with. |
2021-07-13 17:40:59 +0200 | Kaiepi | (~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) |
2021-07-13 17:41:06 +0200 | jespada | (~jespada@90.254.247.46) (Ping timeout: 255 seconds) |
2021-07-13 17:42:18 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection) |
2021-07-13 17:43:16 +0200 | jespada | (~jespada@90.254.247.46) |
2021-07-13 17:43:43 +0200 | myShoggoth | (~myShoggot@97-120-70-214.ptld.qwest.net) |
2021-07-13 17:46:27 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-13 17:51:52 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
2021-07-13 17:52:30 +0200 | thecoder | (~mrrobot@static-47-206-93-60.tamp.fl.frontiernet.net) (Quit: leaving) |
2021-07-13 17:53:11 +0200 | shapr | (~user@pool-108-28-144-11.washdc.fios.verizon.net) |
2021-07-13 17:54:46 +0200 | stevenxl | (~stevenlei@66.63.167.105) (Quit: leaving) |
2021-07-13 17:55:13 +0200 | <systemfault> | You need more PHP in your life then :) |
2021-07-13 17:57:21 +0200 | jolly | (~jolly@208.180.97.158) |
2021-07-13 17:59:08 +0200 | <monochrom> | I find higher-kind polymorphism even nicer. I.e., you can generalize from "Maybe Int" and "List Int" to "f Int". |
2021-07-13 18:00:04 +0200 | lbseale | (~lbseale@user/ep1ctetus) |
2021-07-13 18:02:51 +0200 | zdleaf | (~zinc@163.ip-51-254-203.eu) (Quit: ) |
2021-07-13 18:06:18 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) (Ping timeout: 255 seconds) |
2021-07-13 18:07:54 +0200 | ukari | (~ukari@user/ukari) (Remote host closed the connection) |
2021-07-13 18:08:11 +0200 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection) |
2021-07-13 18:08:19 +0200 | ukari | (~ukari@user/ukari) |
2021-07-13 18:15:14 +0200 | zdleaf | (~zdleaf@163.ip-51-254-203.eu) |
2021-07-13 18:16:29 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) |
2021-07-13 18:18:37 +0200 | ubert | (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) (Remote host closed the connection) |
2021-07-13 18:19:00 +0200 | qbt | (~edun@user/edun) (Ping timeout: 272 seconds) |
2021-07-13 18:20:23 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2021-07-13 18:21:04 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2021-07-13 18:25:18 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-13 18:29:16 +0200 | mikail_ | (~mikail@2a02:c7f:bd83:fd00:55cf:122f:957a:f66f) |
2021-07-13 18:38:05 +0200 | warnz | (~warnz@2600:1700:77c0:5610:9856:f279:a598:9845) |
2021-07-13 18:38:09 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 276 seconds) |
2021-07-13 18:41:01 +0200 | chexum | (~chexum@gateway/tor-sasl/chexum) |
2021-07-13 18:41:46 +0200 | warnz | (~warnz@2600:1700:77c0:5610:9856:f279:a598:9845) (Remote host closed the connection) |
2021-07-13 18:41:58 +0200 | warnz | (~warnz@2600:1700:77c0:5610:9856:f279:a598:9845) |
2021-07-13 18:42:26 +0200 | machinedgod | (~machinedg@24.105.81.50) |
2021-07-13 18:45:24 +0200 | <hendursaga> | *cough* Clojure anyone? |
2021-07-13 18:47:31 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2021-07-13 18:48:11 +0200 | dminuoso | (~dminuoso@static.88-198-218-68.clients.your-server.de) (Changing host) |
2021-07-13 18:48:11 +0200 | dminuoso | (~dminuoso@user/dminuoso) |
2021-07-13 18:49:53 +0200 | eggplantade | (~Eggplanta@108.201.191.115) |
2021-07-13 18:50:07 +0200 | chexum | (~chexum@gateway/tor-sasl/chexum) (Quit: -) |
2021-07-13 18:54:27 +0200 | chexum | (~chexum@gateway/tor-sasl/chexum) |
2021-07-13 18:55:52 +0200 | eight | (~eight@user/eight) |
2021-07-13 18:56:21 +0200 | dajoer | (~david@user/gvx) (Quit: leaving) |
2021-07-13 18:57:29 +0200 | chele | (~chele@user/chele) (Remote host closed the connection) |
2021-07-13 18:57:37 +0200 | shapr | hops cheerfully |
2021-07-13 18:59:56 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-07-13 19:02:03 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) |
2021-07-13 19:03:12 +0200 | roconnor | (~roconnor@host-45-78-194-41.dyn.295.ca) (Ping timeout: 265 seconds) |
2021-07-13 19:03:20 +0200 | oxide | (~lambda@user/oxide) (Ping timeout: 272 seconds) |
2021-07-13 19:04:31 +0200 | chexum | (~chexum@gateway/tor-sasl/chexum) (Quit: -) |
2021-07-13 19:04:48 +0200 | oxide | (~lambda@user/oxide) |
2021-07-13 19:07:30 +0200 | warnz | (~warnz@2600:1700:77c0:5610:9856:f279:a598:9845) (Remote host closed the connection) |
2021-07-13 19:13:00 +0200 | jess | (~jess@libera/staff/jess) () |
2021-07-13 19:14:11 +0200 | mikail_ | (~mikail@2a02:c7f:bd83:fd00:55cf:122f:957a:f66f) (Quit: Leaving) |
2021-07-13 19:19:06 +0200 | MQ-17J | (~MQ-17J@8.21.10.15) (Ping timeout: 276 seconds) |
2021-07-13 19:19:17 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-07-13 19:20:32 +0200 | hseg | (~gesh@185.120.126.10) |
2021-07-13 19:22:05 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) |
2021-07-13 19:24:37 +0200 | SimonWeiss[m] | (~weiss-dma@2001:470:69fc:105::bebd) |
2021-07-13 19:27:29 +0200 | thonkpod | (~thonkpod@user/thonkpod) (Ping timeout: 255 seconds) |
2021-07-13 19:30:09 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Ping timeout: 276 seconds) |
2021-07-13 19:32:08 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-07-13 19:34:25 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-13 19:35:26 +0200 | chris-the-slurpa | (~chris@81.96.113.213) |
2021-07-13 19:35:32 +0200 | norias | (~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) |
2021-07-13 19:36:22 +0200 | myShoggoth | (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 252 seconds) |
2021-07-13 19:36:52 +0200 | chris-the-slurpa | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-13 19:38:17 +0200 | chexum | (~chexum@gateway/tor-sasl/chexum) |
2021-07-13 19:39:18 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 256 seconds) |
2021-07-13 19:39:40 +0200 | cheater | (~Username@user/cheater) |
2021-07-13 19:39:54 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds) |
2021-07-13 19:41:12 +0200 | warnz | (~warnz@2600:1700:77c0:5610:9856:f279:a598:9845) |
2021-07-13 19:42:15 +0200 | eggplantade | (~Eggplanta@108.201.191.115) (Remote host closed the connection) |
2021-07-13 19:42:50 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds) |
2021-07-13 19:43:03 +0200 | azeem | (~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it) (Ping timeout: 255 seconds) |
2021-07-13 19:43:30 +0200 | Guest2168 | (~Guest21@187.83.249.216.dyn.smithville.net) |
2021-07-13 19:44:23 +0200 | <maerwald> | why are Go projects always these huge things that do so much stuff that I don't even understand what they do |
2021-07-13 19:44:37 +0200 | chris-the-slurpa | (~chris@81.96.113.213) |
2021-07-13 19:44:56 +0200 | Guest9 | (~Guest9@103.250.139.121) |
2021-07-13 19:44:59 +0200 | myShoggoth | (~myShoggot@97-120-70-214.ptld.qwest.net) |
2021-07-13 19:46:23 +0200 | <Guest2168> | I have a cyclic module dependency where Foo imports Bar and Bar imports Foo which ghc doesn't like...but Bar was really just functions in Foo that I wanted to put in a separate file for clarity |
2021-07-13 19:46:35 +0200 | azeem | (~azeem@176.200.242.63) |
2021-07-13 19:46:38 +0200 | <Guest2168> | breaking the dependency is painful, but is there a way to say "compile Foo.hs and Bar.hs as if you concatenated the source"? |
2021-07-13 19:47:05 +0200 | <maerwald> | Guest2168: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/separate_compilation.html#how-to-c… |
2021-07-13 19:47:08 +0200 | hrnz | (~ulli@irc.plumbing) (Quit: das ist mir zu bld hier; bb) |
2021-07-13 19:49:04 +0200 | <monochrom> | Turn on CPP and use #include? |
2021-07-13 19:49:07 +0200 | <dminuoso> | Guest2168: So the short answer is: No. You either move things into the same source file, or you try to float definitions into separate files. |
2021-07-13 19:49:13 +0200 | hrnz | (~ulli@irc.plumbing) |
2021-07-13 19:49:29 +0200 | Guest997 | (~Guest9@103.250.139.121) |
2021-07-13 19:49:48 +0200 | hrnz | (~ulli@irc.plumbing) (Client Quit) |
2021-07-13 19:49:54 +0200 | <dminuoso> | Guest2168: The long answer is: boot modules sort of work, but they break in mysterious ways. Avoid circular imports. |
2021-07-13 19:50:05 +0200 | <dminuoso> | (strange, that the long answer is shorter...) |
2021-07-13 19:50:05 +0200 | <maerwald> | what's wrong with boot modules |
2021-07-13 19:50:09 +0200 | <hseg> | still trying to derivevia a Category instance for a type ~ (m, a -> b) for m a monoid. problem is I don't see how to spell a type coercible with this one that eta-contracts away the a and b |
2021-07-13 19:50:10 +0200 | <Guest2168> | thanks, yeah I saw that maerwald but it looks like it'll be a huge pain and might not work (I need to expose a lot of stuff that actually do depend on the other file) |
2021-07-13 19:50:20 +0200 | <maerwald> | Guest2168: I use it, it works well |
2021-07-13 19:50:24 +0200 | <maerwald> | GHC itself uses it |
2021-07-13 19:50:42 +0200 | <dminuoso> | maerwald: Yes. Ask the the GHC core team what they think of it. |
2021-07-13 19:50:49 +0200 | hrnz | (~ulli@irc.plumbing) |
2021-07-13 19:50:58 +0200 | <maerwald> | dminuoso: why? you claimed that it breaks :> |
2021-07-13 19:51:03 +0200 | <dminuoso> | It does. |
2021-07-13 19:51:05 +0200 | <maerwald> | so I'm asking you |
2021-07-13 19:51:36 +0200 | <monochrom> | No, my answer is better and I am more right! |
2021-07-13 19:51:36 +0200 | Obo | (~roberto@70.pool90-171-81.dynamic.orange.es) (Ping timeout: 255 seconds) |
2021-07-13 19:51:38 +0200 | <Guest2168> | I guess the easy solution is to just write a script to concatenate the files pre-compile |
2021-07-13 19:51:58 +0200 | <maerwald> | monochrom: yeah, except CPP breaks... all sorts of other tools (linters, formatters, ...) |
2021-07-13 19:52:12 +0200 | hrnz | (~ulli@irc.plumbing) (Client Quit) |
2021-07-13 19:52:22 +0200 | azeem | (~azeem@176.200.242.63) (Read error: Connection reset by peer) |
2021-07-13 19:52:36 +0200 | azeem | (~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it) |
2021-07-13 19:52:53 +0200 | <hseg> | guess I could go the hask route and define newtype Product f g a b = Product (f (Fst a) (Fst b), g (Snd a b) |
2021-07-13 19:52:54 +0200 | Guest9 | (~Guest9@103.250.139.121) (Ping timeout: 276 seconds) |
2021-07-13 19:52:57 +0200 | <maerwald> | but I also use CPP heavily |
2021-07-13 19:52:58 +0200 | <maerwald> | so what |
2021-07-13 19:53:21 +0200 | thonkpod | (~thonkpod@user/thonkpod) |
2021-07-13 19:55:56 +0200 | <maerwald> | we should have defined all our tools as microservices |
2021-07-13 19:56:31 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-13 19:56:33 +0200 | <maerwald> | I mean, we're almost there, LSP, neovim, ... |
2021-07-13 19:56:47 +0200 | <maerwald> | docker |
2021-07-13 19:56:57 +0200 | <maerwald> | just send a HTTP request to ghc |
2021-07-13 19:57:03 +0200 | <int-e> | maerwald: https://blog.davetcode.co.uk/post/21st-century-emulator/ |
2021-07-13 19:57:33 +0200 | hrnz | (~ulli@irc.plumbing) |
2021-07-13 19:57:39 +0200 | <maerwald> | unix is dead, now is HTTP and json APIs |
2021-07-13 19:58:07 +0200 | <Rembane> | POSIX over REST? |
2021-07-13 19:58:18 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-07-13 19:58:52 +0200 | derelict | (~derelict@user/derelict) (Ping timeout: 245 seconds) |
2021-07-13 19:59:26 +0200 | <maerwald> | but does it scale? |
2021-07-13 20:01:22 +0200 | Pickchea | (~private@user/pickchea) (Ping timeout: 272 seconds) |
2021-07-13 20:02:04 +0200 | <monochrom> | The "is this actully possible?" section is, I don't know, interesting or more jokes. So, reinventing copy-on-write, out-of-order execution, and speculative execution but for microservices? |
2021-07-13 20:02:31 +0200 | silverwhitefish | (~hidden@47.202.102.10) (Remote host closed the connection) |
2021-07-13 20:02:59 +0200 | <Rembane> | Sounds like modern JS |
2021-07-13 20:03:00 +0200 | silverwhitefish | (~hidden@47.202.102.10) |
2021-07-13 20:03:09 +0200 | silverwhitefish | (~hidden@47.202.102.10) (Client Quit) |
2021-07-13 20:03:18 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 255 seconds) |
2021-07-13 20:03:53 +0200 | <int-e> | monochrom: it's absolutely a joke |
2021-07-13 20:03:55 +0200 | silverwhitefish | (~hidden@47.202.102.10) |
2021-07-13 20:04:07 +0200 | chris-the-slurpa | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-13 20:04:16 +0200 | warnz | (~warnz@2600:1700:77c0:5610:9856:f279:a598:9845) (Remote host closed the connection) |
2021-07-13 20:05:52 +0200 | <int-e> | especially if you take "any instruction which changes the program counter" literally |
2021-07-13 20:06:22 +0200 | qbt | (~edun@user/edun) |
2021-07-13 20:07:34 +0200 | chris-the-slurpa | (~chris@81.96.113.213) |
2021-07-13 20:09:36 +0200 | vk3wtf | (~doc@124.168.198.139) (Ping timeout: 272 seconds) |
2021-07-13 20:11:05 +0200 | eight | (~eight@user/eight) (Quit: leaving) |
2021-07-13 20:11:06 +0200 | Vajb | (~Vajb@2001:999:62:1d53:26b1:6c9b:c1ed:9c01) (Read error: Connection reset by peer) |
2021-07-13 20:12:09 +0200 | finsternis | (~X@23.226.237.192) |
2021-07-13 20:12:15 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) |
2021-07-13 20:13:28 +0200 | <yin[m]> | i know there's a --warnings flag in ghcid that lets you run your function even with warnings, but is there a way to supress the warnings within ghcid (independently from ghci)? |
2021-07-13 20:15:05 +0200 | derelict | (~derelict@user/derelict) |
2021-07-13 20:15:46 +0200 | <tomsmeding> | maerwald: surely not webscale |
2021-07-13 20:17:36 +0200 | Bayes | (~Bayes@user/bayes) |
2021-07-13 20:18:15 +0200 | <tomsmeding> | yin[m]: tell ghcid to pass -w to ghci? |
2021-07-13 20:18:19 +0200 | <tomsmeding> | https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/flags.html#warnings |
2021-07-13 20:18:52 +0200 | son0p | (~ff@181.136.122.143) |
2021-07-13 20:20:20 +0200 | <Bayes> | so I have a function that "stitches up" all other smaller functions, i.e. an end-user facing function taking several arguments that will run a whole things. What's the best practice in a functional programming here? have the front-end user to pass functions and call them sequentially in my code as needed, or maybe wrap around each of the inner |
2021-07-13 20:20:20 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-07-13 20:20:20 +0200 | <Bayes> | functions sequentially one by one to always have a one-argument function? |
2021-07-13 20:20:50 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-13 20:21:16 +0200 | <dminuoso> | Can you perhaps present this as code? |
2021-07-13 20:21:29 +0200 | <Bayes> | I was really trying to do that and I have a mess in my mind :D |
2021-07-13 20:21:47 +0200 | <Bayes> | I'm trying to write some pseudocode that's simple enough to show what I'm trying to do |
2021-07-13 20:22:10 +0200 | <dminuoso> | Yes, even that would be helpful. |
2021-07-13 20:23:17 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) |
2021-07-13 20:23:47 +0200 | <EvanR> | there's the 'congiguration monoid' pattern where you have a type for the massive up front argument to your massive function. And you begin with default config and just tweak parts by monoiding |
2021-07-13 20:23:49 +0200 | warnz | (~warnz@104-55-100-55.lightspeed.lsvlky.sbcglobal.net) |
2021-07-13 20:23:53 +0200 | <EvanR> | configuration monoid |
2021-07-13 20:26:59 +0200 | <Bayes> | dminuoso https://paste.tomsmeding.com/efuXPVxV |
2021-07-13 20:27:06 +0200 | <Bayes> | that's how my code looks like |
2021-07-13 20:27:35 +0200 | <Bayes> | but I have this very strong intuition deep down me that tells me that's ugly and completely antifunctional programming |
2021-07-13 20:27:49 +0200 | <dminuoso> | Bayes: Does the return type vary between each function? |
2021-07-13 20:28:03 +0200 | <dminuoso> | I guess it sort of does, considering step_three |
2021-07-13 20:29:08 +0200 | <Bayes> | we can assume for the moment that all functions have the same return type |
2021-07-13 20:29:40 +0200 | <dminuoso> | If we can, then EvanR is right. |
2021-07-13 20:29:57 +0200 | <Bayes> | as in any of these two will return the same type: step_two_alt_a, step_two_alt_b |
2021-07-13 20:30:18 +0200 | <dminuoso> | If not, you could perhaps use an indexed monad |
2021-07-13 20:30:24 +0200 | <dminuoso> | Ah |
2021-07-13 20:30:28 +0200 | <Bayes> | configuration monoid? that's cool will look it up |
2021-07-13 20:30:35 +0200 | <dminuoso> | Bayes: but step1 might produce a different output? |
2021-07-13 20:30:36 +0200 | <EvanR> | dunno if that's really what it's called |
2021-07-13 20:30:36 +0200 | myShoggoth | (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 276 seconds) |
2021-07-13 20:31:13 +0200 | <Bayes> | yeah, step1 might produce a different output type than step2 and step3 |
2021-07-13 20:31:24 +0200 | <EvanR> | and yeah, it seems unweildy to do and at risk of becoming a terrible API like jQuery |
2021-07-13 20:31:44 +0200 | <dminuoso> | Bayes: Are there clear stages that a user has to choce (say because first you have a bunch of (potentially parametrized) functions going from `A` to `B`, and then you have a bunch of (potentially parametrized) functions going from `B` to C`, and so forth? |
2021-07-13 20:32:13 +0200 | <hseg> | ok, so I *can* just roll my own http://ix.io/3sTP, but it seems like there should be a standard solution for this |
2021-07-13 20:32:14 +0200 | <dminuoso> | (Such that at some point you provide some initial A, and the users specification would give a sort of `A -> D` specification using your bunch of functions? |
2021-07-13 20:32:23 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.0.1) |
2021-07-13 20:32:50 +0200 | <Bayes> | yeah, in this case it's a "closed set" of options so you could enumerate a small-ish set of combinations |
2021-07-13 20:33:13 +0200 | <Bayes> | EvanR oh I know my code is ... not nice |
2021-07-13 20:33:17 +0200 | <dminuoso> | Bayes: I see. I would perhaps describe this with an IxState monad. |
2021-07-13 20:33:37 +0200 | <Bayes> | EvanR is this what you mean by "configuration monoid" https://medium.com/@jonathangfischoff/the-partial-options-monoid-pattern-31914a71fc67 ? |
2021-07-13 20:33:37 +0200 | <dminuoso> | This gives you a sort of imperative language, without having to explicitly tie "previous layers" into the function calls |
2021-07-13 20:33:45 +0200 | <dminuoso> | Then you could simply do: |
2021-07-13 20:34:02 +0200 | <dminuoso> | do { step1; step2 "foo"; step3 10 True } |
2021-07-13 20:34:15 +0200 | <dminuoso> | And each step is an IxState action that changes the underlying state type |
2021-07-13 20:34:28 +0200 | <dminuoso> | Then you can simply provide a bunch of combinators for the user to choose |
2021-07-13 20:35:44 +0200 | Patternmaster | (~georg@li1192-118.members.linode.com) (Remote host closed the connection) |
2021-07-13 20:35:50 +0200 | <Bayes> | uhm that's not too different from what I'm doing, but just instead of taking the three functions in as arguments I'll get it all resolved for the end user |
2021-07-13 20:37:22 +0200 | <Bayes> | so you have like three layers, the bottom layer with all the step functions, the middle layer with the function that stitch them up together, and the top layer which is just a bunch of one-line combinations |
2021-07-13 20:41:21 +0200 | <Bayes> | thanks dminuoso |
2021-07-13 20:41:30 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-07-13 20:41:38 +0200 | <Bayes> | I think this is enough to get me going |
2021-07-13 20:41:55 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-07-13 20:46:00 +0200 | o1lo01ol1o | (~o1lo01ol1@bl7-89-228.dsl.telepac.pt) (Remote host closed the connection) |
2021-07-13 20:47:47 +0200 | wallymathieu | (~wallymath@81-234-151-21-no94.tbcn.telia.com) |
2021-07-13 20:48:38 +0200 | <hseg> | any ideas how to get http://ix.io/3sTP from standard libraries? |
2021-07-13 20:51:17 +0200 | cfricke | (~cfricke@user/cfricke) |
2021-07-13 20:52:25 +0200 | <yin[m]> | apparently not |
2021-07-13 20:52:32 +0200 | kilolympus | (~kilolympu@cpc92710-cmbg20-2-0-cust265.5-4.cable.virginm.net) |
2021-07-13 20:53:05 +0200 | <yin[m]> | is notElem more performant than (not . elem) or something? hlint is really picky with it |
2021-07-13 20:53:19 +0200 | <maerwald> | no, hlint is just annoying |
2021-07-13 20:53:34 +0200 | <kilolympus> | I always wondered the same for concatMap and (concat . map) |
2021-07-13 20:54:42 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
2021-07-13 20:56:22 +0200 | eight | (~eight@user/eight) |
2021-07-13 20:56:22 +0200 | eight | (~eight@user/eight) (Client Quit) |
2021-07-13 20:56:41 +0200 | <EvanR> | in haskell you get used to such 'spelling differences' not mattering. Then you go back to the real world and shake your head |
2021-07-13 20:59:25 +0200 | beka | (~beka@104.193.170-244.PUBLIC.monkeybrains.net) |
2021-07-13 21:01:21 +0200 | Bayes | (~Bayes@user/bayes) (Quit: Connection closed) |
2021-07-13 21:05:04 +0200 | zopsi_ | zopsi |
2021-07-13 21:06:01 +0200 | <zzz> | kilolympus: concatMap can be much more efficient in some cases |
2021-07-13 21:06:18 +0200 | <zzz> | it's the reason it exists |
2021-07-13 21:07:37 +0200 | <zzz> | i can't think of any structure for which notElem would have an advantage, but for concatMap there are many |
2021-07-13 21:07:50 +0200 | <Rembane> | zzz: Do you have any concrete examples for concatMap? |
2021-07-13 21:08:11 +0200 | derelict | (~derelict@user/derelict) (Quit: WeeChat 3.2) |
2021-07-13 21:08:41 +0200 | <monochrom> | hlint is nowhere remotely close to C lint. Don't be fooled by the name. |
2021-07-13 21:08:47 +0200 | jess | (~jess@libera/staff/jess) |
2021-07-13 21:09:29 +0200 | prite | (~pritam@user/pritambaral) |
2021-07-13 21:09:30 +0200 | <monochrom> | C lint notices objectively probable mistakes. hlint is just one person's personal preference. |
2021-07-13 21:11:04 +0200 | <monochrom> | What you're seeing is a version of First World Problem. |
2021-07-13 21:11:32 +0200 | <zzz> | Rembane: concatMap can benefit from foldr/build fusion |
2021-07-13 21:11:54 +0200 | <hseg> | nm, was overengineering something that would require quite a bit more work than it's worth |
2021-07-13 21:12:04 +0200 | <monochrom> | C allows you to make a mistake like "if (x = y) { ... }" where it is highly probable you meant "x == y". A tool that catches those is helpful. |
2021-07-13 21:12:14 +0200 | <hseg> | welp. there goes half an hour's work |
2021-07-13 21:13:06 +0200 | o1lo01ol1o | (~o1lo01ol1@bl7-89-228.dsl.telepac.pt) |
2021-07-13 21:13:16 +0200 | <monochrom> | In Haskell, you can't make that kind of mistakes, it's already a compiler error. So, people get bored and start picking on personal style like (1 +) vs (\x -> 1 + x). |
2021-07-13 21:14:11 +0200 | <monochrom> | When hlint says "why not foo . bar" my reply is "why don't you shut up" |
2021-07-13 21:14:35 +0200 | Pickchea | (~private@user/pickchea) |
2021-07-13 21:15:26 +0200 | <Rembane> | zzz: Why can't concat . map do that? |
2021-07-13 21:15:40 +0200 | <monochrom> | The only reason I am so upset is that there was once upon a time a scenerio forced hlint on me. We had an hpaste.org which forced htlint on every paste. |
2021-07-13 21:16:07 +0200 | <zzz> | Rembane: also think about some kinds of trees where union requires a lot of reordering~ |
2021-07-13 21:16:33 +0200 | <Rembane> | zzz: That's true, and then those trees have implemented their own Foldable instance I guess. |
2021-07-13 21:17:20 +0200 | <monochrom> | You can imagine a scenerio that a beginner asks about lambda examples, I posted an example like (\x -> 1 + x) on hpaste.org, and hlint should shut the **** up because this is educational code, not meant to be code-golfed. |
2021-07-13 21:17:37 +0200 | qbt | (~edun@user/edun) (Ping timeout: 245 seconds) |
2021-07-13 21:18:55 +0200 | <monochrom> | In Haskell if you use "ghc -Wall" you have already got more lint than you ever need. |
2021-07-13 21:20:55 +0200 | Guest1825 | (~Guest18@70.109.128.127) |
2021-07-13 21:21:36 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 255 seconds) |
2021-07-13 21:21:39 +0200 | <zzz> | Rembane: https://stackoverflow.com/questions/27570154/difference-between-concatmap-f-xs-and-concat-map-f-xs |
2021-07-13 21:21:56 +0200 | <Rembane> | zzz: Thank you! |
2021-07-13 21:22:57 +0200 | Guest997 | (~Guest9@103.250.139.121) (Ping timeout: 255 seconds) |
2021-07-13 21:23:13 +0200 | chris-the-slurpa | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-13 21:24:00 +0200 | <zzz> | i remember tripping on concatMap when i was a beginner and now i'm finaly able to follow this rabbit hole years later |
2021-07-13 21:26:13 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-07-13 21:26:29 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-07-13 21:26:44 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-13 21:26:57 +0200 | <yin[m]> | quick notice: matrix bridge is not working |
2021-07-13 21:27:21 +0200 | <yin[m]> | last message here is from 14:38 |
2021-07-13 21:28:34 +0200 | warnz | (~warnz@104-55-100-55.lightspeed.lsvlky.sbcglobal.net) (Remote host closed the connection) |
2021-07-13 21:29:02 +0200 | desophos | (~desophos@2601:249:1680:a570:489c:f364:abf0:5de7) |
2021-07-13 21:29:33 +0200 | <Profpatsch> | monochrom: https://gist.github.com/Profpatsch/5a41d0283755d573511b08c01ff40148 |
2021-07-13 21:30:22 +0200 | alx741 | (~alx741@186.178.108.22) (Ping timeout: 256 seconds) |
2021-07-13 21:30:25 +0200 | polykernel | (~polykerne@user/polykernel) (Read error: Connection reset by peer) |
2021-07-13 21:30:25 +0200 | ac | (~aloiscoch@2001:470:69fc:105::65) (Write error: Connection reset by peer) |
2021-07-13 21:30:25 +0200 | thedward[m] | (~thedwardm@2001:470:69fc:105::f79) (Write error: Connection reset by peer) |
2021-07-13 21:30:25 +0200 | jaror[m] | (~jaror@2001:470:69fc:105::265) (Read error: Connection reset by peer) |
2021-07-13 21:30:26 +0200 | cdepillabout[m] | (~cdepillab@2001:470:69fc:105::3d3) (Read error: Connection reset by peer) |
2021-07-13 21:30:26 +0200 | amesgen[m] | (~amesgenm]@2001:470:69fc:105::82b) (Read error: Connection reset by peer) |
2021-07-13 21:30:26 +0200 | the-coot[m] | (~the-cootm@2001:470:69fc:105::95f) (Read error: Connection reset by peer) |
2021-07-13 21:30:26 +0200 | SimonWeiss[m] | (~weiss-dma@2001:470:69fc:105::bebd) (Read error: Connection reset by peer) |
2021-07-13 21:30:26 +0200 | inkbottle[m] | (~inkbottle@2001:470:69fc:105::2ff5) (Read error: Connection reset by peer) |
2021-07-13 21:30:26 +0200 | Drezil | (~drezilkif@2001:470:69fc:105::7f8) (Write error: Connection reset by peer) |
2021-07-13 21:30:26 +0200 | jakefromstatefar | (~jakefroms@2001:470:69fc:105::15ef) (Read error: Connection reset by peer) |
2021-07-13 21:30:26 +0200 | oak- | (~oakuniver@2001:470:69fc:105::fcd) (Write error: Connection reset by peer) |
2021-07-13 21:30:26 +0200 | Soft | (~soft-matr@2001:470:69fc:105::c75) (Write error: Connection reset by peer) |
2021-07-13 21:30:26 +0200 | reza[m] | (~rezaphone@2001:470:69fc:105::3eda) (Write error: Connection reset by peer) |
2021-07-13 21:30:26 +0200 | kadoban | (~kadoban@user/kadoban) (Write error: Connection reset by peer) |
2021-07-13 21:30:26 +0200 | RohitGoswami[m] | (~rgoswamim@2001:470:69fc:105::16cc) (Read error: Connection reset by peer) |
2021-07-13 21:30:26 +0200 | ecameron[m] | (~ecameronm@2001:470:69fc:105::35df) (Read error: Connection reset by peer) |
2021-07-13 21:30:26 +0200 | Deewiant | (~deewiant@2001:470:69fc:105::2fd3) (Read error: Connection reset by peer) |
2021-07-13 21:30:26 +0200 | hsiktas[m] | (~hsiktasma@2001:470:69fc:105::30d4) (Read error: Connection reset by peer) |
2021-07-13 21:30:27 +0200 | smichel17[m] | (~smichel17@2001:470:69fc:105::2d32) (Read error: Connection reset by peer) |
2021-07-13 21:30:27 +0200 | ericson2314 | (~ericson23@2001:470:69fc:105::70c) (Read error: Connection reset by peer) |
2021-07-13 21:30:27 +0200 | jophish | (~jophish@2001:470:69fc:105::670) (Write error: Connection reset by peer) |
2021-07-13 21:30:27 +0200 | Guest2833 | (~sylveonma@2001:470:69fc:105::2d95) (Read error: Connection reset by peer) |
2021-07-13 21:30:27 +0200 | rednaZ[m] | (~r3dnazmat@2001:470:69fc:105::ba70) (Read error: Connection reset by peer) |
2021-07-13 21:30:27 +0200 | bb010g | (~bb010g@2001:470:69fc:105::9a5) (Write error: Connection reset by peer) |
2021-07-13 21:30:27 +0200 | maralorn | (~maralorn@2001:470:69fc:105::251) (Write error: Connection reset by peer) |
2021-07-13 21:30:27 +0200 | PotatoHatsue | (~berberman@2001:470:69fc:105::b488) (Write error: Connection reset by peer) |
2021-07-13 21:30:28 +0200 | kosmikus[m] | (~andresloe@2001:470:69fc:105::95d) (Read error: Connection reset by peer) |
2021-07-13 21:30:28 +0200 | gxt | (~gxt@2001:470:69fc:105::3513) (Read error: Connection reset by peer) |
2021-07-13 21:30:28 +0200 | ormaaj | (~ormaaj@user/ormaaj) (Read error: Connection reset by peer) |
2021-07-13 21:30:28 +0200 | zfnmxt | (~zfnmxtzfn@2001:470:69fc:105::2b32) (Read error: Connection reset by peer) |
2021-07-13 21:30:28 +0200 | aveltras[m] | (~aveltrasm@2001:470:69fc:105::3ef9) (Read error: Connection reset by peer) |
2021-07-13 21:30:28 +0200 | fakehacker[m] | (~fakehacke@2001:470:69fc:105::b5f0) (Read error: Connection reset by peer) |
2021-07-13 21:30:28 +0200 | Ollie[m] | (~ollieocha@2001:470:69fc:105::41a5) (Read error: Connection reset by peer) |
2021-07-13 21:30:28 +0200 | sm | (~sm@plaintextaccounting/sm) (Read error: Connection reset by peer) |
2021-07-13 21:30:28 +0200 | MatrixTravelerbo | (~voyagert2@2001:470:69fc:105::22) (Read error: Connection reset by peer) |
2021-07-13 21:30:28 +0200 | fgaz | (~fgaz@2001:470:69fc:105::842) (Write error: Connection reset by peer) |
2021-07-13 21:30:28 +0200 | hjulle[m] | (~hjullemat@2001:470:69fc:105::1dd) (Write error: Connection reset by peer) |
2021-07-13 21:30:28 +0200 | siraben | (~siraben@user/siraben) (Read error: Connection reset by peer) |
2021-07-13 21:30:29 +0200 | Las[m] | (~lasmatrix@2001:470:69fc:105::74e) (Read error: Connection reset by peer) |
2021-07-13 21:30:29 +0200 | lwe[m] | (~dendrumat@2001:470:69fc:105::2f9b) (Read error: Connection reset by peer) |
2021-07-13 21:30:29 +0200 | Orbstheorem | (~orbstheor@2001:470:69fc:105::a56) (Read error: Connection reset by peer) |
2021-07-13 21:30:29 +0200 | marinelli[m] | (~marinelli@2001:470:69fc:105::2d8) (Write error: Connection reset by peer) |
2021-07-13 21:30:29 +0200 | ru0mad[m] | (~ru0madmat@2001:470:69fc:105::9b2) (Write error: Connection reset by peer) |
2021-07-13 21:30:29 +0200 | vaibhavsagar[m] | (~vaibhavsa@2001:470:69fc:105::ffe) (Read error: Connection reset by peer) |
2021-07-13 21:30:29 +0200 | yin[m] | (~zwromatri@2001:470:69fc:105::1d4) (Read error: Connection reset by peer) |
2021-07-13 21:30:29 +0200 | bitonic | (~bitonic@2001:470:69fc:105::1812) (Write error: Connection reset by peer) |
2021-07-13 21:30:29 +0200 | Aleci[m] | (~alecilibr@2001:470:69fc:105::32e7) (Read error: Connection reset by peer) |
2021-07-13 21:30:29 +0200 | maerwald[m] | (~maerwaldm@2001:470:69fc:105::1ee) (Read error: Connection reset by peer) |
2021-07-13 21:30:29 +0200 | dualinverter[m] | (~dualinver@2001:470:69fc:105::16a7) (Read error: Connection reset by peer) |
2021-07-13 21:30:29 +0200 | Morrow[m] | (~morrowmma@2001:470:69fc:105::1d0) (Read error: Connection reset by peer) |
2021-07-13 21:30:29 +0200 | autrim64[m] | (~autrim64m@2001:470:69fc:105::16a1) (Read error: Connection reset by peer) |
2021-07-13 21:30:29 +0200 | carmysilna | (~brightly-@2001:470:69fc:105::2190) (Read error: Connection reset by peer) |
2021-07-13 21:30:29 +0200 | cdsmith | (~cdsmithma@2001:470:69fc:105::284) (Write error: Connection reset by peer) |
2021-07-13 21:30:29 +0200 | ixlun | (~ixlun@2001:470:69fc:105::41b3) (Read error: Connection reset by peer) |
2021-07-13 21:30:29 +0200 | sridonhiatus[m] | (~sridmatri@2001:470:69fc:105::1c2) (Read error: Connection reset by peer) |
2021-07-13 21:30:30 +0200 | unclechu | (~unclechu@2001:470:69fc:105::354) (Read error: Connection reset by peer) |
2021-07-13 21:30:30 +0200 | ServerStatsDisco | (~serversta@2001:470:69fc:105::1a) (Read error: Connection reset by peer) |
2021-07-13 21:30:30 +0200 | justosophy[m] | (~justosoph@2001:470:69fc:105::572f) (Read error: Connection reset by peer) |
2021-07-13 21:30:31 +0200 | bryan[m] | (~bchreekat@2001:470:69fc:105::16b5) (Read error: Connection reset by peer) |
2021-07-13 21:30:31 +0200 | boxscape | (~boxscape@user/boxscape) (Write error: Connection reset by peer) |
2021-07-13 21:30:31 +0200 | wallymathieu[m] | (~wallymath@2001:470:69fc:105::16ae) (Read error: Connection reset by peer) |
2021-07-13 21:30:31 +0200 | dminuoso[m] | (~dminuosom@2001:470:69fc:105::33bb) (Read error: Connection reset by peer) |
2021-07-13 21:30:31 +0200 | octeep[m]1 | (~octeepmoc@2001:470:69fc:105::695e) (Write error: Connection reset by peer) |
2021-07-13 21:30:31 +0200 | Artem[m] | (~artemtype@2001:470:69fc:105::75b) (Write error: Connection reset by peer) |
2021-07-13 21:30:33 +0200 | <Profpatsch> | I *think* there are some useful lints, but you have to disable a whole lot of “redundant bracket” bullshit before you get anything resembling sanity |
2021-07-13 21:30:58 +0200 | <Profpatsch> | It’s kinda useful if you want to forbid functions from being used in favor of wrappers |
2021-07-13 21:31:47 +0200 | chris-the-slurpa | (~chris@81.96.113.213) |
2021-07-13 21:31:57 +0200 | xff0x | (~xff0x@2001:1a81:5314:1800:204a:df94:d24b:de67) (Ping timeout: 255 seconds) |
2021-07-13 21:32:04 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-07-13 21:32:40 +0200 | Pickchea | (~private@user/pickchea) (Ping timeout: 258 seconds) |
2021-07-13 21:33:08 +0200 | o1lo01ol1o | (~o1lo01ol1@bl7-89-228.dsl.telepac.pt) (Remote host closed the connection) |
2021-07-13 21:33:21 +0200 | pavonia | (~user@user/siracusa) |
2021-07-13 21:33:37 +0200 | xff0x | (~xff0x@185.65.135.235) |
2021-07-13 21:34:40 +0200 | <monochrom> | I am sympathetic to forking hlint to delete the bad 90%. |
2021-07-13 21:35:54 +0200 | <Hecate> | relude's hlint configuration file is indeed a very good example of how you can instrumentalise hlint to enforce conventions/wrappers |
2021-07-13 21:35:57 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 245 seconds) |
2021-07-13 21:39:03 +0200 | warnz | (~warnz@2600:1700:77c0:5610:9856:f279:a598:9845) |
2021-07-13 21:39:17 +0200 | <Profpatsch> | monochrom: same |
2021-07-13 21:43:07 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-07-13 21:43:22 +0200 | warnz | (~warnz@2600:1700:77c0:5610:9856:f279:a598:9845) (Ping timeout: 246 seconds) |
2021-07-13 21:43:24 +0200 | alx741 | (~alx741@186.178.109.32) |
2021-07-13 21:45:10 +0200 | <maerwald> | Hecate: I feel that's excessive |
2021-07-13 21:45:35 +0200 | warnz | (~warnz@2600:1700:77c0:5610:9856:f279:a598:9845) |
2021-07-13 21:45:38 +0200 | <maerwald> | it feels like golfing |
2021-07-13 21:45:48 +0200 | Hanicef | (~hanicef@90-229-213-50-no68.tbcn.telia.com) |
2021-07-13 21:47:20 +0200 | <maerwald> | or maybe it's because I like it when people break the rules... |
2021-07-13 21:47:39 +0200 | <maerwald> | so yeah, I have an hlint config too and I encourage people to ignore it |
2021-07-13 21:48:18 +0200 | Pickchea | (~private@user/pickchea) |
2021-07-13 21:49:15 +0200 | <maerwald> | let me write things that are less concise... why is it so bad? |
2021-07-13 21:49:37 +0200 | <Profpatsch> | I can understand for functions that are known bad |
2021-07-13 21:49:42 +0200 | xff0x | (~xff0x@185.65.135.235) (Ping timeout: 245 seconds) |
2021-07-13 21:49:42 +0200 | <Profpatsch> | e.g. a warning for foldl |
2021-07-13 21:49:46 +0200 | <maerwald> | true |
2021-07-13 21:49:55 +0200 | <Profpatsch> | or for stuff that is bad complexity |
2021-07-13 21:50:24 +0200 | warnz | (~warnz@2600:1700:77c0:5610:9856:f279:a598:9845) (Ping timeout: 268 seconds) |
2021-07-13 21:50:27 +0200 | <Profpatsch> | you could make an argument for throwing a warning if somebody tries to concat []s |
2021-07-13 21:50:45 +0200 | <Profpatsch> | “this is O(n) in every concatenation to you want to continue y/n” |
2021-07-13 21:50:49 +0200 | <maerwald> | but most of the interesting stuff needs a more powerful linter, which hlint is not... I think stan can deliver more. Like writing actual context aware rules? |
2021-07-13 21:51:04 +0200 | <monochrom> | My personal coding goal is always simplicity and considering the audience. Concision is just a sometimes side effect. |
2021-07-13 21:51:05 +0200 | <Profpatsch> | but yeah, hlint doesn’t go very fatr |
2021-07-13 21:51:17 +0200 | <Profpatsch> | monochrom: amen brother |
2021-07-13 21:51:21 +0200 | <Profpatsch> | *break starts* |
2021-07-13 21:51:37 +0200 | <maerwald> | I mean, I've written custom Java rules with SonarQube 8 years ago or so. It's actually amazing. |
2021-07-13 21:51:46 +0200 | chomwitt | (~Pitsikoko@2a02:587:dc04:e00:12c3:7bff:fe6d:d374) (Quit: Leaving) |
2021-07-13 21:51:49 +0200 | xff0x | (~xff0x@2001:1a81:5314:1800:204a:df94:d24b:de67) |
2021-07-13 21:52:01 +0200 | <maerwald> | If I compare that with what we have in haskell, it's laughable. |
2021-07-13 21:52:04 +0200 | <monochrom> | For a beginner I am very happy to even write "map (\x -> Just x) [1,2,3]" if they like it better. |
2021-07-13 21:52:12 +0200 | norias | (~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) (Ping timeout: 245 seconds) |
2021-07-13 21:52:39 +0200 | <Profpatsch> | I feel like hlint is partially a teaching tool? But not super useful in production by default |
2021-07-13 21:52:44 +0200 | <monochrom> | Fun fact: In SML you have to write "\x -> SOME x" for that example, you have no choice. |
2021-07-13 21:53:02 +0200 | <maerwald> | Profpatsch: except many companies have it in their CI |
2021-07-13 21:53:05 +0200 | <Profpatsch> | where you usually don’t want to Eta reduce for readability’s sake |
2021-07-13 21:53:38 +0200 | <monochrom> | err of course it's also "fun x => SOME x" in SML. |
2021-07-13 21:54:23 +0200 | <maerwald> | Profpatsch: https://git.io/JCmfu |
2021-07-13 21:55:42 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-07-13 21:55:57 +0200 | <Profpatsch> | maerwald: uh, they don’t even disable many things |
2021-07-13 21:56:15 +0200 | <Profpatsch> | at least redundant bracket and do |
2021-07-13 21:56:17 +0200 | <Profpatsch> | but not even $ |
2021-07-13 21:56:19 +0200 | <maerwald> | Profpatsch: stuff is sometimes disabled in the source code |
2021-07-13 21:56:30 +0200 | <Profpatsch> | would never enforce in CI |
2021-07-13 21:56:37 +0200 | <Profpatsch> | this is like these things that check the formatter on CI |
2021-07-13 21:56:40 +0200 | <Profpatsch> | even worse |
2021-07-13 21:56:45 +0200 | _73 | (~user@pool-96-252-123-136.bstnma.fios.verizon.net) |
2021-07-13 21:56:45 +0200 | <davean> | Yah I think hlint's rules are insane personally. |
2021-07-13 21:56:50 +0200 | <Profpatsch> | Just make everybody set it up in their editor |
2021-07-13 21:57:00 +0200 | <davean> | I think hlint clean code is actively harmful |
2021-07-13 21:57:06 +0200 | <Profpatsch> | hls has ormolu integration by default |
2021-07-13 21:57:08 +0200 | <Profpatsch> | just use that |
2021-07-13 21:57:15 +0200 | Obo | (~roberto@70.pool90-171-81.dynamic.orange.es) |
2021-07-13 21:57:43 +0200 | <monochrom> | And now for the counterpart in llvm and clang: By default, they warn you when you use recursion. |
2021-07-13 21:57:48 +0200 | <davean> | Uh, ormolu? |
2021-07-13 21:58:01 +0200 | <maerwald> | monochrom: xD |
2021-07-13 21:58:02 +0200 | <Profpatsch> | https://github.com/tweag/ormolu |
2021-07-13 21:58:11 +0200 | <Profpatsch> | Mark has really thought about this |
2021-07-13 21:58:14 +0200 | <Profpatsch> | there is nothing to add |
2021-07-13 21:58:21 +0200 | <monochrom> | or perhaps I mean just llvm's C++ style checker. |
2021-07-13 21:58:27 +0200 | <Profpatsch> | if you don’t like it, don’t complain, just use it and be happy you never have to indent shit againt |
2021-07-13 21:58:30 +0200 | <Profpatsch> | -t |
2021-07-13 21:58:31 +0200 | <davean> | Profpatsch: I'm familiar with it and dislike it |
2021-07-13 21:58:33 +0200 | ph88 | (~ph88@2a02:8109:9e00:7e5c:146a:5c4b:109:2ce4) |
2021-07-13 21:58:40 +0200 | <davean> | Profpatsch: I'm not google, and theres a reason I'm not google |
2021-07-13 21:58:52 +0200 | <Profpatsch> | davean: see, you’re a special flower |
2021-07-13 21:58:56 +0200 | <monochrom> | I prefer fourmolu. |
2021-07-13 21:58:58 +0200 | <davean> | Profpatsch: no I don't think I am |
2021-07-13 21:59:04 +0200 | <davean> | Profpatsch: layout leads reading |
2021-07-13 21:59:11 +0200 | <desophos> | is it wrong that i prefer brittany |
2021-07-13 21:59:12 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-13 21:59:13 +0200 | <Profpatsch> | your syntax is so important you want people to spend time on it |
2021-07-13 21:59:27 +0200 | <maerwald> | I'm questioning that formatters add any value. I used to think so too, but I think it's just all OCD or the belief that consistency matters |
2021-07-13 21:59:31 +0200 | <davean> | Profpatsch: No I want to speed understanding of the code |
2021-07-13 21:59:45 +0200 | <davean> | layout shows relation |
2021-07-13 21:59:46 +0200 | <Profpatsch> | davean: yes, and consistently indented code is the easiest to read |
2021-07-13 21:59:50 +0200 | ukari | (~ukari@user/ukari) (Ping timeout: 256 seconds) |
2021-07-13 21:59:55 +0200 | <maerwald> | I question that |
2021-07-13 21:59:56 +0200 | <davean> | Profpatsch: No, semanticly indented code is easier |
2021-07-13 21:59:57 +0200 | <Profpatsch> | it will always give you a normalized layout |
2021-07-13 22:00:08 +0200 | <Profpatsch> | davean: it is semantically indentet |
2021-07-13 22:00:08 +0200 | <davean> | Profpatsch: yes, which will lose all the insite into what goes toegehr |
2021-07-13 22:00:11 +0200 | <Profpatsch> | *d |
2021-07-13 22:00:16 +0200 | <davean> | no, its syntacticly indented |
2021-07-13 22:00:18 +0200 | neceve | (~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f) (Ping timeout: 276 seconds) |
2021-07-13 22:00:21 +0200 | <monochrom> | Local consistency matters. Global consistency? Would you even notice? |
2021-07-13 22:00:22 +0200 | <davean> | Those are VERY different |
2021-07-13 22:00:25 +0200 | Erutuon | (~Erutuon@user/erutuon) (Client Quit) |
2021-07-13 22:00:37 +0200 | <Profpatsch> | davean: you mean newlines between lines? |
2021-07-13 22:00:59 +0200 | <davean> | no, though that can come into it |
2021-07-13 22:01:06 +0200 | <Profpatsch> | davean: I mean, give an example |
2021-07-13 22:01:09 +0200 | <Profpatsch> | I don’t know of one |
2021-07-13 22:01:22 +0200 | <maerwald> | monochrom: if you have sudden changes in indenting/style within a single function, it's a good sign that you want to read blame/git log of said function. Why remove that information? |
2021-07-13 22:01:31 +0200 | <davean> | Like aligning parallel parts of code to show the relation between the lines |
2021-07-13 22:01:57 +0200 | <Profpatsch> | davean: you mean aligning symbools? |
2021-07-13 22:02:01 +0200 | <davean> | Profpatsch: a fairly trivial one would be to make all the "action" parts of a conditional structure at the same depth so you can scan them |
2021-07-13 22:02:04 +0200 | <dminuoso> | I only use stylish-haskell for a single thing: sorting and formatting imports, and that's because its formatting style coincides with mine. So this tool assists me. |
2021-07-13 22:02:09 +0200 | <Profpatsch> | Sorry, but that’s never worth it |
2021-07-13 22:02:23 +0200 | <davean> | I said it was trivial |
2021-07-13 22:02:35 +0200 | <Profpatsch> | It will mess with line diffs, it will mess with automatic formatters, which are just extreme time and brain cycle savers |
2021-07-13 22:02:35 +0200 | <davean> | You wanted an example that fits in IRC though |
2021-07-13 22:02:46 +0200 | Hanicef | (~hanicef@90-229-213-50-no68.tbcn.telia.com) (Quit: leaving) |
2021-07-13 22:02:47 +0200 | <Profpatsch> | davean: nah, can be a paste if you want |
2021-07-13 22:02:48 +0200 | <davean> | So what about diffs? we read code, diffs are an implimentation detail |
2021-07-13 22:02:50 +0200 | <maerwald> | coding isn't just talking to the PC, it's talking to each other and expressing yourself... all of those convey information. Inconsistency conveys information, personaly style conveys information |
2021-07-13 22:02:55 +0200 | nuncanada | (~dude@179.235.162.215) |
2021-07-13 22:02:59 +0200 | <Profpatsch> | davean: I read more diffs than code |
2021-07-13 22:03:04 +0200 | nuncanada | (~dude@179.235.162.215) (Remote host closed the connection) |
2021-07-13 22:03:09 +0200 | <Profpatsch> | as does anybody working in a team |
2021-07-13 22:03:17 +0200 | <maerwald> | If your goal is to read "as fast as possible", then I'm not even sure that's a good goal |
2021-07-13 22:03:24 +0200 | <Profpatsch> | maerwald: that’s a strawman |
2021-07-13 22:03:34 +0200 | <davean> | You should understand as fast as possible, not read as fast as possible |
2021-07-13 22:03:53 +0200 | <Profpatsch> | ormolu helps both, speed of expressing ideas and speed of understanding code |
2021-07-13 22:04:02 +0200 | <Profpatsch> | not reading code, understanding code |
2021-07-13 22:04:05 +0200 | <davean> | no, ormolu makes code a mush |
2021-07-13 22:04:22 +0200 | <maerwald> | I've looked at ormolu formatted code and it looked stripped of information |
2021-07-13 22:04:22 +0200 | <Profpatsch> | have you … written production code? |
2021-07-13 22:04:30 +0200 | <dminuoso> | Profpatsch: You can assume they have. |
2021-07-13 22:04:32 +0200 | <davean> | Yes, of course I have |
2021-07-13 22:04:37 +0200 | <maerwald> | a bit :D |
2021-07-13 22:04:48 +0200 | <[exa]> | there's fourmolu to fix some of ormolu problems |
2021-07-13 22:04:50 +0200 | <davean> | Profpatsch: given you're in this community, I expect i've writen code you use |
2021-07-13 22:05:07 +0200 | juhp | (~juhp@128.106.188.66) (Ping timeout: 245 seconds) |
2021-07-13 22:05:10 +0200 | <dminuoso> | I tend to agree with davean. Indenting is highly contextual - a blanket rule cannot reasonably assist understanding in general, because the meaning of what code even means is very.. well.. contextual. |
2021-07-13 22:05:18 +0200 | <Profpatsch> | davean: I mean a library is usually written by one or two people |
2021-07-13 22:05:24 +0200 | <[exa]> | still, a proper set oneliners never requires formatting. |
2021-07-13 22:05:51 +0200 | <maerwald> | Profpatsch: I've worked at a 300 modules proprietary project. We didn't have a formatter and it was mostly anarchy wrt style. It never imposed a problem. |
2021-07-13 22:06:08 +0200 | <Profpatsch> | maerwald: have you, like, tried it out in seriousness? |
2021-07-13 22:06:15 +0200 | <maerwald> | tried what |
2021-07-13 22:06:17 +0200 | <Profpatsch> | Or just looked at it for a few minutes and decided against it? |
2021-07-13 22:06:24 +0200 | <Profpatsch> | ormolu, or any formatter without configuration |
2021-07-13 22:06:25 +0200 | <maerwald> | formatters? Yes, all. |
2021-07-13 22:06:31 +0200 | <davean> | Profpatsch: formaters are for where you don't have quality contributors - specificly like google |
2021-07-13 22:06:44 +0200 | <Profpatsch> | okay, I’ll stop now |
2021-07-13 22:06:47 +0200 | <davean> | It patches over horrid team management |
2021-07-13 22:06:50 +0200 | <dminuoso> | Profpatsch: Formatters begin with a big problem. If I want to communicate something with a particular style that your formatter disagrees with, what do we do now? |
2021-07-13 22:06:53 +0200 | <maerwald> | I got stuck with brittany and opened a bazillion issues on the issue tracker, until I gave up |
2021-07-13 22:06:56 +0200 | <Profpatsch> | The takes are getting worse lol |
2021-07-13 22:07:10 +0200 | <Profpatsch> | syntax is the least important part, but people like to bikeshed |
2021-07-13 22:07:10 +0200 | <maerwald> | And now I'm free of formatters and it feels good |
2021-07-13 22:07:16 +0200 | <davean> | Profpatsch: I'm quite serious about where it comes from |
2021-07-13 22:07:24 +0200 | <Profpatsch> | since it touches identity and strongly held beliefs |
2021-07-13 22:07:32 +0200 | <davean> | No, its not about identity |
2021-07-13 22:08:00 +0200 | <maerwald> | I identify as an ormolu? |
2021-07-13 22:08:17 +0200 | juhp | (~juhp@128.106.188.66) |
2021-07-13 22:09:50 +0200 | <Profpatsch> | I stick with “use ormolu and don’t complain, since it’s not worth the overhead of aligning things by hand” |
2021-07-13 22:10:13 +0200 | <dminuoso> | Does the ormolu style always exactly indent it as you would have to communicate a particular code structure? |
2021-07-13 22:10:24 +0200 | <dminuoso> | If you answer with yes, then the tool seems genuinely useful. |
2021-07-13 22:10:40 +0200 | <maerwald> | Profpatsch: well, I agree with you that there's something worse than formatters: PR discussions about formatting. These make me furious. |
2021-07-13 22:11:00 +0200 | <Profpatsch> | dminuoso: I’ve written hundreds if not thousands of lines with it and I’ve never once had a problem with the indentation |
2021-07-13 22:11:16 +0200 | <davean> | ... hundreads? |
2021-07-13 22:11:22 +0200 | <dminuoso> | Profpatsch: That could perhaps just be indicative of you not caring what indention communicates, or what you could communicate with different styles. |
2021-07-13 22:11:25 +0200 | <davean> | So you've barely used it? |
2021-07-13 22:11:31 +0200 | <maerwald> | Especially because you have a limited focus capacity per day and then half of it is eaten up by formatting and style discussions, before you even manage to get to anything useful |
2021-07-13 22:11:56 +0200 | <davean> | Theres more than 100 different things to lay out |
2021-07-13 22:12:12 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-07-13 22:12:52 +0200 | ukari | (~ukari@user/ukari) |
2021-07-13 22:12:52 +0200 | <dminuoso> | As one example, I find myself using SPJ-style do-notation from time to time - in some situation it improves readability with nested do-blocks. But it's nothing I would argue "should be done always" |
2021-07-13 22:12:56 +0200 | <Profpatsch> | davean: not really, a few dozen |
2021-07-13 22:13:15 +0200 | <dminuoso> | Most of the time I find it noisy and distracting. |
2021-07-13 22:13:21 +0200 | <davean> | Profpatsch: I can list a few dozen off the top of my head |
2021-07-13 22:13:21 +0200 | acidjnk | (~acidjnk@p200300d0c72b9557fc98475d99842c11.dip0.t-ipconnect.de) |
2021-07-13 22:14:10 +0200 | <davean> | Profpatsch: we have more than a few dozen language extensions, and many introduce more than one piece of syntax |
2021-07-13 22:14:49 +0200 | drd | (~drd@93-39-151-19.ip76.fastwebnet.it) |
2021-07-13 22:18:26 +0200 | <[exa]> | I often hope that tabs could be restored to align proper tabular code, like if you want elements of 2 lists below each other to be aligned for clarity |
2021-07-13 22:18:45 +0200 | <davean> | [exa]: mmm, sadly tabs aren't reliable |
2021-07-13 22:18:49 +0200 | <davean> | so sometimes we do it with spaces ... |
2021-07-13 22:19:15 +0200 | <maerwald> | haskell with tabs and snake case, yay |
2021-07-13 22:19:48 +0200 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 276 seconds) |
2021-07-13 22:20:14 +0200 | <dminuoso> | maerwald: Hah, I have that! |
2021-07-13 22:20:56 +0200 | chomwitt | (~Pitsikoko@2a02:587:dc04:e00:12c3:7bff:fe6d:d374) |
2021-07-13 22:22:33 +0200 | <maerwald> | end goal: build a haskell company where this style is mandatory |
2021-07-13 22:23:09 +0200 | <davean> | maerwald: I think we should select the style of the name based on the modulus of the line its defined on |
2021-07-13 22:23:20 +0200 | <davean> | and if you change the line number, you have to change the style. |
2021-07-13 22:23:48 +0200 | <maerwald> | can we auto-format that please? |
2021-07-13 22:23:59 +0200 | maerwald | writes a patch for ormolu |
2021-07-13 22:24:32 +0200 | dre | (~dre@2001:8003:c932:c301:b299:b352:c4c4:74a1) |
2021-07-13 22:25:08 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 272 seconds) |
2021-07-13 22:25:37 +0200 | warnz | (~warnz@2600:1700:77c0:5610:9856:f279:a598:9845) |
2021-07-13 22:25:49 +0200 | <shapr> | Does anyone know when ghc 9.0.2 is likely to be released? |
2021-07-13 22:26:05 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Remote host closed the connection) |
2021-07-13 22:26:17 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) |
2021-07-13 22:26:41 +0200 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 265 seconds) |
2021-07-13 22:29:55 +0200 | warnz | (~warnz@2600:1700:77c0:5610:9856:f279:a598:9845) (Ping timeout: 246 seconds) |
2021-07-13 22:30:57 +0200 | prite | (~pritam@user/pritambaral) (Ping timeout: 245 seconds) |
2021-07-13 22:31:37 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Remote host closed the connection) |
2021-07-13 22:32:18 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2021-07-13 22:38:10 +0200 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.2) |
2021-07-13 22:39:30 +0200 | beka | (~beka@104.193.170-244.PUBLIC.monkeybrains.net) (Ping timeout: 256 seconds) |
2021-07-13 22:42:51 +0200 | <maerwald> | shapr: https://gitlab.haskell.org/ghc/ghc/-/issues/19632 |
2021-07-13 22:42:55 +0200 | beka | (~beka@104.193.170-244.PUBLIC.monkeybrains.net) |
2021-07-13 22:43:26 +0200 | <shapr> | maerwald: thanks! |
2021-07-13 22:43:44 +0200 | <maerwald> | oh dear, none of the boxes are checked |
2021-07-13 22:45:39 +0200 | <tomsmeding> | oh boy |
2021-07-13 22:49:19 +0200 | xkuru | (~xkuru@user/xkuru) |
2021-07-13 22:52:37 +0200 | myShoggoth | (~myShoggot@97-120-70-214.ptld.qwest.net) |
2021-07-13 22:52:56 +0200 | thedward[m] | (~thedwardm@2001:470:69fc:105::f79) |
2021-07-13 22:55:46 +0200 | Obo | (~roberto@70.pool90-171-81.dynamic.orange.es) (Ping timeout: 268 seconds) |
2021-07-13 22:58:01 +0200 | xkuru | (~xkuru@user/xkuru) (Quit: Unvirtualizing) |
2021-07-13 22:59:56 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-07-13 23:00:10 +0200 | machinedgod | (~machinedg@24.105.81.50) |
2021-07-13 23:01:46 +0200 | <koz> | What's the QuantifiedConstraints version of MonadTrans? I.e. the one we 'should' have if QuantifiedConstraints existed at the time it was created. |
2021-07-13 23:01:47 +0200 | MatrixTravelerbo | (~voyagert2@2001:470:69fc:105::22) |
2021-07-13 23:02:01 +0200 | maerwald[m] | (~maerwaldm@2001:470:69fc:105::1ee) |
2021-07-13 23:02:01 +0200 | ac | (~aloiscoch@2001:470:69fc:105::65) |
2021-07-13 23:02:01 +0200 | sm | (~sm@plaintextaccounting/sm) |
2021-07-13 23:02:01 +0200 | hjulle[m] | (~hjullemat@2001:470:69fc:105::1dd) |
2021-07-13 23:02:13 +0200 | dualinverter[m] | (~dualinver@2001:470:69fc:105::16a7) |
2021-07-13 23:02:19 +0200 | jaror[m] | (~jaror@2001:470:69fc:105::265) |
2021-07-13 23:02:19 +0200 | fgaz | (~fgaz@2001:470:69fc:105::842) |
2021-07-13 23:02:19 +0200 | peddie | (~peddie@2001:470:69fc:105::25d) |
2021-07-13 23:02:19 +0200 | cdsmith | (~cdsmithma@2001:470:69fc:105::284) |
2021-07-13 23:02:19 +0200 | ru0mad[m] | (~ru0madmat@2001:470:69fc:105::9b2) |
2021-07-13 23:02:19 +0200 | fabfianda[m] | (~fabfianda@2001:470:69fc:105::6db) |
2021-07-13 23:02:19 +0200 | bb010g | (~bb010g@2001:470:69fc:105::9a5) |
2021-07-13 23:02:19 +0200 | Artem[m] | (~artemtype@2001:470:69fc:105::75b) |
2021-07-13 23:02:19 +0200 | ServerStatsDisco | (~serversta@2001:470:69fc:105::1a) |
2021-07-13 23:02:19 +0200 | Las[m] | (~lasmatrix@2001:470:69fc:105::74e) |
2021-07-13 23:02:19 +0200 | cdepillabout[m] | (~cdepillab@2001:470:69fc:105::3d3) |
2021-07-13 23:02:19 +0200 | amesgen[m] | (~amesgenm]@2001:470:69fc:105::82b) |
2021-07-13 23:02:19 +0200 | the-coot[m] | (~the-cootm@2001:470:69fc:105::95f) |
2021-07-13 23:02:19 +0200 | vaibhavsagar[m] | (~vaibhavsa@2001:470:69fc:105::ffe) |
2021-07-13 23:02:19 +0200 | zfnmxt | (~zfnmxtzfn@2001:470:69fc:105::2b32) |
2021-07-13 23:02:19 +0200 | kadoban | (~kadoban@user/kadoban) |
2021-07-13 23:02:19 +0200 | bitonic | (~bitonic@2001:470:69fc:105::1812) |
2021-07-13 23:02:19 +0200 | carmysilna | (~brightly-@2001:470:69fc:105::2190) |
2021-07-13 23:02:19 +0200 | jophish | (~jophish@2001:470:69fc:105::670) |
2021-07-13 23:02:19 +0200 | ericson2314 | (~ericson23@2001:470:69fc:105::70c) |
2021-07-13 23:02:19 +0200 | PotatoHatsue | (~berberman@2001:470:69fc:105::b488) |
2021-07-13 23:02:19 +0200 | siraben | (~siraben@user/siraben) |
2021-07-13 23:02:19 +0200 | Deewiant | (~deewiant@2001:470:69fc:105::2fd3) |
2021-07-13 23:02:20 +0200 | unclechu | (~unclechu@2001:470:69fc:105::354) |
2021-07-13 23:02:20 +0200 | bryan[m] | (~bchreekat@2001:470:69fc:105::16b5) |
2021-07-13 23:02:20 +0200 | unrooted | (~unrooted@2001:470:69fc:105::a4a) |
2021-07-13 23:02:20 +0200 | Aleci[m] | (~alecilibr@2001:470:69fc:105::32e7) |
2021-07-13 23:02:20 +0200 | rednaZ[m] | (~r3dnazmat@2001:470:69fc:105::ba70) |
2021-07-13 23:02:20 +0200 | maralorn | (~maralorn@2001:470:69fc:105::251) |
2021-07-13 23:02:20 +0200 | jakefromstatefar | (~jakefroms@2001:470:69fc:105::15ef) |
2021-07-13 23:02:20 +0200 | lwe[m] | (~dendrumat@2001:470:69fc:105::2f9b) |
2021-07-13 23:02:20 +0200 | inkbottle[m] | (~inkbottle@2001:470:69fc:105::2ff5) |
2021-07-13 23:02:20 +0200 | reza[m] | (~rezaphone@2001:470:69fc:105::3eda) |
2021-07-13 23:02:20 +0200 | gxt | (~gxt@2001:470:69fc:105::3513) |
2021-07-13 23:02:20 +0200 | marinelli[m] | (~marinelli@2001:470:69fc:105::2d8) |
2021-07-13 23:02:20 +0200 | hsiktas[m] | (~hsiktasma@2001:470:69fc:105::30d4) |
2021-07-13 23:02:20 +0200 | boxscape | (~boxscape@user/boxscape) |
2021-07-13 23:02:20 +0200 | infinisil | (~infinisil@2001:470:69fc:105::ff8) |
2021-07-13 23:02:20 +0200 | ormaaj | (~ormaaj@user/ormaaj) |
2021-07-13 23:02:20 +0200 | Orbstheorem | (~orbstheor@2001:470:69fc:105::a56) |
2021-07-13 23:02:20 +0200 | sridonhiatus[m] | (~sridmatri@2001:470:69fc:105::1c2) |
2021-07-13 23:02:20 +0200 | smichel17[m] | (~smichel17@2001:470:69fc:105::2d32) |
2021-07-13 23:02:20 +0200 | polykernel | (~polykerne@user/polykernel) |
2021-07-13 23:02:25 +0200 | Morrow[m] | (~morrowmma@2001:470:69fc:105::1d0) |
2021-07-13 23:02:32 +0200 | ecameron[m] | (~ecameronm@2001:470:69fc:105::35df) |
2021-07-13 23:02:32 +0200 | autrim64[m] | (~autrim64m@2001:470:69fc:105::16a1) |
2021-07-13 23:02:32 +0200 | Soft | (~soft-matr@2001:470:69fc:105::c75) |
2021-07-13 23:02:32 +0200 | RohitGoswami[m] | (~rgoswamim@2001:470:69fc:105::16cc) |
2021-07-13 23:02:32 +0200 | yin[m] | (~zwromatri@2001:470:69fc:105::1d4) |
2021-07-13 23:02:32 +0200 | justosophy[m] | (~justosoph@2001:470:69fc:105::572f) |
2021-07-13 23:02:32 +0200 | adziahel[m] | (~adziahelm@2001:470:69fc:105::b4d) |
2021-07-13 23:02:32 +0200 | jellz[m] | (~jellzmatr@2001:470:69fc:105::2daa) |
2021-07-13 23:02:32 +0200 | Drezil | (~drezilkif@2001:470:69fc:105::7f8) |
2021-07-13 23:02:32 +0200 | dminuoso[m] | (~dminuosom@2001:470:69fc:105::33bb) |
2021-07-13 23:02:32 +0200 | wallymathieu[m] | (~wallymath@2001:470:69fc:105::16ae) |
2021-07-13 23:02:32 +0200 | kosmikus[m] | (~andresloe@2001:470:69fc:105::95d) |
2021-07-13 23:02:32 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-07-13 23:02:33 +0200 | octeep[m]1 | (~octeepmoc@2001:470:69fc:105::695e) |
2021-07-13 23:02:33 +0200 | aveltras[m] | (~aveltrasm@2001:470:69fc:105::3ef9) |
2021-07-13 23:02:33 +0200 | Ollie[m] | (~ollieocha@2001:470:69fc:105::41a5) |
2021-07-13 23:02:33 +0200 | fakehacker[m] | (~fakehacke@2001:470:69fc:105::b5f0) |
2021-07-13 23:02:33 +0200 | vbeatrice[m] | (~vbeatrice@2001:470:69fc:105::3ebf) |
2021-07-13 23:02:33 +0200 | SimonWeiss[m] | (~weiss-dma@2001:470:69fc:105::bebd) |
2021-07-13 23:02:33 +0200 | oak- | (~oakuniver@2001:470:69fc:105::fcd) |
2021-07-13 23:02:33 +0200 | ixlun | (~ixlun@2001:470:69fc:105::41b3) |
2021-07-13 23:02:34 +0200 | Sylveon | (~sylveonma@2001:470:69fc:105::2d95) |
2021-07-13 23:02:57 +0200 | Sylveon | Guest7801 |
2021-07-13 23:05:04 +0200 | _73 | (~user@pool-96-252-123-136.bstnma.fios.verizon.net) (ERC (IRC client for Emacs 27.2)) |
2021-07-13 23:05:57 +0200 | beka | (~beka@104.193.170-244.PUBLIC.monkeybrains.net) (Ping timeout: 245 seconds) |
2021-07-13 23:06:08 +0200 | mikoto-chan | (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Ping timeout: 256 seconds) |
2021-07-13 23:08:21 +0200 | Guest1825 | (~Guest18@70.109.128.127) (Quit: Client closed) |
2021-07-13 23:08:50 +0200 | Patternmaster | (~georg@li1192-118.members.linode.com) |
2021-07-13 23:11:52 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Remote host closed the connection) |
2021-07-13 23:12:49 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) |
2021-07-13 23:12:55 +0200 | FixedPointDude | (~FixedPoin@204.237.49.106) |
2021-07-13 23:13:11 +0200 | <FixedPointDude> | hello, i have a horrible conjecture |
2021-07-13 23:13:57 +0200 | <koz> | FixedPointDude: P vs NP is still undecided. |
2021-07-13 23:14:22 +0200 | <FixedPointDude> | abusing types, let f 0 = id, f k = f k-1 fmap |
2021-07-13 23:14:26 +0200 | <FixedPointDude> | (har) |
2021-07-13 23:14:40 +0200 | <FixedPointDude> | so that f k = fmap fmap ... fmap, with k terms |
2021-07-13 23:15:14 +0200 | <FixedPointDude> | then: f 4 is a fixed point of f k, for all k >= 6 |
2021-07-13 23:15:42 +0200 | <FixedPointDude> | i.e. (fmap ... fmap) 10 times = (fmap ... fmap) 6 times, etc |
2021-07-13 23:15:50 +0200 | <monochrom> | Is that "fmap (fmap (fmap ..."? Is that "(...(fmap fmap) fmap) ..."? |
2021-07-13 23:15:57 +0200 | <FixedPointDude> | left associate i believe |
2021-07-13 23:16:02 +0200 | <Hecate> | koz: :') |
2021-07-13 23:16:27 +0200 | <koz> | Hecate: What can I say? It's the source of many horrible conjectures. |
2021-07-13 23:16:55 +0200 | <FixedPointDude> | the basis of this conjecture is that ghc claims these have the same types, and no other combinations i've noticed do |
2021-07-13 23:17:22 +0200 | <monochrom> | @type ((fmap fmap) fmap) fmap |
2021-07-13 23:17:23 +0200 | <lambdabot> | (Functor f1, Functor f2, Functor f3) => f1 (f2 (a -> b)) -> f1 (f2 (f3 a -> f3 b)) |
2021-07-13 23:17:26 +0200 | <FixedPointDude> | inspired by the observation that fmap fmap fmap = (.).(.) |
2021-07-13 23:18:01 +0200 | neceve | (~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f) |
2021-07-13 23:18:03 +0200 | o1lo01ol1o | (~o1lo01ol1@bl7-89-228.dsl.telepac.pt) |
2021-07-13 23:18:22 +0200 | <hseg> | ah. you mean after a point, the types cycle between [(a -> b) -> f1 (f2 (f3 a)) -> f1 (f2 (f3 b))], [f1 (f2 (f3 (a -> b))) -> f1 (f2 (f3 (f4 a -> f4 b)))], [f1 (f2 (f3 (a -> b))) -> f1 (f2 (f3 (f4 a -> f4 b)))], [f1 (f2 (f3 (a -> b))) -> f1 (f2 (f3 (f4 a -> f4 b)))] |
2021-07-13 23:18:32 +0200 | <hseg> | .... that was unreadable |
2021-07-13 23:18:35 +0200 | <FixedPointDude> | not that i can parse what you wrote, but probably |
2021-07-13 23:18:49 +0200 | <FixedPointDude> | haha |
2021-07-13 23:19:07 +0200 | <Hecate> | hahaha |
2021-07-13 23:19:14 +0200 | <FixedPointDude> | the idea of proving this makes my palms sweaty |
2021-07-13 23:19:25 +0200 | <FixedPointDude> | i want to practice these kinds of things, but not actually this |
2021-07-13 23:19:43 +0200 | <hseg> | not too bad -- it's just four unifications |
2021-07-13 23:19:58 +0200 | <FixedPointDude> | (i don't know what a unification is) |
2021-07-13 23:20:42 +0200 | <FixedPointDude> | https://github.com/jozefg/higher-order-unification/blob/master/explanation.md |
2021-07-13 23:20:44 +0200 | <hseg> | when you apply f :: a -> b to a value c :: t, ghc checks a ~ c |
2021-07-13 23:20:46 +0200 | <FixedPointDude> | this looks abstract |
2021-07-13 23:21:24 +0200 | <hseg> | sorry, a ~t |
2021-07-13 23:21:26 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-13 23:22:01 +0200 | <hseg> | and to do that, it *unifies* the two types -- tries applying known equalities to show they are also equal |
2021-07-13 23:22:25 +0200 | o1lo01ol1o | (~o1lo01ol1@bl7-89-228.dsl.telepac.pt) (Ping timeout: 246 seconds) |
2021-07-13 23:24:03 +0200 | <FixedPointDude> | so like, e.g. given two parametric types, what's the biggest parametric type which is a subtype both? |
2021-07-13 23:24:16 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds) |
2021-07-13 23:24:21 +0200 | <FixedPointDude> | the meet of parametric types |
2021-07-13 23:24:21 +0200 | <hseg> | yup |
2021-07-13 23:25:21 +0200 | <hseg> | e.g. x :: (Int, a), f :: (b,Bool) -> Char is legal since there is a unification (~ assignment of variables) s.t. (Int, a) ~ (b, Bool) |
2021-07-13 23:26:34 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 272 seconds) |
2021-07-13 23:27:00 +0200 | <FixedPointDude> | it seems to me that things like this can only show that a term is well-typed, so that two functions *might* be equal |
2021-07-13 23:27:34 +0200 | <FixedPointDude> | but given two functions f,g : a -> b, i don't see how this technique can show that they are equal |
2021-07-13 23:27:46 +0200 | <FixedPointDude> | extentionally, on all possible values |
2021-07-13 23:28:16 +0200 | <FixedPointDude> | is this particular to some special universal property of fmap? |
2021-07-13 23:28:26 +0200 | warnz | (~warnz@2600:1700:77c0:5610:9856:f279:a598:9845) |
2021-07-13 23:28:27 +0200 | <hseg> | don't _think_ so? |
2021-07-13 23:28:34 +0200 | warnz | (~warnz@2600:1700:77c0:5610:9856:f279:a598:9845) (Remote host closed the connection) |
2021-07-13 23:28:56 +0200 | warnz | (~warnz@2600:1700:77c0:5610:9856:f279:a598:9845) |
2021-07-13 23:30:45 +0200 | <hseg> | btw, note this depends on you applying left-associatively |
2021-07-13 23:31:29 +0200 | <hseg> | right-associatively, fmap (fmap (...) :: f1 (f2 (f3 ... (a -> b) -> f1 (f2 (f3 ... (g a -> g b) |
2021-07-13 23:33:04 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) |
2021-07-13 23:34:42 +0200 | <hseg> | ah, I see where the fixpoint comes from -- recall we have a Functor ((->) a) instance |
2021-07-13 23:38:11 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-13 23:41:52 +0200 | o1lo01ol1o | (~o1lo01ol1@bl7-89-228.dsl.telepac.pt) |
2021-07-13 23:42:54 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 255 seconds) |
2021-07-13 23:43:09 +0200 | <FixedPointDude> | i went and got a snack and i actually think the "fixed point" formulation is wrong |
2021-07-13 23:43:23 +0200 | o1lo01ol_ | (~o1lo01ol1@bl11-109-140.dsl.telepac.pt) |
2021-07-13 23:43:32 +0200 | <FixedPointDude> | for the simple reason that (f f)(f f) is different from ((f f) f) f |
2021-07-13 23:43:47 +0200 | <FixedPointDude> | so the re-stated conjecture is instead: |
2021-07-13 23:44:00 +0200 | <hseg> | yes, but it's a fixed point of \k -> k fmap |
2021-07-13 23:44:03 +0200 | <FixedPointDude> | f k+4 = f k, for all k >= 6 |
2021-07-13 23:44:15 +0200 | <FixedPointDude> | aaaah re: k as the variable |
2021-07-13 23:44:29 +0200 | <hseg> | (well, it enters a cycle of period 4 |
2021-07-13 23:44:48 +0200 | <hseg> | so actually you want "is a fixed point of \k -> k fmap fmap fmap fmap" |
2021-07-13 23:44:50 +0200 | <hseg> | ) |
2021-07-13 23:44:56 +0200 | Guest6135 | (~Guest61@2001:ac8:27:20::a01e) |
2021-07-13 23:45:04 +0200 | <FixedPointDude> | yes, that'll do it |
2021-07-13 23:45:45 +0200 | <hololeap> | koz: MonadTrans is one of the examples in the docs. see the second example under "Motiviation" |
2021-07-13 23:45:50 +0200 | <hololeap> | *Motivation |
2021-07-13 23:46:05 +0200 | <koz> | hololeap: The docs for QuantifiedConstraints I'm guessing? |
2021-07-13 23:46:17 +0200 | warnz | (~warnz@2600:1700:77c0:5610:9856:f279:a598:9845) (Remote host closed the connection) |
2021-07-13 23:46:17 +0200 | <hololeap> | yeah |
2021-07-13 23:46:32 +0200 | <hololeap> | GHC user's guide |
2021-07-13 23:46:35 +0200 | <hseg> | yeah, so the first couple steps are tiresome |
2021-07-13 23:46:50 +0200 | o1lo01ol1o | (~o1lo01ol1@bl7-89-228.dsl.telepac.pt) (Ping timeout: 272 seconds) |
2021-07-13 23:47:59 +0200 | hexfive | (~eric@50.35.83.177) (Quit: WeeChat 3.0) |
2021-07-13 23:48:22 +0200 | <hololeap> | (this is actually the first time I've read about this extension...) |
2021-07-13 23:49:23 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-13 23:49:51 +0200 | <hololeap> | so, would this allow us to make Set a real haskell Functor? |
2021-07-13 23:50:32 +0200 | <hseg> | don't think so -- to make set into a Functor you'd need to be able to restrict the types at which it is applied |
2021-07-13 23:50:54 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) |
2021-07-13 23:51:28 +0200 | drd | (~drd@93-39-151-19.ip76.fastwebnet.it) (Ping timeout: 246 seconds) |
2021-07-13 23:52:40 +0200 | jneira_ | (~jneira_@28.red-80-28-169.staticip.rima-tde.net) |
2021-07-13 23:52:51 +0200 | mariohesles | (~user@172.58.97.195) |
2021-07-13 23:53:43 +0200 | wallymathieu | (~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-07-13 23:55:19 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2021-07-13 23:55:24 +0200 | <hseg> | FixedPointDude: http://ix.io/3sUI |
2021-07-13 23:55:39 +0200 | fendor | (~fendor@178.115.59.187.wireless.dyn.drei.com) (Read error: Connection reset by peer) |
2021-07-13 23:55:40 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 246 seconds) |
2021-07-13 23:55:51 +0200 | <hseg> | note the heavy use made of the Functor ((->) a) instance to supply enough arguments |
2021-07-13 23:56:49 +0200 | ph88 | (~ph88@2a02:8109:9e00:7e5c:146a:5c4b:109:2ce4) (Ping timeout: 268 seconds) |
2021-07-13 23:57:10 +0200 | <FixedPointDude> | this is interesting |
2021-07-13 23:57:15 +0200 | <FixedPointDude> | i don't know how to read it though |
2021-07-13 23:57:40 +0200 | <hseg> | the existence of such an instance means that a bare fmap can be fed any number of arguments, as can be checked by asking GHC for the types of fmap, fmap _, fmap _ _, ... |
2021-07-13 23:58:35 +0200 | <hseg> | ok, so lines outside {} are the types of various iterations of fmap |
2021-07-13 23:59:02 +0200 | <hseg> | one then applies the term of that type to fmap :: (α -> β) -> (φ α -> φ β) |
2021-07-13 23:59:35 +0200 | <hseg> | in order for this to be legal, the type of the parameter of the term must unify with this type |
2021-07-13 23:59:51 +0200 | mjs2600 | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
2021-07-13 23:59:57 +0200 | <hseg> | so eg first unification unifies (α -> β) -> (φ α -> φ β) and (a -> b) |