Logs: freenode/#haskell
| 2020-09-21 13:22:56 | <merijn> | siraben: The package is lacking proper bounds, so the answer is "you manually have to patch the package description to have the correct bounds" |
| 2020-09-21 13:23:06 | <Cheery> | yup. I mean, if it had a textual representation where you use de-bruijn indices, how would you form let-expressions? |
| 2020-09-21 13:23:08 | <edwardk> | nitrix: i did. though i admit my brain is currently a bit of goo on the floor from my current project |
| 2020-09-21 13:23:14 | <merijn> | siraben: "What are the correct bounds?" 'you have to figure that out the hard way' |
| 2020-09-21 13:23:29 | <siraben> | Ugh, if only there was an automated tool to do that! |
| 2020-09-21 13:23:43 | <Cheery> | You could use (λx) y to represent let = y in x |
| 2020-09-21 13:23:54 | <merijn> | There can't be, because "it compiles" isn't sufficient to identify "correct" bounds |
| 2020-09-21 13:24:02 | <edwardk> | Cale: if you thought `constraints` was fun. wait until you meet it's polykinded cousin https://github.com/ekmett/haskell/blob/master/types/src/Data/Type/Constraint.hs |
| 2020-09-21 13:24:06 | <ggole> | Just let term in body seems ok |
| 2020-09-21 13:25:07 | <cheater> | tomsmeding: so i was wondering, does cmd.exe accept the EXACT same terminal escape codes as VT100 (just possibly less of them)? what if for windows, I told Vty to not query terminfo, but instead give it a specific finite amount of supported escape codes instead? |
| 2020-09-21 13:25:22 | → | Saten-san joins (~Saten-san@ip-83-134-202-127.dsl.scarlet.be) |
| 2020-09-21 13:25:25 | <cheater> | tomsmeding: basically making it not use terminfo, but instead hard coded stuff |
| 2020-09-21 13:27:04 | <edwardk> | Cheery: i tend to bolt lets in as an extra form in most of my type checkers. why? mainly because inference can be a bit better and you can make an ever so slightly faster evaluator that just recurses in with the arg in hand in debruijn terms you just wind up with let expression body where the body is counted as having one more expression bound in it, 'let expression' counts like a lambda in terms of var count. |
| 2020-09-21 13:28:06 | ← | cybercraft parts (~Cybercraf@194.78.58.3) ("WeeChat 2.9") |
| 2020-09-21 13:28:50 | <edwardk> | this whole 'plumbing around every part of every expression' feels very grothendieck construction-like to me. |
| 2020-09-21 13:29:13 | <edwardk> | it is weird treating "Left" as a functor. and '(:) as a bifunctor |
| 2020-09-21 13:30:39 | → | shatriff joins (~vitaliish@176.52.219.10) |
| 2020-09-21 13:30:56 | <siraben> | edwardk: error raised at compile time by the bound library; Exception when trying to run compile-time code: This is bad: AppT (ConT Language.Pcf.Clos) (VarT a_6989586621679111736) False, what could be causing it? |
| 2020-09-21 13:31:44 | <edwardk> | wat? |
| 2020-09-21 13:32:20 | <siraben> | edwardk: why doesn't this work? http://ix.io/2yi5 |
| 2020-09-21 13:32:28 | <siraben> | you're the author of bound right? |
| 2020-09-21 13:32:54 | <siraben> | makeBound ''ExpC seems to be the culprit |
| 2020-09-21 13:32:57 | hackage | signable 0.1 - Deterministic serialisation and signatures with proto-lens support https://hackage.haskell.org/package/signable-0.1 (coingaming) |
| 2020-09-21 13:33:16 | <merijn> | siraben: The problem is that --allow-newer probably picks bound 2.x |
| 2020-09-21 13:33:37 | <merijn> | siraben: And pcf uses bound 1.x |
| 2020-09-21 13:33:41 | <siraben> | merijn: I've decided to remove the bounds completely and update the project to the newest libraries |
| 2020-09-21 13:33:55 | <siraben> | So I've commented everything out and starting from top dow |
| 2020-09-21 13:33:55 | <siraben> | down |
| 2020-09-21 13:33:59 | <edwardk> | can you try expanding the type synonym for Clos in it? |
| 2020-09-21 13:34:02 | <merijn> | siraben: Then I'd recommend consulting the changelog of dependencies and read what changed? :) |
| 2020-09-21 13:34:04 | × | argent0 quits (~argent0@168.227.97.4) (Remote host closed the connection) |
| 2020-09-21 13:34:09 | <edwardk> | it probably isn't seeing through that |
| 2020-09-21 13:34:15 | <siraben> | merijn: Ok |
| 2020-09-21 13:34:29 | <siraben> | edwardk: Ah, now it works |
| 2020-09-21 13:34:38 | <siraben> | Interesting, didn't know type synonym expansion matters |
| 2020-09-21 13:34:50 | <edwardk> | well, we have to walk through that syntax tree manually in TH |
| 2020-09-21 13:34:52 | → | Kaivo joins (~Kaivo@104-200-86-99.mc.derytele.com) |
| 2020-09-21 13:35:03 | <edwardk> | and i guess we never had anybody try to hide expressions from us behind type synonyms before |
| 2020-09-21 13:35:21 | <edwardk> | otherwise we have to figure out how to look them up instantiate them and keep walking somehow |
| 2020-09-21 13:35:30 | <edwardk> | sounds like lots fo templatehaskell |
| 2020-09-21 13:36:13 | <siraben> | edwardk: is there a problem with mutually recursive data? |
| 2020-09-21 13:36:30 | <siraben> | I have, data A = .<B>., data B = ...<A> ... and makebound ''A; makeBound ''B |
| 2020-09-21 13:36:32 | <siraben> | Seems to fail as well |
| 2020-09-21 13:36:40 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 2020-09-21 13:36:50 | <edwardk> | there is a 'trick' to working with bound |
| 2020-09-21 13:37:06 | <edwardk> | you make one monad, and a bunch of left-modules over monads that carefully don't mention it |
| 2020-09-21 13:37:09 | <edwardk> | then get parameterized on it |
| 2020-09-21 13:37:41 | <siraben> | Left module over a monad is left distributivity over bind, right? |
| 2020-09-21 13:37:43 | <edwardk> | https://github.com/ekmett/bound/blob/master/examples/Deriving.hs |
| 2020-09-21 13:38:21 | <edwardk> | shows an example with patterns |
| 2020-09-21 13:38:26 | <edwardk> | the patterns are in a separate data type |
| 2020-09-21 13:38:35 | <siraben> | Ah, I'll take a look, thanks. |
| 2020-09-21 13:38:37 | <edwardk> | that data type has an instance of the Bound class |
| 2020-09-21 13:38:54 | <edwardk> | but note Pat carries the 'f' as a parameter and later we just instantiate that to Exp |
| 2020-09-21 13:38:54 | <hekkaidekapus> | siraben: (In the shell) `printf '%s\n%s' 'packages: .' 'allow-newer: *:all' > cabal.project` in the pcf directory. Then build. You will have to make local patches to fix <https://paste.tomsmeding.com/84uGbbWh>. |
| 2020-09-21 13:38:59 | <edwardk> | Pat isn't itself a monad |
| 2020-09-21 13:39:03 | <edwardk> | it is just an instance of Bound |
| 2020-09-21 13:39:43 | <edwardk> | Some times you dont' want to do this, so i then recommend writing the instances by hand, and making your own class for the (>>>=) equivalent operation, which is that left-module thing |
| 2020-09-21 13:40:35 | × | drbean quits (~drbean@TC210-63-209-62.static.apol.com.tw) (Ping timeout: 258 seconds) |
| 2020-09-21 13:40:52 | → | IT92 joins (511495c6@198-149-20-81.sta.estpak.ee) |
| 2020-09-21 13:41:14 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
| 2020-09-21 13:41:30 | <edwardk> | siraben: https://github.com/ekmett/bound/tree/master/examples has a few examples, the overkill one shows what happens if you go all the way down the manual rabbit hole |
| 2020-09-21 13:41:34 | <siraben> | I see |
| 2020-09-21 13:41:40 | <edwardk> | deriving is closer to where you are now |
| 2020-09-21 13:42:09 | → | Sheilong joins (uid293653@gateway/web/irccloud.com/x-nsrjqtazcudlgiur) |
| 2020-09-21 13:42:48 | <IT92> | Hi guys! I'm qurious how do I declare binary dependencies for my haskell package? Here is example, my library needs secp256k1 library, but Hackage CI machine obviously don't have it https://hackage.haskell.org/package/signable-0.1/reports/1 |
| 2020-09-21 13:42:57 | <siraben> | At least writing that somewhat boilerplatey monad instance is better than having to deal with manual substitution, heh. |
| 2020-09-21 13:43:28 | <merijn> | IT92: Short answer: You don't |
| 2020-09-21 13:43:42 | <merijn> | IT92: Are you using cabal-install? |
| 2020-09-21 13:43:56 | <IT92> | merijn I'm using stack and nix |
| 2020-09-21 13:44:30 | <merijn> | You can build/upload docs locally to get working docs in the absence of succesful hackage build, but not sure how to do that with stack |
| 2020-09-21 13:44:56 | <merijn> | "cabal haddock --haddock-for-hackage" works, I assume stack has something similar |
| 2020-09-21 13:45:09 | <IT92> | merijn thanks! |
| 2020-09-21 13:45:30 | × | ixlun quits (~matthew@213.205.241.81) (Ping timeout: 256 seconds) |
| 2020-09-21 13:46:40 | <hekkaidekapus> | siraben: hmm… Scrolling down, I see you already got the errors in <http://ix.io/2yhY>. Cheers. |
| 2020-09-21 13:47:29 | <siraben> | Alright, so the only part that seems to have problems is the one that uses the c-dsl package, hm. |
| 2020-09-21 13:47:54 | <siraben> | c-dsl has dependenices base (==4.), language-c (==0.4.) |
| 2020-09-21 13:49:33 | → | nbloomf joins (~nbloomf@2600:1700:83e0:1f40:7928:db17:6f00:cd09) |
| 2020-09-21 13:49:49 | → | spew joins (uid195861@gateway/web/irccloud.com/x-ttozjtuhdixrdemb) |
| 2020-09-21 13:51:18 | → | gmt joins (~gmt@pool-71-105-108-44.nycmny.fios.verizon.net) |
| 2020-09-21 13:51:40 | → | bahamas joins (~lucian@unaffiliated/bahamas) |
| 2020-09-21 13:52:16 | → | mmohammadi9812 joins (~mmohammad@2.178.188.114) |
| 2020-09-21 13:53:47 | × | alp quits (~alp@88.126.45.36) (Ping timeout: 240 seconds) |
| 2020-09-21 13:55:09 | → | cpressey joins (~cpressey@79-65-248-204.host.pobb.as13285.net) |
| 2020-09-21 13:55:13 | → | Lycurgus joins (~niemand@98.4.96.130) |
| 2020-09-21 13:56:04 | × | bahamas quits (~lucian@unaffiliated/bahamas) (Ping timeout: 246 seconds) |
| 2020-09-21 13:56:15 | × | takuan_dozo quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 2020-09-21 13:56:16 | × | gmt quits (~gmt@pool-71-105-108-44.nycmny.fios.verizon.net) (Ping timeout: 272 seconds) |
| 2020-09-21 13:56:27 | <siraben> | Heh, relaxing that restriction on base seems to do the job. |
| 2020-09-21 13:57:20 | × | ryansmccoy quits (~ryansmcco@193.37.254.27) (Ping timeout: 256 seconds) |
| 2020-09-21 13:57:25 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 2020-09-21 13:58:08 | → | ryansmccoy joins (~ryansmcco@156.96.151.132) |
| 2020-09-21 13:58:42 | <siraben> | merijn: is there a way to put --allow-newer in the cabal file? |
| 2020-09-21 14:00:19 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 2020-09-21 14:01:47 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
| 2020-09-21 14:02:00 | × | jlamothe quits (~jlamothe@dev.jlamothe.net) (Quit: leaving) |
| 2020-09-21 14:02:51 | → | alp joins (~alp@2a01:e0a:58b:4920:e1db:5e81:371d:6a3c) |
| 2020-09-21 14:03:40 | <siraben> | cabal is complaining about multiple main libraries http://ix.io/2yil |
| 2020-09-21 14:04:13 | <siraben> | Oh if I write library c-dsl instead of library, it works. |
| 2020-09-21 14:04:14 | → | son0p joins (~son0p@181.136.122.143) |
All times are in UTC.