Logs: freenode/#haskell
| 2020-10-07 03:33:18 | × | snakemas1 quits (~snakemast@213.100.206.23) (Ping timeout: 260 seconds) |
| 2020-10-07 03:35:58 | → | Clough joins (~Cain@27-33-147-252.static.tpgi.com.au) |
| 2020-10-07 03:43:22 | × | carlomagno quits (~cararell@inet-hqmc01-o.oracle.com) (Remote host closed the connection) |
| 2020-10-07 03:44:34 | → | carlomagno joins (~cararell@inet-hqmc01-o.oracle.com) |
| 2020-10-07 03:46:13 | → | thir joins (~thir@p200300f27f0fc60038c1b16891cbfa03.dip0.t-ipconnect.de) |
| 2020-10-07 03:49:40 | → | Amras joins (~Amras@unaffiliated/amras0000) |
| 2020-10-07 03:50:25 | × | thir quits (~thir@p200300f27f0fc60038c1b16891cbfa03.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 2020-10-07 03:50:34 | × | shatriff quits (~vitaliish@217.27.153.240) (Remote host closed the connection) |
| 2020-10-07 03:50:49 | → | shatriff joins (~vitaliish@217.27.153.240) |
| 2020-10-07 03:56:14 | → | dansho joins (~dansho@ip68-108-167-185.lv.lv.cox.net) |
| 2020-10-07 03:57:53 | <Squarism> | ski, you around? I dwelved down the Generic track yesterday. I'm not really sure what route you thought could be fruitful. Did you mean I should analyze the "from valueOfheType" or something else ? https://paste.ofcode.org/aAUKgA5fz5mzUHSQuWCH8u |
| 2020-10-07 03:59:33 | × | solonarv quits (~solonarv@adijon-655-1-70-207.w90-13.abo.wanadoo.fr) (Ping timeout: 260 seconds) |
| 2020-10-07 04:01:04 | <ghoulguy> | Squarism: What was the goal? |
| 2020-10-07 04:02:03 | <Squarism> | ghoulguy, the ghoul is to be able to address "leafs" (Registration a) of Pr2 using textual addresses. |
| 2020-10-07 04:02:52 | <Squarism> | Pr2 is just an example type it should work for any type constructed using combinations of records/lists/maybe/either/tuple2 |
| 2020-10-07 04:03:01 | <ghoulguy> | What were the addresses? |
| 2020-10-07 04:03:20 | <ghoulguy> | record field names? |
| 2020-10-07 04:03:53 | <Squarism> | say for the Pr2 case valid addresses would be : s1/ |
| 2020-10-07 04:03:54 | <Squarism> | s2/just/_2_1/ |
| 2020-10-07 04:03:54 | <Squarism> | s2/just/_2_2/just |
| 2020-10-07 04:04:22 | <ghoulguy> | So for a sum type, the address is the constructor name and for a record type the field name? |
| 2020-10-07 04:04:43 | <ghoulguy> | Or do you expect to need the constructor address whether or not there are alternatives? |
| 2020-10-07 04:04:56 | <ghoulguy> | like: data T = C { field1 :: Int } |
| 2020-10-07 04:04:58 | <Squarism> | oh sum types are not allowed other than Maybe / Either |
| 2020-10-07 04:05:19 | <ghoulguy> | Oh, so just, nothing, left, right, and then any record field names? |
| 2020-10-07 04:05:32 | <ghoulguy> | or only just tuple names? |
| 2020-10-07 04:05:33 | <Squarism> | yeqah |
| 2020-10-07 04:06:00 | <Squarism> | tuple2 addresses would be _2_<index> |
| 2020-10-07 04:06:15 | <Squarism> | list addresses would be <index> |
| 2020-10-07 04:06:16 | <ghoulguy> | First step will be to make a data type for your addresses and a parser :: String -> Maybe Address |
| 2020-10-07 04:06:38 | → | snakemas1 joins (~snakemast@213.100.206.23) |
| 2020-10-07 04:06:38 | <Squarism> | sounds good. |
| 2020-10-07 04:06:40 | × | hololeap quits (~hololeap@unaffiliated/hololeap) (Ping timeout: 272 seconds) |
| 2020-10-07 04:07:27 | × | polyphem quits (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Ping timeout: 240 seconds) |
| 2020-10-07 04:08:13 | × | nineonine quits (~nineonine@216-19-190-182.dyn.novuscom.net) (Remote host closed the connection) |
| 2020-10-07 04:08:40 | → | hololeap joins (~hololeap@unaffiliated/hololeap) |
| 2020-10-07 04:08:47 | → | nineonine joins (~nineonine@50.216.62.2) |
| 2020-10-07 04:08:52 | <ghoulguy> | The second issue is that the types of things are going to be tricky |
| 2020-10-07 04:09:04 | <ghoulguy> | Then I'd suggest: class C a where m :: [Address] -> Traversal a WhatHere? |
| 2020-10-07 04:09:33 | <ghoulguy> | We could do: class C a where m :: Typeable b => [Address] -> Traversal a b |
| 2020-10-07 04:09:54 | <ghoulguy> | or we could make the addresses indexed by the type of thing they lookup |
| 2020-10-07 04:10:07 | × | hyiltiz quits (~quassel@unaffiliated/hyiltiz) (Ping timeout: 240 seconds) |
| 2020-10-07 04:10:12 | <ghoulguy> | and move the type matching into address parsing |
| 2020-10-07 04:10:26 | <ghoulguy> | In that case you'd have something like: m :: Address a b -> Traversable a b |
| 2020-10-07 04:11:01 | <ghoulguy> | but you'll have to decide when you want things to fail if an address is provided for something of the wrong type |
| 2020-10-07 04:11:07 | × | snakemas1 quits (~snakemast@213.100.206.23) (Ping timeout: 240 seconds) |
| 2020-10-07 04:11:10 | <Squarism> | Oh ok. I think I understand your idea there. |
| 2020-10-07 04:11:58 | <ghoulguy> | Of you could decide what the valid types of things to pull out with an address are |
| 2020-10-07 04:12:10 | <ghoulguy> | m :: Address -> Traversal a Value |
| 2020-10-07 04:13:24 | <Squarism> | Lets call the "target type" (as Pr2 in the example ) TheType' |
| 2020-10-07 04:14:02 | <Squarism> | how do you see the actual probing of a value/allowed type component of an value of TheType' is done? |
| 2020-10-07 04:14:42 | <Squarism> | say TheType' is just Pr3 { fld1 :: Registration SomeType } |
| 2020-10-07 04:14:53 | × | justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) () |
| 2020-10-07 04:15:02 | → | hyiltiz joins (~quassel@82.118.227.47) |
| 2020-10-07 04:15:02 | × | hyiltiz quits (~quassel@82.118.227.47) (Changing host) |
| 2020-10-07 04:15:02 | → | hyiltiz joins (~quassel@unaffiliated/hyiltiz) |
| 2020-10-07 04:15:36 | → | vicfred joins (~vicfred@unaffiliated/vicfred) |
| 2020-10-07 04:15:47 | <Squarism> | given an Address for fld1, how would I check there its a valid address and retrieve the value there? |
| 2020-10-07 04:15:52 | <Squarism> | ghoulguy, ^ |
| 2020-10-07 04:17:57 | × | Kaeipi quits (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Ping timeout: 256 seconds) |
| 2020-10-07 04:20:26 | → | Kaiepi joins (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) |
| 2020-10-07 04:20:41 | → | falafel joins (~falafel@2605:e000:1527:d491:1ccf:5c8d:7928:e9cc) |
| 2020-10-07 04:24:18 | <ghoulguy> | I'm trying something; this isn't something sensible to do "in general" but I'm seeing where we can start |
| 2020-10-07 04:26:06 | → | Kaeipi joins (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) |
| 2020-10-07 04:27:06 | × | Kaiepi quits (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection) |
| 2020-10-07 04:27:43 | → | Frost joins (~Frost@185.204.1.185) |
| 2020-10-07 04:28:12 | <ghoulguy> | Squarism: Consider this https://paste.tomsmeding.com/OtGxhxea |
| 2020-10-07 04:28:15 | <Squarism> | ghoulguy, cool. Thanks a bunch |
| 2020-10-07 04:29:20 | <ghoulguy> | bugfix: https://paste.tomsmeding.com/YdJDhEKP |
| 2020-10-07 04:31:47 | <ghoulguy> | oops, the first instance was still wrong! |
| 2020-10-07 04:32:17 | <Squarism> | Nice stuff! Elegant.How about arbitrary records, any idea there? |
| 2020-10-07 04:32:39 | <Squarism> | where fld name is the accessor. I guess I need to TH those right? |
| 2020-10-07 04:32:52 | <ghoulguy> | no, you can get field names with GHC.Generics |
| 2020-10-07 04:33:19 | <ghoulguy> | or TH or Data.Generics |
| 2020-10-07 04:36:20 | <Squarism> | I cannot find Data.Generics with google |
| 2020-10-07 04:36:29 | <ghoulguy> | ?hackage syb |
| 2020-10-07 04:36:29 | <lambdabot> | https://hackage.haskell.org/package/syb |
| 2020-10-07 04:37:07 | × | jneira quits (501e65ce@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.101.206) (Ping timeout: 240 seconds) |
| 2020-10-07 04:37:43 | → | day_ joins (~Unknown@unaffiliated/day) |
| 2020-10-07 04:39:29 | → | jneira_ joins (~jneira@215.red-37-10-140.dynamicip.rima-tde.net) |
| 2020-10-07 04:40:03 | <Squarism> | ghoulguy, so for the GHC.Generics case (Data.Generics seems to have a bunch of dead links so would prefer GHC.Generics). What should I be looking for to create a Deliver for an Address constructor FieldName String ? |
| 2020-10-07 04:41:26 | <Squarism> | or maybe call it "AField String" for consistency |
| 2020-10-07 04:41:30 | × | day quits (~Unknown@unaffiliated/day) (Ping timeout: 272 seconds) |
| 2020-10-07 04:41:30 | day_ | is now known as day |
| 2020-10-07 04:42:28 | → | shafox joins (~shafox@106.51.234.111) |
| 2020-10-07 04:44:38 | <ghoulguy> | Squarism: Do use generics you'd need something like this: https://paste.tomsmeding.com/29Geypre |
| 2020-10-07 04:45:32 | <Squarism> | ghoulguy, Sweet. I'm gonna try it out right away |
| 2020-10-07 04:47:48 | <sm[m]> | @freenode_emb:matrix.org: there was a LA haskellers meetup for years, maybe it's on meetup.com |
| 2020-10-07 04:47:49 | <lambdabot> | Unknown command, try @list |
| 2020-10-07 04:50:52 | × | voyons_calisse quits (~dan@107-190-41-58.cpe.teksavvy.com) (Quit: Leaving) |
| 2020-10-07 04:50:56 | jtmar | is now known as jamestmartin |
| 2020-10-07 04:57:07 | × | da39a3ee5e6b4b0d quits (~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 2020-10-07 04:57:13 | × | Amras quits (~Amras@unaffiliated/amras0000) (Ping timeout: 272 seconds) |
| 2020-10-07 04:58:12 | <shafox> | @list |
| 2020-10-07 04:58:12 | <lambdabot> | What module? Try @listmodules for some ideas. |
| 2020-10-07 04:58:57 | → | da39a3ee5e6b4b0d joins (~textual@n11211935170.netvigator.com) |
| 2020-10-07 05:03:56 | × | kl1xto quits (~klixto@130.220.8.140) (Quit: WeeChat 2.9) |
| 2020-10-07 05:07:25 | × | taurux quits (~taurux@net-188-152-143-247.cust.dsl.teletu.it) (Ping timeout: 264 seconds) |
| 2020-10-07 05:07:57 | → | taurux joins (~taurux@net-93-144-24-109.cust.vodafonedsl.it) |
| 2020-10-07 05:08:41 | × | ransom quits (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
All times are in UTC.