2021-06-15 00:00:15 +0200 | <monochrom> | There is going to be an early, simplistic stage of "Maybe doesn't count as a type", and an intermediate stage of needing to care about the kind system, in which case Maybe is a type, just that its kind is not * |
2021-06-15 00:01:14 +0200 | <maerwald> | you can teach 10 weeks of haskell without ever mentioning kinds :) |
2021-06-15 00:01:15 +0200 | <ski> | in the latter, all of `Int',`Maybe Int',`Either String Int',`Maybe',`Either',`Either String' are types (the first three are sometimes called "concrete types", while the latter three are parameterized types, are type functions). (both `Eq' and `Functor` are type classes) |
2021-06-15 00:02:02 +0200 | <monochrom> | You need to make a decision on how much you want to teach your friend, and optimize for that. There will not be one single "standard" "agreement" "truth" that is optimal for all purposes and contexts. I would think you already knew. |
2021-06-15 00:02:12 +0200 | <geekosaur> | safinaskar, even ghc disagrees with itself, sometimes it uses "type" to mean kind * and other times other kinds |
2021-06-15 00:02:39 +0200 | <geekosaur> | notably "Expected a type, but found…" |
2021-06-15 00:02:54 +0200 | <hpc> | there's also the symmetry with the value level to consider |
2021-06-15 00:03:02 +0200 | <ski> | (and all type constructors are types, but not vice versa. type constructors, of the aforementioned, are (only) `Int',`Maybe' (`String' is a type synonym for `[Char]', which is syntactic sygar for `[] Char'. `[]' and `Char' are also type constructors)) |
2021-06-15 00:03:09 +0200 | ski | prefers the latter terminology |
2021-06-15 00:03:14 +0200 | <hpc> | we don't say "functions are not values", or that True is a value but Just is a value constructor? |
2021-06-15 00:03:15 +0200 | <monochrom> | In fact, I teach 12 weeks and still don't need to talk about kinds. |
2021-06-15 00:03:21 +0200 | <hpc> | s/?// |
2021-06-15 00:03:43 +0200 | <maerwald> | navigation is more important than terminology |
2021-06-15 00:03:57 +0200 | <monochrom> | I think the 1st time you really need to discuss kinds is monad transformers. |
2021-06-15 00:04:18 +0200 | tonyday | (~user@202-65-93-249.ip4.superloop.com) (Ping timeout: 244 seconds) |
2021-06-15 00:04:27 +0200 | charukiewicz_ | charukiewicz |
2021-06-15 00:04:29 +0200 | <ski> | `fmap |
2021-06-15 00:04:33 +0200 | <ski> | ' ? |
2021-06-15 00:05:08 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2021-06-15 00:05:19 +0200 | <monochrom> | And yeah, if the audience know that "x :: Maybe Int" is cool and "x :: Maybe" isn't, you've already succeeded. |
2021-06-15 00:05:32 +0200 | <safinaskar> | leaving |
2021-06-15 00:05:34 +0200 | safinaskar | (~safinaska@109.252.90.89) () |
2021-06-15 00:05:43 +0200 | <maerwald> | haskellers misuse 'purity' all the time, but it helps them navigate through concepts relevant to them |
2021-06-15 00:06:51 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-15 00:06:55 +0200 | <monochrom> | May I take a naughty take on that? |
2021-06-15 00:07:11 +0200 | tonyday | (~user@202-65-93-249.ip4.superloop.com) |
2021-06-15 00:07:15 +0200 | <janus> | yes, please tell us! |
2021-06-15 00:07:23 +0200 | <monochrom> | haskellers miuses "unsafe" all the time, and it helps them wage endian wars >:) |
2021-06-15 00:07:50 +0200 | tremon | (~tremon@217-63-61-89.cable.dynamic.v4.ziggo.nl) (Quit: getting boxed in) |
2021-06-15 00:07:55 +0200 | hemlock | (~hemlock@2607:fb90:9629:beeb:c0f9:725f:e469:1bcf) (Ping timeout: 244 seconds) |
2021-06-15 00:07:56 +0200 | eflister | (~eflister@2601:1c0:5501:c150:a9cd:cab7:e080:34d4) (Quit: Client closed) |
2021-06-15 00:08:12 +0200 | hemlock | (~hemlock@ip72-203-188-10.tu.ok.cox.net) |
2021-06-15 00:08:24 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) (Remote host closed the connection) |
2021-06-15 00:08:59 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) |
2021-06-15 00:09:00 +0200 | ddellacosta | (~ddellacos@89.46.62.229) |
2021-06-15 00:09:28 +0200 | <monochrom> | Really, "is Maybe a type?" is an XY problem. Probably all terminlogy questions are. |
2021-06-15 00:09:49 +0200 | <monochrom> | The asker is using that to hide the real question "is x::Maybe legal?" |
2021-06-15 00:10:00 +0200 | <monochrom> | for example. |
2021-06-15 00:10:26 +0200 | <maerwald> | I'm a bit worried about the friend |
2021-06-15 00:11:00 +0200 | <monochrom> | I agree, but this terminology question is very minor and trivial compared to: |
2021-06-15 00:11:43 +0200 | <monochrom> | We're talking about a speaker who says "THREAT of making yet another parser library" |
2021-06-15 00:12:05 +0200 | <monochrom> | Are they delusional or what. Did they forget their meds. |
2021-06-15 00:12:36 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) (Remote host closed the connection) |
2021-06-15 00:12:43 +0200 | xsperry | (~as@user/xsperry) |
2021-06-15 00:12:52 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) |
2021-06-15 00:13:07 +0200 | <monochrom> | Raising a trivial first-world problem of having more or fewer libraries to the level of, like, terrorism. |
2021-06-15 00:13:44 +0200 | ddellacosta | (~ddellacos@89.46.62.229) (Ping timeout: 272 seconds) |
2021-06-15 00:14:04 +0200 | <monochrom> | It's why I refused to answer their parser question a few days ago. |
2021-06-15 00:14:12 +0200 | <maerwald> | unification seems to be a common theme these days |
2021-06-15 00:14:22 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-06-15 00:15:05 +0200 | <geekosaur> | looked to me like they were making so much noise over "can't be monadic" yet one of their requirements seemed to require a monadic parser |
2021-06-15 00:16:09 +0200 | <monochrom> | Oh, I wouldn't be surprised if they had two points that logically imply "can't be monoadic" and one point that logically implies "must be monadic". |
2021-06-15 00:16:11 +0200 | Schrostfutz_ | (~Schrostfu@p5de88aa6.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
2021-06-15 00:16:29 +0200 | <maerwald> | maybe they need selective! |
2021-06-15 00:16:36 +0200 | <maerwald> | oh, do we have selective parsers? |
2021-06-15 00:16:38 +0200 | <monochrom> | I mean what do you expect from someone who spams the word "THREAT" in all caps. |
2021-06-15 00:17:09 +0200 | <monochrom> | I think no, but I haven't really checked. |
2021-06-15 00:17:14 +0200 | bor0 | (~boro@user/bor0) (Quit: Leaving) |
2021-06-15 00:17:17 +0200 | <maerwald> | I admit I have no intuition about what a selective parser looks like |
2021-06-15 00:17:18 +0200 | chisui | (~chisui@200116b8662d980089ca00d34d7b3df6.dip.versatel-1u1.de) (Ping timeout: 250 seconds) |
2021-06-15 00:18:06 +0200 | <monochrom> | Maybe I can somewhat explain it. |
2021-06-15 00:18:40 +0200 | Topsi | (~Tobias@dyndsl-095-033-094-176.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
2021-06-15 00:19:09 +0200 | awth13 | (~user@user/awth13) (Remote host closed the connection) |
2021-06-15 00:19:10 +0200 | <monochrom> | Suppose you only need to parse for a CFG. And suppose someone has already given you "satisfy :: (Token -> Bool) -> Parser Token" as a given primitive. |
2021-06-15 00:19:20 +0200 | <monochrom> | Then you find out that you only need Alternative. |
2021-06-15 00:19:23 +0200 | awth13 | (~user@user/awth13) |
2021-06-15 00:19:42 +0200 | <monochrom> | Furthermore, you find that to implement satisfy, you only need Selective. |
2021-06-15 00:22:37 +0200 | alexeikale | (~alexeikal@2601:1c2:1b80:100:4ea5:a35a:95ba:fcb1) |
2021-06-15 00:23:13 +0200 | <monochrom> | So for example, these days when I teach chainl1 and chainr1 to my students, I show them an implementation that stays within Alternative. (The traditional Hutton version uses MonadPlus, e.g., uses >>=.) |
2021-06-15 00:23:43 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) (Remote host closed the connection) |
2021-06-15 00:24:01 +0200 | <maerwald> | right, selective is a way to recover from a parse failure, but it still doesn't allow you to dynamically choose parsers |
2021-06-15 00:24:03 +0200 | <tonyday> | Is there a new parser library? I love them - a good way to check on latest technique etc. |
2021-06-15 00:26:09 +0200 | <geekosaur> | not yet, at least |
2021-06-15 00:26:21 +0200 | <shachaf> | The latest technique: Make your grammar LL(1) and then use any old way of writing a parser. |
2021-06-15 00:26:39 +0200 | <shachaf> | The secret parser library authors don't want you to know. |
2021-06-15 00:26:41 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) |
2021-06-15 00:27:43 +0200 | involans | (~alex@cpc92718-cmbg20-2-0-cust157.5-4.cable.virginm.net) (Ping timeout: 272 seconds) |
2021-06-15 00:27:47 +0200 | <maerwald> | I switched to regex-posix :> |
2021-06-15 00:28:04 +0200 | <maerwald> | (and then got memory errors on darwin) |
2021-06-15 00:28:13 +0200 | <monochrom> | haha yikes |
2021-06-15 00:28:26 +0200 | <maerwald> | or was it windows, I forget |
2021-06-15 00:29:42 +0200 | haskman | (~haskman@171.61.149.211) (Quit: Going to sleep. ZZZzzz…) |
2021-06-15 00:30:04 +0200 | <maerwald> | ah yeah, windows https://gitlab.haskell.org/ghc/ghc/-/issues/19945 |
2021-06-15 00:30:18 +0200 | tonyday | (~user@202-65-93-249.ip4.superloop.com) (Remote host closed the connection) |
2021-06-15 00:30:37 +0200 | <maerwald> | I remember merijn boasting how easy FFI is in haskell |
2021-06-15 00:30:39 +0200 | <maerwald> | yeah... no |
2021-06-15 00:31:41 +0200 | dhil | (~dhil@80.208.56.181) (Ping timeout: 244 seconds) |
2021-06-15 00:34:19 +0200 | benin036 | (~benin@183.82.176.206) |
2021-06-15 00:35:34 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-15 00:36:08 +0200 | nckx | (~nckx@tobias.gr) (Quit: Updating my Guix System <https://guix.gnu.org>) |
2021-06-15 00:38:02 +0200 | eL_Bart0 | (eL_Bart0@dietunichtguten.org) (Quit: Restarting) |
2021-06-15 00:38:12 +0200 | eL_Bart0 | (eL_Bart0@dietunichtguten.org) |
2021-06-15 00:40:37 +0200 | nckx | (~nckx@tobias.gr) |
2021-06-15 00:42:52 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2021-06-15 00:44:02 +0200 | tonyday | (~user@202-65-93-249.ip4.superloop.com) |
2021-06-15 00:45:11 +0200 | <janus> | how can it be that `catMaybes = [... | Just x <- xs]` works? is it a property of the list comprehension that it skips an element when the pattern fails? |
2021-06-15 00:45:15 +0200 | <janus> | or is it something more general? |
2021-06-15 00:46:11 +0200 | econo | (uid147250@user/econo) |
2021-06-15 00:46:13 +0200 | <geekosaur> | the former, when the pattern match fails it appends the empty list to the result instead of the result of the pattern as a singleton list |
2021-06-15 00:47:25 +0200 | <janus> | so MonadFail is not involved? |
2021-06-15 00:47:25 +0200 | <geekosaur> | if you use the monadic desugaring of list comprehensions, the pattern failing alls fail which is [] in the list monad |
2021-06-15 00:48:02 +0200 | <geekosaur> | but that's I think only used when MonadComprehensions is turned on; I don't recall the simpler desugaring it otherwise uses |
2021-06-15 00:48:27 +0200 | <geekosaur> | @undo [x | Just x <- xs] |
2021-06-15 00:48:27 +0200 | <lambdabot> | concatMap (\ a -> case a of { Just x -> [x]; _ -> []}) xs |
2021-06-15 00:48:43 +0200 | <geekosaur> | there you go |
2021-06-15 00:48:49 +0200 | <janus> | oh, cool |
2021-06-15 00:49:15 +0200 | NieDzejkob_ | (~quassel@195.149.98.3) (Ping timeout: 244 seconds) |
2021-06-15 00:49:17 +0200 | <janus> | @undo [(x,y) | (x, Just y) <- xs] |
2021-06-15 00:49:17 +0200 | <lambdabot> | concatMap (\ a -> case a of { (x, Just y) -> [(x, y)]; _ -> []}) xs |
2021-06-15 00:49:28 +0200 | <ski> | > do Just x <- [Just 0,Nothing,Just 2]; [x] |
2021-06-15 00:49:30 +0200 | <lambdabot> | [0,2] |
2021-06-15 00:49:40 +0200 | ddellacosta | (~ddellacos@86.106.143.21) |
2021-06-15 00:49:45 +0200 | <ski> | @undo do Just x <- [Just 0,Nothing,Just 2]; [x] |
2021-06-15 00:49:46 +0200 | <lambdabot> | [Just 0, Nothing, Just 2] >>= \ a -> case a of { Just x -> [x]; _ -> fail ""} |
2021-06-15 00:50:01 +0200 | <monochrom> | It is up to you which model to use: "it's a rule of list comprehension to skip pattern mismatches", "it is a special case of MonadFail". They give the same prediction, I wouldn't draw a hard line between them. |
2021-06-15 00:50:38 +0200 | <monochrom> | That is, unless you ask about possible differences in generated asm code even under -O10^80. |
2021-06-15 00:50:47 +0200 | <janus> | don't like it calling fail with an empty string. so i am happy to avoid `fail` |
2021-06-15 00:51:05 +0200 | <ski> | @src Maybe fail |
2021-06-15 00:51:06 +0200 | <lambdabot> | fail _ = Nothing |
2021-06-15 00:51:22 +0200 | <ski> | @src [] fail |
2021-06-15 00:51:22 +0200 | <lambdabot> | fail _ = [] |
2021-06-15 00:51:29 +0200 | <janus> | but what if was another monad? tempting fate |
2021-06-15 00:51:49 +0200 | <hpc> | @src IO fail |
2021-06-15 00:51:49 +0200 | <lambdabot> | fail s = failIO s |
2021-06-15 00:51:49 +0200 | <monochrom> | Sure, if it's another monad, then MonadFail is really invoked. |
2021-06-15 00:52:02 +0200 | ham | (~ham4@user/ham) (Read error: Connection reset by peer) |
2021-06-15 00:54:13 +0200 | ddellacosta | (~ddellacos@86.106.143.21) (Ping timeout: 244 seconds) |
2021-06-15 00:54:38 +0200 | ham | (~ham4@user/ham) |
2021-06-15 00:55:34 +0200 | NieDzejkob | (~quassel@195.149.98.3) |
2021-06-15 00:56:17 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-06-15 00:56:44 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-06-15 00:56:48 +0200 | hemlock | (~hemlock@ip72-203-188-10.tu.ok.cox.net) (Ping timeout: 272 seconds) |
2021-06-15 00:57:17 +0200 | hgolden | (~hgolden2@cpe-172-114-84-61.socal.res.rr.com) (Remote host closed the connection) |
2021-06-15 00:57:41 +0200 | hemlock | (~hemlock@2607:fb90:9629:beeb:8fe5:1eb6:ded9:dd19) |
2021-06-15 00:57:41 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-06-15 00:58:10 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-06-15 01:02:36 +0200 | fizbin | (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) |
2021-06-15 01:02:53 +0200 | kayprish | (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Remote host closed the connection) |
2021-06-15 01:03:08 +0200 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) (Ping timeout: 272 seconds) |
2021-06-15 01:04:07 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
2021-06-15 01:04:20 +0200 | warnz | (~warnz@2600:1700:77c0:5610:210a:ba95:5325:60a6) (Remote host closed the connection) |
2021-06-15 01:06:49 +0200 | fizbin | (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) (Ping timeout: 244 seconds) |
2021-06-15 01:09:28 +0200 | <DigitalKiwi> | 21:57 ski: in the former, `Int',`Maybe Int' are types, `Maybe |
2021-06-15 01:09:28 +0200 | bfrk | (~bfrk@200116b8451b0900bae0ed5ddd267e3d.dip.versatel-1u1.de) (Ping timeout: 272 seconds) |
2021-06-15 01:10:18 +0200 | <DigitalKiwi> | i was very concerned for a minute |
2021-06-15 01:10:55 +0200 | <monochrom> | You should have faith in ski. :) |
2021-06-15 01:13:10 +0200 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) |
2021-06-15 01:13:41 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2021-06-15 01:13:42 +0200 | <DigitalKiwi> | i have no lack of faith in ski, maybe |
2021-06-15 01:15:27 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit) |
2021-06-15 01:15:54 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2021-06-15 01:16:30 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-06-15 01:20:04 +0200 | tonyday | (~user@202-65-93-249.ip4.superloop.com) (Remote host closed the connection) |
2021-06-15 01:20:08 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit) |
2021-06-15 01:20:46 +0200 | hemlock | (~hemlock@2607:fb90:9629:beeb:8fe5:1eb6:ded9:dd19) (Ping timeout: 244 seconds) |
2021-06-15 01:21:38 +0200 | tonyday | (~user@202-65-93-249.ip4.superloop.com) |
2021-06-15 01:21:40 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2021-06-15 01:21:42 +0200 | hemlock | (~hemlock@2600:8804:4c0a:3200:91a4:77db:aed9:3c83) |
2021-06-15 01:22:07 +0200 | ddellacosta | (~ddellacos@86.106.121.190) |
2021-06-15 01:22:52 +0200 | ski | smiles |
2021-06-15 01:25:44 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 244 seconds) |
2021-06-15 01:26:46 +0200 | ddellacosta | (~ddellacos@86.106.121.190) (Ping timeout: 244 seconds) |
2021-06-15 01:31:11 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
2021-06-15 01:34:48 +0200 | chomwitt | (~Pitsikoko@2a02:587:dc02:b00:98b0:cd42:bd6f:8295) (Ping timeout: 272 seconds) |
2021-06-15 01:35:02 +0200 | oo_miguel | (~pi@89-72-187-203.dynamic.chello.pl) (Ping timeout: 244 seconds) |
2021-06-15 01:35:38 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2021-06-15 01:35:44 +0200 | oo_miguel | (~pi@89-72-187-203.dynamic.chello.pl) |
2021-06-15 01:37:27 +0200 | danso | (~danso@23-233-111-52.cpe.pppoe.ca) |
2021-06-15 01:37:58 +0200 | fendor_ | (~fendor@77.119.128.134.wireless.dyn.drei.com) |
2021-06-15 01:39:53 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) (Ping timeout: 244 seconds) |
2021-06-15 01:40:42 +0200 | fendor | (~fendor@77.119.131.39.wireless.dyn.drei.com) (Ping timeout: 268 seconds) |
2021-06-15 01:41:12 +0200 | larryba | (~bc817c21@217.29.117.252) |
2021-06-15 01:41:43 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2021-06-15 01:42:34 +0200 | <larryba> | hi. is there some extension that would allow me to create an operator called | and ~? I'm getting "parse error on input �|�" and "parse error on input �)�". |
2021-06-15 01:42:46 +0200 | <larryba> | (I know that | is part of haskell syntax, and probably something similar with ~, so it's probably a long shot) |
2021-06-15 01:43:03 +0200 | <geekosaur> | both are part of haskell syntax and can't be overridden |
2021-06-15 01:43:24 +0200 | <geekosaur> | even with RebindableSyntax, neither can be made an operator |
2021-06-15 01:43:59 +0200 | <larryba> | where is ~ used? I don't recall ever seeing it |
2021-06-15 01:44:10 +0200 | <geekosaur> | it makes a strict pattern lazy |
2021-06-15 01:44:20 +0200 | <monochrom> | ~? should be OK, HUnit uses ~?= all the time. |
2021-06-15 01:44:23 +0200 | <geekosaur> | it's also used at type level to express type equality |
2021-06-15 01:44:30 +0200 | <monochrom> | | is reserved. |
2021-06-15 01:44:40 +0200 | <monochrom> | But you can make ||||| or something |
2021-06-15 01:45:15 +0200 | <geekosaur> | right, both can be used as parts of other operators, just not by themsleves |
2021-06-15 01:52:12 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-06-15 01:52:24 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-06-15 01:55:17 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-06-15 01:55:57 +0200 | ddellacosta | (~ddellacos@89.46.62.164) |
2021-06-15 01:56:44 +0200 | hmmmas | (~chenqisu1@183.217.200.246) |
2021-06-15 01:59:14 +0200 | tonyday | (~user@202-65-93-249.ip4.superloop.com) (Remote host closed the connection) |
2021-06-15 02:00:54 +0200 | ddellacosta | (~ddellacos@89.46.62.164) (Ping timeout: 264 seconds) |
2021-06-15 02:03:02 +0200 | bilegeek | (~bilegeek@2600:1008:b041:5047:48ad:ae3d:d2ea:7d42) (Quit: Leaving) |
2021-06-15 02:03:03 +0200 | Axman6 | (~Axman6@user/axman6) |
2021-06-15 02:05:28 +0200 | zeenk | (~zeenk@188.26.30.39) (Quit: Konversation terminated!) |
2021-06-15 02:07:12 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection) |
2021-06-15 02:10:24 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-15 02:14:13 +0200 | <lbseale> | I'm interested to hear everyone's thoughts on an idea: We're considering how to marshal data between C and Haskell. The size of the of data is small, but there are lot of fields in the record in Haskell (if that makes sense) |
2021-06-15 02:14:55 +0200 | <lbseale> | On idea is to serialize it into JSON, and just pass a JSON string back and forth, this is currently how we get data into the Haskell program, it's satisfyingly fast |
2021-06-15 02:15:23 +0200 | <lbseale> | Another option is to make a C Structs that mirror the Haskell records, and pass those back and forth |
2021-06-15 02:15:35 +0200 | v01d4lph4 | (~v01d4lph4@user/v01d4lph4) |
2021-06-15 02:15:58 +0200 | <lbseale> | We've been able to get that working in a toy program, but setting up the Storable instance for the C struct is a bit of a hassle |
2021-06-15 02:17:38 +0200 | <geekosaur> | there are tools that purport to make that easier but they can be fragile (gcc11 reportedly breaks c2hs, for example) |
2021-06-15 02:18:42 +0200 | <lbseale> | yeah I was looking at one called storable-record on the Haskell side |
2021-06-15 02:19:40 +0200 | v01d4lph4 | (~v01d4lph4@user/v01d4lph4) (Ping timeout: 244 seconds) |
2021-06-15 02:19:51 +0200 | <monochrom> | I would expect JSON -> C struct be as much hassle as Haskell record -> Storable. |
2021-06-15 02:19:52 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) (Remote host closed the connection) |
2021-06-15 02:20:28 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) |
2021-06-15 02:20:40 +0200 | <lbseale> | interesting, I don't know that much about C, but I work with people who do |
2021-06-15 02:20:44 +0200 | <glguy> | There are possible advantages to the json approach if you have a particularly flexible data representation; I guess |
2021-06-15 02:21:07 +0200 | <glguy> | if you had a bunch of lists or map structures or lots of different optional fields, it might be less hassle to go that route |
2021-06-15 02:21:12 +0200 | <glguy> | but not for simple struct stuff |
2021-06-15 02:22:24 +0200 | <lbseale> | hmm, yeah it's like 50 fixed fields, in addition to a list of 2 or more big records |
2021-06-15 02:22:35 +0200 | <monochrom> | But C is a particularly inflexible language for types. |
2021-06-15 02:23:46 +0200 | _73 | (~user@pool-96-252-123-136.bstnma.fios.verizon.net) |
2021-06-15 02:24:38 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) (Ping timeout: 244 seconds) |
2021-06-15 02:25:50 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-06-15 02:30:32 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 272 seconds) |
2021-06-15 02:30:51 +0200 | fizbin | (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) |
2021-06-15 02:31:35 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2021-06-15 02:32:00 +0200 | teaSlurper | (~chris@81.96.113.213) |
2021-06-15 02:34:20 +0200 | nilof | (~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 272 seconds) |
2021-06-15 02:35:32 +0200 | ddellacosta | (~ddellacos@86.106.121.203) |
2021-06-15 02:35:37 +0200 | <_73> | `Couldn't match type ‘a’ with ‘()’`. Why does unit not match with an unconstrained type variable? http://dpaste.com/8Y8GDYVHH |
2021-06-15 02:36:55 +0200 | raehik1 | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-06-15 02:38:26 +0200 | lisphacker | (~lisphacke@156.67.241.66) |
2021-06-15 02:38:29 +0200 | <davean> | _73: That defintion says the function has to return *any* a, not an a of its choice |
2021-06-15 02:38:37 +0200 | <geekosaur> | it is constrained. `forall a. Foo -> a` means the caller decides what `a` is |
2021-06-15 02:38:41 +0200 | <davean> | there are things () isn't |
2021-06-15 02:38:45 +0200 | <davean> | thus it can't be right |
2021-06-15 02:38:59 +0200 | lisphacker | (~lisphacke@156.67.241.66) (Client Quit) |
2021-06-15 02:39:27 +0200 | <_73> | ohh. So this doesn't have anything to do with unit. |
2021-06-15 02:40:40 +0200 | ddellacosta | (~ddellacos@86.106.121.203) (Ping timeout: 272 seconds) |
2021-06-15 02:41:07 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection) |
2021-06-15 02:41:12 +0200 | <_73> | So really the only thing I can return is undefined right. Because undefined is the only thing that is everything. |
2021-06-15 02:41:36 +0200 | <geekosaur> | correct |
2021-06-15 02:41:53 +0200 | <geekosaur> | unless you have a better constraint for a than `forall a. a` |
2021-06-15 02:42:06 +0200 | <davean> | That does make it a difficult defintion to satisfy, yes |
2021-06-15 02:42:30 +0200 | <_73> | Ok now I understand forall |
2021-06-15 02:43:04 +0200 | <janus> | if Foo was Void instead, would it still need a definition? |
2021-06-15 02:44:13 +0200 | <janus> | surely anything is of type a if Void was constructed |
2021-06-15 02:44:26 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-06-15 02:44:28 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds) |
2021-06-15 02:44:44 +0200 | <davean> | janus: you coulse use an empty case |
2021-06-15 02:45:03 +0200 | <davean> | f x = case x of { } |
2021-06-15 02:45:32 +0200 | <janus> | % f :: forall a. Void -> a; f x = case x of {} |
2021-06-15 02:45:32 +0200 | <yahb> | janus: |
2021-06-15 02:45:42 +0200 | <janus> | all right! wow, didn't think of that |
2021-06-15 02:45:45 +0200 | <janus> | thanks |
2021-06-15 02:47:43 +0200 | <janus> | % :set -XLambdaCase |
2021-06-15 02:47:43 +0200 | <yahb> | janus: |
2021-06-15 02:48:05 +0200 | <janus> | % g :: forall a. Void -> a; g = \case |
2021-06-15 02:48:26 +0200 | <janus> | oooh yahb you crack me up :D |
2021-06-15 02:48:45 +0200 | <davean> | janus: Yes, thats how people ACTUALLY do it in practice, but I wanted to be more illistrative |
2021-06-15 02:49:01 +0200 | <monochrom> | SomeClass is a really nonsensical class, even though it's legal. |
2021-06-15 02:49:10 +0200 | lbseale | (~lbseale@user/ep1ctetus) (Read error: Connection reset by peer) |
2021-06-15 02:52:48 +0200 | beka | (~beka@104.193.170-244.PUBLIC.monkeybrains.net) |
2021-06-15 02:53:01 +0200 | yd502 | (~yd502@180.168.212.6) |
2021-06-15 02:57:32 +0200 | fizbin | (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) (Remote host closed the connection) |
2021-06-15 02:58:52 +0200 | fizbin | (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) |
2021-06-15 03:00:18 +0200 | yd502 | (~yd502@180.168.212.6) (Ping timeout: 272 seconds) |
2021-06-15 03:03:18 +0200 | fizbin | (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) (Ping timeout: 264 seconds) |
2021-06-15 03:03:37 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-06-15 03:05:58 +0200 | xff0x | (~xff0x@2001:1a81:5224:8900:b094:cc23:ed27:1430) (Ping timeout: 244 seconds) |
2021-06-15 03:07:43 +0200 | xff0x | (~xff0x@2001:1a81:5237:f100:deef:ffe4:1734:e0a) |
2021-06-15 03:08:14 +0200 | raehik1 | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 244 seconds) |
2021-06-15 03:10:32 +0200 | guest61 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-06-15 03:10:46 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2021-06-15 03:10:52 +0200 | Deide | (~Deide@user/deide) (Quit: Seeee yaaaa) |
2021-06-15 03:11:39 +0200 | guest61 | (~xxx@47.245.54.240) |
2021-06-15 03:11:52 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2021-06-15 03:12:38 +0200 | dmang | (~dmang@047-032-148-170.res.spectrum.com) |
2021-06-15 03:14:26 +0200 | pragma- | (~chaos@user/pragmatic-chaos) (Quit: Bye!) |
2021-06-15 03:15:25 +0200 | ddellacosta | (~ddellacos@86.106.143.216) |
2021-06-15 03:16:45 +0200 | pragma- | (~chaos@user/pragmatic-chaos) |
2021-06-15 03:20:11 +0200 | ddellacosta | (~ddellacos@86.106.143.216) (Ping timeout: 272 seconds) |
2021-06-15 03:21:12 +0200 | hemlock | (~hemlock@2600:8804:4c0a:3200:91a4:77db:aed9:3c83) (Ping timeout: 272 seconds) |
2021-06-15 03:22:32 +0200 | hemlock | (~hemlock@ip72-210-100-243.tu.ok.cox.net) |
2021-06-15 03:22:43 +0200 | beka | (~beka@104.193.170-244.PUBLIC.monkeybrains.net) (Ping timeout: 272 seconds) |
2021-06-15 03:22:44 +0200 | sheepduck | (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) |
2021-06-15 03:25:40 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) |
2021-06-15 03:26:50 +0200 | hemlock | (~hemlock@ip72-210-100-243.tu.ok.cox.net) (Ping timeout: 244 seconds) |
2021-06-15 03:27:00 +0200 | hemlock | (~hemlock@ip72-210-100-243.tu.ok.cox.net) |
2021-06-15 03:39:56 +0200 | berberman | (~berberman@user/berberman) |
2021-06-15 03:41:20 +0200 | yd502 | (~yd502@180.168.212.6) |
2021-06-15 03:41:31 +0200 | berberman_ | (~berberman@user/berberman) (Ping timeout: 272 seconds) |
2021-06-15 03:41:35 +0200 | dy` | (~dy@user/dy) |
2021-06-15 03:43:25 +0200 | dy | (~dy@user/dy) (Ping timeout: 272 seconds) |
2021-06-15 03:43:30 +0200 | mpt | (~tom@2a02:908:1862:49e0::5) |
2021-06-15 03:45:05 +0200 | dy` | (~dy@user/dy) (Client Quit) |
2021-06-15 03:45:30 +0200 | dy | (~dy@user/dy) |
2021-06-15 03:47:09 +0200 | wei2912 | (~wei2912@112.199.250.21) |
2021-06-15 03:52:55 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2021-06-15 03:57:36 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit) |
2021-06-15 04:00:56 +0200 | yd502 | (~yd502@180.168.212.6) (Ping timeout: 244 seconds) |
2021-06-15 04:01:58 +0200 | xff0x | (~xff0x@2001:1a81:5237:f100:deef:ffe4:1734:e0a) (Ping timeout: 244 seconds) |
2021-06-15 04:03:56 +0200 | xff0x | (~xff0x@2001:1a81:523f:a800:4cc0:9163:93f1:ee4a) |
2021-06-15 04:05:04 +0200 | hemlock | (~hemlock@ip72-210-100-243.tu.ok.cox.net) (Ping timeout: 244 seconds) |
2021-06-15 04:05:13 +0200 | hemlock | (~hemlock@2607:fb90:9716:c40c:8c30:5990:86f0:4ce1) |
2021-06-15 04:05:39 +0200 | fizbin | (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) |
2021-06-15 04:05:59 +0200 | td_ | (~td@muedsl-82-207-238-233.citykom.de) (Ping timeout: 252 seconds) |
2021-06-15 04:07:41 +0200 | td_ | (~td@muedsl-82-207-238-227.citykom.de) |
2021-06-15 04:10:02 +0200 | fizbin | (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) (Ping timeout: 244 seconds) |
2021-06-15 04:11:16 +0200 | Scotty_Trees | (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) (Quit: Leaving) |
2021-06-15 04:12:22 +0200 | killsushi | (~killsushi@user/killsushi) |
2021-06-15 04:12:30 +0200 | hemlock | (~hemlock@2607:fb90:9716:c40c:8c30:5990:86f0:4ce1) (Ping timeout: 272 seconds) |
2021-06-15 04:13:11 +0200 | <DigitalKiwi> | billionaires that have no income |
2021-06-15 04:14:13 +0200 | hemlock | (~hemlock@ip72-203-188-10.tu.ok.cox.net) |
2021-06-15 04:15:26 +0200 | pottsy | (~pottsy@2400:4050:b560:3700:df80:6e56:2853:b1e8) |
2021-06-15 04:16:16 +0200 | <monochrom> | :) |
2021-06-15 04:18:51 +0200 | rk04 | (~rk04@user/rajk) |
2021-06-15 04:24:16 +0200 | beka | (~beka@104-244-27-23.static.monkeybrains.net) |
2021-06-15 04:30:11 +0200 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2021-06-15 04:30:11 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (tantalum.libera.chat (Nickname regained by services))) |
2021-06-15 04:30:11 +0200 | finn_elija | FinnElija |
2021-06-15 04:30:24 +0200 | ddellacosta | (~ddellacos@89.46.62.177) |
2021-06-15 04:31:30 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Ping timeout: 272 seconds) |
2021-06-15 04:34:50 +0200 | ddellacosta | (~ddellacos@89.46.62.177) (Ping timeout: 244 seconds) |
2021-06-15 04:39:02 +0200 | mniip_ | mniip |
2021-06-15 04:40:59 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-15 04:41:29 +0200 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
2021-06-15 04:45:03 +0200 | mpt | (~tom@2a02:908:1862:49e0::5) (Ping timeout: 272 seconds) |
2021-06-15 04:50:23 +0200 | khumba | (~khumba@user/khumba) |
2021-06-15 04:53:06 +0200 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 264 seconds) |
2021-06-15 04:57:31 +0200 | yd502 | (~yd502@180.168.212.6) |
2021-06-15 05:00:42 +0200 | bitmapper | (uid464869@id-464869.tooting.irccloud.com) |
2021-06-15 05:04:26 +0200 | td_ | (~td@muedsl-82-207-238-227.citykom.de) (Ping timeout: 272 seconds) |
2021-06-15 05:05:44 +0200 | td_ | (~td@muedsl-82-207-238-208.citykom.de) |
2021-06-15 05:10:32 +0200 | alx741 | (~alx741@186.178.108.66) (Quit: alx741) |
2021-06-15 05:11:20 +0200 | ddellacosta | (~ddellacos@89.45.224.203) |
2021-06-15 05:14:49 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds) |
2021-06-15 05:15:32 +0200 | hmmmas | (~chenqisu1@183.217.200.246) (Quit: Leaving.) |
2021-06-15 05:15:38 +0200 | <guest61> | do you want #TaxTheRich? |
2021-06-15 05:16:28 +0200 | ddellacosta | (~ddellacos@89.45.224.203) (Ping timeout: 272 seconds) |
2021-06-15 05:16:56 +0200 | P1RATEZ | (piratez@user/p1ratez) |
2021-06-15 05:17:03 +0200 | polyphem | (~polyphem@2a02:810d:640:776c:12c4:e67d:3560:5ad7) (Quit: polyphem) |
2021-06-15 05:17:06 +0200 | yd502 | (~yd502@180.168.212.6) (Ping timeout: 272 seconds) |
2021-06-15 05:17:47 +0200 | <guest61> | lin littleme 我打包出termux上proot-distro里跑的ghc.deb了,你要吗? |
2021-06-15 05:18:14 +0200 | <monochrom> | Wrong window? |
2021-06-15 05:18:54 +0200 | <guest61> | sorry |
2021-06-15 05:19:08 +0200 | <sshine> | guest61, 没关系 |
2021-06-15 05:20:43 +0200 | Sylveon[m] | (~sylveonma@2001:470:69fc:105::2d95) |
2021-06-15 05:22:10 +0200 | Sylveon[m] | Sylveon |
2021-06-15 05:22:52 +0200 | Sylveon | (~sylveonma@2001:470:69fc:105::2d95) (Client Quit) |
2021-06-15 05:23:02 +0200 | <guest61> | sshine :) |
2021-06-15 05:23:07 +0200 | Sylveon | (~sylveonma@2001:470:69fc:105::2d95) |
2021-06-15 05:23:32 +0200 | <sshine> | 🤓 |
2021-06-15 05:24:57 +0200 | rk04 | (~rk04@user/rajk) (Quit: rk04) |
2021-06-15 05:25:15 +0200 | argento | (~argent0@168-227-96-51.ptr.westnet.com.ar) (Remote host closed the connection) |
2021-06-15 05:25:44 +0200 | Sylveon | (~sylveonma@2001:470:69fc:105::2d95) (Client Quit) |
2021-06-15 05:25:59 +0200 | Sylveon | (~sylveonma@2001:470:69fc:105::2d95) |
2021-06-15 05:34:50 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 272 seconds) |
2021-06-15 05:35:20 +0200 | yd502 | (~yd502@180.168.212.6) |
2021-06-15 05:36:44 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2021-06-15 05:37:20 +0200 | Guest81 | (~Guest81@2406:3400:44b:fc00:b175:e2b5:8ad9:9875) |
2021-06-15 05:37:31 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-06-15 05:39:16 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds) |
2021-06-15 05:40:33 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-06-15 05:41:30 +0200 | Guest81 | (~Guest81@2406:3400:44b:fc00:b175:e2b5:8ad9:9875) (Client Quit) |
2021-06-15 05:41:41 +0200 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 252 seconds) |
2021-06-15 05:42:45 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2021-06-15 05:43:42 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) |
2021-06-15 05:44:49 +0200 | ddellacosta | (~ddellacos@89.46.62.242) |
2021-06-15 05:45:59 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-15 05:46:14 +0200 | benin036 | (~benin@183.82.176.206) (Ping timeout: 272 seconds) |
2021-06-15 05:47:05 +0200 | benin036 | (~benin@183.82.204.156) |
2021-06-15 05:49:26 +0200 | ddellacosta | (~ddellacos@89.46.62.242) (Ping timeout: 244 seconds) |
2021-06-15 05:50:59 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds) |
2021-06-15 05:52:53 +0200 | ubikium | (~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net) |
2021-06-15 05:54:08 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-06-15 05:57:16 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt) |
2021-06-15 06:01:48 +0200 | sekun | (~sekun@180.190.156.133) |
2021-06-15 06:01:57 +0200 | polyphem | (~polyphem@ip5f5ac3ae.dynamic.kabel-deutschland.de) |
2021-06-15 06:02:56 +0200 | hendursaga | (~weechat@user/hendursaga) (Remote host closed the connection) |
2021-06-15 06:03:22 +0200 | hendursaga | (~weechat@user/hendursaga) |
2021-06-15 06:07:49 +0200 | waleee-cl | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 272 seconds) |
2021-06-15 06:09:08 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
2021-06-15 06:14:09 +0200 | hiruji | (~hiruji@2606:6080:1001:18:8d41:9604:d435:36b6) (Ping timeout: 272 seconds) |
2021-06-15 06:15:22 +0200 | bgamari | (~bgamari@2001:470:e438::1) (Ping timeout: 272 seconds) |
2021-06-15 06:15:57 +0200 | bgamari | (~bgamari@2001:470:e438::1) |
2021-06-15 06:16:25 +0200 | peach | (sid482179@id-482179.charlton.irccloud.com) () |
2021-06-15 06:18:29 +0200 | hemlock | (~hemlock@ip72-203-188-10.tu.ok.cox.net) (Quit: Quit) |
2021-06-15 06:20:14 +0200 | hiruji | (~hiruji@2606:6080:1001:18:8d41:9604:d435:36b6) |
2021-06-15 06:20:26 +0200 | P1RATEZ | (piratez@user/p1ratez) (Ping timeout: 272 seconds) |
2021-06-15 06:20:53 +0200 | pottsy | (~pottsy@2400:4050:b560:3700:df80:6e56:2853:b1e8) (Quit: Leaving) |
2021-06-15 06:21:50 +0200 | qwin | (~yaaic@ip-96-43-230-90.dsl.netrevolution.com) |
2021-06-15 06:22:56 +0200 | teaSlurper | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-06-15 06:24:09 +0200 | polyphem | (~polyphem@ip5f5ac3ae.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
2021-06-15 06:27:54 +0200 | teaSlurper | (~chris@81.96.113.213) |
2021-06-15 06:29:14 +0200 | dmang | (~dmang@047-032-148-170.res.spectrum.com) (Changing host) |
2021-06-15 06:29:15 +0200 | dmang | (~dmang@user/dmang) |
2021-06-15 06:29:35 +0200 | v01d4lph4 | (~v01d4lph4@user/v01d4lph4) |
2021-06-15 06:30:39 +0200 | dmang | (~dmang@user/dmang) (Quit: Leaving) |
2021-06-15 06:30:53 +0200 | dmang | (~dmang@047-032-148-170.res.spectrum.com) |
2021-06-15 06:31:47 +0200 | dmang | (~dmang@047-032-148-170.res.spectrum.com) (Changing host) |
2021-06-15 06:31:47 +0200 | dmang | (~dmang@user/dmang) |
2021-06-15 06:32:09 +0200 | reumeth | (~reumeth@user/reumeth) |
2021-06-15 06:32:19 +0200 | teaSlurper | (~chris@81.96.113.213) (Ping timeout: 244 seconds) |
2021-06-15 06:34:16 +0200 | sa1 | (uid7690@id-7690.charlton.irccloud.com) |
2021-06-15 06:36:52 +0200 | vicentius | (~vicentius@user/vicentius) |
2021-06-15 06:38:54 +0200 | koishi_ | (~koishi_@67.209.186.120.16clouds.com) |
2021-06-15 06:39:03 +0200 | reumeth | (~reumeth@user/reumeth) (Ping timeout: 272 seconds) |
2021-06-15 06:40:03 +0200 | koishi_ | (~koishi_@67.209.186.120.16clouds.com) (Remote host closed the connection) |
2021-06-15 06:40:24 +0200 | alexeikale | (~alexeikal@2601:1c2:1b80:100:4ea5:a35a:95ba:fcb1) (Quit: WeeChat 3.1) |
2021-06-15 06:41:14 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2021-06-15 06:44:23 +0200 | Obo | (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) |
2021-06-15 06:46:18 +0200 | beka | (~beka@104-244-27-23.static.monkeybrains.net) (Remote host closed the connection) |
2021-06-15 06:46:36 +0200 | beka | (~beka@104-244-27-23.static.monkeybrains.net) |
2021-06-15 06:47:16 +0200 | dunkeln | (~dunkeln@94.129.65.28) |
2021-06-15 06:49:26 +0200 | larryba | (~bc817c21@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout)) |
2021-06-15 06:51:43 +0200 | chomwitt | (~Pitsikoko@2a02:587:dc02:b00:98b0:cd42:bd6f:8295) |
2021-06-15 06:53:20 +0200 | sheepduck | (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) (Remote host closed the connection) |
2021-06-15 06:55:16 +0200 | sheepduck | (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) |
2021-06-15 06:58:53 +0200 | shriekingnoise | (~shrieking@186.137.144.80) |
2021-06-15 06:59:31 +0200 | ddellacosta | (~ddellacos@86.106.143.60) |
2021-06-15 07:00:58 +0200 | yd502 | (~yd502@180.168.212.6) (Ping timeout: 272 seconds) |
2021-06-15 07:02:03 +0200 | lain22 | (~lain@67.188.225.130) |
2021-06-15 07:03:50 +0200 | ddellacosta | (~ddellacos@86.106.143.60) (Ping timeout: 244 seconds) |
2021-06-15 07:04:21 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 244 seconds) |
2021-06-15 07:08:39 +0200 | shriekingnoise | (~shrieking@186.137.144.80) (Quit: Quit) |
2021-06-15 07:11:21 +0200 | wei2912 | (~wei2912@112.199.250.21) (Ping timeout: 272 seconds) |
2021-06-15 07:17:41 +0200 | vicentius | (~vicentius@user/vicentius) (Ping timeout: 272 seconds) |
2021-06-15 07:17:45 +0200 | dmang | (~dmang@user/dmang) (Quit: Leaving) |
2021-06-15 07:17:59 +0200 | dmang | (~dmang@047-032-148-170.res.spectrum.com) |
2021-06-15 07:18:25 +0200 | dmang | (~dmang@047-032-148-170.res.spectrum.com) (Changing host) |
2021-06-15 07:18:25 +0200 | dmang | (~dmang@user/dmang) |
2021-06-15 07:20:48 +0200 | zmt00 | (~zmt00@user/zmt00) (Quit: Gone.) |
2021-06-15 07:22:01 +0200 | jneira | (~jneira@212.8.115.226) |
2021-06-15 07:22:51 +0200 | lemmih | (~lemmih@2406:3003:2072:44:925e:d7ab:50d2:4457) (Remote host closed the connection) |
2021-06-15 07:22:59 +0200 | topos | tapas |
2021-06-15 07:23:14 +0200 | lemmih | (~lemmih@2406:3003:2072:44:925e:d7ab:50d2:4457) |
2021-06-15 07:24:41 +0200 | lain22 | (~lain@67.188.225.130) (Quit: Client closed) |
2021-06-15 07:25:46 +0200 | vonfry | (~user@240e:688:3:1010:f2d0:5178:5f32:a971) |
2021-06-15 07:27:04 +0200 | khumba | (~khumba@user/khumba) () |
2021-06-15 07:32:42 +0200 | derelict | (~derelict@user/derelict) (Ping timeout: 264 seconds) |
2021-06-15 07:37:14 +0200 | ddellacosta | (~ddellacos@86.106.143.73) |
2021-06-15 07:37:22 +0200 | awschnap | (~lavaman@98.38.249.169) |
2021-06-15 07:37:25 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 244 seconds) |
2021-06-15 07:38:39 +0200 | yoctocell | (~yoctocell@h87-96-130-155.cust.a3fiber.se) |
2021-06-15 07:38:54 +0200 | vonfry | (~user@240e:688:3:1010:f2d0:5178:5f32:a971) (Quit: ERC (IRC client for Emacs 27.2)) |
2021-06-15 07:39:38 +0200 | bitmapper | (uid464869@id-464869.tooting.irccloud.com) (Quit: Connection closed for inactivity) |
2021-06-15 07:41:21 +0200 | ddellacosta | (~ddellacos@86.106.143.73) (Ping timeout: 244 seconds) |
2021-06-15 07:46:50 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-15 07:50:38 +0200 | yd502 | (~yd502@180.168.212.6) |
2021-06-15 07:50:47 +0200 | Nolrai | (~Nolrai@c-76-27-202-218.hsd1.or.comcast.net) |
2021-06-15 07:51:56 +0200 | <Nolrai> | So what's the modern way to use do notation with something like Data.Set? |
2021-06-15 07:56:02 +0200 | pe200012_ | (~pe200012@120.236.161.38) (Remote host closed the connection) |
2021-06-15 07:57:13 +0200 | jellz[m] | (~jellzmatr@2001:470:69fc:105::2daa) |
2021-06-15 07:58:27 +0200 | <Axman6> | I'm not sure there is one |
2021-06-15 08:02:53 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-06-15 08:03:34 +0200 | NanoC | (~NanoCoast@p200300e127264d0058cc7c623629969e.dip0.t-ipconnect.de) |
2021-06-15 08:05:10 +0200 | xkuru | (~xkuru@user/xkuru) |
2021-06-15 08:05:48 +0200 | xkuru | (~xkuru@user/xkuru) (Client Quit) |
2021-06-15 08:06:03 +0200 | xkuru | (~xkuru@user/xkuru) |
2021-06-15 08:08:03 +0200 | fizbin | (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) |
2021-06-15 08:10:04 +0200 | fluffyballoon | (~fluffybal@2620:72:0:6480::10f7) (Ping timeout: 250 seconds) |
2021-06-15 08:11:29 +0200 | ddellacosta | (~ddellacos@86.106.143.112) |
2021-06-15 08:12:32 +0200 | fizbin | (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) (Ping timeout: 272 seconds) |
2021-06-15 08:13:38 +0200 | syd | (~syd@212-51-141-103.fiber7.init7.net) |
2021-06-15 08:13:41 +0200 | wei2912 | (~wei2912@112.199.250.21) |
2021-06-15 08:13:42 +0200 | <syd> | Test message |
2021-06-15 08:13:44 +0200 | <syd> | Hi haskell peeps :D |
2021-06-15 08:16:20 +0200 | ddellacosta | (~ddellacos@86.106.143.112) (Ping timeout: 272 seconds) |
2021-06-15 08:16:50 +0200 | Bartosz | (~textual@24.35.90.211) |
2021-06-15 08:17:51 +0200 | dy | (~dy@user/dy) (Quit: ZNC 1.9.x-git-124-15e2351d - https://znc.in) |
2021-06-15 08:18:00 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:7d76:d843:3eda:de44) |
2021-06-15 08:18:45 +0200 | Obo | (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (Quit: WeeChat 2.8) |
2021-06-15 08:18:55 +0200 | oxide | (~lambda@user/oxide) (Ping timeout: 272 seconds) |
2021-06-15 08:19:00 +0200 | Obo | (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) |
2021-06-15 08:19:21 +0200 | dy | (~dy@user/dy) |
2021-06-15 08:19:33 +0200 | Guest9 | (~Guest9@103.249.234.176) |
2021-06-15 08:21:24 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-06-15 08:22:02 +0200 | xkuru | (~xkuru@user/xkuru) (Ping timeout: 272 seconds) |
2021-06-15 08:22:12 +0200 | xkuru | (~xkuru@user/xkuru) |
2021-06-15 08:26:00 +0200 | cyphase | (~cyphase@c-73-222-119-252.hsd1.ca.comcast.net) |
2021-06-15 08:26:42 +0200 | xkuru | (~xkuru@user/xkuru) (Ping timeout: 264 seconds) |
2021-06-15 08:29:23 +0200 | yoctocell | (~yoctocell@h87-96-130-155.cust.a3fiber.se) (Remote host closed the connection) |
2021-06-15 08:30:27 +0200 | awth13 | (~user@user/awth13) (Read error: Connection reset by peer) |
2021-06-15 08:32:38 +0200 | awth13 | (~user@user/awth13) |
2021-06-15 08:33:57 +0200 | chele | (~chele@user/chele) |
2021-06-15 08:34:03 +0200 | xff0x | (~xff0x@2001:1a81:523f:a800:4cc0:9163:93f1:ee4a) (Ping timeout: 244 seconds) |
2021-06-15 08:35:06 +0200 | xff0x | (~xff0x@2001:1a81:523f:a800:fe55:300e:7173:8c39) |
2021-06-15 08:35:27 +0200 | Guest9 | (~Guest9@103.249.234.176) (Quit: Connection closed) |
2021-06-15 08:35:41 +0200 | ubikium | (~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net) (Quit: Quit) |
2021-06-15 08:36:49 +0200 | teaSlurper | (~chris@81.96.113.213) |
2021-06-15 08:45:08 +0200 | TheRAt | (~TheRAt@user/therat) (Quit: :)) |
2021-06-15 08:45:34 +0200 | TheRAt | (~TheRAt@user/therat) |
2021-06-15 08:46:13 +0200 | ddellacosta | (~ddellacos@89.45.224.216) |
2021-06-15 08:48:15 +0200 | yd502 | (~yd502@180.168.212.6) (Ping timeout: 272 seconds) |
2021-06-15 08:51:10 +0200 | ddellacosta | (~ddellacos@89.45.224.216) (Ping timeout: 272 seconds) |
2021-06-15 08:52:50 +0200 | yd502 | (~yd502@180.168.212.6) |
2021-06-15 08:55:26 +0200 | dunkeln | (~dunkeln@94.129.65.28) (Ping timeout: 244 seconds) |
2021-06-15 08:55:42 +0200 | Bartosz | (~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-06-15 08:57:30 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 244 seconds) |
2021-06-15 08:59:09 +0200 | Unode | (~Unode@194.94.44.220) (Ping timeout: 268 seconds) |
2021-06-15 09:01:53 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
2021-06-15 09:03:52 +0200 | Unode | (~Unode@194.94.44.220) |
2021-06-15 09:03:55 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2021-06-15 09:17:04 +0200 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) |
2021-06-15 09:19:33 +0200 | teaSlurper | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-06-15 09:20:25 +0200 | nsilv | (~nsilv@host-82-50-119-12.retail.telecomitalia.it) |
2021-06-15 09:20:42 +0200 | jespada | (~jespada@90.254.242.55) (Ping timeout: 264 seconds) |
2021-06-15 09:21:11 +0200 | warnz | (~warnz@2600:1700:77c0:5610:a15e:288d:37ea:6878) |
2021-06-15 09:21:25 +0200 | bfrk | (~bfrk@200116b8458419008ef2b7070d67ad87.dip.versatel-1u1.de) |
2021-06-15 09:22:12 +0200 | jespada | (~jespada@90.254.242.55) |
2021-06-15 09:22:32 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2021-06-15 09:23:39 +0200 | beka | (~beka@104-244-27-23.static.monkeybrains.net) (Ping timeout: 244 seconds) |
2021-06-15 09:24:45 +0200 | fef | (~thedawn@user/thedawn) |
2021-06-15 09:25:13 +0200 | ackyshake | (~ackyshake@user/ackyshake) |
2021-06-15 09:25:14 +0200 | neceve | (~quassel@2a02:c7f:607e:d600:a95a:ecd2:e57a:3130) |
2021-06-15 09:26:00 +0200 | warnz | (~warnz@2600:1700:77c0:5610:a15e:288d:37ea:6878) (Ping timeout: 272 seconds) |
2021-06-15 09:27:16 +0200 | ddellacosta | (~ddellacos@89.46.62.177) |
2021-06-15 09:27:50 +0200 | ackyshake | (~ackyshake@user/ackyshake) (Soupy Twist!) |
2021-06-15 09:29:56 +0200 | Nolrai | (~Nolrai@c-76-27-202-218.hsd1.or.comcast.net) (Quit: Client closed) |
2021-06-15 09:30:15 +0200 | syd | (~syd@212-51-141-103.fiber7.init7.net) (Quit: Client closed) |
2021-06-15 09:32:23 +0200 | ddellacosta | (~ddellacos@89.46.62.177) (Ping timeout: 272 seconds) |
2021-06-15 09:33:40 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-15 09:33:59 +0200 | yd502 | (~yd502@180.168.212.6) (Remote host closed the connection) |
2021-06-15 09:34:13 +0200 | yd502 | (~yd502@180.168.212.6) |
2021-06-15 09:38:49 +0200 | pe200012 | (~pe200012@58.248.179.134) |
2021-06-15 09:40:10 +0200 | teaSlurper | (~chris@81.96.113.213) |
2021-06-15 09:40:28 +0200 | cfricke | (~cfricke@user/cfricke) |
2021-06-15 09:40:56 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-15 09:40:57 +0200 | alloca | Oxytocin |
2021-06-15 09:47:15 +0200 | benin0367 | (~benin@106.198.88.131) |
2021-06-15 09:49:29 +0200 | benin036 | (~benin@183.82.204.156) (Ping timeout: 244 seconds) |
2021-06-15 09:49:29 +0200 | benin0367 | benin036 |
2021-06-15 09:53:54 +0200 | BosonCollider | (~olofs@90-227-86-119-no542.tbcn.telia.com) |
2021-06-15 09:56:24 +0200 | nsilv | (~nsilv@host-82-50-119-12.retail.telecomitalia.it) (Ping timeout: 244 seconds) |
2021-06-15 10:01:00 +0200 | ddellacosta | (~ddellacos@86.106.143.73) |
2021-06-15 10:02:18 +0200 | nsilv | (~nsilv@host-82-50-119-12.retail.telecomitalia.it) |
2021-06-15 10:03:04 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) (Remote host closed the connection) |
2021-06-15 10:05:11 +0200 | ddellacosta | (~ddellacos@86.106.143.73) (Ping timeout: 244 seconds) |
2021-06-15 10:06:12 +0200 | ccapndave | (~ccapndave@84-73-232-220.dclient.hispeed.ch) |
2021-06-15 10:07:16 +0200 | shryke_ | (~shryke@190.43.6.93.rev.sfr.net) |
2021-06-15 10:08:32 +0200 | hendursa1 | (~weechat@user/hendursaga) |
2021-06-15 10:08:54 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
2021-06-15 10:08:59 +0200 | mpt | (~tom@2a02:908:1862:49e0::5) |
2021-06-15 10:09:42 +0200 | mikoto-chan | (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) |
2021-06-15 10:10:15 +0200 | wallymathieu | (~wallymath@81-234-151-21-no94.tbcn.telia.com) |
2021-06-15 10:11:42 +0200 | shryke_ | (~shryke@190.43.6.93.rev.sfr.net) (Ping timeout: 244 seconds) |
2021-06-15 10:11:45 +0200 | bfrk | (~bfrk@200116b8458419008ef2b7070d67ad87.dip.versatel-1u1.de) (Leaving) |
2021-06-15 10:12:01 +0200 | hendursaga | (~weechat@user/hendursaga) (Ping timeout: 252 seconds) |
2021-06-15 10:12:13 +0200 | xff0x | (~xff0x@2001:1a81:523f:a800:fe55:300e:7173:8c39) (Ping timeout: 244 seconds) |
2021-06-15 10:12:17 +0200 | nsilv | (~nsilv@host-82-50-119-12.retail.telecomitalia.it) (Ping timeout: 272 seconds) |
2021-06-15 10:13:19 +0200 | xff0x | (~xff0x@2001:1a81:523f:a800:1801:e3aa:b378:ead6) |
2021-06-15 10:14:14 +0200 | ccapndave | (~ccapndave@84-73-232-220.dclient.hispeed.ch) (Quit: Leaving...) |
2021-06-15 10:15:36 +0200 | hegstal | (~hegstal@2a02:c7f:7604:8a00:d648:1b69:add9:923) |
2021-06-15 10:16:02 +0200 | mpt | (~tom@2a02:908:1862:49e0::5) (Ping timeout: 272 seconds) |
2021-06-15 10:16:14 +0200 | unyu | (~pyon@user/pyon) (Ping timeout: 268 seconds) |
2021-06-15 10:16:58 +0200 | unyu | (~pyon@user/pyon) |
2021-06-15 10:17:41 +0200 | awschnap | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-06-15 10:17:57 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-06-15 10:17:59 +0200 | nsilv | (~nsilv@host-82-50-119-12.retail.telecomitalia.it) |
2021-06-15 10:18:05 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-06-15 10:21:47 +0200 | flounders_ | (~flounders@173.246.200.33) |
2021-06-15 10:23:08 +0200 | wonko | (~wjc@62.115.229.50) |
2021-06-15 10:23:38 +0200 | chaosite | (~chaosite@user/chaosite) (Ping timeout: 272 seconds) |
2021-06-15 10:25:30 +0200 | flounders | (~flounders@173.246.200.33) (Ping timeout: 264 seconds) |
2021-06-15 10:29:35 +0200 | oxide | (~lambda@user/oxide) |
2021-06-15 10:30:06 +0200 | kayprish | (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) |
2021-06-15 10:32:43 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) (Quit: leaving) |
2021-06-15 10:36:54 +0200 | Jonno_FTW | (~come@api.carswap.me) (Ping timeout: 264 seconds) |
2021-06-15 10:37:11 +0200 | ddellacosta | (~ddellacos@86.106.143.125) |
2021-06-15 10:38:22 +0200 | delYsid | (~user@zidpc777.tugraz.at) |
2021-06-15 10:38:27 +0200 | feetwind | (~mike@user/feetwind) (Ping timeout: 272 seconds) |
2021-06-15 10:38:36 +0200 | Jonno_FTW | (~come@api.carswap.me) |
2021-06-15 10:39:01 +0200 | feetwind | (~mike@user/feetwind) |
2021-06-15 10:42:11 +0200 | azeem | (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) (Ping timeout: 244 seconds) |
2021-06-15 10:42:15 +0200 | ddellacosta | (~ddellacos@86.106.143.125) (Ping timeout: 272 seconds) |
2021-06-15 10:42:47 +0200 | delYsid | (~user@zidpc777.tugraz.at) (Changing host) |
2021-06-15 10:42:47 +0200 | delYsid | (~user@user/delYsid) |
2021-06-15 10:43:44 +0200 | muto | (~muto@d75-159-225-7.abhsia.telus.net) (Ping timeout: 244 seconds) |
2021-06-15 10:44:12 +0200 | azeem | (~azeem@176.200.254.249) |
2021-06-15 10:46:03 +0200 | nsilv | (~nsilv@host-82-50-119-12.retail.telecomitalia.it) (Ping timeout: 272 seconds) |
2021-06-15 10:47:26 +0200 | nschoe | (~quassel@178.251.84.79) |
2021-06-15 10:47:55 +0200 | fishfinger | (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net) |
2021-06-15 10:48:35 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-06-15 10:51:17 +0200 | nsilv | (~nsilv@host-82-50-119-12.retail.telecomitalia.it) |
2021-06-15 10:51:36 +0200 | benin036 | (~benin@106.198.88.131) (Read error: Connection reset by peer) |
2021-06-15 10:53:24 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 272 seconds) |
2021-06-15 10:53:50 +0200 | benin036 | (~benin@183.82.204.171) |
2021-06-15 10:54:37 +0200 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2021-06-15 10:57:50 +0200 | nsilv | (~nsilv@host-82-50-119-12.retail.telecomitalia.it) (Ping timeout: 272 seconds) |
2021-06-15 10:59:34 +0200 | nsilv | (~nsilv@212.103.198.210) |
2021-06-15 10:59:50 +0200 | cods | (~fred@82-65-232-44.subs.proxad.net) |
2021-06-15 11:03:13 +0200 | yd502 | (~yd502@180.168.212.6) (Read error: Connection reset by peer) |
2021-06-15 11:03:27 +0200 | yd502 | (~yd502@180.168.212.6) |
2021-06-15 11:05:57 +0200 | azeem | (~azeem@176.200.254.249) (Ping timeout: 244 seconds) |
2021-06-15 11:06:23 +0200 | dunkeln | (~dunkeln@94.129.65.28) |
2021-06-15 11:07:16 +0200 | <cheater> | how can I do this in Haskell? https://pastebin.com/Dyjf11Gu |
2021-06-15 11:07:45 +0200 | azeem | (~azeem@176.200.200.250) |
2021-06-15 11:11:20 +0200 | ddellacosta | (~ddellacos@89.45.224.34) |
2021-06-15 11:11:58 +0200 | n0db | (~n0db@HSI-KBW-091-089-090-070.hsi2.kabelbw.de) |
2021-06-15 11:12:22 +0200 | <nitrix> | % do { xs <- ["a", "Bbb", "ccc", "EEE"]; ys <- ["bBb", "DDdD", "eeE"]; return (xs, ys, map toLower xs == map toLower ys) } |
2021-06-15 11:12:22 +0200 | <yahb> | nitrix: [("a","bBb",False),("a","DDdD",False),("a","eeE",False),("Bbb","bBb",True),("Bbb","DDdD",False),("Bbb","eeE",False),("ccc","bBb",False),("ccc","DDdD",False),("ccc","eeE",False),("EEE","bBb",False),("EEE","DDdD",False),("EEE","eeE",True)] |
2021-06-15 11:13:14 +0200 | <nitrix> | Lists are monads and they chain (>>=) by combining each of their elements together, exactly like your two nested loops. |
2021-06-15 11:13:47 +0200 | <nitrix> | You can use `do` notation, the `>>=` operator or even a list comprehension. All are pretty readable. |
2021-06-15 11:16:27 +0200 | ddellacosta | (~ddellacos@89.45.224.34) (Ping timeout: 272 seconds) |
2021-06-15 11:17:13 +0200 | <cheater> | that's incorrect. you are matching the keys incorrectly. |
2021-06-15 11:17:19 +0200 | <cheater> | or rather the values. |
2021-06-15 11:17:26 +0200 | <cheater> | EEE should be compared with eeE. |
2021-06-15 11:17:37 +0200 | <cheater> | and Bbb with bBb. |
2021-06-15 11:18:08 +0200 | <cheater> | oh, i see what you're doing |
2021-06-15 11:18:30 +0200 | <cheater> | so how do I know to include "a" but also to include "bBb" and not "Bbb"? |
2021-06-15 11:22:05 +0200 | <nitrix> | It would need to return the first comparison that is successful instead of all the comparisons. You can return a list of a single String, like [String] and concatenate them all, or use Maybe String and use that monad instead (catMaybes, >>=, whatever). |
2021-06-15 11:22:14 +0200 | nsilv1 | (~nsilv@host-82-50-119-12.retail.telecomitalia.it) |
2021-06-15 11:22:28 +0200 | <cheater> | i don't know how i would do that. it's a bit confusing. |
2021-06-15 11:22:35 +0200 | <cheater> | also... it all looks pretty inelegant |
2021-06-15 11:22:35 +0200 | nsilv | (~nsilv@212.103.198.210) (Ping timeout: 272 seconds) |
2021-06-15 11:23:06 +0200 | dunkeln | (~dunkeln@94.129.65.28) (Ping timeout: 264 seconds) |
2021-06-15 11:23:34 +0200 | <nitrix> | Or literally translate your code to haskell. For the map, do a map, for the for+if+return do a filter+headSafe. |
2021-06-15 11:24:02 +0200 | pe200012 | (~pe200012@58.248.179.134) (Ping timeout: 244 seconds) |
2021-06-15 11:24:20 +0200 | pe200012 | (~pe200012@183.63.73.36) |
2021-06-15 11:24:33 +0200 | <nitrix> | One sec. |
2021-06-15 11:24:57 +0200 | dunkeln | (~dunkeln@94.129.65.28) |
2021-06-15 11:25:18 +0200 | ubert | (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) |
2021-06-15 11:25:26 +0200 | brian_da_mage | (~Neuromanc@user/briandamag) (Ping timeout: 252 seconds) |
2021-06-15 11:27:45 +0200 | mikoto-chan | (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Quit: mikoto-chan) |
2021-06-15 11:28:42 +0200 | mikoto-chan | (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) |
2021-06-15 11:29:24 +0200 | yd502 | (~yd502@180.168.212.6) (Ping timeout: 244 seconds) |
2021-06-15 11:30:02 +0200 | <nitrix> | % let xs = ["a", "Bbb", "ccc", "EEE"]; ys = ["bBb", "DDdD", "eeE"] in map (\e -> listToMaybe $ catMaybes $ map (\f -> if map toLower e == map toLower f then Just f else Nothing ) ys) xs |
2021-06-15 11:30:03 +0200 | <yahb> | nitrix: [Nothing,Just "bBb",Nothing,Just "eeE"] |
2021-06-15 11:30:16 +0200 | <nitrix> | It's pretty unreadable as a one-liner. |
2021-06-15 11:31:03 +0200 | <nitrix> | And you can probably use the nicer abstractions for manipulating the [String] and Maybe String. |
2021-06-15 11:32:10 +0200 | <nitrix> | I would be more useful if I had used Haskell more recently :P |
2021-06-15 11:33:25 +0200 | <cheater> | nitrix: also it doesn't include "a" or "ccc" |
2021-06-15 11:34:10 +0200 | <nitrix> | Oh you have return x at the end. |
2021-06-15 11:34:11 +0200 | kenran | (~kenran@b2b-37-24-119-190.unitymedia.biz) |
2021-06-15 11:37:09 +0200 | <Rembane> | > let xs = ["a", "Bbb", "ccc", "EEE"]; ys = ["bBb", "DDdD", "eeE"] in [x | x <- xs, y <- ys, toLower x == toLower y] |
2021-06-15 11:37:11 +0200 | <lambdabot> | error: |
2021-06-15 11:37:11 +0200 | <lambdabot> | • Couldn't match expected type ‘Char’ with actual type ‘[Char]’ |
2021-06-15 11:37:11 +0200 | <lambdabot> | • In the first argument of ‘toLower’, namely ‘x’ |
2021-06-15 11:37:16 +0200 | fef | (~thedawn@user/thedawn) (Ping timeout: 252 seconds) |
2021-06-15 11:38:48 +0200 | <Rembane> | > let xs = ["a", "Bbb", "ccc", "EEE"]; ys = ["bBb", "DDdD", "eeE"] in [x | x <- xs, y <- ys, map toLower x == map toLower y] |
2021-06-15 11:38:48 +0200 | <nitrix> | That'll be like the first version I posted. He wants the first element from the second list that matches the current element from the first list (the matching is case insensitive, but the result needs to be sensitive). |
2021-06-15 11:38:49 +0200 | <lambdabot> | ["Bbb","EEE"] |
2021-06-15 11:39:29 +0200 | <Rembane> | Oh |
2021-06-15 11:39:35 +0200 | <nitrix> | And, no matches is treated successfully too, it's a bit of an odd one. |
2021-06-15 11:39:41 +0200 | dunkeln | (~dunkeln@94.129.65.28) (Ping timeout: 272 seconds) |
2021-06-15 11:40:15 +0200 | <Rembane> | Interesting |
2021-06-15 11:40:21 +0200 | <nitrix> | I think I would write a recursive function and pattern match it at this point. It's not very general :/ |
2021-06-15 11:40:40 +0200 | <Rembane> | +1 |
2021-06-15 11:44:42 +0200 | dixie_ | (~dixie@real.wilbury.sk) (Ping timeout: 272 seconds) |
2021-06-15 11:45:06 +0200 | ddellacosta | (~ddellacos@86.106.143.151) |
2021-06-15 11:45:13 +0200 | fishfinger | (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net) (Ping timeout: 244 seconds) |
2021-06-15 11:46:06 +0200 | n0db | (~n0db@HSI-KBW-091-089-090-070.hsi2.kabelbw.de) (Quit: Client closed) |
2021-06-15 11:46:39 +0200 | BosonCollider | (~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 272 seconds) |
2021-06-15 11:46:47 +0200 | <nitrix> | The nasty for loop needs to be a fold I think. |
2021-06-15 11:47:32 +0200 | fishfinger | (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net) |
2021-06-15 11:48:20 +0200 | <Rembane> | nitrix: Isn't it a filter of some sort? |
2021-06-15 11:50:01 +0200 | ddellacosta | (~ddellacos@86.106.143.151) (Ping timeout: 272 seconds) |
2021-06-15 11:50:09 +0200 | jakzale | (uid499518@id-499518.charlton.irccloud.com) |
2021-06-15 11:50:24 +0200 | mikoto-chan | (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Quit: mikoto-chan) |
2021-06-15 11:50:27 +0200 | <nitrix> | Mhhh, a filter with a default. |
2021-06-15 11:51:02 +0200 | nsilv1 | (~nsilv@host-82-50-119-12.retail.telecomitalia.it) (Ping timeout: 272 seconds) |
2021-06-15 11:51:08 +0200 | <Rembane> | fromMaybe is good with defaults |
2021-06-15 11:57:10 +0200 | <cheater> | <nitrix> That'll be like the first version I posted. He wants the first element from the second list that matches the current element from the first list (the matching is case insensitive, but the result needs to be sensitive). < nope. if the second list doesn't contain a matching element, then we use the element from the first list. |
2021-06-15 11:58:03 +0200 | azeem | (~azeem@176.200.200.250) (Ping timeout: 272 seconds) |
2021-06-15 11:59:22 +0200 | azeem | (~azeem@176.200.200.250) |
2021-06-15 11:59:41 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds) |
2021-06-15 12:00:40 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-15 12:01:08 +0200 | <nitrix> | I'm playing with the getFirst monoid. |
2021-06-15 12:01:22 +0200 | <teaSlurper> | @haskell let x = 2 |
2021-06-15 12:01:23 +0200 | <lambdabot> | https://www.haskellers.com/ |
2021-06-15 12:01:40 +0200 | <teaSlurper> | can you write haskell in this chat ? |
2021-06-15 12:01:54 +0200 | <teaSlurper> | is there like an intrepreter? |
2021-06-15 12:02:07 +0200 | ph88 | (~ph88@ip5f5af6fd.dynamic.kabel-deutschland.de) |
2021-06-15 12:02:14 +0200 | <teaSlurper> | @haskell 1 + 2 |
2021-06-15 12:02:15 +0200 | <lambdabot> | https://www.haskellers.com/ |
2021-06-15 12:02:23 +0200 | <Rembane> | > 1 + 2 |
2021-06-15 12:02:25 +0200 | <lambdabot> | 3 |
2021-06-15 12:02:31 +0200 | <teaSlurper> | > 1 + 1 |
2021-06-15 12:02:33 +0200 | <lambdabot> | 2 |
2021-06-15 12:02:37 +0200 | <teaSlurper> | thx |
2021-06-15 12:02:50 +0200 | <sshine> | % "this one also" |
2021-06-15 12:02:50 +0200 | <yahb> | sshine: "this one also" |
2021-06-15 12:02:55 +0200 | <teaSlurper> | > 1 : 2 |
2021-06-15 12:02:57 +0200 | <lambdabot> | [1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2... |
2021-06-15 12:03:11 +0200 | <teaSlurper> | that's not right is it? |
2021-06-15 12:03:13 +0200 | <sshine> | % 1 : 2 |
2021-06-15 12:03:13 +0200 | <yahb> | sshine: ; <interactive>:83:1: error:; * No instance for (Num [Integer]) arising from a use of `it'; * In the first argument of `print', namely `it'; In a stmt of an interactive GHCi command: print it |
2021-06-15 12:03:30 +0200 | <sshine> | I'm not sure why lambdabot does that. |
2021-06-15 12:03:54 +0200 | pe200012 | (~pe200012@183.63.73.36) (Ping timeout: 264 seconds) |
2021-06-15 12:03:57 +0200 | pe200012_ | (~pe200012@120.236.161.38) |
2021-06-15 12:04:17 +0200 | <teaSlurper> | % 1 : 2 |
2021-06-15 12:04:17 +0200 | <yahb> | teaSlurper: ; <interactive>:86:1: error:; * No instance for (Num [Integer]) arising from a use of `it'; * In the first argument of `print', namely `it'; In a stmt of an interactive GHCi command: print it |
2021-06-15 12:04:26 +0200 | <teaSlurper> | % 1 : [2] |
2021-06-15 12:04:26 +0200 | <yahb> | teaSlurper: [1,2] |
2021-06-15 12:04:30 +0200 | <sshine> | % subsequences "wat" |
2021-06-15 12:04:30 +0200 | <yahb> | sshine: ["","w","a","wa","t","wt","at","wat"] |
2021-06-15 12:04:45 +0200 | <teaSlurper> | i have a question |
2021-06-15 12:04:57 +0200 | <teaSlurper> | why does this little function work... |
2021-06-15 12:05:17 +0200 | <teaSlurper> | % let f x = x : f x in f 1 |
2021-06-15 12:05:23 +0200 | <yahb> | teaSlurper: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 |
2021-06-15 12:05:39 +0200 | <teaSlurper> | and this doesn't |
2021-06-15 12:05:40 +0200 | <teaSlurper> | : |
2021-06-15 12:05:47 +0200 | <teaSlurper> | % 1 : 1 |
2021-06-15 12:05:48 +0200 | <yahb> | teaSlurper: ; <interactive>:1:1: error:; * No instance for (Num [Integer]) arising from a use of `it'; * In the first argument of `print', namely `it'; In a stmt of an interactive GHCi command: print it |
2021-06-15 12:05:53 +0200 | <sshine> | :t (:) |
2021-06-15 12:05:54 +0200 | <lambdabot> | a -> [a] -> [a] |
2021-06-15 12:06:09 +0200 | <sshine> | the (:) constructor expects the right-hand side to be a list. in '1 : 1', the second 1 is not a list. |
2021-06-15 12:06:27 +0200 | <teaSlurper> | my function shouldn't work though right? |
2021-06-15 12:06:34 +0200 | <sshine> | in 'let f x = x : f x in f 1', the right-hand side of ':' is 'f x' which is a list. |
2021-06-15 12:06:54 +0200 | <sshine> | it happens to be an infinite list, but those are okay in Haskell. |
2021-06-15 12:07:11 +0200 | <sshine> | % let xs = [1,2..] in take 10 xs |
2021-06-15 12:07:11 +0200 | <yahb> | sshine: [1,2,3,4,5,6,7,8,9,10] |
2021-06-15 12:07:20 +0200 | <Rembane> | :t let f x = x : f x in f 1 |
2021-06-15 12:07:21 +0200 | <lambdabot> | Num t => [t] |
2021-06-15 12:07:46 +0200 | <teaSlurper> | there's no part of my function that has a list in it? |
2021-06-15 12:08:03 +0200 | <sshine> | teaSlurper, yes there is. 'x : f x' is a list |
2021-06-15 12:08:18 +0200 | <sshine> | teaSlurper, also, because 'x : f x' is a list, so is 'f x', because of recursion. |
2021-06-15 12:08:34 +0200 | <teaSlurper> | 1 : 1 : 1 |
2021-06-15 12:08:37 +0200 | Guest5851 | (~Guest58@ti0182q160-6494.bb.online.no) |
2021-06-15 12:08:40 +0200 | <teaSlurper> | % 1 : 1 : 1 |
2021-06-15 12:08:40 +0200 | <yahb> | teaSlurper: ; <interactive>:3:1: error:; * No instance for (Num [Integer]) arising from a use of `it'; * In the first argument of `print', namely `it'; In a stmt of an interactive GHCi command: print it |
2021-06-15 12:08:41 +0200 | <sshine> | % 1 : 1 : 1 : [] |
2021-06-15 12:08:42 +0200 | <yahb> | sshine: [1,1,1] |
2021-06-15 12:08:58 +0200 | <teaSlurper> | but at no point do i specify []? |
2021-06-15 12:09:12 +0200 | <sshine> | the right-hand side of (:) needs to be a list. I recommend you read the chapter of LYAH on lists: http://learnyouahaskell.com/starting-out#an-intro-to-lists |
2021-06-15 12:09:40 +0200 | <sshine> | teaSlurper, that's right, lists can be infinite, and [] would mark the ending of a list. so not all lists have a [] at the far right. |
2021-06-15 12:09:49 +0200 | fizbin | (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) |
2021-06-15 12:09:54 +0200 | <sshine> | teaSlurper, also. not all lists contain a ':' either. |
2021-06-15 12:10:53 +0200 | <sshine> | teaSlurper, also, #haskell-beginners :) (not to dissuade you from asking questions here, but this channel is also active.) |
2021-06-15 12:11:15 +0200 | yd502 | (~yd502@180.168.212.6) |
2021-06-15 12:11:21 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-06-15 12:11:27 +0200 | <dminuoso> | teaSlurper: the key to realize is that `1 : 1 : 1 ..` associates as 1 : (1 : (...)) |
2021-06-15 12:11:47 +0200 | <sshine> | Ó_ò |
2021-06-15 12:12:13 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-15 12:13:52 +0200 | <dminuoso> | Compare that to the peano construction of natural numbers |
2021-06-15 12:14:00 +0200 | <dminuoso> | % data Nat = Succ Nat | Nil |
2021-06-15 12:14:00 +0200 | <yahb> | dminuoso: |
2021-06-15 12:14:42 +0200 | fizbin | (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) (Ping timeout: 264 seconds) |
2021-06-15 12:16:09 +0200 | <dminuoso> | let x = Succ (Succ (Succ Nil)) |
2021-06-15 12:16:11 +0200 | <dminuoso> | % let x = Succ (Succ (Succ Nil)) |
2021-06-15 12:16:11 +0200 | <yahb> | dminuoso: |
2021-06-15 12:17:27 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds) |
2021-06-15 12:17:44 +0200 | <teaSlurper> | thx dminuoso |
2021-06-15 12:17:55 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-15 12:18:36 +0200 | zaquest | (~notzaques@5.128.210.178) (Quit: Leaving) |
2021-06-15 12:20:08 +0200 | <teaSlurper> | thx sshine |
2021-06-15 12:21:14 +0200 | <teaSlurper> | % 1 : (1 : (...)) |
2021-06-15 12:21:14 +0200 | <yahb> | teaSlurper: ; <interactive>:7:10: error:; * Couldn't match expected type: [a]; with actual type: LensLike f0 s0 t0 c0 c0 -> Over p0 f0 c0 c0 a0 b0 -> Over p0 f0 s0 t0 a0 b0; * Probable cause: `(...)' is applied to too few arguments; In the second argument of `(:)', namely `(...)'; In the second argument of `(:)', namely `(1 : (...))'; In the expression: 1 : (1 : (...)); |
2021-06-15 12:21:48 +0200 | ddellacosta | (~ddellacos@86.106.143.73) |
2021-06-15 12:23:20 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-06-15 12:23:46 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-15 12:24:04 +0200 | <siers> | can I have a haddock named paragraph (like -- $paragraph) but in multiline comments? |
2021-06-15 12:24:05 +0200 | <dminuoso> | teaSlurper: you can use undefined as a placeholder. :) |
2021-06-15 12:24:24 +0200 | <dminuoso> | % x :: [Int]; x = (1 : (2 : (3 : []))) |
2021-06-15 12:24:25 +0200 | <yahb> | dminuoso: |
2021-06-15 12:24:34 +0200 | <dminuoso> | % x |
2021-06-15 12:24:35 +0200 | <yahb> | dminuoso: [1,2,3] |
2021-06-15 12:24:51 +0200 | <dminuoso> | % :t (:) |
2021-06-15 12:24:52 +0200 | <yahb> | dminuoso: a -> [a] -> [a] |
2021-06-15 12:26:45 +0200 | ddellacosta | (~ddellacos@86.106.143.73) (Ping timeout: 244 seconds) |
2021-06-15 12:27:16 +0200 | yd502 | (~yd502@180.168.212.6) (Ping timeout: 244 seconds) |
2021-06-15 12:27:45 +0200 | Guest5851 | (~Guest58@ti0182q160-6494.bb.online.no) (Quit: Client closed) |
2021-06-15 12:28:49 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds) |
2021-06-15 12:29:39 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-15 12:29:42 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-15 12:29:53 +0200 | <teaSlurper> | dminuoso: is (...) actually some sort of haskell thing though? infinity operator or something? |
2021-06-15 12:29:59 +0200 | <teaSlurper> | ... |
2021-06-15 12:30:11 +0200 | <teaSlurper> | under the hood it used that or? |
2021-06-15 12:32:38 +0200 | <dminuoso> | No, that was just my informal way of phrasing "more stuff goes here" |
2021-06-15 12:33:21 +0200 | <dminuoso> | Though, confusingly, .. actually exists here |
2021-06-15 12:33:24 +0200 | <dminuoso> | % [1..5] |
2021-06-15 12:33:24 +0200 | <yahb> | dminuoso: [1,2,3,4,5] |
2021-06-15 12:33:27 +0200 | <dminuoso> | But that is unrelated. |
2021-06-15 12:34:01 +0200 | <teaSlurper> | but under the hood haskell is deciding to count infinity as a list? |
2021-06-15 12:34:11 +0200 | <teaSlurper> | or class infinity as a list |
2021-06-15 12:34:41 +0200 | <dminuoso> | What do you mean by `infinity`? |
2021-06-15 12:34:52 +0200 | <teaSlurper> | (...) |
2021-06-15 12:34:56 +0200 | <dminuoso> | 12:32:37 dminuoso | No, that was just my informal way of phrasing "more stuff goes here" |
2021-06-15 12:35:06 +0200 | azeem | (~azeem@176.200.200.250) (Ping timeout: 264 seconds) |
2021-06-15 12:35:35 +0200 | azeem | (~azeem@176.200.200.250) |
2021-06-15 12:36:01 +0200 | <teaSlurper> | so in the infinite expression does haskell inert a []? |
2021-06-15 12:36:10 +0200 | <teaSlurper> | insert* |
2021-06-15 12:36:27 +0200 | <[exa]> | it can't, the infinity is too far |
2021-06-15 12:37:18 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-15 12:38:12 +0200 | shredder | (~shredder@42-2-58-147.static.netvigator.com) |
2021-06-15 12:38:30 +0200 | yd502 | (~yd502@180.168.212.6) |
2021-06-15 12:38:37 +0200 | BosonCollider | (~olofs@90-227-86-119-no542.tbcn.telia.com) |
2021-06-15 12:38:52 +0200 | jneira | (~jneira@212.8.115.226) (Quit: Client closed) |
2021-06-15 12:40:03 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-06-15 12:40:32 +0200 | <dminuoso> | teaSlurper: Just do manual expansion |
2021-06-15 12:40:46 +0200 | <dminuoso> | Haskell evaluation can be understood if you just do manual expansion yourself. |
2021-06-15 12:41:04 +0200 | benin036 | (~benin@183.82.204.171) (Ping timeout: 272 seconds) |
2021-06-15 12:41:13 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-15 12:41:29 +0200 | <teaSlurper> | you mean on paper? |
2021-06-15 12:41:34 +0200 | <teaSlurper> | unfolding it? |
2021-06-15 12:41:49 +0200 | <teaSlurper> | like 1 : (1 : (1 : (...))) |
2021-06-15 12:42:12 +0200 | <dminuoso> | let f x = x : f x in f 1 |
2021-06-15 12:42:15 +0200 | <dminuoso> | f 1 = 1 : f 1 |
2021-06-15 12:42:18 +0200 | <dminuoso> | = 1 : 1 : f 1 |
2021-06-15 12:42:21 +0200 | <dminuoso> | = 1 : 1 : 1 : f1 |
2021-06-15 12:42:26 +0200 | <dminuoso> | ad infinitum. |
2021-06-15 12:42:44 +0200 | <teaSlurper> | ahh i see ye |
2021-06-15 12:42:58 +0200 | <teaSlurper> | that's called manual expansion is it? |
2021-06-15 12:43:42 +0200 | <dminuoso> | It's an informal term I just used. If you ever want to understand how something works, you can just manually replace expressions by their definitions, binding values correctly. |
2021-06-15 12:44:10 +0200 | <dminuoso> | This works mostly fine as long as we ignore lazyness. |
2021-06-15 12:45:15 +0200 | jneira | (~jneira@212.8.115.226) |
2021-06-15 12:45:24 +0200 | <dminuoso> | % let f x = x : f x in take 10 (f 1) |
2021-06-15 12:45:24 +0200 | <yahb> | dminuoso: [1,1,1,1,1,1,1,1,1,1] |
2021-06-15 12:46:23 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds) |
2021-06-15 12:46:54 +0200 | zaquest | (~notzaques@5.128.210.178) |
2021-06-15 12:46:55 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-15 12:48:08 +0200 | <dminuoso> | This works because (f 1) is not evaluated ad-infinitum like I suggested above, it's rather that GHC evaluates only as far as it needs. But it can chase this list down as far as you want. |
2021-06-15 12:48:45 +0200 | <dminuoso> | So something like `length (f 1)` will diverge, `length` essentially counts the elements until it finds a [] |
2021-06-15 12:48:59 +0200 | <dminuoso> | % let f x = x : f x in length (f 1) |
2021-06-15 12:49:04 +0200 | <yahb> | dminuoso: [Timed out] |
2021-06-15 12:49:33 +0200 | benin036 | (~benin@183.82.204.171) |
2021-06-15 12:51:31 +0200 | jneira_ | (~jneira_@5.red-81-39-172.dynamicip.rima-tde.net) (Quit: Connection closed) |
2021-06-15 12:54:06 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-15 12:55:53 +0200 | <teaSlurper> | dminuoso: so something to do with lazy computation? |
2021-06-15 12:56:47 +0200 | <teaSlurper> | evaluation* |
2021-06-15 12:57:32 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-06-15 12:58:01 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-15 12:58:10 +0200 | brian_da_mage | (~Neuromanc@user/briandamag) |
2021-06-15 12:59:46 +0200 | ddellacosta | (~ddellacos@86.106.143.151) |
2021-06-15 13:00:46 +0200 | mpt | (~tom@2a02:908:1862:49e0::5) |
2021-06-15 13:03:14 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds) |
2021-06-15 13:03:46 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-15 13:04:16 +0200 | <dminuoso> | Yes. |
2021-06-15 13:04:23 +0200 | dunkeln | (~dunkeln@94.129.65.28) |
2021-06-15 13:04:30 +0200 | ddellacosta | (~ddellacos@86.106.143.151) (Ping timeout: 264 seconds) |
2021-06-15 13:05:06 +0200 | yd502 | (~yd502@180.168.212.6) (Ping timeout: 264 seconds) |
2021-06-15 13:05:23 +0200 | nschoe | (~quassel@178.251.84.79) (Ping timeout: 272 seconds) |
2021-06-15 13:10:30 +0200 | mpt | (~tom@2a02:908:1862:49e0::5) (Ping timeout: 264 seconds) |
2021-06-15 13:12:59 +0200 | azeem | (~azeem@176.200.200.250) (Ping timeout: 272 seconds) |
2021-06-15 13:13:00 +0200 | <siers> | where can I feed seconds since epoch to Date.Time.Format? |
2021-06-15 13:13:43 +0200 | azeem | (~azeem@176.200.200.250) |
2021-06-15 13:14:16 +0200 | <siers> | it certainly looks like I can't |
2021-06-15 13:15:51 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-15 13:20:06 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-06-15 13:20:09 +0200 | larkfisherman | (~larkfishe@217.75.204.126) |
2021-06-15 13:20:16 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-15 13:21:17 +0200 | <cdsmith> | Let's play: am I reinventing the wheel! I've been building a type called `Predicate`, which is basically "a -> Bool, but explainable". Has a Show instance, and I'm about to add the ability to explain why it fails to match. e.g., if you compare two large Text values, it might show a diff instead of printing the whole value. Anyone know of prior art for this? |
2021-06-15 13:21:29 +0200 | <cdsmith> | This is for a testing tool, btw |
2021-06-15 13:25:08 +0200 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) |
2021-06-15 13:25:54 +0200 | dixie | (~dixie@real.wilbury.sk) |
2021-06-15 13:26:38 +0200 | fizbin | (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) |
2021-06-15 13:28:30 +0200 | larkfisherman | (~larkfishe@217.75.204.126) (Quit: Leaving) |
2021-06-15 13:28:39 +0200 | fef | (~thedawn@user/thedawn) |
2021-06-15 13:30:31 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-06-15 13:31:26 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-15 13:36:18 +0200 | azeem | (~azeem@176.200.200.250) (Ping timeout: 244 seconds) |
2021-06-15 13:36:25 +0200 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) |
2021-06-15 13:37:32 +0200 | Morrow | (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Read error: Connection reset by peer) |
2021-06-15 13:37:42 +0200 | Morrow | (~Morrow@bzq-110-168-31-106.red.bezeqint.net) |
2021-06-15 13:38:26 +0200 | azeem | (~azeem@176.201.22.245) |
2021-06-15 13:38:32 +0200 | fizbin | (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) (Remote host closed the connection) |
2021-06-15 13:38:51 +0200 | ddellacosta | (~ddellacos@86.106.121.190) |
2021-06-15 13:42:55 +0200 | nsilv1 | (~nsilv@212.103.198.210) |
2021-06-15 13:43:32 +0200 | ddellacosta | (~ddellacos@86.106.121.190) (Ping timeout: 244 seconds) |
2021-06-15 13:50:59 +0200 | azeem | (~azeem@176.201.22.245) (Ping timeout: 272 seconds) |
2021-06-15 13:51:44 +0200 | pbrisbin | (~patrick@pool-72-92-38-164.phlapa.fios.verizon.net) (Ping timeout: 252 seconds) |
2021-06-15 13:51:59 +0200 | nschoe | (~quassel@178.251.84.79) |
2021-06-15 13:54:54 +0200 | azeem | (~azeem@176.201.22.245) |
2021-06-15 13:55:45 +0200 | zyklotomic | (~ethan@2604:a880:800:10::79f:8001) |
2021-06-15 13:57:29 +0200 | dunkeln | (~dunkeln@94.129.65.28) (Ping timeout: 244 seconds) |
2021-06-15 13:58:57 +0200 | <zyklotomic> | is there a way to deduce a type from a variable? i'm not sure if this is a language extension for it |
2021-06-15 13:59:12 +0200 | <zyklotomic> | https://gist.github.com/zyklotomic/d1e7eb54e74ea53dcb9a5f616d362dc8 here is an example of where i'm trying to do that |
2021-06-15 14:00:10 +0200 | <zyklotomic> | *if there is |
2021-06-15 14:00:25 +0200 | <merijn> | zyklotomic: Ah, you want ScopedTypeVariables |
2021-06-15 14:00:43 +0200 | <merijn> | zyklotomic: That lets you refer to type variables from your top-level signature in the body |
2021-06-15 14:00:57 +0200 | <merijn> | so you can do "minBound :: a" with 'a' being equal to the 'a' in the top level type |
2021-06-15 14:01:07 +0200 | <merijn> | @where user-guide |
2021-06-15 14:01:07 +0200 | <lambdabot> | I know nothing about user-guide. |
2021-06-15 14:01:12 +0200 | <merijn> | @where userguide |
2021-06-15 14:01:12 +0200 | <zyklotomic> | merijn: ah thank you, appreciate it |
2021-06-15 14:01:12 +0200 | <lambdabot> | https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/ |
2021-06-15 14:01:19 +0200 | henninb | (~user@63.226.174.157) |
2021-06-15 14:01:25 +0200 | <merijn> | GHC User Guide should have a section explaining the extensio |
2021-06-15 14:02:03 +0200 | <zyklotomic> | the hard part is knowing how to explain specific niche use cases lol, and just the gut feeling there probably is an extension for it |
2021-06-15 14:03:33 +0200 | <merijn> | zyklotomic: If you have an 'a' available there's also |
2021-06-15 14:03:35 +0200 | <merijn> | :t asTypeOf |
2021-06-15 14:03:37 +0200 | <lambdabot> | a -> a -> a |
2021-06-15 14:03:47 +0200 | <merijn> | > minBound `asTypeOf` True |
2021-06-15 14:03:49 +0200 | <lambdabot> | False |
2021-06-15 14:03:53 +0200 | <merijn> | > minBound `asTypeOf` 'c' |
2021-06-15 14:03:55 +0200 | <lambdabot> | '\NUL' |
2021-06-15 14:04:41 +0200 | <merijn> | zyklotomic: Basically, asTypeOf is just const (i.e. returns first argument), but the type signature of asTypeOf lets you guide type inference with the second value |
2021-06-15 14:04:50 +0200 | oxide | (~lambda@user/oxide) (Read error: Connection reset by peer) |
2021-06-15 14:05:49 +0200 | <merijn> | Although, looking at your example, probably ScopedTypeVariables is a better/easier solution |
2021-06-15 14:05:59 +0200 | <merijn> | Since you don't actually have an 'a' available |
2021-06-15 14:06:48 +0200 | <merijn> | zyklotomic: otoh, if you're just gonna apply a function to it, you might not even need that |
2021-06-15 14:06:56 +0200 | <merijn> | :t [minBound .. maxBound] |
2021-06-15 14:06:57 +0200 | <lambdabot> | (Bounded a, Enum a) => [a] |
2021-06-15 14:07:09 +0200 | <merijn> | :t map isDigit [minBound .. maxBound] |
2021-06-15 14:07:10 +0200 | <lambdabot> | [Bool] |
2021-06-15 14:07:15 +0200 | <merijn> | > map isDigit [minBound .. maxBound] |
2021-06-15 14:07:17 +0200 | <lambdabot> | [False,False,False,False,False,False,False,False,False,False,False,False,Fal... |
2021-06-15 14:07:34 +0200 | dunkeln | (~dunkeln@94.129.65.28) |
2021-06-15 14:07:50 +0200 | <merijn> | zyklotomic: So if you're gonna just apply the function from your CountMap to the resulting list, you don't even need the type, it will just be inferred |
2021-06-15 14:08:48 +0200 | oxide | (~lambda@user/oxide) |
2021-06-15 14:09:08 +0200 | kenran | (~kenran@b2b-37-24-119-190.unitymedia.biz) (Quit: WeeChat info:version) |
2021-06-15 14:11:11 +0200 | henninb | (~user@63.226.174.157) (Remote host closed the connection) |
2021-06-15 14:11:20 +0200 | ddellacosta | (~ddellacos@89.45.224.73) |
2021-06-15 14:11:50 +0200 | derelict | (~derelict@user/derelict) |
2021-06-15 14:12:14 +0200 | jakalx | (~jakalx@base.jakalx.net) () |
2021-06-15 14:16:05 +0200 | ddellacosta | (~ddellacos@89.45.224.73) (Ping timeout: 244 seconds) |
2021-06-15 14:21:18 +0200 | azeem | (~azeem@176.201.22.245) (Ping timeout: 264 seconds) |
2021-06-15 14:21:36 +0200 | raehik1 | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-06-15 14:21:56 +0200 | azeem | (~azeem@176.201.22.245) |
2021-06-15 14:22:43 +0200 | shredder | (~shredder@42-2-58-147.static.netvigator.com) (Changing host) |
2021-06-15 14:22:43 +0200 | shredder | (~shredder@user/shredder) |
2021-06-15 14:24:54 +0200 | BosonCollider | (~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 264 seconds) |
2021-06-15 14:25:52 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-15 14:27:28 +0200 | nschoe | (~quassel@178.251.84.79) (Ping timeout: 272 seconds) |
2021-06-15 14:27:58 +0200 | shredder | (~shredder@user/shredder) (Ping timeout: 244 seconds) |
2021-06-15 14:28:16 +0200 | haskman | (~haskman@223.190.124.48) |
2021-06-15 14:28:24 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-15 14:32:21 +0200 | BosonCollider | (~olofs@90-227-86-119-no542.tbcn.telia.com) |
2021-06-15 14:33:46 +0200 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) |
2021-06-15 14:34:29 +0200 | azeem | (~azeem@176.201.22.245) (Ping timeout: 272 seconds) |
2021-06-15 14:34:49 +0200 | azeem | (~azeem@176.201.22.245) |
2021-06-15 14:34:54 +0200 | <xsperry> | > filter isDigit [minBound .. maxBound] |
2021-06-15 14:34:56 +0200 | <lambdabot> | "0123456789" |
2021-06-15 14:35:27 +0200 | teaSlurper | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-06-15 14:36:32 +0200 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit) |
2021-06-15 14:36:49 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-06-15 14:38:15 +0200 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) |
2021-06-15 14:38:53 +0200 | teaSlurper | (~chris@81.96.113.213) |
2021-06-15 14:39:46 +0200 | nschoe | (~quassel@178.251.84.79) |
2021-06-15 14:39:56 +0200 | pbrisbin | (~patrick@pool-72-92-38-164.phlapa.fios.verizon.net) |
2021-06-15 14:42:17 +0200 | Morrow | (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 272 seconds) |
2021-06-15 14:42:33 +0200 | ddellacosta | (~ddellacos@86.106.143.229) |
2021-06-15 14:44:29 +0200 | shapr | (~user@pool-108-28-144-11.washdc.fios.verizon.net) |
2021-06-15 14:47:26 +0200 | ddellacosta | (~ddellacos@86.106.143.229) (Ping timeout: 268 seconds) |
2021-06-15 14:49:17 +0200 | azeem | (~azeem@176.201.22.245) (Ping timeout: 268 seconds) |
2021-06-15 14:49:55 +0200 | azeem | (~azeem@176.201.22.245) |
2021-06-15 14:52:44 +0200 | fishfinger | (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net) (Remote host closed the connection) |
2021-06-15 14:53:00 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-06-15 14:53:21 +0200 | <merijn> | > filter isNumber [minBound .. maxBound] |
2021-06-15 14:53:23 +0200 | <lambdabot> | "0123456789\178\179\185\188\189\190\1632\1633\1634\1635\1636\1637\1638\1639\... |
2021-06-15 14:53:26 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2021-06-15 14:53:26 +0200 | <merijn> | oh, wait |
2021-06-15 14:53:30 +0200 | <merijn> | > text filter isNumber [minBound .. maxBound] |
2021-06-15 14:53:31 +0200 | <lambdabot> | error: |
2021-06-15 14:53:32 +0200 | <lambdabot> | • Couldn't match expected type ‘(Char -> Bool) -> [a1] -> t’ |
2021-06-15 14:53:32 +0200 | <lambdabot> | with actual type ‘Doc’ |
2021-06-15 14:53:40 +0200 | <merijn> | > text $ filter isNumber [minBound .. maxBound] -- third time's the charm |
2021-06-15 14:53:41 +0200 | <lambdabot> | 0123456789²³¹¼½¾٠١٢٣٤٥٦٧٨٩۰۱۲۳۴۵۶۷۸۹߀߁߂߃߄߅߆߇߈߉०१२३४५६७८९০১২৩৪৫৬৭৮৯৴৵৶৷৸৹੦੧੨੩... |
2021-06-15 14:55:20 +0200 | zebrag | (~chris@user/zebrag) |
2021-06-15 14:56:40 +0200 | <dminuoso> | zyklotomic: So there's two parts at work. One, ScopedTypeVariables arguably should have been the default behavior from the beginning. |
2021-06-15 14:57:00 +0200 | <dminuoso> | Secondly, minBound/maxBound should require a Proxy as argument like many other things that don't. |
2021-06-15 14:57:10 +0200 | jneira | (~jneira@212.8.115.226) (Quit: Client closed) |
2021-06-15 14:57:28 +0200 | <dminuoso> | (sizeOf is an even better example) |
2021-06-15 14:59:06 +0200 | zebrag | (~chris@user/zebrag) (Client Quit) |
2021-06-15 14:59:33 +0200 | dudek | (~dudek@185.150.236.112) |
2021-06-15 15:01:15 +0200 | alx741 | (~alx741@186.178.108.66) |
2021-06-15 15:02:18 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
2021-06-15 15:02:35 +0200 | dunkeln | (~dunkeln@94.129.65.28) (Ping timeout: 244 seconds) |
2021-06-15 15:04:51 +0200 | larkfisherman | (~larkfishe@217.75.204.126) |
2021-06-15 15:05:12 +0200 | euandreh | (~euandreh@2804:14c:33:9fe5:add0:1e4f:5044:d502) (Remote host closed the connection) |
2021-06-15 15:05:36 +0200 | euandreh | (~euandreh@2804:14c:33:9fe5:b257:2b:ea5f:da94) |
2021-06-15 15:05:58 +0200 | shredder | (~shredder@user/shredder) |
2021-06-15 15:06:44 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2021-06-15 15:07:02 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) |
2021-06-15 15:07:47 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit) |
2021-06-15 15:08:06 +0200 | Tritlo | (~Tritlo@h-155-4-130-185.NA.cust.bahnhof.se) |
2021-06-15 15:11:06 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) (Ping timeout: 240 seconds) |
2021-06-15 15:11:58 +0200 | teaSlurper | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-06-15 15:14:04 +0200 | <merijn> | dminuoso: I mean, proxy seems irrelevant here |
2021-06-15 15:14:15 +0200 | melivia | (~seph@sephistication.plus.com) |
2021-06-15 15:14:25 +0200 | <merijn> | dminuoso: Since his question was about "how do I get the type?", proxy only works if you already have that type |
2021-06-15 15:15:12 +0200 | kadobanana | mud |
2021-06-15 15:15:20 +0200 | Tritlo_ | (sid58727@id-58727.stonehaven.irccloud.com) |
2021-06-15 15:15:44 +0200 | delYsid | (~user@user/delYsid) (Remote host closed the connection) |
2021-06-15 15:16:17 +0200 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) |
2021-06-15 15:16:50 +0200 | teaSlurper | (~chris@81.96.113.213) |
2021-06-15 15:18:53 +0200 | reumeth | (~reumeth@user/reumeth) |
2021-06-15 15:19:49 +0200 | yd502 | (~yd502@2409:891e:320:209e:f515:1951:1076:cda6) |
2021-06-15 15:19:52 +0200 | Tritlo | (~Tritlo@h-155-4-130-185.NA.cust.bahnhof.se) () |
2021-06-15 15:20:05 +0200 | Tritlo_ | (sid58727@id-58727.stonehaven.irccloud.com) () |
2021-06-15 15:20:06 +0200 | teaSlurper | (~chris@81.96.113.213) (Read error: Connection reset by peer) |
2021-06-15 15:20:10 +0200 | hendursa1 | (~weechat@user/hendursaga) (Quit: hendursa1) |
2021-06-15 15:20:25 +0200 | Tritlo_ | (sid58727@id-58727.stonehaven.irccloud.com) |
2021-06-15 15:20:28 +0200 | teaSlurper | (~chris@81.96.113.213) |
2021-06-15 15:20:32 +0200 | Tritlo_ | Tritlo |
2021-06-15 15:20:36 +0200 | Tritlo | (sid58727@id-58727.stonehaven.irccloud.com) (Client Quit) |
2021-06-15 15:20:47 +0200 | Tritlo | (sid58727@id-58727.stonehaven.irccloud.com) |
2021-06-15 15:21:05 +0200 | jakalx | (~jakalx@base.jakalx.net) () |
2021-06-15 15:21:23 +0200 | Tritlo | (sid58727@id-58727.stonehaven.irccloud.com) (Client Quit) |
2021-06-15 15:21:36 +0200 | Tritlo | (sid58727@id-58727.stonehaven.irccloud.com) |
2021-06-15 15:21:37 +0200 | hendursaga | (~weechat@user/hendursaga) |
2021-06-15 15:21:40 +0200 | dunkeln | (~dunkeln@94.129.65.28) |
2021-06-15 15:23:28 +0200 | ddellacosta | (~ddellacos@86.106.143.203) |
2021-06-15 15:25:06 +0200 | melivia | (~seph@sephistication.plus.com) (Quit: leaving) |
2021-06-15 15:26:13 +0200 | zebrag | (~chris@user/zebrag) |
2021-06-15 15:28:25 +0200 | ddellacosta | (~ddellacos@86.106.143.203) (Ping timeout: 265 seconds) |
2021-06-15 15:28:28 +0200 | ixlun | (~matthew@213.205.241.86) |
2021-06-15 15:30:29 +0200 | Guest9 | (~Guest9@103.249.234.176) |
2021-06-15 15:31:26 +0200 | yd502 | (~yd502@2409:891e:320:209e:f515:1951:1076:cda6) (Ping timeout: 272 seconds) |
2021-06-15 15:32:17 +0200 | <ixlun> | Hi all, has anyone had issues with line editing in GHCi? |
2021-06-15 15:32:28 +0200 | <ixlun> | I'm using 8.10.5 GHC on apple silicon |
2021-06-15 15:32:47 +0200 | <maerwald> | what does line editing mean |
2021-06-15 15:33:12 +0200 | <ixlun> | For example, pressing Ctrl-a to take you to the beginning of the line |
2021-06-15 15:34:31 +0200 | <ixlun> | I think it uses GNU readline under the hood |
2021-06-15 15:34:53 +0200 | haskman | (~haskman@223.190.124.48) (Quit: Going to sleep. ZZZzzz…) |
2021-06-15 15:35:16 +0200 | <maerwald> | ctrl-a does odd things for me |
2021-06-15 15:35:35 +0200 | <maerwald> | but I have no idea if that is supposed to work on darwin |
2021-06-15 15:35:42 +0200 | haskman | (~haskman@223.190.124.48) |
2021-06-15 15:36:57 +0200 | <ixlun> | Are you on an X86 or arm64 machine? |
2021-06-15 15:37:04 +0200 | <maerwald> | arm64 |
2021-06-15 15:37:16 +0200 | <Hecate> | am I hallucinating or is this an effect system in the rust std_lib? https://blog.sunfishcode.online/introducing-cap-std/ |
2021-06-15 15:37:58 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-15 15:37:59 +0200 | <maerwald> | looks like a syscall sandbox |
2021-06-15 15:38:13 +0200 | <ixlun> | maerwald: Okay, thanks for the info. Good to know that it's not just my system. I might raise a bug on the GHC gitlab. |
2021-06-15 15:38:19 +0200 | <merijn> | ghci uses haskeline |
2021-06-15 15:38:44 +0200 | <merijn> | Which is a Haskell implementation that mimics readline. But it doesn't use readline |
2021-06-15 15:38:56 +0200 | <ixlun> | Ahh, I didn't know that |
2021-06-15 15:39:06 +0200 | <ixlun> | It does such a good job, I thought it was readline! |
2021-06-15 15:39:11 +0200 | fizbin | (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) |
2021-06-15 15:39:13 +0200 | <merijn> | It's quite nice to work with |
2021-06-15 15:39:24 +0200 | <merijn> | Have been using it with custom completion logic, etc. |
2021-06-15 15:39:41 +0200 | listofoptions | (~haha@nat.syssrc.com) |
2021-06-15 15:40:36 +0200 | <ixlun> | I might try and create a small program that uses it on my system and see if I can replicate the problem. If so, I guess there would be a bug in haskeline |
2021-06-15 15:43:06 +0200 | fizbin | (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) (Ping timeout: 240 seconds) |
2021-06-15 15:43:51 +0200 | involans | (~alex@cpc92718-cmbg20-2-0-cust157.5-4.cable.virginm.net) |
2021-06-15 15:43:57 +0200 | larkfisherman | (~larkfishe@217.75.204.126) (Quit: Leaving) |
2021-06-15 15:46:05 +0200 | <merijn> | Could be, or an issue with terminfo, etc. |
2021-06-15 15:46:07 +0200 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) |
2021-06-15 15:46:50 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-15 15:47:07 +0200 | haskman | (~haskman@223.190.124.48) (Quit: QUIT) |
2021-06-15 15:47:32 +0200 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) |
2021-06-15 15:50:38 +0200 | ixlun | (~matthew@213.205.241.86) (Read error: Connection reset by peer) |
2021-06-15 15:50:57 +0200 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit) |
2021-06-15 15:51:14 +0200 | warnz | (~warnz@2600:1700:77c0:5610:800b:6e01:97af:a956) |
2021-06-15 15:52:35 +0200 | azeem | (~azeem@176.201.22.245) (Ping timeout: 265 seconds) |
2021-06-15 15:52:54 +0200 | azeem | (~azeem@176.201.22.245) |
2021-06-15 15:53:18 +0200 | chddr | (~Thunderbi@31.148.23.125) |
2021-06-15 15:53:42 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-06-15 15:54:27 +0200 | berberman | (~berberman@user/berberman) (Ping timeout: 244 seconds) |
2021-06-15 15:54:29 +0200 | berberman_ | (~berberman@user/berberman) |
2021-06-15 15:54:42 +0200 | Guest9 | (~Guest9@103.249.234.176) (Ping timeout: 240 seconds) |
2021-06-15 15:54:51 +0200 | qbt | (~edun@user/edun) |
2021-06-15 15:55:30 +0200 | warnz | (~warnz@2600:1700:77c0:5610:800b:6e01:97af:a956) (Ping timeout: 240 seconds) |
2021-06-15 15:56:30 +0200 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) |
2021-06-15 15:56:49 +0200 | wonko | (~wjc@62.115.229.50) (Remote host closed the connection) |
2021-06-15 15:57:40 +0200 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit) |
2021-06-15 15:58:43 +0200 | sekun | (~sekun@180.190.156.133) (Ping timeout: 272 seconds) |
2021-06-15 15:59:06 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2021-06-15 15:59:18 +0200 | ddellacosta | (~ddellacos@89.45.224.112) |
2021-06-15 15:59:42 +0200 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) |
2021-06-15 16:00:12 +0200 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit) |
2021-06-15 16:00:45 +0200 | egoist | (~egoist@186.235.82.46) |
2021-06-15 16:00:54 +0200 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) |
2021-06-15 16:01:14 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-15 16:02:44 +0200 | dunkeln | (~dunkeln@94.129.65.28) (Ping timeout: 265 seconds) |
2021-06-15 16:03:57 +0200 | fluffyballoon | (~fluffybal@2620:72:0:6480::10f7) |
2021-06-15 16:04:11 +0200 | ddellacosta | (~ddellacos@89.45.224.112) (Ping timeout: 265 seconds) |
2021-06-15 16:04:12 +0200 | raehik1 | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.1) |
2021-06-15 16:04:31 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-06-15 16:04:55 +0200 | egoist | (~egoist@186.235.82.46) (Client Quit) |
2021-06-15 16:05:08 +0200 | egoist | (~egoist@186.235.82.46) |
2021-06-15 16:05:37 +0200 | etherington | (~nagybogo@2a02:c7f:d425:9500:3ec0:37eb:211a:4131) |
2021-06-15 16:07:05 +0200 | egoist | (~egoist@186.235.82.46) (Client Quit) |
2021-06-15 16:07:19 +0200 | egoist | (~egoist@186.235.82.46) |
2021-06-15 16:08:19 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-15 16:09:10 +0200 | egoist | (~egoist@186.235.82.46) (Client Quit) |
2021-06-15 16:10:41 +0200 | warnz | (~warnz@2600:1700:77c0:5610:800b:6e01:97af:a956) |
2021-06-15 16:13:07 +0200 | <cheater> | any idea what "issues" he was experiencing? |
2021-06-15 16:13:48 +0200 | <cheater> | because haskeline is buggy as hell with ctrl-keys and i reported it typing a when you hold ctrl-a. i think i reported that like 10 years ago. it hasn't been fixed yet. |
2021-06-15 16:14:25 +0200 | econo | (uid147250@user/econo) |
2021-06-15 16:15:18 +0200 | warnz | (~warnz@2600:1700:77c0:5610:800b:6e01:97af:a956) (Ping timeout: 265 seconds) |
2021-06-15 16:16:39 +0200 | v01d4lph4 | (~v01d4lph4@user/v01d4lph4) (Read error: Connection reset by peer) |
2021-06-15 16:17:16 +0200 | <siraben> | What's the easiest way to sort strings in a locale-sensitive manner? |
2021-06-15 16:17:23 +0200 | <siraben> | I'm maintaining a list of items https://github.com/siraben/freenode-exodus/pull/112/files and sorting ö against other characters seems to put it in an odd place |
2021-06-15 16:18:33 +0200 | eagleflo | (~aku@eagleflow.fi) |
2021-06-15 16:18:42 +0200 | <siraben> | Ideally this should not need anything outside of the base libraries |
2021-06-15 16:19:38 +0200 | warnz | (~warnz@2600:1700:77c0:5610:800b:6e01:97af:a956) |
2021-06-15 16:19:39 +0200 | <geekosaur> | siraben, I think base only supports Unicode codepoint sorting and you need an external libary *and* a locale to do better |
2021-06-15 16:20:05 +0200 | <siraben> | I found https://hackage.haskell.org/package/rfc5051 |
2021-06-15 16:20:52 +0200 | egoist | (~egoist@186.235.82.46) |
2021-06-15 16:21:07 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
2021-06-15 16:22:04 +0200 | <geekosaur> | https://hackage.haskell.org/package/text-icu |
2021-06-15 16:23:38 +0200 | fef | (~thedawn@user/thedawn) (Remote host closed the connection) |
2021-06-15 16:24:17 +0200 | ixlun | (~matthew@213.205.241.86) |
2021-06-15 16:24:21 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-06-15 16:24:23 +0200 | fef | (~thedawn@user/thedawn) |
2021-06-15 16:25:54 +0200 | chddr | (~Thunderbi@31.148.23.125) (Ping timeout: 240 seconds) |
2021-06-15 16:25:57 +0200 | _73 | (~user@pool-96-252-123-136.bstnma.fios.verizon.net) (Ping timeout: 272 seconds) |
2021-06-15 16:26:07 +0200 | <merijn> | siraben: The "correct" sorting depends on your locale |
2021-06-15 16:26:11 +0200 | _73`` | (~user@pool-96-252-123-136.bstnma.fios.verizon.net) |
2021-06-15 16:26:21 +0200 | <merijn> | siraben: And text-icu is going to be the only correct answer |
2021-06-15 16:26:32 +0200 | neceve | (~quassel@2a02:c7f:607e:d600:a95a:ecd2:e57a:3130) (Ping timeout: 272 seconds) |
2021-06-15 16:26:57 +0200 | Profpatsch | (~Profpatsc@static.88-198-193-255.clients.your-server.de) |
2021-06-15 16:27:08 +0200 | <Profpatsch> | Is there a way to tell cabal to run tests in interactive mode? |
2021-06-15 16:27:36 +0200 | <siraben> | merijn: how would I construct parsers for Text using parser combinators? |
2021-06-15 16:27:39 +0200 | <Profpatsch> | The “compile -> compile tests -> link test binaries -> run once -> restart” cycle is not very nice |
2021-06-15 16:27:39 +0200 | <dminuoso> | Profpatsch: you can just build the tests and run them directly |
2021-06-15 16:27:41 +0200 | <merijn> | Profpatsch: "cabal run" works on tests |
2021-06-15 16:27:51 +0200 | <siraben> | One issue I run into is when parsing `many1 anyChar`, I have to re-pack into text |
2021-06-15 16:27:59 +0200 | <Profpatsch> | merijn: linking still takes multiple seconds |
2021-06-15 16:27:59 +0200 | <merijn> | siraben: megaparsec supports Text |
2021-06-15 16:28:04 +0200 | sayola | (~vekto@dslc-082-082-145-205.pools.arcor-ip.net) (Read error: Connection reset by peer) |
2021-06-15 16:28:11 +0200 | <merijn> | (as input) |
2021-06-15 16:28:16 +0200 | <dminuoso> | Profpatsch: Do you have stripping enabled? |
2021-06-15 16:28:26 +0200 | <Profpatsch> | merijn: I don’t see why test runners couldn’t just run in interactive mode |
2021-06-15 16:28:34 +0200 | <siraben> | bah, I guess I'll have to add dependencies then |
2021-06-15 16:28:53 +0200 | <dminuoso> | Profpatsch: You cant get around linking irrespective of whether you use `cabal test` or `cabal run`. |
2021-06-15 16:28:59 +0200 | <Profpatsch> | yeah |
2021-06-15 16:29:22 +0200 | <dminuoso> | Also, you can run tests from `cabal repl` if that helps |
2021-06-15 16:29:23 +0200 | <merijn> | Profpatsch: What does interactive mode mean? |
2021-06-15 16:29:31 +0200 | <Profpatsch> | ghci |
2021-06-15 16:29:42 +0200 | ikex | (~ash@user/ikex) |
2021-06-15 16:30:00 +0200 | <Profpatsch> | Maybe I should just run them in ghci |
2021-06-15 16:30:01 +0200 | <dminuoso> | Oh, I see. You want it to run through ghci to avoid the slower compilation process from building a binary? :p |
2021-06-15 16:30:09 +0200 | Tritlo | tritlo |
2021-06-15 16:30:11 +0200 | <dminuoso> | `cabal repl` is your friend. |
2021-06-15 16:30:13 +0200 | <sclv> | i'd actually want this feature too -- for a Work Project not only is linking tests slow, but on macos in particular it actually fails because too many symbols for stupid apple linkerr |
2021-06-15 16:30:25 +0200 | hendursaga | (~weechat@user/hendursaga) (Remote host closed the connection) |
2021-06-15 16:30:33 +0200 | <sclv> | running in ghci is feasible of course, but less convenieent |
2021-06-15 16:31:02 +0200 | _73`` | (~user@pool-96-252-123-136.bstnma.fios.verizon.net) (Remote host closed the connection) |
2021-06-15 16:31:02 +0200 | <Profpatsch> | dminuoso: is there a way to automate `cabal repl` short of just piping text to stdin? |
2021-06-15 16:31:40 +0200 | <sclv> | oh btw while i'm here is there a pexpect/pxssh library alike for haskell i can use out of the box? |
2021-06-15 16:31:56 +0200 | <dminuoso> | Mmm, a `cabal run --ghci` doesnt sound unreasonable, honestly |
2021-06-15 16:32:01 +0200 | ddellacosta | (~ddellacos@83.143.246.104) |
2021-06-15 16:32:24 +0200 | <Profpatsch> | I guess what I want to do is have something like a ghci start as a service and my test suite just executing symbols in it |
2021-06-15 16:32:27 +0200 | <sclv> | need to drive a bunch of concurrent ssh sessions from haskell and not looking forward to doing all the grotty bits myself directly on top of system.process |
2021-06-15 16:32:29 +0200 | <dminuoso> | Profpatsch: You can use ghci |
2021-06-15 16:32:31 +0200 | <merijn> | Profpatsch: You can just do "cabal repl test:test-name" ? |
2021-06-15 16:32:32 +0200 | <dminuoso> | err ghcid |
2021-06-15 16:32:38 +0200 | <dminuoso> | ghcid can then call `cabal repl` |
2021-06-15 16:32:42 +0200 | <dminuoso> | and invoke your test suite |
2021-06-15 16:32:48 +0200 | <Profpatsch> | hmm |
2021-06-15 16:33:44 +0200 | tritlo | Falla-Matti |
2021-06-15 16:34:13 +0200 | Falla-Matti | tritlo |
2021-06-15 16:34:25 +0200 | pavonia | (~user@user/siracusa) |
2021-06-15 16:35:04 +0200 | hendursaga | (~weechat@user/hendursaga) |
2021-06-15 16:35:40 +0200 | <dminuoso> | Does runghc use the bytecode interpreter? |
2021-06-15 16:37:12 +0200 | ddellacosta | (~ddellacos@83.143.246.104) (Ping timeout: 268 seconds) |
2021-06-15 16:37:12 +0200 | <merijn> | I think si |
2021-06-15 16:37:37 +0200 | <geekosaur> | yes |
2021-06-15 16:38:09 +0200 | larkfisherman | (~larkfishe@217.75.204.126) |
2021-06-15 16:42:47 +0200 | <dminuoso> | There'd have to be a bit of engineering. For starters runghc would need response file support. |
2021-06-15 16:42:48 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
2021-06-15 16:43:20 +0200 | azeem | (~azeem@176.201.22.245) (Ping timeout: 265 seconds) |
2021-06-15 16:45:12 +0200 | Guest91 | (~Guest91@p200300f4c70f24004558d010706c3ebd.dip0.t-ipconnect.de) |
2021-06-15 16:45:20 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-15 16:45:39 +0200 | Guest91 | (~Guest91@p200300f4c70f24004558d010706c3ebd.dip0.t-ipconnect.de) (Client Quit) |
2021-06-15 16:45:54 +0200 | dunkeln | (~dunkeln@94.129.65.28) |
2021-06-15 16:45:55 +0200 | _73 | (~user@pool-96-252-123-136.bstnma.fios.verizon.net) |
2021-06-15 16:47:28 +0200 | fef | (~thedawn@user/thedawn) (Ping timeout: 252 seconds) |
2021-06-15 16:47:51 +0200 | fishfinger | (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net) |
2021-06-15 16:49:26 +0200 | chexum | (~chexum@gateway/tor-sasl/chexum) (Quit: No Ping reply in 180 seconds.) |
2021-06-15 16:49:37 +0200 | chexum | (~chexum@gateway/tor-sasl/chexum) |
2021-06-15 16:50:10 +0200 | azeem | (~azeem@176.201.22.245) |
2021-06-15 16:50:29 +0200 | fiddlerwoaroof | (~fiddlerwo@user/fiddlerwoaroof) (Quit: Gone.) |
2021-06-15 16:51:34 +0200 | kayprish | (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Remote host closed the connection) |
2021-06-15 16:51:51 +0200 | fiddlerwoaroof | (~fiddlerwo@user/fiddlerwoaroof) |
2021-06-15 16:53:49 +0200 | <siraben> | given a parse tree by cmark (for markdown parsing), how can I get all the list items? |
2021-06-15 16:54:02 +0200 | fef | (~thedawn@user/thedawn) |
2021-06-15 16:54:03 +0200 | <siraben> | is this something suitable for lens? I'm trying recursion schemes right now and it seems awkward to express as a catamorphism |
2021-06-15 16:55:07 +0200 | ef | (~thedawn@user/thedawn) |
2021-06-15 16:55:08 +0200 | ef | (~thedawn@user/thedawn) (Client Quit) |
2021-06-15 16:55:43 +0200 | fendor_ | fendor |
2021-06-15 16:55:45 +0200 | <c_wraith> | how do you want nested lists to be handled? |
2021-06-15 16:56:01 +0200 | _73 | (~user@pool-96-252-123-136.bstnma.fios.verizon.net) (ERC (IRC client for Emacs 27.2)) |
2021-06-15 16:56:09 +0200 | <siraben> | c_wraith: assume no nested lists |
2021-06-15 16:56:43 +0200 | <c_wraith> | that sounds like an implausible assumption, but ok. :P |
2021-06-15 16:56:48 +0200 | <siraben> | there's a flat list of items somewhere in the markdown file, and I want to get the items in order |
2021-06-15 16:57:02 +0200 | <siraben> | c_wraith: the list is https://github.com/siraben/freenode-exodus/ :P |
2021-06-15 16:57:19 +0200 | <siraben> | currently I have an ad-hoc parser for it which doesn't handle locales well |
2021-06-15 16:57:21 +0200 | <c_wraith> | This is a thing you can do with lenses, but you need them to be written |
2021-06-15 16:57:25 +0200 | <sshine> | siraben, "I'm trying recursion schemes right now and it seems awkward to express as a catamorphism" -- they should put that in the reviews. |
2021-06-15 16:58:18 +0200 | <siraben> | sshine: haha, the difficulty is that as I'm going down the node tree I'm looking for different types of nodes, first a LIST, then an ITEM |
2021-06-15 16:58:28 +0200 | fef | (~thedawn@user/thedawn) (Ping timeout: 252 seconds) |
2021-06-15 16:58:44 +0200 | <sshine> | yea :) |
2021-06-15 16:58:50 +0200 | <sshine> | paramorphism |
2021-06-15 16:59:29 +0200 | <sshine> | https://hackage.haskell.org/package/recursion-schemes-5.2.2.1/docs/Data-Functor-Foldable.html#v:para |
2021-06-15 16:59:51 +0200 | muto | (~muto@d75-159-225-7.abhsia.telus.net) |
2021-06-15 17:00:10 +0200 | fluffyballoon | (~fluffybal@2620:72:0:6480::10f7) (Quit: Client closed) |
2021-06-15 17:00:43 +0200 | larkfisherman | (~larkfishe@217.75.204.126) (Remote host closed the connection) |
2021-06-15 17:02:14 +0200 | <sshine> | I had this idea that recursion-schemes would be neat if you wrote your original tree as a fixed point type, and then wrote a whole lot of convenience patterns and values so you get an unwrapped experience, too. then you'd be able to have nice patterns when doing explicit matching/building, and still some generic traversal. |
2021-06-15 17:02:55 +0200 | <c_wraith> | yeah, I've done that. it ends up with a lot of boilerplate if you're not using it a *lot* |
2021-06-15 17:02:58 +0200 | <sshine> | my one attempt with data-fix made me a little tired, though. >_< |
2021-06-15 17:03:07 +0200 | <siraben> | Oh god now I'm reading into unicode normalization |
2021-06-15 17:03:14 +0200 | <siraben> | all I wanted was to sort ö nicely 😭 |
2021-06-15 17:03:18 +0200 | abrar_ | (~abrar@static-108-2-152-54.phlapa.fios.verizon.net) (Ping timeout: 264 seconds) |
2021-06-15 17:03:36 +0200 | <c_wraith> | well, the good thing is you can just let text-icu handle all of that for you |
2021-06-15 17:04:27 +0200 | <sshine> | siraben, the cmark/cmark-gfm AST doesn't provide an ordered list? |
2021-06-15 17:04:45 +0200 | <siraben> | c_wraith: I want to sort strings but that requires me to talk about normalization and locales |
2021-06-15 17:04:57 +0200 | nschoe | (~quassel@178.251.84.79) (Ping timeout: 268 seconds) |
2021-06-15 17:05:12 +0200 | spicyrice | (~ubuntu@2600:1f11:52a:4400:ada3:7fcd:e4c0:53a1) |
2021-06-15 17:05:18 +0200 | <sshine> | siraben, just sort on casefold? ;-D |
2021-06-15 17:05:18 +0200 | azeem | (~azeem@176.201.22.245) (Read error: Connection reset by peer) |
2021-06-15 17:05:40 +0200 | <sshine> | squint :: Char -> Char |
2021-06-15 17:05:46 +0200 | ddellacosta | (~ddellacos@86.106.121.177) |
2021-06-15 17:05:59 +0200 | <siraben> | hmm, ok, I'll just continue with the naïve sort in Data.List, not ideal but this is a silly little list that doesn't need other dependencies haha |
2021-06-15 17:06:04 +0200 | azeem | (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) |
2021-06-15 17:06:49 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2021-06-15 17:08:31 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) |
2021-06-15 17:10:09 +0200 | Sgeo_ | (~Sgeo@ool-18b9875e.dyn.optonline.net) |
2021-06-15 17:10:18 +0200 | ddellacosta | (~ddellacos@86.106.121.177) (Ping timeout: 240 seconds) |
2021-06-15 17:10:20 +0200 | aplainze1akind | (~johndoe@captainludd.powered.by.lunarbnc.net) |
2021-06-15 17:10:24 +0200 | listofoptions_ | (~haha@nat.syssrc.com) |
2021-06-15 17:10:47 +0200 | gentauro | (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
2021-06-15 17:11:12 +0200 | gentauro | (~gentauro@user/gentauro) |
2021-06-15 17:11:35 +0200 | ixlun- | (~matthew@213.205.241.86) |
2021-06-15 17:12:40 +0200 | berberman | (~berberman@user/berberman) |
2021-06-15 17:12:42 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) (Ping timeout: 240 seconds) |
2021-06-15 17:13:17 +0200 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2021-06-15 17:13:34 +0200 | reumeth2 | (~reumeth@user/reumeth) |
2021-06-15 17:13:39 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-06-15 17:13:43 +0200 | pbrisbin_ | (~patrick@pool-72-92-38-164.phlapa.fios.verizon.net) |
2021-06-15 17:13:43 +0200 | ikex1 | (~ash@user/ikex) |
2021-06-15 17:14:00 +0200 | muto_ | (~muto@d75-159-225-7.abhsia.telus.net) |
2021-06-15 17:14:13 +0200 | shapr` | (~user@pool-108-28-144-11.washdc.fios.verizon.net) |
2021-06-15 17:15:02 +0200 | <c_wraith> | siraben: for what it's worth, use Normal Form C unless you have a specific requirement to use something else |
2021-06-15 17:15:03 +0200 | berberman_ | (~berberman@user/berberman) (Ping timeout: 265 seconds) |
2021-06-15 17:15:03 +0200 | ixlun | (~matthew@213.205.241.86) (Ping timeout: 265 seconds) |
2021-06-15 17:15:03 +0200 | spicyrice | (~ubuntu@2600:1f11:52a:4400:ada3:7fcd:e4c0:53a1) (Ping timeout: 265 seconds) |
2021-06-15 17:15:03 +0200 | ikex | (~ash@user/ikex) (Ping timeout: 265 seconds) |
2021-06-15 17:15:03 +0200 | pbrisbin | (~patrick@pool-72-92-38-164.phlapa.fios.verizon.net) (Ping timeout: 265 seconds) |
2021-06-15 17:15:03 +0200 | muto | (~muto@d75-159-225-7.abhsia.telus.net) (Ping timeout: 265 seconds) |
2021-06-15 17:15:03 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Ping timeout: 265 seconds) |
2021-06-15 17:15:03 +0200 | Sgeo | (~Sgeo@user/sgeo) (Ping timeout: 265 seconds) |
2021-06-15 17:15:03 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Ping timeout: 265 seconds) |
2021-06-15 17:15:03 +0200 | listofoptions | (~haha@nat.syssrc.com) (Ping timeout: 265 seconds) |
2021-06-15 17:15:03 +0200 | alx741 | (~alx741@186.178.108.66) (Ping timeout: 265 seconds) |
2021-06-15 17:15:03 +0200 | shapr | (~user@pool-108-28-144-11.washdc.fios.verizon.net) (Ping timeout: 265 seconds) |
2021-06-15 17:15:03 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 265 seconds) |
2021-06-15 17:15:04 +0200 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) (Ping timeout: 265 seconds) |
2021-06-15 17:15:04 +0200 | zebrag | (~chris@user/zebrag) (Ping timeout: 265 seconds) |
2021-06-15 17:15:04 +0200 | reumeth | (~reumeth@user/reumeth) (Ping timeout: 265 seconds) |
2021-06-15 17:15:11 +0200 | shapr` | shapr |
2021-06-15 17:15:14 +0200 | LukeHoer_ | (~LukeHoers@user/lukehoersten) |
2021-06-15 17:15:25 +0200 | spicyrice | (~ubuntu@2600:1f11:52a:4400:ada3:7fcd:e4c0:53a1) |
2021-06-15 17:15:28 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-06-15 17:15:41 +0200 | zebrag | (~chris@user/zebrag) |
2021-06-15 17:16:35 +0200 | alx741 | (~alx741@186.178.108.66) |
2021-06-15 17:17:39 +0200 | spicyrice | (~ubuntu@2600:1f11:52a:4400:ada3:7fcd:e4c0:53a1) (Client Quit) |
2021-06-15 17:17:53 +0200 | spicyrice | (~ubuntu@2600:1f11:52a:4400:ada3:7fcd:e4c0:53a1) |
2021-06-15 17:18:26 +0200 | allbery_b | geekosaur |
2021-06-15 17:18:43 +0200 | NanoC | (~NanoCoast@p200300e127264d0058cc7c623629969e.dip0.t-ipconnect.de) (Quit: Leaving) |
2021-06-15 17:19:03 +0200 | shredder | (~shredder@user/shredder) (Remote host closed the connection) |
2021-06-15 17:19:06 +0200 | spicyrice | (~ubuntu@2600:1f11:52a:4400:ada3:7fcd:e4c0:53a1) (Client Quit) |
2021-06-15 17:19:21 +0200 | spicyrice | (~ubuntu@2600:1f11:52a:4400:ada3:7fcd:e4c0:53a1) |
2021-06-15 17:20:58 +0200 | neceve | (~quassel@2a02:c7f:607e:d600:a95a:ecd2:e57a:3130) |
2021-06-15 17:21:28 +0200 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.1) |
2021-06-15 17:23:30 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 240 seconds) |
2021-06-15 17:25:00 +0200 | <Profpatsch> | Why is it executable and library but Test-Suite |
2021-06-15 17:25:05 +0200 | <Profpatsch> | can we finally burn this format to the ground |
2021-06-15 17:26:12 +0200 | derelict | (~derelict@user/derelict) (Quit: WeeChat 3.1) |
2021-06-15 17:26:28 +0200 | zmt00 | (~zmt00@user/zmt00) |
2021-06-15 17:26:37 +0200 | <tomsmeding> | Profpatsch: at least the capitals are unnecessary; test-suite also works |
2021-06-15 17:26:41 +0200 | learner-monad | (~ehanneken@user/learner-monad) |
2021-06-15 17:26:56 +0200 | <tomsmeding> | and also grammatically, it's a "test suite" not a testsuite, so it makes sense kindof :p |
2021-06-15 17:27:22 +0200 | <tomsmeding> | there's also build-depends and such |
2021-06-15 17:27:36 +0200 | derelict | (~derelict@user/derelict) |
2021-06-15 17:30:24 +0200 | cstml | (cstml@tilde.club) (Quit: WeeChat 3.1) |
2021-06-15 17:30:24 +0200 | ddb | (~ddb@2607:5300:61:c67::196) (Quit: WeeChat 3.0) |
2021-06-15 17:31:49 +0200 | benin036 | (~benin@183.82.204.171) (Quit: The Lounge - https://thelounge.chat) |
2021-06-15 17:36:03 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-06-15 17:38:36 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
2021-06-15 17:38:56 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-15 17:40:51 +0200 | fishfinger | (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net) (Ping timeout: 265 seconds) |
2021-06-15 17:41:54 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection) |
2021-06-15 17:42:08 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:7d76:d843:3eda:de44) (Quit: WeeChat 2.8) |
2021-06-15 17:43:15 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
2021-06-15 17:43:26 +0200 | sekun | (~sekun@180.190.156.133) |
2021-06-15 17:43:36 +0200 | lbseale | (~lbseale@user/ep1ctetus) |
2021-06-15 17:44:01 +0200 | <monochrom> | type-class |
2021-06-15 17:44:49 +0200 | <monochrom> | But why the proliferation of such hyperboles tho |
2021-06-15 17:44:59 +0200 | sayola | (~vekto@dslc-082-082-145-205.pools.arcor-ip.net) |
2021-06-15 17:45:21 +0200 | <monochrom> | If someone can't find a parser library they want, they say "I THREAT to create a library I need" |
2021-06-15 17:45:46 +0200 | <monochrom> | If someone doesn't like a spelling, they say "can we burn this format to ground" |
2021-06-15 17:46:54 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) |
2021-06-15 17:49:09 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection) |
2021-06-15 17:49:21 +0200 | sekun | (~sekun@180.190.156.133) (Ping timeout: 268 seconds) |
2021-06-15 17:49:48 +0200 | fef | (~thedawn@user/thedawn) |
2021-06-15 17:50:37 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
2021-06-15 17:50:37 +0200 | ixlun- | (~matthew@213.205.241.86) (Read error: Connection reset by peer) |
2021-06-15 17:54:55 +0200 | fizbin | (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) |
2021-06-15 17:55:06 +0200 | spicyrice | (~ubuntu@2600:1f11:52a:4400:ada3:7fcd:e4c0:53a1) (Quit: WeeChat 3.2) |
2021-06-15 17:55:37 +0200 | jao | (jao@gateway/vpn/protonvpn/jao) |
2021-06-15 17:57:26 +0200 | LukeHoer_ | (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-06-15 17:57:34 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2021-06-15 17:57:44 +0200 | xff0x | (~xff0x@2001:1a81:523f:a800:1801:e3aa:b378:ead6) (Ping timeout: 244 seconds) |
2021-06-15 17:58:32 +0200 | xff0x | (~xff0x@2001:1a81:523f:a800:1537:97ed:971:4698) |
2021-06-15 17:59:20 +0200 | ubert | (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) (Remote host closed the connection) |
2021-06-15 18:00:27 +0200 | ikex1 | (~ash@user/ikex) (Ping timeout: 268 seconds) |
2021-06-15 18:00:30 +0200 | nsilv1 | (~nsilv@212.103.198.210) (Quit: WeeChat 3.0.1) |
2021-06-15 18:01:25 +0200 | <Profpatsch> | watch me generate a cabal file, with all transitive packages from my nix closure in scope |
2021-06-15 18:01:33 +0200 | <Profpatsch> | So that I never have to add `containers` to my cabal files ever again |
2021-06-15 18:02:22 +0200 | <Profpatsch> | and curse the weird syntax with no editor support, the strange indentation, the common stanzas not supported by hie |
2021-06-15 18:03:02 +0200 | [exa] | grabs popcorn |
2021-06-15 18:04:02 +0200 | <c_wraith> | So let's guess on how it's going to break first. Some transitive dependency on monads-tf? Or is that not an issue that happens anymore these days? |
2021-06-15 18:07:20 +0200 | vicfred | (~vicfred@user/vicfred) |
2021-06-15 18:08:08 +0200 | Scotty_Trees | (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) |
2021-06-15 18:08:20 +0200 | <c_wraith> | in theory there could be an issue with multiple versions of the same package, but I don't think that will ever happen in practice. As much as all the tools are intended to not break in that case, no solvers will intentionally do it |
2021-06-15 18:09:03 +0200 | chele | (~chele@user/chele) (Remote host closed the connection) |
2021-06-15 18:09:37 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
2021-06-15 18:09:39 +0200 | <Boarders> | I am getting a build error with cabal that says: |
2021-06-15 18:09:39 +0200 | <Boarders> | rejecting: bytestring-0.11.1.0 (conflict: binary => |
2021-06-15 18:09:39 +0200 | <Boarders> | bytestring==0.10.12.1/installed-0.10.12.1) |
2021-06-15 18:10:06 +0200 | <Boarders> | does anyone know why that might be the case since binary doesn't have those bounds on bytestring |
2021-06-15 18:10:12 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-15 18:11:15 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Client Quit) |
2021-06-15 18:11:18 +0200 | <monochrom> | No, it is something else that requests bytestring-0.11 |
2021-06-15 18:11:49 +0200 | <monochrom> | but you already have bytestring-0.10.12.1 that comes with GHC. |
2021-06-15 18:12:30 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection) |
2021-06-15 18:12:49 +0200 | <Boarders> | I am trying to ask for bytestring-0.11.1.0 with ghc-9.0.1 |
2021-06-15 18:12:55 +0200 | <Boarders> | is there an issue with that? |
2021-06-15 18:13:58 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
2021-06-15 18:14:23 +0200 | <Boarders> | if so how are you meant to figure out the correct version of bytestring for a given GHC version? |
2021-06-15 18:14:47 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds) |
2021-06-15 18:15:18 +0200 | ddellacosta | (~ddellacos@89.45.224.251) |
2021-06-15 18:15:25 +0200 | spicyrice | (~ubuntu@2600:1f11:52a:4400:ccbc:2b96:cabe:414b) |
2021-06-15 18:15:25 +0200 | <maerwald> | Boarders: https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/libraries/version-history |
2021-06-15 18:15:45 +0200 | <Boarders> | Actually I get the error even if I just do: |
2021-06-15 18:15:45 +0200 | <Boarders> | cabal install --with-compiler=ghc-9.0.1 --lib bytestrinng |
2021-06-15 18:15:50 +0200 | <Boarders> | what gives with that? |
2021-06-15 18:16:54 +0200 | spicyrice | (~ubuntu@2600:1f11:52a:4400:ccbc:2b96:cabe:414b) (Client Quit) |
2021-06-15 18:17:03 +0200 | pe200012_ | (~pe200012@120.236.161.38) (Ping timeout: 244 seconds) |
2021-06-15 18:17:10 +0200 | spicyrice | (~ubuntu@2600:1f11:52a:4400:ccbc:2b96:cabe:414b) |
2021-06-15 18:18:00 +0200 | spicyrice | (~ubuntu@2600:1f11:52a:4400:ccbc:2b96:cabe:414b) (Client Quit) |
2021-06-15 18:19:30 +0200 | ddellacosta | (~ddellacos@89.45.224.251) (Ping timeout: 240 seconds) |
2021-06-15 18:19:43 +0200 | spicyrice | (~ubuntu@2600:1f11:52a:4400:ccbc:2b96:cabe:414b) |
2021-06-15 18:21:03 +0200 | <Boarders> | as far as I can tell, if the cabal store contains a newer version of bytestring than the boot library then that completely messes up installation |
2021-06-15 18:22:25 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-06-15 18:27:08 +0200 | fef | (~thedawn@user/thedawn) (Remote host closed the connection) |
2021-06-15 18:27:32 +0200 | <Boarders> | I am trying to build with the llvm backend on a new machine and I get a bunch of errors like: |
2021-06-15 18:27:32 +0200 | <Boarders> | undefined reference to 'bytestringzm0zi10zi12zi0_DataziByteStringziInternal_PS_con_info' |
2021-06-15 18:27:57 +0200 | <Boarders> | I think that is probably something to do with not having something related to libc, anyone know how to fix it? |
2021-06-15 18:28:07 +0200 | sekun | (~sekun@180.190.156.133) |
2021-06-15 18:28:14 +0200 | <Boarders> | Thanks maerwald btw! |
2021-06-15 18:28:51 +0200 | fluffyballoon | (~fluffybal@2620:72:0:6480::10f7) |
2021-06-15 18:29:19 +0200 | altern | (~altern@altern.corbina.com.ua) |
2021-06-15 18:30:25 +0200 | <[exa]> | Boarders: did you carry any of the binaries from the older machine? this sounds fishy |
2021-06-15 18:32:33 +0200 | sekun | (~sekun@180.190.156.133) (Ping timeout: 244 seconds) |
2021-06-15 18:32:58 +0200 | Topsi | (~Tobias@dyndsl-037-138-064-101.ewe-ip-backbone.de) |
2021-06-15 18:33:05 +0200 | <[exa]> | btw bytestringzm0zi10... doesn't sound like from libc at all |
2021-06-15 18:36:42 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2021-06-15 18:36:50 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) (Remote host closed the connection) |
2021-06-15 18:37:06 +0200 | arjun | (~user@user/arjun) |
2021-06-15 18:37:13 +0200 | <altern> | johnw_, Hi John! I want to contribute to gitlib, but I rather lack expertise. Would you be able to guide me? If you have time and inclination of course. |
2021-06-15 18:37:27 +0200 | <arjun> | SUPER OVERLOADED QUESTION |
2021-06-15 18:37:35 +0200 | <arjun> | lenses. yay or nay ? |
2021-06-15 18:37:38 +0200 | <Boarders> | @[exa]: ah thank you, I was being dumb. An old object file was lying around so GHC wasn't re-compiling :) |
2021-06-15 18:37:38 +0200 | <lambdabot> | Unknown command, try @list |
2021-06-15 18:37:55 +0200 | xaltsc | (~xaltsc@user/xaltsc) |
2021-06-15 18:42:34 +0200 | warnz | (~warnz@2600:1700:77c0:5610:800b:6e01:97af:a956) (Remote host closed the connection) |
2021-06-15 18:42:46 +0200 | <cdsmith> | Ugh... I need something like generalized newtype deriving, but for a GADT with a constraint in the context. :( |
2021-06-15 18:47:14 +0200 | <monochrom> | Since GADT is very unlike newtype, I don't know what "like" means, I only know what "unlike" means. |
2021-06-15 18:47:34 +0200 | <monochrom> | But there is standalone deriving. |
2021-06-15 18:48:02 +0200 | <monochrom> | err actually I don't know whehter standalone deriving works for GADT. |
2021-06-15 18:48:11 +0200 | <tomsmeding> | it does |
2021-06-15 18:48:19 +0200 | <tomsmeding> | or, at least sometimes it does |
2021-06-15 18:48:19 +0200 | <monochrom> | Nice. |
2021-06-15 18:48:40 +0200 | <monochrom> | I kind of have some memory of someone else suggesting it. |
2021-06-15 18:48:42 +0200 | <tomsmeding> | I regularly use it to derive Show for some GADT, each time wondering why a plain 'deriving (Show)' can't do the same |
2021-06-15 18:51:01 +0200 | qbt | (~edun@user/edun) (Ping timeout: 268 seconds) |
2021-06-15 18:52:24 +0200 | ddellacosta | (~ddellacos@89.45.224.34) |
2021-06-15 18:52:34 +0200 | fizbin | (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) (Remote host closed the connection) |
2021-06-15 18:53:08 +0200 | chexum | (~chexum@gateway/tor-sasl/chexum) (Remote host closed the connection) |
2021-06-15 18:55:20 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
2021-06-15 18:57:18 +0200 | ddellacosta | (~ddellacos@89.45.224.34) (Ping timeout: 264 seconds) |
2021-06-15 18:58:03 +0200 | warnz | (~warnz@2600:1700:77c0:5610:800b:6e01:97af:a956) |
2021-06-15 18:59:48 +0200 | neceve | (~quassel@2a02:c7f:607e:d600:a95a:ecd2:e57a:3130) (Ping timeout: 272 seconds) |
2021-06-15 18:59:56 +0200 | killsushi | (~killsushi@user/killsushi) (Ping timeout: 244 seconds) |
2021-06-15 19:02:18 +0200 | warnz | (~warnz@2600:1700:77c0:5610:800b:6e01:97af:a956) (Ping timeout: 240 seconds) |
2021-06-15 19:02:24 +0200 | <cdsmith> | What "like" means here is that I have a GADT like this: data MockT m a where MockT :: MonadIO m => ReaderT (MVar Foo) m a -> MockT m a. Now I'd like to derive most of the instances on ReaderT for MockT. MockT is almost a newtype, but cannot be because it needs the MonadIO constraint. |
2021-06-15 19:03:36 +0200 | <cdsmith> | So there are 14 instances that are currently derived, but I need to write by hand to add that constraint. |
2021-06-15 19:03:58 +0200 | <cdsmith> | I can write them... I'm just a bit annoyed at having to do so. :) |
2021-06-15 19:05:57 +0200 | memowe | (~memowe@ip-84-118-82-47.unity-media.net) |
2021-06-15 19:06:09 +0200 | mrd | (~mrd@45.61.147.211) |
2021-06-15 19:06:26 +0200 | dunkeln | (~dunkeln@94.129.65.28) (Ping timeout: 268 seconds) |
2021-06-15 19:06:30 +0200 | mrd | (~mrd@45.61.147.211) () |
2021-06-15 19:06:36 +0200 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection) |
2021-06-15 19:07:40 +0200 | memowe | (~memowe@ip-84-118-82-47.unity-media.net) (Client Quit) |
2021-06-15 19:07:50 +0200 | tritlo | (sid58727@id-58727.stonehaven.irccloud.com) (Changing host) |
2021-06-15 19:07:50 +0200 | tritlo | (sid58727@user/tritlo) |
2021-06-15 19:09:39 +0200 | zeenk | (~zeenk@188.26.30.39) |
2021-06-15 19:09:51 +0200 | teaSlurper | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-06-15 19:10:46 +0200 | fizbin | (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) |
2021-06-15 19:11:25 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-06-15 19:14:09 +0200 | wei2912 | (~wei2912@112.199.250.21) (Quit: Lost terminal) |
2021-06-15 19:14:49 +0200 | teaSlurper | (~chris@81.96.113.213) |
2021-06-15 19:15:06 +0200 | fizbin | (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) (Ping timeout: 240 seconds) |
2021-06-15 19:15:25 +0200 | <tritlo> | Boarders: that's a known bug in when using bytestring and some other library using the same ffi function, but at a different type |
2021-06-15 19:16:17 +0200 | <tritlo> | At least that's what it was when I ran into a similar thing 2 years ago using the LLVM backend... |
2021-06-15 19:18:55 +0200 | ddellacosta | (~ddellacos@89.46.62.21) |
2021-06-15 19:19:27 +0200 | teaSlurper | (~chris@81.96.113.213) (Ping timeout: 265 seconds) |
2021-06-15 19:19:48 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) |
2021-06-15 19:20:30 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-15 19:22:05 +0200 | dunkeln | (~dunkeln@94.129.65.28) |
2021-06-15 19:22:45 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
2021-06-15 19:23:17 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) |
2021-06-15 19:25:12 +0200 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 3.1) |
2021-06-15 19:27:43 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-15 19:28:38 +0200 | azeem | (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) (Ping timeout: 268 seconds) |
2021-06-15 19:29:01 +0200 | jakalx | (~jakalx@base.jakalx.net) () |
2021-06-15 19:30:15 +0200 | azeem | (~azeem@176.201.22.245) |
2021-06-15 19:33:41 +0200 | fef | (~thedawn@user/thedawn) |
2021-06-15 19:36:45 +0200 | azeem | (~azeem@176.201.22.245) (Read error: Connection reset by peer) |
2021-06-15 19:37:40 +0200 | Guest21 | (~Guest21@46.204.1.2.dsl.dynamic.t-mobile.pl) |
2021-06-15 19:37:58 +0200 | azeem | (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) |
2021-06-15 19:38:12 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-15 19:42:06 +0200 | Guest21 | (~Guest21@46.204.1.2.dsl.dynamic.t-mobile.pl) (Client Quit) |
2021-06-15 19:42:13 +0200 | MatrixTravelerbo | (~voyagert2@2001:470:69fc:105::22) (Quit: Client limit exceeded: 10000) |
2021-06-15 19:44:33 +0200 | ac | (~aloiscoch@2001:470:69fc:105::65) (Quit: Client limit exceeded: 10000) |
2021-06-15 19:46:12 +0200 | Wonner | (~Wonner@h77.53.21.98.static.ip.windstream.net) |
2021-06-15 19:46:18 +0200 | BosonCollider | (~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 240 seconds) |
2021-06-15 19:47:08 +0200 | killsushi | (~killsushi@2607:fea8:3d40:767:a826:23b7:521c:2d11) |
2021-06-15 19:47:08 +0200 | killsushi | (~killsushi@2607:fea8:3d40:767:a826:23b7:521c:2d11) (Changing host) |
2021-06-15 19:47:08 +0200 | killsushi | (~killsushi@user/killsushi) |
2021-06-15 19:48:40 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-06-15 19:49:29 +0200 | Topsi1 | (~Tobias@dyndsl-037-138-064-101.ewe-ip-backbone.de) |
2021-06-15 19:50:03 +0200 | BosonCollider | (~olofs@90-227-86-119-no542.tbcn.telia.com) |
2021-06-15 19:53:03 +0200 | Topsi | (~Tobias@dyndsl-037-138-064-101.ewe-ip-backbone.de) (Ping timeout: 272 seconds) |
2021-06-15 19:53:40 +0200 | <Boarders> | tritlo: ahh thanks, it was something to do with the store having two copies of bytestring in it :| |
2021-06-15 19:53:40 +0200 | ac | (~aloiscoch@2001:470:69fc:105::65) |
2021-06-15 19:53:40 +0200 | MatrixTravelerbo | (~voyagert2@2001:470:69fc:105::22) |
2021-06-15 19:54:59 +0200 | <arjun> | hi. i have a .md file and i'd like to read the file and parse the top optional yaml metadata if present |
2021-06-15 19:55:09 +0200 | <arjun> | ```md |
2021-06-15 19:55:15 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
2021-06-15 19:55:19 +0200 | chddr | (~Thunderbi@31.148.23.125) |
2021-06-15 19:55:28 +0200 | ptrcmd_ | ptrcmd |
2021-06-15 19:55:39 +0200 | <arjun> | --- |
2021-06-15 19:55:39 +0200 | <arjun> | title: "Sample Post" |
2021-06-15 19:55:40 +0200 | <arjun> | author: Me |
2021-06-15 19:55:40 +0200 | <arjun> | date: Jan 1, 2019 |
2021-06-15 19:55:42 +0200 | <arjun> | tags: [dope, site] |
2021-06-15 19:55:47 +0200 | <arjun> | description: My first blog post |
2021-06-15 19:55:50 +0200 | <arjun> | image: code.jpg |
2021-06-15 19:55:53 +0200 | <arjun> | --- |
2021-06-15 19:55:58 +0200 | <dminuoso> | cdsmith: Drop the constraint from the data type. |
2021-06-15 19:55:58 +0200 | <arjun> | # This is a test file |
2021-06-15 19:56:04 +0200 | <arjun> | ## to see if it works |
2021-06-15 19:56:11 +0200 | <arjun> | ``` |
2021-06-15 19:56:12 +0200 | <pragma-> | what in tarnation |
2021-06-15 19:56:15 +0200 | <Obo> | use https://paste.tomsmeding.com to paste code |
2021-06-15 19:56:17 +0200 | <arjun> | how would i go about it? |
2021-06-15 19:56:20 +0200 | <arjun> | thanks. |
2021-06-15 19:56:32 +0200 | warnz | (~warnz@2600:1700:77c0:5610:800b:6e01:97af:a956) |
2021-06-15 19:56:46 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 244 seconds) |
2021-06-15 19:56:55 +0200 | <monochrom> | I only know the broad answer "use the library part of pandoc". |
2021-06-15 19:57:05 +0200 | notzmv | (~zmv@user/notzmv) (Read error: Connection reset by peer) |
2021-06-15 19:57:44 +0200 | <arjun> | Obo: https://paste.tomsmeding.com/I9tE2bBu |
2021-06-15 19:58:02 +0200 | <arjun> | monochrom: i am actively trying to avoid pandoc : P |
2021-06-15 19:58:44 +0200 | <arjun> | i am using cmark for the md -> html conversion. but it doesn't parse the yaml meta at the top. so i'd have to preprocess it. |
2021-06-15 19:59:27 +0200 | notzmv | (~zmv@user/notzmv) |
2021-06-15 20:01:03 +0200 | peddie | (~peddie@2001:470:69fc:105::25d) (Quit: Client limit exceeded: 10000) |
2021-06-15 20:01:30 +0200 | ixlun | (~matthew@213.205.241.86) |
2021-06-15 20:03:38 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2021-06-15 20:06:35 +0200 | <cdsmith> | <dminuoso "Chris Smith: Drop the constraint"> Thanks, but the whole point of this is that I need the constraint. (Well, "need" is a strong word. I can hack something together with unsafePerformIO otherwise, but's pretty hacky.) |
2021-06-15 20:07:02 +0200 | <dminuoso> | That sounds to me like you're trying to be lazy. |
2021-06-15 20:07:25 +0200 | peddie | (~peddie@2001:470:69fc:105::25d) |
2021-06-15 20:07:34 +0200 | <dminuoso> | If your newtype has a MonadIO instance, why do you think you need this? |
2021-06-15 20:07:36 +0200 | cfricke | (~cfricke@user/cfricke) |
2021-06-15 20:08:00 +0200 | <dminuoso> | arjun: just use Data.List.break to split the lines into the header and the rest? |
2021-06-15 20:08:26 +0200 | Profpatsch | (~Profpatsc@static.88-198-193-255.clients.your-server.de) (WeeChat 3.1) |
2021-06-15 20:08:49 +0200 | <dminuoso> | naively it seems like you should be able to do something like: let ls = lines buf; (meta, rest) = break (isPrefixOf "```") (drop ls); in ... |
2021-06-15 20:09:39 +0200 | <arjun> | dminuoso: imma go try that, thanks |
2021-06-15 20:09:41 +0200 | <dminuoso> | Then you can hand off `drop 1 meta` to your YAML parser, and `rest` to whatever other part. |
2021-06-15 20:09:55 +0200 | <dminuoso> | or no, `init meta` |
2021-06-15 20:09:58 +0200 | SrPx | (sid108780@id-108780.highgate.irccloud.com) |
2021-06-15 20:10:08 +0200 | <davean> | cdsmith: putting the MonadIO constraint *in* the type has a number of potential issues |
2021-06-15 20:10:28 +0200 | <SrPx> | Hey, I haven't used IRC lately. Is this where everyone moved from FreeNode? Or are people using other tools like Discord? |
2021-06-15 20:10:30 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-15 20:10:44 +0200 | <monochrom> | Yes for the former. |
2021-06-15 20:10:47 +0200 | <dminuoso> | cdsmith: Also I dont think it actually buys you anything. |
2021-06-15 20:10:59 +0200 | <davean> | dminuoso: mechanically no, its strictly wrose to have it there |
2021-06-15 20:11:07 +0200 | <davean> | dminuoso: but people get "upset" about putting it on functions |
2021-06-15 20:11:07 +0200 | <dminuoso> | yup |
2021-06-15 20:11:17 +0200 | <davean> | until they make it work, and then realize why no one thinks its a good iea |
2021-06-15 20:11:24 +0200 | <davean> | Its wrong - semanticly |
2021-06-15 20:11:30 +0200 | maralorn | (~maralorn@2001:470:69fc:105::251) (Quit: Client limit exceeded: 10000) |
2021-06-15 20:11:38 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-06-15 20:11:38 +0200 | <dminuoso> | Indeed, it took me a long while to understand why constraints dont belong on data, they belong on functions. |
2021-06-15 20:11:41 +0200 | <davean> | it doesn't mean what you want it to mean |
2021-06-15 20:12:06 +0200 | maralorn | (~maralorn@2001:470:69fc:105::251) |
2021-06-15 20:13:21 +0200 | etherington | (~nagybogo@2a02:c7f:d425:9500:3ec0:37eb:211a:4131) (Quit: Client closed) |
2021-06-15 20:13:46 +0200 | <dminuoso> | davean: I think what this is, is a reminiscence of dependency injection at data instantiation time. |
2021-06-15 20:13:46 +0200 | Ariakenom | (~Ariakenom@2001:9b1:efb:fc00:c958:4e9b:6898:197c) |
2021-06-15 20:14:51 +0200 | cyphase | (~cyphase@c-73-222-119-252.hsd1.ca.comcast.net) (Read error: Connection reset by peer) |
2021-06-15 20:15:01 +0200 | <davean> | dminuoso: mmm, yah, I could see how someone could pattern match it from another language, but we have coherence |
2021-06-15 20:15:10 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-06-15 20:15:22 +0200 | altern | (~altern@altern.corbina.com.ua) (Ping timeout: 244 seconds) |
2021-06-15 20:16:01 +0200 | fizbin | (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) |
2021-06-15 20:16:05 +0200 | <cdsmith> | <dminuoso "If your newtype has a MonadIO in"> Actually, you may be write. Perhaps MonadIO should be in the instance context instead. |
2021-06-15 20:16:09 +0200 | siraben | (~siraben@user/siraben) (Quit: issued !quit command) |
2021-06-15 20:16:13 +0200 | <cdsmith> | Err, right, not write |
2021-06-15 20:16:16 +0200 | <tomsmeding> | just for completeness, the sentiment that one shouldn't put constraints in data doesn't hold when we start having existentials, right? |
2021-06-15 20:16:31 +0200 | <dminuoso> | tomsmeding: Right. |
2021-06-15 20:16:45 +0200 | tomsmeding | has been doing lots of that lately |
2021-06-15 20:17:07 +0200 | <cdsmith> | Yeah, this isn't a constraint on the type. It's a contraint of a GADT constructor |
2021-06-15 20:17:07 +0200 | azeem | (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) (Read error: Connection reset by peer) |
2021-06-15 20:17:08 +0200 | <davean> | tomsmeding: yah thats ENTIRELY different |
2021-06-15 20:17:10 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2021-06-15 20:17:18 +0200 | <dminuoso> | cdsmith: it is a constraint on the type. |
2021-06-15 20:17:21 +0200 | <davean> | tomsmeding: because thats actually a constraint |
2021-06-15 20:17:31 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-15 20:17:42 +0200 | siraben | (~siraben@user/siraben) |
2021-06-15 20:17:45 +0200 | azeem | (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) |
2021-06-15 20:17:49 +0200 | <tomsmeding> | davean: right; and including the dictionary in the data is actually the right thing to do there, operationally |
2021-06-15 20:18:02 +0200 | <dminuoso> | cdsmith: I invite you to just remove the MonadIO constraint from your data type definition, and perhaps switch to just a simple newtype. |
2021-06-15 20:18:10 +0200 | <cdsmith> | <dminuoso "Chris Smith: it is a constraint "> Not sure what you're referring to. I wrote: data MockT m a where MockT :: MonadIO m => ReaderT (MVar Foo) m a -> MockT m a |
2021-06-15 20:18:27 +0200 | <cdsmith> | which is clearly a GADT constraint, not a type constraint |
2021-06-15 20:18:29 +0200 | <zyklotomic> | dminuoso: "Secondly, minBound/maxBound should require a Proxy as argument like..." wait sorry late response, what does Proxy mean here |
2021-06-15 20:19:11 +0200 | <cdsmith> | In either case, though, I do think I can move the constraint to the instance, instead |
2021-06-15 20:19:12 +0200 | <monochrom> | This (read on for irony) is what's wrong with pronouns like this and it. |
2021-06-15 20:19:16 +0200 | <dminuoso> | cdsmith: Just write it as `newtype MockT m a = MockT { runMockT :: ReaderT (MVar Foo) m a }` |
2021-06-15 20:19:20 +0200 | <tomsmeding> | cdsmith: I think dminuoso is saying that it should, morally, be a type constraint; this regardless of the fact that it's currently a constraint on the GADT constructor |
2021-06-15 20:20:07 +0200 | <dminuoso> | cdsmith: You can then GND derive a MonadIO instance, and then you can liftIO freely inside `MockT m` as long as you have `MonadIO m` |
2021-06-15 20:20:18 +0200 | fizbin | (~fizbin@2601:8a:4080:1280:8c7e:5b3f:79d6:ec26) (Ping timeout: 240 seconds) |
2021-06-15 20:21:27 +0200 | <cdsmith> | <dminuoso "Chris Smith: You can then GND de"> Sure, I'm doing that. Again, the key part that was missing was moving the constraint to the instance. I can't just delete the constraint. |
2021-06-15 20:21:49 +0200 | <dminuoso> | Ah I see. |
2021-06-15 20:21:54 +0200 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 240 seconds) |
2021-06-15 20:22:17 +0200 | <dminuoso> | cdsmith: If you GND derive it, the constraints is there automatically. :) |
2021-06-15 20:22:36 +0200 | <dminuoso> | (Because the MonadIO instance from ReaderT brings it along) |
2021-06-15 20:22:49 +0200 | BosonCollider | (~olofs@90-227-86-119-no542.tbcn.telia.com) (Read error: No route to host) |
2021-06-15 20:23:01 +0200 | <dminuoso> | instance MonadIO m => MonadIO (ReaderT r m) |
2021-06-15 20:23:07 +0200 | BosonCollider | (~olofs@90-227-86-119-no542.tbcn.telia.com) |
2021-06-15 20:23:19 +0200 | dminuoso | loves newtype + GND |
2021-06-15 20:23:27 +0200 | ddellacosta | (~ddellacos@89.46.62.21) (Read error: Connection reset by peer) |
2021-06-15 20:23:39 +0200 | <cdsmith> | <dminuoso "Chris Smith: If you GND derive i"> Okay, I think we're just talking at cross purposes. Suppose there's some other class, like `class MonadFoo m where {...}`. I need `instance MonadIO m => MonadFoo (MockT m) where {...}`. I'd previously been trying to get THAT MonadIO constraint by adding it to the GADT, but it belongs on the instance |
2021-06-15 20:23:56 +0200 | ddellacosta | (~ddellacos@89.46.62.21) |
2021-06-15 20:24:25 +0200 | <dminuoso> | cdsmith: If all MonadFoo demands it, make it a superclass of it. |
2021-06-15 20:24:34 +0200 | <dminuoso> | i.e. `class MonadIO m => MonadFoo m where ...` |
2021-06-15 20:24:44 +0200 | <dminuoso> | Is this what you were looking for? |
2021-06-15 20:24:47 +0200 | <cdsmith> | Well, no. MonadFoo doesn't need it. The implementation for MockT does |
2021-06-15 20:25:01 +0200 | <dminuoso> | There is no implementation for MockT. |
2021-06-15 20:25:03 +0200 | rk04 | (~rk04@user/rajk) |
2021-06-15 20:25:10 +0200 | <dminuoso> | It's just a newtype, in what I showed you |
2021-06-15 20:25:20 +0200 | <cdsmith> | Sure there is. I'm confused... |
2021-06-15 20:25:23 +0200 | adam1 | (~adam@2a02:8388:1903:9500:96e6:f7ff:fe92:4825) |
2021-06-15 20:25:44 +0200 | shelle | (~shelle@ip-96-43-230-90.dsl.netrevolution.com) |
2021-06-15 20:25:45 +0200 | fef | (~thedawn@user/thedawn) (Quit: Leaving) |
2021-06-15 20:26:08 +0200 | <cdsmith> | Okay, I'm thoroughly confused by how we're miscommunicating, but adding MonadIO to the instance context should solve me problem, so I'm going to do that! :) |
2021-06-15 20:26:48 +0200 | Topsi | (~Tobias@dyndsl-037-138-064-101.ewe-ip-backbone.de) |
2021-06-15 20:27:19 +0200 | Topsi2 | (~Tobias@dyndsl-037-138-064-101.ewe-ip-backbone.de) |
2021-06-15 20:27:33 +0200 | <lyxia> | In the Haskell report, the grammar is explicitly ambiguous, with the "meta-rule" that let/if/lambdas "extend as far to the right as possible". Is the reason for this presentation to "make the spec simpler"? Because I find interpreting that rule to implement it correctly a bit of a headache... |
2021-06-15 20:28:18 +0200 | chddr | (~Thunderbi@31.148.23.125) (Ping timeout: 240 seconds) |
2021-06-15 20:28:33 +0200 | Guest36 | (~Guest36@149.11.92.90) |
2021-06-15 20:28:46 +0200 | adam1 | (~adam@2a02:8388:1903:9500:96e6:f7ff:fe92:4825) (Client Quit) |
2021-06-15 20:28:51 +0200 | <monochrom> | I was not on the committee, but I think yes. |
2021-06-15 20:29:06 +0200 | <lyxia> | I think I found an unambiguous grammar for it and honestly it doesn't look that terrible, so now I'm wondering why the less formal approach. |
2021-06-15 20:29:07 +0200 | Topsi1 | (~Tobias@dyndsl-037-138-064-101.ewe-ip-backbone.de) (Ping timeout: 244 seconds) |
2021-06-15 20:29:45 +0200 | pbrisbin_ | (~patrick@pool-72-92-38-164.phlapa.fios.verizon.net) (Quit: WeeChat 3.1) |
2021-06-15 20:30:00 +0200 | pbrisbin | (~patrick@pool-72-92-38-164.phlapa.fios.verizon.net) |
2021-06-15 20:30:57 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-15 20:31:21 +0200 | <cdsmith> | <lyxia "I think I found an unambiguous g"> Sounds interesting. I hope you share the result. If it is better, it might be good to incorporate into a future Haskell Report! |
2021-06-15 20:31:23 +0200 | Topsi | (~Tobias@dyndsl-037-138-064-101.ewe-ip-backbone.de) (Ping timeout: 244 seconds) |
2021-06-15 20:32:01 +0200 | <cdsmith> | (should one ever exist... but that's a different point) |
2021-06-15 20:32:09 +0200 | <tomsmeding> | dminuoso: "the implementation for MockT" being "the implementation of this MonadFoo class for MockT" I think |
2021-06-15 20:32:22 +0200 | altern | (~altern@altern.corbina.com.ua) |
2021-06-15 20:32:27 +0200 | cfricke | (~cfricke@user/cfricke) |
2021-06-15 20:32:52 +0200 | <tomsmeding> | more concisely "the instance for MockT" |
2021-06-15 20:34:25 +0200 | dunkeln | (~dunkeln@94.129.65.28) (Quit: leaving) |
2021-06-15 20:36:10 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-06-15 20:37:33 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) (Remote host closed the connection) |
2021-06-15 20:38:14 +0200 | Deewiant_ | (~deewiant@2001:470:69fc:105::2fd3) |
2021-06-15 20:38:19 +0200 | Guest36 | (~Guest36@149.11.92.90) (Quit: Connection closed) |
2021-06-15 20:39:07 +0200 | <cdsmith> | <tomsmeding "more concisely "the instance for"> Yes. To summarize, MonadIO is needed by the MonadFoo instance for MockT. I can't add MonadIO as a superclass of MonadFoo, because I don't own it. I *could* add MonadFoo to the context of the (one and only) GADT constructor, but that breaks newtype deriving and is more complex than needed. Adding MonadFoo to the instance context for that one MonadFoo instance was the right answer. |
2021-06-15 20:39:18 +0200 | killsushi | (~killsushi@user/killsushi) (Quit: Leaving) |
2021-06-15 20:41:01 +0200 | qbt | (~edun@user/edun) |
2021-06-15 20:41:54 +0200 | groucho | (~user@dynamic-adsl-78-14-24-41.clienti.tiscali.it) |
2021-06-15 20:42:00 +0200 | groucho | (~user@dynamic-adsl-78-14-24-41.clienti.tiscali.it) () |
2021-06-15 20:43:11 +0200 | Topsi | (~Tobias@dyndsl-037-138-064-101.ewe-ip-backbone.de) |
2021-06-15 20:43:49 +0200 | davetapley | (sid666@id-666.highgate.irccloud.com) |
2021-06-15 20:43:56 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
2021-06-15 20:45:47 +0200 | rk04 | (~rk04@user/rajk) (Quit: rk04) |
2021-06-15 20:46:42 +0200 | the-coot[m] | (~the-cootm@2001:470:69fc:105::95f) (Quit: Client limit exceeded: 10000) |
2021-06-15 20:46:53 +0200 | Topsi2 | (~Tobias@dyndsl-037-138-064-101.ewe-ip-backbone.de) (Ping timeout: 244 seconds) |
2021-06-15 20:47:11 +0200 | Codaraxis | (~Codaraxis@s13490149139.blix.com) |
2021-06-15 20:50:22 +0200 | jakalx | (~jakalx@base.jakalx.net) () |
2021-06-15 20:55:03 +0200 | listofoptions_ | (~haha@nat.syssrc.com) (Quit: Leaving) |
2021-06-15 20:55:16 +0200 | listofoptions_ | (~haha@nat.syssrc.com) |
2021-06-15 20:55:25 +0200 | arjun | (~user@user/arjun) (Remote host closed the connection) |
2021-06-15 20:55:40 +0200 | listofoptions_ | (~haha@nat.syssrc.com) (Client Quit) |
2021-06-15 20:56:02 +0200 | Guest9 | (~Guest9@103.250.137.187) |
2021-06-15 20:56:18 +0200 | listofoptions | (~haha@nat.syssrc.com) |
2021-06-15 20:58:05 +0200 | jophish | (~jophish@2001:470:69fc:105::670) (Quit: Client limit exceeded: 10000) |
2021-06-15 20:58:23 +0200 | ordinate | (~ordinate@c-68-38-144-3.hsd1.in.comcast.net) |
2021-06-15 20:58:29 +0200 | <ordinate> | good afternoon |
2021-06-15 20:59:04 +0200 | dudek_ | (~dudek@185.150.236.112) |
2021-06-15 20:59:31 +0200 | iDead | (~iDead@254.142.71.148.rev.vodafone.pt) |
2021-06-15 20:59:33 +0200 | <janus> | GREETINGS ORDINATE |
2021-06-15 20:59:34 +0200 | <iDead> | where is the error? |
2021-06-15 20:59:35 +0200 | <iDead> | q :: (Integer, (Integer -> Integer, Integer -> Integer)) -> (Integer, Integer) |
2021-06-15 20:59:36 +0200 | <iDead> | q (h, (t1, t2)) = (split (add . (id >< ((uncurry (.)) . swap))) (succ.p2.p2)) (h , (t1,t2)) |
2021-06-15 21:00:03 +0200 | the-coot[m] | (~the-cootm@2001:470:69fc:105::95f) |
2021-06-15 21:00:04 +0200 | <ordinate> | greetings! |
2021-06-15 21:00:15 +0200 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 3.1) |
2021-06-15 21:00:17 +0200 | ServerStatsDisco | (~serversta@2001:470:69fc:105::1a) (Quit: Client limit exceeded: 10000) |
2021-06-15 21:00:22 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) |
2021-06-15 21:00:29 +0200 | <glguy> | iDead: it doesn't look like you pasted the error message |
2021-06-15 21:00:30 +0200 | <iDead> | can anyone find the error there? |
2021-06-15 21:00:50 +0200 | <ordinate> | the error is that you have a function with that typesig |
2021-06-15 21:01:11 +0200 | <janus> | what is >< ? |
2021-06-15 21:01:12 +0200 | <iDead> | glguy Couldn't match type ‘a -> c’ with ‘Integer’ |
2021-06-15 21:01:13 +0200 | <iDead> | Expected type: (Integer, (a -> b, b -> c)) -> (Integer, Integer) |
2021-06-15 21:01:13 +0200 | <iDead> | Actual type: (Integer, (a -> b, b -> c)) -> (Integer, a -> c) |
2021-06-15 21:01:24 +0200 | <iDead> | it's a split |
2021-06-15 21:01:36 +0200 | <janus> | what is p2? |
2021-06-15 21:01:39 +0200 | jophish | (~jophish@2001:470:69fc:105::670) |
2021-06-15 21:01:49 +0200 | <iDead> | p2 = second |
2021-06-15 21:02:00 +0200 | <janus> | % :t second |
2021-06-15 21:02:01 +0200 | <yahb> | janus: Arrow a => a b c -> a (d, b) (d, c) |
2021-06-15 21:02:05 +0200 | <iDead> | snd* |
2021-06-15 21:02:22 +0200 | dudek | (~dudek@185.150.236.112) (Ping timeout: 268 seconds) |
2021-06-15 21:02:23 +0200 | ServerStatsDisco | (~serversta@2001:470:69fc:105::1a) |
2021-06-15 21:02:41 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-06-15 21:03:37 +0200 | Sgeo_ | (~Sgeo@ool-18b9875e.dyn.optonline.net) (Quit: Leaving) |
2021-06-15 21:03:46 +0200 | <janus> | i think i'll side with ordinate, what is the point of writing a point-freeish function and then wondering when it turns out to be hard to decipher? |
2021-06-15 21:03:47 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2021-06-15 21:03:52 +0200 | <glguy> | succ.p2.p2 should probably be p2.p2.succ, then? |
2021-06-15 21:04:34 +0200 | <glguy> | err |
2021-06-15 21:04:42 +0200 | <glguy> | p2 (p2 succ)? |
2021-06-15 21:05:02 +0200 | leah2 | (~leah@vuxu.org) (Quit: trotz alledem!) |
2021-06-15 21:05:13 +0200 | leah2 | (~leah@vuxu.org) |
2021-06-15 21:05:48 +0200 | Aleci[m] | (~alecilibr@2001:470:69fc:105::32e7) |
2021-06-15 21:05:58 +0200 | <ordinate> | actually this reminds me of something i wanted to know |
2021-06-15 21:06:12 +0200 | kayprish | (~kayprish@46.240.143.86) |
2021-06-15 21:06:15 +0200 | <ordinate> | whats the way to check if two values are the same type |
2021-06-15 21:06:34 +0200 | <ordinate> | say f x y = True if both x and y share the same type |
2021-06-15 21:07:08 +0200 | <iDead> | glguy it's was error in the "fetch", thanks for the help =) |
2021-06-15 21:07:08 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-06-15 21:07:11 +0200 | jneira_ | (~jneira_@5.red-81-39-172.dynamicip.rima-tde.net) |
2021-06-15 21:07:45 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
2021-06-15 21:07:53 +0200 | abbie | (~abbie@user/abbie) (Quit: Bye!) |
2021-06-15 21:07:54 +0200 | SquidDev | (~SquidDev@autoclave.squiddev.cc) (Quit: Bye!) |
2021-06-15 21:07:59 +0200 | <glguy> | ordinate: That's not something you'd generally do |
2021-06-15 21:08:11 +0200 | abbie | (~abbie@user/abbie) |
2021-06-15 21:08:12 +0200 | SquidDev | (~SquidDev@autoclave.squiddev.cc) |
2021-06-15 21:08:19 +0200 | <ordinate> | well, i still want to do it |
2021-06-15 21:08:25 +0200 | <monochrom> | Unless you require Typeable, you can't tell. |
2021-06-15 21:09:03 +0200 | <janus> | how is Typeable different from Generic? |
2021-06-15 21:09:09 +0200 | <ordinate> | ^ |
2021-06-15 21:09:49 +0200 | <monochrom> | This "inability" is a Feature(TM), it enables parametricity, e.g., if you have "f :: a -> [a]" and a test case shows "f () = [(), ()]", then I also know "f 4 = [4, 4]", you cannot have "f 4 = [4, 5]". |
2021-06-15 21:10:33 +0200 | <janus> | so it is what some call "referential transparency" ? |
2021-06-15 21:10:42 +0200 | <monochrom> | Typeable and Generic are so unrelated I don't know how to answer "what's the difference". |
2021-06-15 21:10:48 +0200 | <monochrom> | No. |
2021-06-15 21:11:02 +0200 | fabfianda[m] | (~fabfianda@2001:470:69fc:105::6db) (Quit: Client limit exceeded: 10000) |
2021-06-15 21:11:19 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) |
2021-06-15 21:11:29 +0200 | <cdsmith> | <janus "how is Typeable different from G"> Typeable lets you compare types. Generic lets you look at the structure of a data type: which constructors it has, what their fields are, etc. |
2021-06-15 21:12:01 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 252 seconds) |
2021-06-15 21:12:05 +0200 | <janus> | ah right, i can see how those are distinct and why Aeson would only require Generic to make an automatic ToJSON instance |
2021-06-15 21:12:23 +0200 | <janus> | what is a popular use case for Typeable? |
2021-06-15 21:12:27 +0200 | fabfianda[m] | (~fabfianda@2001:470:69fc:105::6db) |
2021-06-15 21:12:51 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Ping timeout: 268 seconds) |
2021-06-15 21:13:06 +0200 | <monochrom> | f x = "if x :: Int then True else False" |
2021-06-15 21:13:27 +0200 | <monochrom> | basically the dream of every fan of dynamic typing. |
2021-06-15 21:13:35 +0200 | <janus> | oh no, it's horrible! :O |
2021-06-15 21:13:58 +0200 | <ordinate> | haskell is an interpreted, dynamically typed language |
2021-06-15 21:17:22 +0200 | <monochrom> | @quote monochrom runtime |
2021-06-15 21:17:22 +0200 | <lambdabot> | monochrom says: just add #! /usr/bin/runghc to your haskell file. then type errors occur at runtime only. |
2021-06-15 21:18:17 +0200 | derelict | (~derelict@user/derelict) (Quit: WeeChat 3.1) |
2021-06-15 21:18:37 +0200 | reumeth2 | (~reumeth@user/reumeth) (Quit: reumeth2) |
2021-06-15 21:18:38 +0200 | ddellacosta | (~ddellacos@89.46.62.21) (Read error: Connection reset by peer) |
2021-06-15 21:18:50 +0200 | <janus> | most people expect them to be deferred too, though ;) |
2021-06-15 21:18:54 +0200 | reumeth | (~reumeth@user/reumeth) |
2021-06-15 21:18:59 +0200 | ddellacosta | (~ddellacos@89.46.62.21) |
2021-06-15 21:19:55 +0200 | vaibhavsagar[m] | (~vaibhavsa@2001:470:69fc:105::ffe) (Quit: Client limit exceeded: 10000) |
2021-06-15 21:20:21 +0200 | <janus> | was it outrageous when dynamic languages started adding ASTs so they wouldn't even start executing with SyntaxErrors? an extreme dynamic fan should be offended, surely ;P |
2021-06-15 21:20:50 +0200 | vaibhavsagar[m] | (~vaibhavsa@2001:470:69fc:105::ffe) |
2021-06-15 21:21:27 +0200 | <monochrom> | or Haskell resisting dependent typing so static fans are offended that head :: [a] -> a exists. |
2021-06-15 21:21:49 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
2021-06-15 21:22:18 +0200 | <tomsmeding> | that quote should have -fdeferred-type-errors too |
2021-06-15 21:22:36 +0200 | <dolio> | It's probably older than that flag. |
2021-06-15 21:23:00 +0200 | <tomsmeding> | and also having flags in a shebang is probably not a good idea :) |
2021-06-15 21:24:30 +0200 | <janus> | tomsmeding: many BSD'ers recommend "#!/usr/bin/env bash". why would a flag be different from "bash" here? to the shell it is the same, surely? |
2021-06-15 21:24:55 +0200 | <janus> | (ok, i know, an extreme BSD'er wouldn't even accept using bash ;) |
2021-06-15 21:25:05 +0200 | hololeap | (~hololeap@user/hololeap) |
2021-06-15 21:25:54 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Ping timeout: 240 seconds) |
2021-06-15 21:26:22 +0200 | Wonner | (~Wonner@h77.53.21.98.static.ip.windstream.net) (Quit: Client closed) |
2021-06-15 21:26:39 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-15 21:27:10 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
2021-06-15 21:27:24 +0200 | Deide | (~Deide@wire.desu.ga) |
2021-06-15 21:27:24 +0200 | Deide | (~Deide@wire.desu.ga) (Changing host) |
2021-06-15 21:27:24 +0200 | Deide | (~Deide@user/deide) |
2021-06-15 21:27:30 +0200 | <monochrom> | No worries, "#!/usr/bin/env python3" is a thing too. |
2021-06-15 21:27:51 +0200 | <maerwald> | not sure '/usr/bin/env' is really specified by posix either |
2021-06-15 21:28:08 +0200 | carmysilna | (~brightly-@2001:470:69fc:105::2190) (Quit: Client limit exceeded: 10000) |
2021-06-15 21:28:09 +0200 | <janus> | right, AFAIK the trouble starts when you want both: the executable whereever in the path, AND some command line params |
2021-06-15 21:28:20 +0200 | <maerwald> | I think they recommend hardcoding full absolute paths to the binary at "install time" by using getconf |
2021-06-15 21:28:24 +0200 | <tomsmeding> | janus: https://stackoverflow.com/a/4304187 |
2021-06-15 21:28:37 +0200 | <tomsmeding> | on many systems, you can pass at most one parameter in a shebang line |
2021-06-15 21:28:45 +0200 | <tomsmeding> | though I guess that is enough for the runghc thing :) |
2021-06-15 21:29:04 +0200 | carmysilna | (~brightly-@2001:470:69fc:105::2190) |
2021-06-15 21:29:08 +0200 | <tomsmeding> | maerwald: see link, #! isn't even specified :p |
2021-06-15 21:29:28 +0200 | <tomsmeding> | env has -S but it's dangerous |
2021-06-15 21:29:35 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-06-15 21:29:47 +0200 | <janus> | ooh, so there is a motivation for providing an argument passing mode that requires only one argv entry for all the arguments. interesting! |
2021-06-15 21:29:49 +0200 | <maerwald> | but these are 1st world problems... if you've ever done powershell, you know it can be *way* worse |
2021-06-15 21:30:07 +0200 | ukari | (~ukari@user/ukari) (Remote host closed the connection) |
2021-06-15 21:30:17 +0200 | ddellacosta | (~ddellacos@89.46.62.21) (Ping timeout: 244 seconds) |
2021-06-15 21:30:29 +0200 | hook54321 | (sid149355@user/hook54321) |
2021-06-15 21:30:34 +0200 | <janus> | i stick to the C subset of windows to piss of microsoft programmers that will have to maintain it for 200 years muahahaha |
2021-06-15 21:30:36 +0200 | ixlun | (~matthew@213.205.241.86) (Ping timeout: 244 seconds) |
2021-06-15 21:30:49 +0200 | ukari | (~ukari@user/ukari) |
2021-06-15 21:31:53 +0200 | Obo | (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (Quit: WeeChat 2.8) |
2021-06-15 21:33:25 +0200 | <monochrom> | linux manpage for execve says "the entire string after the interpreter name is a single argument. some other systems split it into multiple arguments by spaces" |
2021-06-15 21:34:26 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds) |
2021-06-15 21:35:45 +0200 | thedward[m] | (~thedwardm@2001:470:69fc:105::f79) (Quit: Client limit exceeded: 10000) |
2021-06-15 21:36:19 +0200 | fluffyballoon | (~fluffybal@2620:72:0:6480::10f7) (Quit: Client closed) |
2021-06-15 21:36:33 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection) |
2021-06-15 21:37:37 +0200 | __monty__ | (~toonn@user/toonn) |
2021-06-15 21:37:37 +0200 | Wonner | (~Wonner@h77.53.21.98.static.ip.windstream.net) |
2021-06-15 21:38:07 +0200 | kayprish_ | (~kayprish@46.240.143.86) |
2021-06-15 21:38:15 +0200 | <tomsmeding> | monochrom: indeed, linux implements behaviour 3 from the linked SO answer |
2021-06-15 21:38:40 +0200 | ddellacosta | (~ddellacos@86.106.121.100) |
2021-06-15 21:38:41 +0200 | tomsmeding | is trying to be inclusive towards non-linux systems, let me |
2021-06-15 21:38:55 +0200 | Wonner | (~Wonner@h77.53.21.98.static.ip.windstream.net) (Client Quit) |
2021-06-15 21:39:15 +0200 | thedward[m] | (~thedwardm@2001:470:69fc:105::f79) |
2021-06-15 21:39:51 +0200 | kayprish_ | (~kayprish@46.240.143.86) (Client Quit) |
2021-06-15 21:43:39 +0200 | NoName_ | (~idk@8.20.127.195) |
2021-06-15 21:43:59 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-15 21:45:28 +0200 | ephemient | (uid407513@id-407513.tooting.irccloud.com) (Quit: Connection closed for inactivity) |
2021-06-15 21:47:57 +0200 | hjulle[m] | (~hjullemat@2001:470:69fc:105::1dd) (Quit: Client limit exceeded: 10000) |
2021-06-15 21:52:31 +0200 | wallymathieu | (~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-06-15 21:53:03 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.0.1) |
2021-06-15 21:54:28 +0200 | NoName_ | (~idk@8.20.127.195) (Quit: https://www.endfgm.eu/what-can-you-do/donate/) |
2021-06-15 21:56:41 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-15 21:57:28 +0200 | mengu | (~mengu@c188-150-13-129.bredband.tele2.se) |
2021-06-15 22:01:04 +0200 | oxide | (~lambda@user/oxide) (Quit: oxide) |
2021-06-15 22:03:46 +0200 | <dminuoso> | cdsmith: Out of curiosity, what IRC client are you using? Your quoting/response style looks very unfamiliar. |
2021-06-15 22:03:46 +0200 | hjulle[m] | (~hjullemat@2001:470:69fc:105::1dd) |
2021-06-15 22:03:47 +0200 | Pickchea | (~private@user/pickchea) |
2021-06-15 22:04:02 +0200 | qbt | (~edun@user/edun) (Ping timeout: 268 seconds) |
2021-06-15 22:04:44 +0200 | <geekosaur> | that's a form that matrix can use |
2021-06-15 22:05:13 +0200 | juhp | (~juhp@128.106.188.66) (Ping timeout: 244 seconds) |
2021-06-15 22:05:33 +0200 | <dminuoso> | Ah |
2021-06-15 22:06:09 +0200 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2021-06-15 22:06:19 +0200 | Pickchea | (~private@user/pickchea) |
2021-06-15 22:07:02 +0200 | mikoto-chan | (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) |
2021-06-15 22:07:16 +0200 | vicfred | (~vicfred@user/vicfred) (Quit: Leaving) |
2021-06-15 22:07:58 +0200 | juhp | (~juhp@128.106.188.66) |
2021-06-15 22:09:32 +0200 | <dminuoso> | janus: By the way, you asked about a good use of Typeable. The best and most common usage I can think of is exceptions, especially extensible dynamically-typed hierarchies of extensions. That last one is probably very underused on hackage. |
2021-06-15 22:10:29 +0200 | iDead | (~iDead@254.142.71.148.rev.vodafone.pt) (Ping timeout: 272 seconds) |
2021-06-15 22:10:34 +0200 | <dminuoso> | `catch` fundamentally relies on Typeable to be able to check whether a bypassing exception matches the requested exception type or not. |
2021-06-15 22:10:46 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-15 22:10:59 +0200 | <janus> | oh, so you're saying i can make an exception that lets itself be treated as an exception that never existed when the code catching it was written? |
2021-06-15 22:11:43 +0200 | <dminuoso> | Are you preferrind go the "extensible dynamically-typed hierarchies of exceptions" part? |
2021-06-15 22:11:50 +0200 | <dminuoso> | Wow. the typos are unreal today. |
2021-06-15 22:13:29 +0200 | <janus> | i dunno if i prefer it since i havn't used exceptions in haskell yet. but i guess it could be valuable to avoid having dumb down to Either String everywhere. sounds like dynamically typed exceptions could help with that |
2021-06-15 22:15:11 +0200 | <janus> | if i am injecting a function that can fail into a codebase that i don't want to continually bump versions for, i have the option of making it Either String, but then it is "stringly-typed". if i had my application-specific exception that it was catching, i would could make ad-hoc new "subtypes" of that exception? |
2021-06-15 22:15:18 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-15 22:15:33 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-06-15 22:16:21 +0200 | <dminuoso> | janus: So under the hood, exceptions can only propagate as SomeException. So every time you do throwIO it gets wrapped (upcast) inside SomeException. At the same time, `catch` must be able to downcast it, using `fromException :: Exception e => SomeException -> Maybe e ` |
2021-06-15 22:16:30 +0200 | <dminuoso> | janus: This is how `catch` is able to catch only specific exceptions. |
2021-06-15 22:16:35 +0200 | <dminuoso> | So far so good? |
2021-06-15 22:16:54 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) (Remote host closed the connection) |
2021-06-15 22:17:27 +0200 | <dminuoso> | (so if catch tries to fromException it to the specified exception type, but the underlying type is a different one, it would produce Nothing and the exception is thrown again) |
2021-06-15 22:17:32 +0200 | kayprish | (~kayprish@46.240.143.86) (Quit: leaving) |
2021-06-15 22:17:39 +0200 | ixlun | (~matthew@213.205.241.86) |
2021-06-15 22:17:45 +0200 | <janus> | right, makes sense. sounds a bit like subtyping but maybe i shouldn't think that |
2021-06-15 22:17:59 +0200 | <dminuoso> | You should! |
2021-06-15 22:18:13 +0200 | <dminuoso> | Using this trick we can build entire subtyping hierarchies |
2021-06-15 22:18:36 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) |
2021-06-15 22:18:50 +0200 | <dminuoso> | SomeException :> DbException :> (UniquenessViolation | NotNullViolation) |
2021-06-15 22:19:27 +0200 | <janus> | that looks nice, but is that really code? |
2021-06-15 22:19:30 +0200 | <dminuoso> | Allowing you to say `(catch action (\e :: DbException -> ... ))` and it would catch any DbException, including UniquenessViolation and NotNullViolation |
2021-06-15 22:19:55 +0200 | <dminuoso> | No, it's slightly verbose to encode these exceptions - but you get the same semantics |
2021-06-15 22:20:15 +0200 | <dminuoso> | https://simonmar.github.io/bib/papers/ext-exceptions.pdf |
2021-06-15 22:20:21 +0200 | <janus> | oh ok, sounds like it's time to crack open TemplateHaskell :satanic_smiley: |
2021-06-15 22:20:23 +0200 | <dminuoso> | Is the original paper that describes it, it's very readable :) |
2021-06-15 22:20:33 +0200 | kuribas | (~user@ptr-25vy0i96zxjh07ehrri.18120a2.ip6.access.telenet.be) |
2021-06-15 22:20:34 +0200 | <dminuoso> | Im not sure you can reasonably do this with TemplateHaskell |
2021-06-15 22:21:08 +0200 | <janus> | i'll take a look at the paper, cool beans |
2021-06-15 22:21:19 +0200 | <dminuoso> | All of this is driven by Typeable behind the scenes. :) |
2021-06-15 22:21:29 +0200 | gawen | (~gawen@user/gawen) (Quit: cya) |
2021-06-15 22:21:40 +0200 | <dminuoso> | base even comes with exceptions structured this way, sadly not too many packages do the same |
2021-06-15 22:21:48 +0200 | gawen | (~gawen@user/gawen) |
2021-06-15 22:22:41 +0200 | adium | (adium@user/adium) (Quit: Stable ZNC by ##bnc4you) |
2021-06-15 22:22:52 +0200 | <dminuoso> | It'd be nice if package-foo had some FooException supertype, especially if they have stuff like `withFoo :: (Foo -> IO b) -> IO b` because without a FooException type, you can't reasonably differentiate between any exception that comes from their library and say an IOException from your own continuation |
2021-06-15 22:23:09 +0200 | ent | (entgod@kapsi.fi) (Ping timeout: 252 seconds) |
2021-06-15 22:23:26 +0200 | <dminuoso> | At least outside the `withFoo` combinator, of course. |
2021-06-15 22:23:42 +0200 | ent | (entgod@kapsi.fi) |
2021-06-15 22:24:35 +0200 | <kuribas> | why doesn't "foo {bar = 20}" work, when bar is a duplicate, and the type of foo is known? |
2021-06-15 22:26:03 +0200 | <kuribas> | and how do I disambiguate? |
2021-06-15 22:26:42 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 240 seconds) |
2021-06-15 22:26:57 +0200 | fishfinger | (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net) |
2021-06-15 22:27:27 +0200 | <dminuoso> | kuribas: https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/duplicate_record_fields.html |
2021-06-15 22:27:51 +0200 | <kuribas> | ugh, even (foo :: Foo) {bar = 20} doesn't work... |
2021-06-15 22:28:19 +0200 | <dminuoso> | And: https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/disambiguate_record_fields.html#disambigua… |
2021-06-15 22:28:48 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-06-15 22:29:59 +0200 | <dminuoso> | kuribas: And I guess you can use a qualified import and then specify the field with a qualifier? |
2021-06-15 22:30:53 +0200 | <kuribas> | still doesn't work even with Disambiguate-Fields |
2021-06-15 22:31:07 +0200 | ddellaco_ | (~ddellacos@86.106.121.100) |
2021-06-15 22:31:20 +0200 | reumeth | (~reumeth@user/reumeth) (Ping timeout: 272 seconds) |
2021-06-15 22:31:20 +0200 | <kuribas> | and foo {bar = 20} :: Foo doesn't work either |
2021-06-15 22:32:01 +0200 | AgentM | (~agentm@pool-162-83-130-212.nycmny.fios.verizon.net) |
2021-06-15 22:32:42 +0200 | ddellacosta | (~ddellacos@86.106.121.100) (Ping timeout: 240 seconds) |
2021-06-15 22:32:58 +0200 | <kuribas> | dminuoso: I could, but I'd like to understand the problem, rather than work around. |
2021-06-15 22:33:42 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-15 22:34:11 +0200 | Techcable_ | Techcable |
2021-06-15 22:35:44 +0200 | Topsi1 | (~Tobias@dyndsl-037-138-064-101.ewe-ip-backbone.de) |
2021-06-15 22:36:38 +0200 | <kuribas> | ugh, ghc is just plain dumb |
2021-06-15 22:36:43 +0200 | Topsi2 | (~Tobias@dyndsl-037-138-064-101.ewe-ip-backbone.de) |
2021-06-15 22:36:51 +0200 | Aighearach | (~paris@c-71-63-160-210.hsd1.or.comcast.net) (Ping timeout: 268 seconds) |
2021-06-15 22:37:41 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-06-15 22:38:06 +0200 | Topsi3 | (~Tobias@dyndsl-037-138-064-101.ewe-ip-backbone.de) |
2021-06-15 22:38:14 +0200 | adium | (adium@user/adium) |
2021-06-15 22:38:34 +0200 | Topsi | (~Tobias@dyndsl-037-138-064-101.ewe-ip-backbone.de) (Ping timeout: 268 seconds) |
2021-06-15 22:39:37 +0200 | Topsi | (~Tobias@dyndsl-037-138-064-101.ewe-ip-backbone.de) |
2021-06-15 22:40:00 +0200 | <kuribas> | Use an explicit type signature on the record expression, as in: h x = (x :: T) { foo = 3 } |
2021-06-15 22:40:06 +0200 | <kuribas> | Tried that, it doesn't work |
2021-06-15 22:40:18 +0200 | mikoto-chan | (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Ping timeout: 240 seconds) |
2021-06-15 22:40:19 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b9b1:9fc2:289f:a533) |
2021-06-15 22:40:25 +0200 | Topsi1 | (~Tobias@dyndsl-037-138-064-101.ewe-ip-backbone.de) (Ping timeout: 268 seconds) |
2021-06-15 22:41:08 +0200 | <dminuoso> | kuribas: Im guessing at the time it was too complicated to implement DisambiguateRecordFields in the type checker. |
2021-06-15 22:41:25 +0200 | <dminuoso> | Or maybe there's some complicated interaction with other extensions? |
2021-06-15 22:41:35 +0200 | <kuribas> | I am using RecordWildCards |
2021-06-15 22:41:39 +0200 | Topsi2 | (~Tobias@dyndsl-037-138-064-101.ewe-ip-backbone.de) (Ping timeout: 268 seconds) |
2021-06-15 22:42:53 +0200 | Topsi3 | (~Tobias@dyndsl-037-138-064-101.ewe-ip-backbone.de) (Ping timeout: 268 seconds) |
2021-06-15 22:43:19 +0200 | <kuribas> | could be a bug in ghc |
2021-06-15 22:44:41 +0200 | <dolio> | The help page doesn't say you're allowed to do what you're trying to do. |
2021-06-15 22:44:57 +0200 | <kuribas> | dolio: update a record? |
2021-06-15 22:45:05 +0200 | <dminuoso> | kuribas: https://gitlab.haskell.org/ghc/ghc/-/issues/18999 |
2021-06-15 22:45:20 +0200 | <dminuoso> | Adam and SPJ concur that this is a bug. |
2021-06-15 22:45:32 +0200 | <kuribas> | dminuoso: ok, thanks |
2021-06-15 22:45:33 +0200 | v01d4lph4 | (~v01d4lph4@user/v01d4lph4) |
2021-06-15 22:45:36 +0200 | <kuribas> | I'll use genericLens then |
2021-06-15 22:46:00 +0200 | <dolio> | It says that the extension only does something for updates if there is a non-field named the same as a field. |
2021-06-15 22:46:20 +0200 | mengu | (~mengu@c188-150-13-129.bredband.tele2.se) (Remote host closed the connection) |
2021-06-15 22:46:30 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-15 22:46:48 +0200 | mengu | (~mengu@c188-150-13-129.bredband.tele2.se) |
2021-06-15 22:48:33 +0200 | <dminuoso> | Oh hold on |
2021-06-15 22:48:43 +0200 | <dminuoso> | kuribas: are both `bar` fields? |
2021-06-15 22:48:49 +0200 | ubert | (~Thunderbi@p200300ecdf259d17307db39712e8f4a3.dip0.t-ipconnect.de) |
2021-06-15 22:49:08 +0200 | <kuribas> | dminuoso: what do you mean? |
2021-06-15 22:49:22 +0200 | <dminuoso> | Maybe I misunderstood |
2021-06-15 22:49:30 +0200 | <dminuoso> | 22:24:35 kuribas | why doesn't "foo {bar = 20}" work, when bar is a duplicate, and the type of foo is known? |
2021-06-15 22:49:39 +0200 | fishfinger | (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net) (Quit: Bye!) |
2021-06-15 22:49:44 +0200 | <dminuoso> | You say "duplicate". Are both instances of `bar` fields, or is one a non-field? |
2021-06-15 22:49:52 +0200 | <kuribas> | there is N.bar, but it is qualified |
2021-06-15 22:49:54 +0200 | v01d4lph4 | (~v01d4lph4@user/v01d4lph4) (Ping timeout: 240 seconds) |
2021-06-15 22:50:04 +0200 | fishfinger | (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net) |
2021-06-15 22:50:06 +0200 | <kuribas> | the other ones are fields |
2021-06-15 22:50:09 +0200 | <dminuoso> | dolio is right then |
2021-06-15 22:50:18 +0200 | <dminuoso> | And even that only applies to 9.2.1 |
2021-06-15 22:50:18 +0200 | fishfinger | (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net) (Read error: Connection reset by peer) |
2021-06-15 22:50:30 +0200 | <dminuoso> | A record update is not possible in this manner |
2021-06-15 22:50:40 +0200 | ixlun | (~matthew@213.205.241.86) (Read error: Connection reset by peer) |
2021-06-15 22:50:41 +0200 | <dminuoso> | Im guessing there's good reason for this |
2021-06-15 22:50:44 +0200 | <kuribas> | so genericLens then? |
2021-06-15 22:50:47 +0200 | fishfinger | (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net) |
2021-06-15 22:51:07 +0200 | <kuribas> | or just making a new record. |
2021-06-15 22:51:51 +0200 | fishfinger_ | (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net) |
2021-06-15 22:51:58 +0200 | <dminuoso> | https://gitlab.haskell.org/ghc/ghc/-/wikis/records/overloaded-record-fields/duplicate-record-fields contains some implicit notes |
2021-06-15 22:52:03 +0200 | <dminuoso> | `Note that we do not look up the types of variables being updated, and no constraint-solving is performed, so for example the following will be rejected as ambiguous:` |
2021-06-15 22:52:09 +0200 | fishfinger | (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net) (Remote host closed the connection) |
2021-06-15 22:52:51 +0200 | <dminuoso> | 22:40:00 kuribas | Use an explicit type signature on the record expression, as in: h x = (x :: T) { foo = 3 } |
2021-06-15 22:52:56 +0200 | <dminuoso> | This requires DuplicateRecordFields, mind you |
2021-06-15 22:53:42 +0200 | mengu | (~mengu@c188-150-13-129.bredband.tele2.se) (Remote host closed the connection) |
2021-06-15 22:54:02 +0200 | <kuribas> | yes, I have DuplicateRecordFields on |
2021-06-15 22:54:35 +0200 | <dminuoso> | In the definition sites of these data types too? |
2021-06-15 22:54:37 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2021-06-15 22:54:42 +0200 | muto_ | (~muto@d75-159-225-7.abhsia.telus.net) (Ping timeout: 240 seconds) |
2021-06-15 22:54:44 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-15 22:55:56 +0200 | <kuribas> | hmm, no |
2021-06-15 22:56:06 +0200 | jrm | (~jrm@156.34.187.65) (Ping timeout: 264 seconds) |
2021-06-15 22:56:25 +0200 | jrm | (~jrm@156.34.187.65) |
2021-06-15 22:56:45 +0200 | tremon | (~tremon@217-63-61-89.cable.dynamic.v4.ziggo.nl) |
2021-06-15 22:57:49 +0200 | <kuribas> | that could be it |
2021-06-15 22:59:32 +0200 | fishfinger_ | (~fishfinge@cpc68330-cdif16-2-0-cust557.5-1.cable.virginm.net) (Ping timeout: 268 seconds) |
2021-06-15 22:59:58 +0200 | ephemient | (uid407513@id-407513.tooting.irccloud.com) |
2021-06-15 23:01:22 +0200 | iDead | (~iDead@254.142.71.148.rev.vodafone.pt) |
2021-06-15 23:03:14 +0200 | kmein | (~weechat@user/kmein) (Quit: WeeChat 3.1) |
2021-06-15 23:03:31 +0200 | kmein | (~weechat@user/kmein) |
2021-06-15 23:05:19 +0200 | <kuribas> | it works now :) |
2021-06-15 23:05:27 +0200 | <iDead> | and a chalenge (yet again) turn that "div" into a "/" : https://paste.tomsmeding.com/luLC15pQ |
2021-06-15 23:05:59 +0200 | <kuribas> | dminuoso: thanks. Seems missing the DuplicateRecordFields in this module was the problem. |
2021-06-15 23:06:18 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt) |
2021-06-15 23:12:27 +0200 | <monochrom> | Use fromIntegral to convert Int to Float. |
2021-06-15 23:12:33 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-06-15 23:12:35 +0200 | <monochrom> | or Integer to Float |
2021-06-15 23:12:52 +0200 | <monochrom> | @quote monochrom fromIntegral |
2021-06-15 23:12:53 +0200 | <lambdabot> | monochrom says: You've got an Int / But you want Double / Who do you call? / "fromIntegral!" |
2021-06-15 23:13:20 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Quit: WeeChat 3.1) |
2021-06-15 23:13:49 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-06-15 23:14:41 +0200 | bilegeek | (~bilegeek@2600:1008:b041:5047:48ad:ae3d:d2ea:7d42) |
2021-06-15 23:15:10 +0200 | VictorNawothnig[ | (~dminuosom@2001:470:69fc:105::33bb) |
2021-06-15 23:17:02 +0200 | <dminuoso> | There should be an emacs minor mode for lsp-haskell that randomly inserts `fromIntegral/realToFrac` whenever there's a "expected/actual" type error between two numeric types until GHC is satisfied. |
2021-06-15 23:17:14 +0200 | <dminuoso> | It's what the user does anyway. :> |
2021-06-15 23:18:05 +0200 | VictorNawothnig[ | dminuoso[m] |
2021-06-15 23:18:06 +0200 | Guest8215 | (~Guest82@host-79-36-63-89.retail.telecomitalia.it) |
2021-06-15 23:19:20 +0200 | <monochrom> | I would support that if, in the Float->Int direction, the auto-inserted function were truncate. |
2021-06-15 23:19:42 +0200 | <monochrom> | err no, s/truncate/ceiling/ |
2021-06-15 23:20:11 +0200 | <monochrom> | Either that, or that direction is not entertained at all. |
2021-06-15 23:21:55 +0200 | jao | (jao@gateway/vpn/protonvpn/jao) (Remote host closed the connection) |
2021-06-15 23:22:01 +0200 | <dminuoso> | On a slightly more serious note, a suggestion to insert `intCast` from int-cast wouldn't be bad |
2021-06-15 23:23:21 +0200 | <monochrom> | I like int-case too. |
2021-06-15 23:23:45 +0200 | <dminuoso> | What is int-case? |
2021-06-15 23:24:28 +0200 | jao | (jao@gateway/vpn/protonvpn/jao) |
2021-06-15 23:24:38 +0200 | mengu | (~mengu@c188-150-13-129.bredband.tele2.se) |
2021-06-15 23:25:23 +0200 | dcompoze | (~dcompoze@5E98D6D9.static.tld.pl) |
2021-06-15 23:26:47 +0200 | <monochrom> | sorry, int-cast! |
2021-06-15 23:26:58 +0200 | <iDead> | i don't know if you were talking to me but, i know about the fromInteger... i just can't figure out were... |
2021-06-15 23:27:05 +0200 | <iDead> | where* |
2021-06-15 23:27:21 +0200 | <monochrom> | fromIntegral, not fromInteger |
2021-06-15 23:27:27 +0200 | funsafe | (~funsafe@2601:1c1:4200:938f:4e1e:fc56:b28f:5ac7) |
2021-06-15 23:27:29 +0200 | <iDead> | my bad sry |
2021-06-15 23:27:36 +0200 | <monochrom> | also I don't know what you mean by "challenge". |
2021-06-15 23:27:41 +0200 | <iDead> | java is killing me |
2021-06-15 23:27:52 +0200 | <iDead> | it's just a mood joke =) |
2021-06-15 23:28:00 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-15 23:33:35 +0200 | kayprish | (~kayprish@46.240.143.86) |
2021-06-15 23:37:02 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-15 23:40:59 +0200 | beka | (~beka@104.193.170-244.PUBLIC.monkeybrains.net) |
2021-06-15 23:41:24 +0200 | Ariakenom | (~Ariakenom@2001:9b1:efb:fc00:c958:4e9b:6898:197c) (Read error: Connection reset by peer) |
2021-06-15 23:43:20 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
2021-06-15 23:44:37 +0200 | Guest8215 | (~Guest82@host-79-36-63-89.retail.telecomitalia.it) (Quit: Client closed) |
2021-06-15 23:46:49 +0200 | forell | (~forell@host-178-216-90-220.sta.tvknaszapraca.pl) (Changing host) |
2021-06-15 23:46:49 +0200 | forell | (~forell@user/forell) |
2021-06-15 23:47:23 +0200 | acro | (~acro@user/acro) (Ping timeout: 252 seconds) |
2021-06-15 23:47:53 +0200 | quintasan | (~quassel@quintasan.pl) (Remote host closed the connection) |
2021-06-15 23:48:03 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-15 23:49:02 +0200 | quintasan | (~quassel@quintasan.pl) |
2021-06-15 23:49:19 +0200 | acro | (~acro@user/acro) |
2021-06-15 23:49:29 +0200 | ukari | (~ukari@user/ukari) (Remote host closed the connection) |
2021-06-15 23:50:04 +0200 | dhil | (~dhil@195.213.192.47) |
2021-06-15 23:50:17 +0200 | ukari | (~ukari@user/ukari) |
2021-06-15 23:51:25 +0200 | fabfianda | (~fabfianda@net-93-148-121-206.cust.vodafonedsl.it) |
2021-06-15 23:54:16 +0200 | mengu | (~mengu@c188-150-13-129.bredband.tele2.se) (Remote host closed the connection) |
2021-06-15 23:55:31 +0200 | jolly | (~jolly@208.180.97.158) (Quit: Connection closed) |
2021-06-15 23:59:21 +0200 | kuribas | (~user@ptr-25vy0i96zxjh07ehrri.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
2021-06-15 23:59:47 +0200 | mjs2600_ | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |