Logs on 2023-11-28 (liberachat/#haskell)
| 00:02:13 | × | chomwitt quits (~chomwitt@2a02:587:7a24:bc00:1ac0:4dff:fedb:a3f1) (Ping timeout: 268 seconds) |
| 00:02:57 | → | srk- joins (~sorki@user/srk) |
| 00:05:52 | × | srk quits (~sorki@user/srk) (Ping timeout: 255 seconds) |
| 00:05:53 | srk- | is now known as srk |
| 00:11:02 | → | srk- joins (~sorki@user/srk) |
| 00:12:25 | → | srk| joins (~sorki@user/srk) |
| 00:12:52 | → | andreas303 joins (andreas303@is.drunk.and.ready-to.party) |
| 00:13:56 | × | misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 268 seconds) |
| 00:15:10 | × | srk quits (~sorki@user/srk) (Ping timeout: 268 seconds) |
| 00:15:37 | srk| | is now known as srk |
| 00:16:02 | × | srk- quits (~sorki@user/srk) (Ping timeout: 260 seconds) |
| 00:17:25 | → | jargon joins (~jargon@184.101.176.143) |
| 00:18:56 | × | madariaga quits (~madariaga@user/madariaga) (Quit: madariaga) |
| 00:22:32 | → | emmanuelux joins (~emmanuelu@user/emmanuelux) |
| 00:25:01 | → | madariaga joins (~madariaga@user/madariaga) |
| 00:26:14 | × | madariaga quits (~madariaga@user/madariaga) (Client Quit) |
| 00:27:22 | × | pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 255 seconds) |
| 00:36:01 | × | ridcully quits (~ridcully@p57b5294c.dip0.t-ipconnect.de) (Ping timeout: 276 seconds) |
| 00:39:47 | → | madariaga joins (~madariaga@user/madariaga) |
| 00:39:59 | → | pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it) |
| 00:41:10 | <madariaga> | alright, by writing a hie.yaml file and specifying each executable in cradle -> cabal HLS everything works |
| 00:42:01 | <madariaga> | thanks for your help everyone. |
| 00:43:52 | × | madariaga quits (~madariaga@user/madariaga) (Client Quit) |
| 00:45:19 | × | pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 260 seconds) |
| 00:50:30 | → | madariaga joins (~madariaga@user/madariaga) |
| 00:51:40 | × | L29Ah quits (~L29Ah@wikipedia/L29Ah) (Ping timeout: 255 seconds) |
| 00:53:22 | × | tabemann quits (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Remote host closed the connection) |
| 00:53:24 | × | Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Ping timeout: 268 seconds) |
| 00:55:46 | → | ridcully joins (~ridcully@p57b52dae.dip0.t-ipconnect.de) |
| 00:56:10 | × | pounce quits (~pounce@user/cute/pounce) (Ping timeout: 260 seconds) |
| 00:57:13 | → | pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it) |
| 00:59:26 | → | notzmv joins (~zmv@user/notzmv) |
| 01:01:59 | → | mikess joins (~sam@user/mikess) |
| 01:02:05 | × | mikess quits (~sam@user/mikess) (Client Quit) |
| 01:02:32 | → | mikess joins (~sam@user/mikess) |
| 01:03:58 | × | pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 276 seconds) |
| 01:06:12 | → | ddellacosta joins (~ddellacos@ool-44c73d16.dyn.optonline.net) |
| 01:07:51 | → | pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it) |
| 01:08:13 | → | pounce joins (~pounce@user/cute/pounce) |
| 01:10:39 | → | sadmax joins (~user@64.130.91.66) |
| 01:15:14 | → | caryhartline joins (~caryhartl@168.182.58.169) |
| 01:15:57 | → | peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com) |
| 01:18:16 | × | pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 276 seconds) |
| 01:18:41 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 01:24:45 | × | fweht quits (uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 01:29:26 | × | TonyStone quits (~TonyStone@cpe-74-76-57-186.nycap.res.rr.com) (Quit: Leaving) |
| 01:29:41 | → | pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it) |
| 01:35:19 | × | pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 255 seconds) |
| 01:38:14 | → | tabemann joins (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) |
| 01:42:05 | × | haskellbridge quits (~haskellbr@069-135-003-034.biz.spectrum.com) (Ping timeout: 252 seconds) |
| 01:44:08 | → | haskellbridge joins (~haskellbr@069-135-003-034.biz.spectrum.com) |
| 01:44:08 | ChanServ | sets mode +v haskellbridge |
| 01:44:08 | × | haskellbridge quits (~haskellbr@069-135-003-034.biz.spectrum.com) (Read error: Connection reset by peer) |
| 01:44:29 | → | haskellbridge joins (~haskellbr@069-135-003-034.biz.spectrum.com) |
| 01:44:29 | ChanServ | sets mode +v haskellbridge |
| 01:44:29 | × | haskellbridge quits (~haskellbr@069-135-003-034.biz.spectrum.com) (Read error: Connection reset by peer) |
| 01:44:51 | → | haskellbridge joins (~haskellbr@069-135-003-034.biz.spectrum.com) |
| 01:44:51 | ChanServ | sets mode +v haskellbridge |
| 01:46:40 | × | jespada quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 255 seconds) |
| 01:47:04 | → | pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it) |
| 01:49:13 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 01:49:55 | × | TMA quits (tma@twin.jikos.cz) (Ping timeout: 256 seconds) |
| 01:50:45 | → | TMA joins (tma@twin.jikos.cz) |
| 01:50:56 | → | jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) |
| 01:53:22 | × | pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 276 seconds) |
| 01:59:21 | → | ubert1 joins (~Thunderbi@91.141.52.8.wireless.dyn.drei.com) |
| 01:59:23 | × | ubert quits (~Thunderbi@77.119.173.120.wireless.dyn.drei.com) (Ping timeout: 268 seconds) |
| 01:59:23 | ubert1 | is now known as ubert |
| 02:00:04 | × | sadmax quits (~user@64.130.91.66) (Ping timeout: 255 seconds) |
| 02:01:58 | × | analoq quits (~yashi@user/dies) (Ping timeout: 260 seconds) |
| 02:03:46 | → | analoq joins (~yashi@user/dies) |
| 02:04:22 | → | pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it) |
| 02:09:11 | × | pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 256 seconds) |
| 02:16:02 | × | xff0x quits (~xff0x@2405:6580:b080:900:f6fc:7981:2e92:1c0b) (Ping timeout: 268 seconds) |
| 02:16:49 | × | analoq quits (~yashi@user/dies) (Ping timeout: 255 seconds) |
| 02:17:06 | × | madariaga quits (~madariaga@user/madariaga) (Quit: madariaga) |
| 02:17:27 | → | madariaga joins (~madariaga@user/madariaga) |
| 02:20:58 | → | pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it) |
| 02:23:57 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 260 seconds) |
| 02:25:46 | × | pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 260 seconds) |
| 02:31:25 | → | pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it) |
| 02:38:14 | × | pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 268 seconds) |
| 02:40:51 | <iqubic> | is Haskell2020 a thing now? Can I put that into my cabal file? |
| 02:43:32 | → | analoq joins (~yashi@user/dies) |
| 02:46:39 | → | caef^ joins (~cd@c-98-242-74-66.hsd1.ga.comcast.net) |
| 02:50:04 | → | pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it) |
| 02:53:15 | <geekosaur> | Haskell2020 is not but GHC2020 is |
| 02:55:37 | → | newsham joins (~newsham@2603-800c-2c01-6825-6daa-0948-9100-d431.res6.spectrum.com) |
| 02:55:47 | × | pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 264 seconds) |
| 02:57:08 | <newsham> | lets say I have parsed the untyped lambda calculus, and then type checked it so that every term has a (value level) type annotation on it. Does haskell have any tools suitable for constructing a typed lambda calculus from each term where the term's types have type level annotations on them? ie. dependent types based on the value level types? |
| 02:57:13 | <geekosaur> | and yes, you can specify it as the language |
| 02:58:41 | <newsham> | like `instance ... where func TInt expr = Constructor expr :: Int` |
| 02:59:30 | <newsham> | err `:: Expr Int` |
| 03:02:49 | → | xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
| 03:04:13 | <jackdk> | GADTs? |
| 03:04:32 | → | JeremyB99 joins (~JeremyB99@208.64.173.6) |
| 03:05:02 | → | not_reserved joins (~not_reser@45.144.113.233) |
| 03:07:10 | → | pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it) |
| 03:07:13 | × | td_ quits (~td@i53870917.versanet.de) (Ping timeout: 268 seconds) |
| 03:07:24 | × | not_reserved quits (~not_reser@45.144.113.233) (Client Quit) |
| 03:07:38 | → | not_reserved joins (~not_reser@45.144.113.233) |
| 03:07:57 | <EvanR> | GADTs |
| 03:08:35 | → | td_ joins (~td@i5387092B.versanet.de) |
| 03:09:40 | <newsham> | i thought that might be part of the answer, but can you be more concrete? |
| 03:11:20 | × | Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection) |
| 03:11:39 | → | Feuermagier joins (~Feuermagi@user/feuermagier) |
| 03:11:56 | <newsham> | ie. `data MyNum = MyNum Typ Val`. `data Typ = MyInt | MyInteger`. `data TypedNum a = TypedNum val`. How can I write a func `f MyNum MyInt x = TypedNum x :: TypedNum Int` and `f MyNum MyInteger x = TypedNum x :: TypedNum Integer` ? |
| 03:12:48 | <newsham> | er.. thats not all correct, but I think you can understand the question? |
| 03:13:13 | × | pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 256 seconds) |
| 03:16:33 | → | nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
| 03:17:38 | → | matthewmosior joins (~matthewmo@096-059-082-099.res.spectrum.com) |
| 03:19:16 | × | matthewmosior quits (~matthewmo@096-059-082-099.res.spectrum.com) (Client Quit) |
| 03:19:49 | <newsham> | concretely here: https://play.haskell.org/saved/iCGAWVXU |
| 03:21:07 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:c5ae:90af:10b1:51fe) (Remote host closed the connection) |
| 03:21:22 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:c5ae:90af:10b1:51fe) |
| 03:21:43 | × | peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds) |
| 03:21:52 | × | hgolden quits (~hgolden@2603-8000-9d00-3ed1-dd4f-298a-9c49-a0ed.res6.spectrum.com) (Remote host closed the connection) |
| 03:23:43 | → | rosco joins (~rosco@175.136.157.149) |
| 03:24:49 | → | pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it) |
| 03:25:07 | × | edr quits (~edr@user/edr) (Quit: Leaving) |
| 03:26:39 | × | madariaga quits (~madariaga@user/madariaga) (Quit: madariaga) |
| 03:26:54 | → | hgolden joins (~hgolden@2603-8000-9d00-3ed1-dd4f-298a-9c49-a0ed.res6.spectrum.com) |
| 03:29:45 | → | madariaga joins (~madariaga@user/madariaga) |
| 03:30:39 | × | madariaga quits (~madariaga@user/madariaga) (Client Quit) |
| 03:32:04 | <jackdk> | https://en.wikipedia.org/wiki/Generalized_algebraic_data_type#Higher-order_abstract_syntax has a Haskell example. The `Lift` constructor tracks the type of the primitive that it wraps, and then the other constructors use the types of the arguments to influence the type of the result |
| 03:32:15 | → | madariaga joins (~madariaga@user/madariaga) |
| 03:33:12 | <EvanR> | how do you plan the index the GADT by the value of the term, when the term may have unknowns in it |
| 03:33:24 | <EvanR> | e.g. the x within \x -> x |
| 03:33:45 | × | madariaga quits (~madariaga@user/madariaga) (Client Quit) |
| 03:33:50 | <jackdk> | it doesn't, it indexes it by the type of the term? |
| 03:33:58 | <EvanR> | newsham, was trying to do both |
| 03:34:49 | → | madariaga joins (~madariaga@user/madariaga) |
| 03:35:04 | <EvanR> | usually you settle for just tracking the type |
| 03:35:27 | <jackdk> | then you probably have to make your value-level type annotation into a singleton type |
| 03:36:27 | <jackdk> | and/or set up a corresponding singleton type - I never really got my head around the singletons library but despite jle's series starting at https://blog.jle.im/entry/introduction-to-singletons-1.html is excellent |
| 03:36:31 | <newsham> | not sure thats viable if this isnt viable.. because at first untyped LC would be parsed as untyped, then types would be computed. so I'd still need a way to change types dynamically. |
| 03:36:55 | × | pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 255 seconds) |
| 03:37:22 | <EvanR> | you could apply "parse, don't validate" here and do the type checking during the parsing. If it can't type check, it can't parse |
| 03:38:01 | <EvanR> | correct by construction |
| 03:38:13 | <newsham> | actually started down that road first.. got bogged down. but might return to that. |
| 03:38:36 | <EvanR> | you can always take a well typed term and extract an untyped lambda term |
| 03:38:58 | <newsham> | cool except its not what i want. heh. can do thing i dont want, but not thing i want. |
| 03:39:06 | × | madariaga quits (~madariaga@user/madariaga) (Ping timeout: 245 seconds) |
| 03:39:41 | <newsham> | I guess the question in my mind still is "is there a way to dynamically convert a value to a type in haskell with extensions", and I'm guessing the answer is "no". |
| 03:39:54 | <newsham> | because type checking is something happening at compile time. |
| 03:40:26 | <[Leary]> | Parse text into an untyped representation, then parse the untyped representation into a typed one. |
| 03:40:36 | → | pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it) |
| 03:41:03 | <newsham> | but parsing into a typed rep means I have to know the resulting type ahead of time, no? |
| 03:41:27 | <newsham> | ie: "parse typedParser "..." :: TExpr (Int -> Int)` |
| 03:43:34 | <[Leary]> | The result type can be hidden by an existential or passed to a polymorphic continuation that doesn't need to know it. |
| 03:43:57 | <jackdk> | Given `TExpr a` where `a` is a tyvar of some kind, you could parse to `Some TExpr` where `data Some where Some :: f a -> Some f` |
| 03:44:25 | <jackdk> | And if you had a singleton that you could pattern-match on, you could recover `a` at runtime |
| 03:44:38 | <jackdk> | (I'm speaking a little loosely) |
| 03:44:51 | <iqubic> | Is there anywhere I can go to learn about what language extensions GHC2020 enables by default? |
| 03:45:13 | <newsham> | time to leanr singletons to understand better |
| 03:45:47 | <EvanR> | iqubic, probably google for GHC2020 |
| 03:46:23 | <[Leary]> | I'd skip the middle man and just ask the GHC User's Guide directly. |
| 03:46:29 | <jackdk> | iqubic: GHC User's Guide |
| 03:46:33 | <jackdk> | [Leary]: snap |
| 03:46:41 | × | pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 268 seconds) |
| 03:46:47 | <jackdk> | iqubic: https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/control.html#extension-GHC2021 |
| 03:47:42 | <iqubic> | Why is lambdacase not default yet? |
| 03:48:22 | <jackdk> | Because it's not in a Haskell report |
| 03:48:25 | <EvanR> | google for GHC's user guide xD |
| 03:48:41 | <EvanR> | then search within the user guide using internal search |
| 03:48:45 | <jackdk> | Also https://discourse.haskell.org/t/ghc2024-community-input/8168 is soliciting input for the GHC2024 language set |
| 03:49:10 | <EvanR> | iqubic, skips the middleman and gets irc to produce URLs |
| 03:49:10 | × | [_] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
| 03:55:15 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 03:55:15 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 03:55:15 | finn_elija | is now known as FinnElija |
| 03:56:11 | → | Xyloes joins (~wyx@2400:dd01:103a:1012:5923:33ce:7857:fc04) |
| 03:56:28 | <jackdk> | newsham: https://play.haskell.org/saved/qEqZMAGk if you pattern-match on the `SType` in a `Some Expr`, the type checker will add constraints to `a` based on what type the variable must be (e.g., if you match a `STUnk`, it will know that `a ~ 'TUnk` |
| 03:57:58 | → | arahael joins (~arahael@119-18-2-212.771202.syd.nbn.aussiebb.net) |
| 03:58:08 | → | pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it) |
| 04:01:04 | <iqubic> | Evan, I am not a smart lady. |
| 04:01:47 | × | ddellacosta quits (~ddellacos@ool-44c73d16.dyn.optonline.net) (Ping timeout: 264 seconds) |
| 04:03:26 | → | ddellacosta joins (~ddellacos@ool-44c73d16.dyn.optonline.net) |
| 04:05:48 | × | pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 268 seconds) |
| 04:10:40 | → | peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com) |
| 04:10:46 | <newsham> | i think i get the idea. matching on some value level type witness lets you get from values to types. |
| 04:11:36 | <newsham> | still trying to process how I would use this, and in particular, how it will work with an infinite set of types (ie `Fun a b` where `a` or `b` could also be `Fun`) |
| 04:11:58 | <newsham> | i'll play around with the idea. its neat. |
| 04:16:59 | → | pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it) |
| 04:18:46 | × | nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 255 seconds) |
| 04:23:16 | × | pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 255 seconds) |
| 04:24:13 | → | derpyxdhs joins (~Thunderbi@user/derpyxdhs) |
| 04:34:58 | → | pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it) |
| 04:36:23 | × | emmanuelux quits (~emmanuelu@user/emmanuelux) (Quit: au revoir) |
| 04:36:26 | × | whatsupdoc quits (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 04:40:00 | × | derpyxdhs quits (~Thunderbi@user/derpyxdhs) (Quit: derpyxdhs) |
| 04:40:37 | × | mikess quits (~sam@user/mikess) (Quit: leaving) |
| 04:40:58 | × | pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 256 seconds) |
| 04:52:19 | → | trev joins (~trev@user/trev) |
| 04:52:37 | → | pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it) |
| 04:54:44 | → | aforemny_ joins (~aforemny@i59F516E0.versanet.de) |
| 04:55:40 | × | aforemny quits (~aforemny@2001:9e8:6cc7:1300:96d5:106c:58e4:1727) (Ping timeout: 255 seconds) |
| 04:56:04 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 04:58:32 | × | pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 252 seconds) |
| 05:00:49 | → | _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
| 05:01:34 | → | lisbeths joins (uid135845@id-135845.lymington.irccloud.com) |
| 05:01:47 | → | Square2 joins (~Square4@user/square) |
| 05:03:30 | × | Square quits (~Square@user/square) (Ping timeout: 260 seconds) |
| 05:10:16 | → | pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it) |
| 05:16:03 | × | pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 256 seconds) |
| 05:20:18 | → | bilegeek joins (~bilegeek@2600:1008:b04f:8b1a:c952:a856:d7cb:e2d0) |
| 05:27:18 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 05:27:39 | → | pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it) |
| 05:36:35 | × | pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 256 seconds) |
| 05:37:16 | <hammond> | http://repetae.net/computer/jhc/ |
| 05:37:18 | <hammond> | yeah? |
| 05:37:21 | <hammond> | or no? |
| 05:46:43 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 276 seconds) |
| 05:47:12 | → | euleritian joins (~euleritia@dynamic-046-114-205-072.46.114.pool.telefonica.de) |
| 05:48:36 | → | pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it) |
| 05:49:23 | × | rosco quits (~rosco@175.136.157.149) (Quit: Lost terminal) |
| 05:51:21 | × | euleritian quits (~euleritia@dynamic-046-114-205-072.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
| 05:51:38 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 05:52:35 | → | chomwitt joins (~chomwitt@2a02:587:7a24:bc00:1ac0:4dff:fedb:a3f1) |
| 05:54:25 | × | pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 260 seconds) |
| 05:56:44 | × | newsham quits (~newsham@2603-800c-2c01-6825-6daa-0948-9100-d431.res6.spectrum.com) (Quit: Client closed) |
| 06:03:43 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
| 06:06:15 | → | pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it) |
| 06:11:55 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds) |
| 06:12:02 | × | pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Max SendQ exceeded) |
| 06:12:29 | → | euleritian joins (~euleritia@dynamic-046-114-205-072.46.114.pool.telefonica.de) |
| 06:13:09 | → | pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it) |
| 06:17:56 | × | tertek quits (~tertek@user/tertek) (Remote host closed the connection) |
| 06:18:17 | → | tertek joins (~tertek@user/tertek) |
| 06:19:34 | × | pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 256 seconds) |
| 06:30:15 | <EvanR> | hammond, hell yeah |
| 06:30:29 | <EvanR> | try jhc and tell me how it goes |
| 06:31:17 | → | pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it) |
| 06:33:47 | <hammond> | lol |
| 06:37:22 | × | pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 255 seconds) |
| 06:38:18 | <hammond> | ssrly though i was looking at this. https://www.reddit.com/r/haskell/comments/bcdq65/initial_hacking_of_ghc_for_gcc_linktime/ |
| 06:38:36 | <hammond> | maybe it is old though idk. it did make me wonder. |
| 06:39:15 | × | _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht) |
| 06:48:35 | × | analoq quits (~yashi@user/dies) (Ping timeout: 264 seconds) |
| 06:48:58 | → | pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it) |
| 06:50:05 | → | analoq joins (~yashi@user/dies) |
| 06:50:20 | → | gmg joins (~user@user/gehmehgeh) |
| 06:52:58 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 06:53:57 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 06:54:49 | × | pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 255 seconds) |
| 06:56:51 | × | smalltalkman quits (uid545680@id-545680.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 06:58:28 | × | thegeekinside quits (~thegeekin@189.180.53.210) (Ping timeout: 268 seconds) |
| 07:01:59 | → | acidjnk joins (~acidjnk@p200300d6e72b9317058012a22410a419.dip0.t-ipconnect.de) |
| 07:05:25 | → | smalltalkman joins (uid545680@id-545680.hampstead.irccloud.com) |
| 07:06:54 | → | pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it) |
| 07:08:34 | × | peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds) |
| 07:12:38 | × | pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 252 seconds) |
| 07:16:54 | → | misterfish joins (~misterfis@84-53-85-146.bbserv.nl) |
| 07:19:37 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 07:23:44 | × | lhpitn quits (~tn@mail.lebenshilfe-pi.de) (Read error: Connection reset by peer) |
| 07:24:17 | → | pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it) |
| 07:32:01 | × | pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 276 seconds) |
| 07:33:31 | → | rosco joins (~rosco@175.136.157.149) |
| 07:33:32 | × | misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 252 seconds) |
| 07:35:56 | → | kenran joins (~user@user/kenran) |
| 07:39:50 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 07:42:31 | × | qqq quits (~qqq@92.43.167.61) (Ping timeout: 260 seconds) |
| 07:43:21 | × | euleritian quits (~euleritia@dynamic-046-114-205-072.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
| 07:43:39 | → | euleritian joins (~euleritia@77.22.252.56) |
| 07:43:52 | → | pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it) |
| 07:47:14 | → | qqq joins (~qqq@92.43.167.61) |
| 07:47:32 | × | tzh quits (~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Quit: zzz) |
| 07:48:25 | × | shriekingnoise quits (~shrieking@186.137.175.87) (Ping timeout: 268 seconds) |
| 07:49:41 | × | pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 260 seconds) |
| 07:50:50 | → | pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it) |
| 07:53:17 | × | kenran quits (~user@user/kenran) (Remote host closed the connection) |
| 07:53:48 | → | kenran joins (~user@user/kenran) |
| 07:55:31 | → | misterfish joins (~misterfis@84-53-85-146.bbserv.nl) |
| 07:56:26 | → | kenran` joins (~user@user/kenran) |
| 07:56:34 | × | pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 255 seconds) |
| 07:57:24 | → | coot joins (~coot@89-69-206-216.dynamic.chello.pl) |
| 07:58:23 | × | kenran quits (~user@user/kenran) (Ping timeout: 252 seconds) |
| 08:01:50 | → | pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it) |
| 08:07:38 | → | arahael_ joins (~arahael@1.145.96.183) |
| 08:10:03 | × | rosco quits (~rosco@175.136.157.149) (Ping timeout: 260 seconds) |
| 08:10:09 | × | misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 256 seconds) |
| 08:11:12 | × | pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 256 seconds) |
| 08:12:00 | → | pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it) |
| 08:16:10 | → | nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
| 08:16:23 | → | fendor joins (~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) |
| 08:16:36 | → | rosco joins (~rosco@175.136.158.171) |
| 08:18:20 | × | pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 268 seconds) |
| 08:19:01 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 08:21:06 | × | nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 268 seconds) |
| 08:21:48 | → | pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it) |
| 08:27:53 | × | pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 268 seconds) |
| 08:30:24 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 08:31:04 | → | pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it) |
| 08:41:16 | × | pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 246 seconds) |
| 08:42:55 | → | Lycurgus joins (~georg@user/Lycurgus) |
| 08:51:00 | → | pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it) |
| 08:51:06 | × | lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 08:54:16 | × | JeremyB99 quits (~JeremyB99@208.64.173.6) (Ping timeout: 256 seconds) |
| 08:54:16 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 08:56:36 | × | pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 245 seconds) |
| 08:58:32 | → | pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it) |
| 09:01:09 | × | Lycurgus quits (~georg@user/Lycurgus) (Quit: leaving) |
| 09:06:02 | × | masterbuilder quits (~quassel@user/masterbuilder) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 09:06:43 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 09:09:50 | → | dhil joins (~dhil@2001:8e0:2014:3100:8523:26aa:23b6:e435) |
| 09:10:16 | → | idgaen joins (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
| 09:11:04 | → | CiaoSen joins (~Jura@2a05:5800:291:5500:2a3a:4dff:fe84:dbd5) |
| 09:12:39 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 09:13:58 | → | JeremyB99 joins (~JeremyB99@208.64.173.6) |
| 09:16:08 | × | econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
| 09:17:28 | → | danza joins (~francesco@151.35.232.56) |
| 09:18:54 | → | cfricke joins (~cfricke@user/cfricke) |
| 09:19:20 | → | kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be) |
| 09:21:45 | × | bilegeek quits (~bilegeek@2600:1008:b04f:8b1a:c952:a856:d7cb:e2d0) (Quit: Leaving) |
| 09:21:49 | → | misterfish joins (~misterfis@87.215.131.102) |
| 09:22:11 | → | akegalj joins (~akegalj@89-172-89-238.adsl.net.t-com.hr) |
| 09:28:39 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 09:29:51 | × | danza quits (~francesco@151.35.232.56) (Ping timeout: 260 seconds) |
| 09:36:49 | → | Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 09:37:11 | × | not_reserved quits (~not_reser@45.144.113.233) (Quit: Client closed) |
| 09:37:28 | → | chele joins (~chele@user/chele) |
| 09:38:38 | → | danse-nr3 joins (~danse@151.19.224.252) |
| 09:45:31 | → | zetef joins (~quassel@2a02:2f00:5201:4b00:19c:1be6:f517:649f) |
| 09:47:51 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:c5ae:90af:10b1:51fe) (Remote host closed the connection) |
| 09:50:39 | × | zetef quits (~quassel@2a02:2f00:5201:4b00:19c:1be6:f517:649f) (Remote host closed the connection) |
| 09:51:25 | → | zetef joins (~quassel@2a02:2f00:5201:4b00:7fc8:6fbe:33d9:ba2a) |
| 09:52:17 | → | potato44 joins (uid421314@id-421314.lymington.irccloud.com) |
| 09:55:11 | × | zetef quits (~quassel@2a02:2f00:5201:4b00:7fc8:6fbe:33d9:ba2a) (Client Quit) |
| 09:56:41 | × | arahael_ quits (~arahael@1.145.96.183) (Read error: Connection reset by peer) |
| 09:57:08 | → | Lycurgus joins (~georg@li1192-118.members.linode.com) |
| 09:57:08 | × | Lycurgus quits (~georg@li1192-118.members.linode.com) (Changing host) |
| 09:57:08 | → | Lycurgus joins (~georg@user/Lycurgus) |
| 09:57:21 | → | zetef joins (~quassel@2a02:2f00:5201:4b00:7fc8:6fbe:33d9:ba2a) |
| 09:57:29 | × | Lycurgus quits (~georg@user/Lycurgus) (Client Quit) |
| 09:58:19 | <bwe> | I wonder the site's name that had multiple times framework in its uri. it basically explained starting from vanilla code how framework on top of framework rendered themselves useless. do you know it by any chance? |
| 09:59:30 | <danse-nr3> | no but it sounds funny |
| 10:01:39 | × | rosco quits (~rosco@175.136.158.171) (Quit: Lost terminal) |
| 10:01:51 | → | rosco joins (~rosco@175.136.158.171) |
| 10:05:50 | <danse-nr3> | not a problem in haskell though? Which frameworks would you put on top of each other? (maybe conduit on top of transformers) |
| 10:06:45 | × | xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 256 seconds) |
| 10:07:11 | <tomsmeding> | you can probably pile data types a-la-carte with some additional type-indexing on top of servant |
| 10:07:21 | <tomsmeding> | and no one will bat an eye |
| 10:07:30 | <tomsmeding> | our frameworks look different :p |
| 10:07:46 | <bwe> | I've got it: https://factoryfactoryfactory.net |
| 10:10:19 | <danse-nr3> | hmm but factory and framework are very different concepts... |
| 10:10:42 | → | Jackneill joins (~Jackneill@20014C4E1E120500906E1D747CFD14BF.dsl.pool.telekom.hu) |
| 10:11:05 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 10:11:51 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds) |
| 10:12:01 | → | arahael__ joins (~arahael@1.145.68.95) |
| 10:12:30 | × | rosco quits (~rosco@175.136.158.171) (Quit: Lost terminal) |
| 10:13:05 | <_d0t> | ohai! Is there a way to find where an instance in scope was declared? I have a piece of code with overlapping instances and one of them seems imported transitively from god knows where. |
| 10:14:03 | Lord_of_Life_ | is now known as Lord_of_Life |
| 10:15:00 | → | rosco joins (~rosco@175.136.158.171) |
| 10:16:42 | → | luna joins (~luna@fedora/bittin) |
| 10:21:14 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:5836:1305:ce95:7f7f) |
| 10:22:12 | ← | luna parts (~luna@fedora/bittin) () |
| 10:23:36 | × | rosco quits (~rosco@175.136.158.171) (Quit: Lost terminal) |
| 10:23:48 | → | rosco joins (~rosco@175.136.158.171) |
| 10:25:48 | <danse-nr3> | not sure, i guess i would rely on the error from the compiler to track that up, but maybe someone knows of a way using the language server |
| 10:26:22 | × | rosco quits (~rosco@175.136.158.171) (Client Quit) |
| 10:27:00 | → | rosco joins (~rosco@175.136.158.171) |
| 10:27:31 | × | rosco quits (~rosco@175.136.158.171) (Client Quit) |
| 10:28:39 | × | arahael__ quits (~arahael@1.145.68.95) (Read error: Connection reset by peer) |
| 10:32:58 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 10:35:32 | → | rosco joins (~rosco@175.136.158.171) |
| 10:40:21 | × | rosco quits (~rosco@175.136.158.171) (Client Quit) |
| 10:40:34 | → | rosco joins (~rosco@175.136.158.171) |
| 10:42:02 | × | rosco quits (~rosco@175.136.158.171) (Client Quit) |
| 10:46:20 | → | rosco joins (~rosco@175.136.158.171) |
| 10:47:01 | → | gensyst joins (~gensyst@user/gensyst) |
| 10:50:16 | <gensyst> | About the hxt (XML parsing) library: How can I wrap existing XmlTree into a brand-new document? |
| 10:51:56 | <gensyst> | Somehow, transform XmlTree into this behemoth IOSLA (XIOState ()) XmlTree (NTree XNode) |
| 10:53:27 | <gensyst> | My goal is to first grab all XmlTrees of certain name, then later in the codebase, work on those individually. |
| 10:53:30 | <gensyst> | Modularity. |
| 10:53:36 | × | rosco quits (~rosco@175.136.158.171) (Quit: Lost terminal) |
| 10:53:53 | <gensyst> | I hope this is possible with hxt. I hope I don't have to do everything all at once in the same runX |
| 10:54:32 | → | rosco joins (~rosco@175.136.158.171) |
| 10:55:16 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 268 seconds) |
| 10:58:35 | <danse-nr3> | can't check that lib right now, but if something is missing from its doc you can always open an issue about it |
| 10:59:39 | <gensyst> | The thing is, with readString or readDocument I can turn a string or FilePath into that behemoth I mentioned. |
| 10:59:55 | <gensyst> | I just don't see a way to turn XmlTree into that behemoth |
| 11:00:11 | <gensyst> | Maybe this is by design |
| 11:00:18 | <gensyst> | (controlled side effects etc) |
| 11:00:26 | <gensyst> | ? |
| 11:00:49 | × | qqq quits (~qqq@92.43.167.61) (Ping timeout: 268 seconds) |
| 11:02:17 | → | qqq joins (~qqq@92.43.167.73) |
| 11:02:40 | × | remedan quits (~remedan@ip-94-112-0-18.bb.vodafone.cz) (Ping timeout: 268 seconds) |
| 11:03:50 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 11:04:33 | × | rosco quits (~rosco@175.136.158.171) (Quit: Lost terminal) |
| 11:05:38 | → | xff0x joins (~xff0x@ai096045.d.east.v6connect.net) |
| 11:05:40 | → | oo_miguel joins (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) |
| 11:06:01 | × | zetef quits (~quassel@2a02:2f00:5201:4b00:7fc8:6fbe:33d9:ba2a) (Ping timeout: 255 seconds) |
| 11:06:59 | → | AlienCipher joins (~AlienCiph@113.164.176.43) |
| 11:07:22 | × | AlienCipher quits (~AlienCiph@113.164.176.43) (Client Quit) |
| 11:09:15 | → | remedan joins (~remedan@ip-94-112-0-18.bb.vodafone.cz) |
| 11:10:31 | × | CiaoSen quits (~Jura@2a05:5800:291:5500:2a3a:4dff:fe84:dbd5) (Ping timeout: 255 seconds) |
| 11:18:06 | × | akegalj quits (~akegalj@89-172-89-238.adsl.net.t-com.hr) (Quit: leaving) |
| 11:22:51 | × | biberu quits (~biberu@user/biberu) (Read error: Connection reset by peer) |
| 11:23:15 | → | biberu joins (~biberu@user/biberu) |
| 11:25:39 | × | qqq quits (~qqq@92.43.167.73) (Ping timeout: 256 seconds) |
| 11:26:39 | → | qqq joins (~qqq@92.43.167.73) |
| 11:27:15 | → | not_reserved joins (~not_reser@45.144.113.236) |
| 11:28:37 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 276 seconds) |
| 11:29:31 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 11:29:48 | × | foul_owl quits (~kerry@174-21-66-189.tukw.qwest.net) (Ping timeout: 268 seconds) |
| 11:39:29 | → | aplainzetakind joins (~aplainzet@146.70.171.174) |
| 11:42:41 | → | foul_owl joins (~kerry@185.219.141.160) |
| 11:46:44 | → | __monty__ joins (~toonn@user/toonn) |
| 11:51:56 | × | Xyloes quits (~wyx@2400:dd01:103a:1012:5923:33ce:7857:fc04) (Quit: Konversation terminated!) |
| 11:56:07 | × | qqq quits (~qqq@92.43.167.73) (Ping timeout: 256 seconds) |
| 11:58:01 | → | qqq joins (~qqq@92.43.167.61) |
| 12:02:55 | × | JeremyB99 quits (~JeremyB99@208.64.173.6) (Ping timeout: 260 seconds) |
| 12:03:21 | → | JeremyB99 joins (~JeremyB99@208.64.173.6) |
| 12:04:03 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 12:04:26 | <srk> | glguy: was hacking on Haskell and IRC as well past two days https://github.com/sorki/ircbridge |
| 12:04:35 | × | idgaen quits (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.1.1) |
| 12:04:42 | → | gensystt joins (~gensyst@user/gensyst) |
| 12:07:25 | × | JeremyB99 quits (~JeremyB99@208.64.173.6) (Ping timeout: 245 seconds) |
| 12:07:35 | × | gensyst quits (~gensyst@user/gensyst) (Ping timeout: 260 seconds) |
| 12:08:01 | <danse-nr3> | quite productive for a couple of days ;) |
| 12:10:09 | → | applecat joins (~applecat@116.204.144.46) |
| 12:10:53 | <srk> | danse-nr3: I've built it 3 years ago, haven't touched it since then (but it was working quite well since then), now it's pretty much done. there are features I can add but there's not much to remove so it's perfect |
| 12:13:12 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 12:13:17 | → | Square3 joins (~Square4@user/square) |
| 12:13:17 | × | Square3 quits (~Square4@user/square) (Remote host closed the connection) |
| 12:13:44 | × | danse-nr3 quits (~danse@151.19.224.252) (Ping timeout: 256 seconds) |
| 12:14:08 | × | Square2 quits (~Square4@user/square) (Ping timeout: 252 seconds) |
| 12:14:43 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 12:16:37 | × | migas9 quits (~migas@static.140.65.63.178.clients.your-server.de) (Quit: The Lounge - https://thelounge.github.io) |
| 12:17:29 | → | nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
| 12:18:17 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 12:18:40 | → | migas9 joins (~migas@static.140.65.63.178.clients.your-server.de) |
| 12:19:44 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 4.1.1) |
| 12:20:46 | × | aplainzetakind quits (~aplainzet@146.70.171.174) (Quit: Client closed) |
| 12:22:53 | × | nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 256 seconds) |
| 12:27:31 | <Unicorn_Princess> | two monks were walking across a bridge |
| 12:27:59 | <Unicorn_Princess> | and the junior monk said to his teacher "what is the monad nature?" |
| 12:28:10 | <Unicorn_Princess> | and the other monk picked him up and threw him in the water |
| 12:29:07 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) |
| 12:29:07 | × | Feuermagier quits (~Feuermagi@user/feuermagier) (Ping timeout: 256 seconds) |
| 12:34:57 | <ncf> | lol |
| 12:35:20 | <ncf> | you sure he didn't say "μ!" ? |
| 12:38:08 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer) |
| 12:38:10 | → | danse-nr3 joins (~danse@151.19.224.252) |
| 12:38:23 | × | waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 264 seconds) |
| 12:38:48 | <ski> | μ : M ∘ M ⟶ M |
| 12:39:55 | <gensystt> | About the hxt (XML parsing) library: How can I wrap existing XmlTree into a brand-new document? |
| 12:39:56 | <gensystt> | Somehow, transform XmlTree into this behemoth IOSLA (XIOState ()) XmlTree (NTree XNode) |
| 12:39:56 | <gensystt> | My goal is modularity: first grab all XmlTrees of certain name, then later work on those individually. |
| 12:39:56 | <gensystt> | I hope this is possible with hxt. I hope I don't have to do everything all at once in the same runX. The thing is, with readString or readDocument I can turn a string or FilePath into that behemoth I mentioned. |
| 12:39:56 | <gensystt> | I just don't see a way to turn XmlTree into that behemoth. |
| 12:40:40 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 12:41:57 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) |
| 12:42:07 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer) |
| 12:43:07 | <danse-nr3> | i am pretty sure most people have read this already the first time, although i understand that the channel looks more active now |
| 12:43:07 | → | rosco joins (~rosco@175.136.158.171) |
| 12:47:12 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) |
| 12:49:05 | → | CiaoSen joins (~Jura@2a05:5800:291:5500:2a3a:4dff:fe84:dbd5) |
| 12:51:30 | → | tremon joins (~tremon@83.80.159.219) |
| 12:52:34 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer) |
| 12:59:04 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) |
| 12:59:05 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer) |
| 13:00:30 | → | sawilagar joins (~sawilagar@user/sawilagar) |
| 13:01:41 | <gensystt> | I figured it out |
| 13:02:07 | <gensystt> | I just have to wrap the XmlTree into a constA (the constant arrow, I suppose) |
| 13:02:18 | <gensystt> | that the arrow way of doing "pure" or "return" it seems |
| 13:03:57 | <danse-nr3> | oh i see then the problem was the arrow interface |
| 13:06:28 | × | applecat quits (~applecat@116.204.144.46) (Ping timeout: 250 seconds) |
| 13:09:19 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) |
| 13:09:24 | × | poscat quits (~poscat@user/poscat) (Quit: Bye) |
| 13:12:13 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer) |
| 13:14:10 | × | dcoutts quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 255 seconds) |
| 13:14:52 | → | poscat joins (~poscat@user/poscat) |
| 13:15:22 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 13:17:37 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) |
| 13:20:45 | × | _d0t quits (~{-d0t-}@user/-d0t-/x-7915216) (Ping timeout: 245 seconds) |
| 13:20:49 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer) |
| 13:25:33 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) |
| 13:27:14 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer) |
| 13:28:01 | → | _d0t joins (~{-d0t-}@user/-d0t-/x-7915216) |
| 13:33:23 | → | mikess joins (~sam@user/mikess) |
| 13:35:43 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) |
| 13:35:48 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer) |
| 13:41:10 | × | danse-nr3 quits (~danse@151.19.224.252) (Ping timeout: 255 seconds) |
| 13:42:27 | → | dcoutts joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) |
| 13:42:30 | → | danse-nr3 joins (~danse@151.37.249.255) |
| 13:45:38 | × | danse-nr3 quits (~danse@151.37.249.255) (Remote host closed the connection) |
| 13:45:48 | → | edr joins (~edr@user/edr) |
| 13:46:23 | → | danse-nr3 joins (~danse@151.37.249.255) |
| 13:49:24 | × | kenran` quits (~user@user/kenran) (Remote host closed the connection) |
| 13:57:04 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 13:58:11 | <EvanR> | the intersection of XML and Arrow sounds unlikely as hell, I like it |
| 13:59:04 | <danse-nr3> | haha how so? Arrow is a very generic abstraction |
| 14:00:54 | <EvanR> | I've also heard that it is unnecessarily specific |
| 14:01:40 | <danse-nr3> | to be fair arrows confuse me a bit. I have heard of them as a great abstraction, but when i try to study the basics of it they look just like tuples |
| 14:02:15 | <danse-nr3> | pairs, to be precise |
| 14:02:35 | → | shriekingnoise joins (~shrieking@186.137.175.87) |
| 14:03:09 | <EvanR> | the example I default to is the string diagram-ish diagrams for e.g. yampa programs |
| 14:03:24 | → | thegeekinside joins (~thegeekin@189.180.53.210) |
| 14:03:25 | <EvanR> | https://wiki.haskell.org/Yampa |
| 14:04:08 | × | mikess quits (~sam@user/mikess) (Quit: leaving) |
| 14:04:44 | <danse-nr3> | yeah i see how primitives on top of pairs can be helpful for the case of those diagrams. They are still pairs though |
| 14:05:19 | → | mikess joins (~sam@user/mikess) |
| 14:06:36 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) |
| 14:07:02 | <EvanR> | :thonk: |
| 14:07:24 | <EvanR> | how is arr f a pair |
| 14:08:12 | × | thegeekinside quits (~thegeekin@189.180.53.210) (Ping timeout: 256 seconds) |
| 14:08:42 | <Unicorn_Princess> | the "tutorial introduction" linked from https://wiki.haskell.org/Arrow is 56 pages :| |
| 14:09:00 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer) |
| 14:09:43 | <EvanR> | :t fst |
| 14:09:44 | <danse-nr3> | `arr` is not a pair, but all the rest you can do with it seems to be use it on a pair |
| 14:09:44 | <lambdabot> | (a, b) -> a |
| 14:09:48 | <EvanR> | :t first |
| 14:09:49 | <lambdabot> | Arrow a => a b c -> a (b, d) (c, d) |
| 14:09:52 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) |
| 14:10:47 | <EvanR> | pairs have both parameters in positive position, while the humble function arrow has one positive one negative |
| 14:11:26 | <danse-nr3> | :t arr |
| 14:11:27 | <lambdabot> | Arrow a => (b -> c) -> a b c |
| 14:13:39 | <ski> | the main problem with arrows is `arr' |
| 14:14:03 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer) |
| 14:14:22 | <Unicorn_Princess> | pfft, landlubbers |
| 14:14:34 | <ski> | @arr |
| 14:14:34 | <lambdabot> | Aye Aye Cap'n |
| 14:17:42 | × | mikess quits (~sam@user/mikess) (Quit: leaving) |
| 14:17:58 | × | danse-nr3 quits (~danse@151.37.249.255) (Read error: Connection reset by peer) |
| 14:18:32 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) |
| 14:18:36 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer) |
| 14:18:56 | → | thegeekinside joins (~thegeekin@189.180.53.210) |
| 14:22:02 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) |
| 14:23:34 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 14:23:57 | → | komikat joins (~akshitkr@218.185.248.66) |
| 14:25:08 | <komikat> | what would you guys recommend for a haskell setup with emacs |
| 14:25:09 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer) |
| 14:25:56 | <komikat> | been using lsp but not sure if something like merlin (ocaml) exists for haskell |
| 14:26:35 | <exarkun> | komikat: haskell-mode, lsp-mode, lsp-ui, lsp-haskell, a nix flake to install haskell-language-server, and envrc-mode to tie emacs to the flake env |
| 14:26:58 | <exarkun> | and a lot of patience |
| 14:27:09 | <komikat> | of course |
| 14:27:09 | <EvanR> | there's a joke what's a pirates favorite programming language. R? No, C be me true love. Coincidentally, early notation for A ⟶ B in early logic looks like A Ↄ B |
| 14:27:14 | <exarkun> | lsp-treemacs too |
| 14:28:14 | → | danse-nr3 joins (~danse@151.37.249.255) |
| 14:28:21 | <komikat> | thanks! |
| 14:28:31 | <ski> | or ⌜A ⊃ B⌝ |
| 14:29:57 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) |
| 14:30:10 | <EvanR> | I guess it was easier to turn their C slug upside down |
| 14:31:09 | <Unicorn_Princess> | komikat, and just restart emacs if the haskell lsp/server break, which they will, frequently |
| 14:31:25 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer) |
| 14:31:30 | <komikat> | is there a way to avoid the lsp altogether? |
| 14:31:38 | <komikat> | and still get decent editing support |
| 14:32:04 | <Unicorn_Princess> | i don't know it, but tree-sitter probably |
| 14:32:08 | <komikat> | dont really want much, a lint and some autocomplete |
| 14:32:36 | <exarkun> | you get dumb autocomplete more or less for free |
| 14:32:49 | <exarkun> | and you can just run hlint with flycheck or something if you want |
| 14:33:06 | <exarkun> | it falls a long way short of what lsp can do |
| 14:33:20 | <EvanR> | control N in vim, autocompletes xD |
| 14:34:13 | <danse-nr3> | that is why they were referring to as "dumb autocomplete" |
| 14:34:30 | ski | never bothered trying out the LSP support, so far |
| 14:34:54 | <EvanR> | if it's dumb and works then it's not dumb :tm: |
| 14:35:18 | <danse-nr3> | the `lsp` packages are awful but there is a stabler alternative with less feature, although its name now escapes my memory... |
| 14:35:33 | <ski> | `M-/' does reasonable autocomplete, for me, most of the time |
| 14:35:49 | × | dcoutts quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 276 seconds) |
| 14:36:23 | <exarkun> | danse-nr3: An emacs alternative for talking to a language server? |
| 14:36:30 | <ski> | there's apparently something called eglot, which is supposedly more integrated and playing along better with Emacs |
| 14:36:33 | <danse-nr3> | yeah |
| 14:37:11 | <exarkun> | Huh interesting |
| 14:37:17 | → | alp_ joins (~alp@2001:861:e3d6:8f80:6a02:be3b:357f:fb3) |
| 14:37:35 | <danse-nr3> | yeah maybe that was eglot |
| 14:37:47 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) |
| 14:37:58 | <srk> | I was wondering today if I should try to revive my emacs haskell lsp setup. still not sure it's worth it |
| 14:38:52 | <srk> | *if |
| 14:39:19 | × | komikat quits (~akshitkr@218.185.248.66) (Ping timeout: 256 seconds) |
| 14:39:37 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer) |
| 14:39:42 | <srk> | is there a way to make emacs as fast/responsive like vim? :D |
| 14:40:03 | <exarkun> | running lsp-haskell definitely does not help with responsiveness. |
| 14:40:13 | <srk> | exactly |
| 14:40:45 | <srk> | I need my editor as responsive as FPS games :D |
| 14:40:50 | <ski> | maybe you could ask #emacs |
| 14:40:56 | <exarkun> | it's a trade-off! you can have 5 keystrokes per second or you can have 1 keystroke per second that is 5 times more meaningful. |
| 14:41:21 | <srk> | started with spacemacs, way too bloated. switched to doom-emacs, much better. still using it daily due to org mode, sometimes with dhall |
| 14:41:37 | <srk> | considering rolling my own config as I sort-of know what I want now |
| 14:41:39 | <Unicorn_Princess> | yeah spacemacs was too laggy for me too |
| 14:41:43 | <srk> | but my daily driver is still vim + ghcid |
| 14:42:02 | <Unicorn_Princess> | plus getting help was harder, since you've got all the complexity of spacemacs to deal with on top of emacs |
| 14:42:11 | <srk> | this |
| 14:42:13 | <Unicorn_Princess> | which is already a tower of babel unto itself |
| 14:42:35 | ski | never tried any "kit" |
| 14:43:07 | <srk> | easier for emacs noobs like me who also need evil |
| 14:43:43 | <srk> | doom bindings are not bad at all, I can switch between vim and doom pretty quickly |
| 14:43:53 | <ski> | #emacs is usually pretty approachable, though |
| 14:44:13 | <srk> | ty, will lurk :) |
| 14:44:43 | <ski> | (not implying you should take the conversation elsewhere. it's fine to talk about it here, as well) |
| 14:45:44 | <srk> | cool. I've already dumped all my emacs thoughts anyway I think hehe |
| 14:46:13 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 276 seconds) |
| 14:46:31 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 255 seconds) |
| 14:47:18 | <Unicorn_Princess> | the spacemacs way of bringing up a hierarchical key menu on pressing space is really good tho, and i pretty much copied it for my own emacs setup |
| 14:47:19 | <srk> | recently I've made multi-package ghcid (loads every single component of multi package repo) but I don't know what to do next with it. is ndmitchell approachable too? :D |
| 14:47:41 | <Unicorn_Princess> | cuz learning a special set of keybindings for each package is insane |
| 14:47:43 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) |
| 14:48:21 | <srk> | Unicorn_Princess: yep, I've liked that a lot |
| 14:49:04 | → | idgaen joins (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
| 14:49:49 | × | rosco quits (~rosco@175.136.158.171) (Quit: Lost terminal) |
| 14:51:22 | <ski> | hm, haven't seen ndm around in a long time, in here |
| 14:52:32 | <ski> | (if preflex was still around, i'd ask them for how long ago) |
| 14:55:54 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 14:56:51 | <danse-nr3> | was preflex a bot or just a person with a long memory? |
| 14:57:17 | <EvanR> | what happened to preflex |
| 14:58:59 | → | komikat joins (~akshitkr@218.185.248.66) |
| 14:59:00 | <srk> | ski: cool, didn't know he used to hang around. will shoot him an email |
| 15:00:01 | × | euleritian quits (~euleritia@77.22.252.56) (Ping timeout: 255 seconds) |
| 15:00:14 | → | euleritian joins (~euleritia@dynamic-046-114-202-009.46.114.pool.telefonica.de) |
| 15:00:39 | → | kenran joins (~user@user/kenran) |
| 15:02:15 | <EvanR> | in the video linked on the yampa wiki page "causal commutative arrows and their optimization" his slide says arrow is a generalization of monad... |
| 15:03:06 | <EvanR> | assuming ArrowApply, the generalization is the other way around right |
| 15:03:18 | <danse-nr3> | apparently functions on pairs are a generalization of monads then |
| 15:03:56 | <EvanR> | still not seeing this pairs thing |
| 15:04:06 | × | gensystt quits (~gensyst@user/gensyst) (Quit: Leaving) |
| 15:04:29 | <danse-nr3> | i guess because one element is the monadic result, the other is the monadic side effect, but one can swap their roles so it is a generalization |
| 15:04:58 | <ski> | danse-nr3 : a bot |
| 15:05:06 | <ski> | iirc, ran by mmorrow |
| 15:05:30 | <ski> | (who's also disappeared) |
| 15:06:08 | <ski> | "functions on pairs" ? |
| 15:07:54 | <danse-nr3> | that is what arrows look like to me |
| 15:08:01 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer) |
| 15:08:16 | → | Inst joins (~Inst@120.244.192.187) |
| 15:08:27 | <ski> | (and TheHunter,andersca,augustss,SyntaxNinja,quicksilver,hpaste,esap,Pseudonym,..) |
| 15:08:30 | <Inst> | it's understandable to try to talk someone out of joining the army, right? |
| 15:08:31 | <ski> | what do you mean ? |
| 15:08:36 | <Inst> | actually, #haskell-offtopic |
| 15:09:10 | <ski> | where does the pairs come into the picture ? |
| 15:09:16 | <ski> | talking about `first' ? |
| 15:09:31 | <Inst> | wait, can i ask you a personal question, ski? |
| 15:09:33 | <Inst> | regarding your ip? |
| 15:09:41 | <danse-nr3> | yes but also &&&, just the basic interface seems to be about that |
| 15:09:58 | <Inst> | hi danse-nr3, sorry i've been gone for a long time |
| 15:10:10 | <Inst> | last 2, and likely 3 weeks, will be eaten up by a personal issue |
| 15:10:10 | <danse-nr3> | hi Inst, no worries |
| 15:11:27 | <Inst> | ski? :( |
| 15:11:50 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) |
| 15:12:40 | × | trev quits (~trev@user/trev) (Quit: trev) |
| 15:13:34 | <ski> | danse-nr3 : yea, those parts are about categorical products (or rather, something a bit weaker than those) |
| 15:14:05 | → | dcoutts joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) |
| 15:15:18 | × | mrmr15533 quits (~mrmr@user/mrmr) (Ping timeout: 260 seconds) |
| 15:18:34 | × | cyphase quits (~cyphase@user/cyphase) (Ping timeout: 260 seconds) |
| 15:22:29 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer) |
| 15:24:19 | <danse-nr3> | komikat, i forgot to mention `hasktags` with M-. |
| 15:24:29 | <danse-nr3> | very stable and quick way to jump to definitions |
| 15:25:06 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) |
| 15:25:22 | × | CiaoSen quits (~Jura@2a05:5800:291:5500:2a3a:4dff:fe84:dbd5) (Ping timeout: 268 seconds) |
| 15:27:55 | → | mrmr15533 joins (~mrmr@user/mrmr) |
| 15:28:17 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer) |
| 15:28:45 | × | szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
| 15:33:02 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) |
| 15:33:58 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer) |
| 15:35:53 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) |
| 15:36:16 | × | pounce quits (~pounce@user/cute/pounce) (Ping timeout: 276 seconds) |
| 15:38:57 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 15:46:39 | × | alp_ quits (~alp@2001:861:e3d6:8f80:6a02:be3b:357f:fb3) (Ping timeout: 268 seconds) |
| 15:47:40 | → | stackdroid18 joins (14094@de1.hashbang.sh) |
| 15:49:28 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
| 15:50:05 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 15:50:27 | <bwe> | which monad transformer video can you recommend? |
| 15:51:49 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer) |
| 15:51:58 | → | szkl joins (uid110435@id-110435.uxbridge.irccloud.com) |
| 15:53:05 | → | pounce joins (~pounce@user/cute/pounce) |
| 15:55:16 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) |
| 15:55:43 | × | qqq quits (~qqq@92.43.167.61) (Quit: leaving) |
| 15:56:19 | × | idgaen quits (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.1.1) |
| 16:00:02 | × | seeg123456 quits (~seeg12345@64.176.64.83) (Remote host closed the connection) |
| 16:01:40 | <danse-nr3> | i recommend studying by reading, although it is so old-millenium |
| 16:01:45 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer) |
| 16:02:36 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) |
| 16:02:47 | <hc> | What's modern today? writing? |
| 16:02:50 | <hc> | ;p |
| 16:03:06 | <Inst> | Youtube. |
| 16:03:48 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 16:05:29 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer) |
| 16:07:22 | <c_wraith> | Honestly, monad transformers are a topic most easily learned by writing or modifying code that uses them. And in fact, they're easier to "understand" than monads. I was successfully maintaining code using monad transformers well before I was comfortable with monads. |
| 16:08:43 | <kaol> | It's all about flattening pyramids. Pave the earth. |
| 16:08:45 | × | stackdroid18 quits (14094@de1.hashbang.sh) (Quit: hasta la vista... tchau!) |
| 16:09:49 | → | alp_ joins (~alp@2001:861:e3d6:8f80:d1dc:7d30:db10:a74e) |
| 16:09:57 | <danse-nr3> | that is very counterintuitive c_wraith |
| 16:10:31 | <c_wraith> | :t lift |
| 16:10:33 | <lambdabot> | (MonadTrans t, Monad m) => m a -> t m a |
| 16:10:50 | <c_wraith> | :t (>>=) |
| 16:10:51 | <lambdabot> | Monad m => m a -> (a -> m b) -> m b |
| 16:11:00 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 268 seconds) |
| 16:11:05 | <c_wraith> | One of those is easier than the other |
| 16:11:09 | <geekosaur> | the whole point of monad transformers is they're treated as black boxes |
| 16:11:20 | <danse-nr3> | i have read that there are two main approaches, mtl and transformers if i recall correctly. Which one is `lift` from? |
| 16:11:32 | <c_wraith> | that's incorrect |
| 16:11:43 | <c_wraith> | lift is from both |
| 16:11:54 | × | euleritian quits (~euleritia@dynamic-046-114-202-009.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
| 16:12:03 | <c_wraith> | and it's the same definition, because transformers is a dependency of mtl |
| 16:12:11 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 16:12:36 | <danse-nr3> | probably i recall wrong then. See, reading does not work... had to watch a video instead! |
| 16:13:01 | <geekosaur> | there's a lot of misinformation out there whichever route you choose |
| 16:13:29 | × | Alleria quits (~JohnGalt@user/alleria) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 16:13:42 | → | sb23 joins (~sb23@66.159.217.159) |
| 16:14:58 | <c_wraith> | as a generic concept, monad transformers are just "use lift when it makes the types right". That's something that's pretty easy to grasp. |
| 16:15:43 | <c_wraith> | All the tricky stuff (I'm looking at you, ContT) is not part of the generic concept |
| 16:16:17 | <yushyin> | danse-nr3: mtl and transformers library have a long (intertwined) history, depending on what sources, you will read some pretty outdated stuff sometimes |
| 16:16:51 | <c_wraith> | eh. transformers was created so that mtl and monads-tf could share most of their definitions |
| 16:16:59 | <c_wraith> | monads-tf has basically been forgotten |
| 16:17:20 | <c_wraith> | but every since transformers was created, it's been a dependency of mtl |
| 16:17:29 | <c_wraith> | *ever since |
| 16:18:30 | <c_wraith> | it's the fact that monads-tf was forgotten that makes so many people complicate history. Without it, it's really hard to understand why both transformers and mtl exist |
| 16:19:21 | <danse-nr3> | sheesh, looking through chrome history is awful. Who needs history, anyways? I found a post i liked a lot: https://www.williamyaoh.com/posts/2023-06-10-monad-transformers-101.html bwe |
| 16:19:48 | → | nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
| 16:20:05 | <danse-nr3> | it is there where "mtl-style and transformers-style" are mentioned |
| 16:20:10 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.1.1) |
| 16:20:56 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds) |
| 16:21:03 | <geekosaur> | some people do use transformers directly, yes. |
| 16:21:14 | → | euleritian joins (~euleritia@dynamic-046-114-202-009.46.114.pool.telefonica.de) |
| 16:21:15 | <geekosaur> | the problem with that is it'll let you build illegal transformers. mtl won't |
| 16:21:50 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) |
| 16:22:15 | <kaol> | I'd expect some people using mtl end up using only a subset that could be done with just transformers. |
| 16:22:49 | <c_wraith> | honestly, I don't like mtl much because effects aren't commutative. |
| 16:23:14 | × | euleritian quits (~euleritia@dynamic-046-114-202-009.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
| 16:23:52 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 16:23:56 | <c_wraith> | anything that encourages writing types which are ambiguous even though the code itself only works correctly one way... that's weakening type safety. |
| 16:25:11 | × | nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 268 seconds) |
| 16:25:41 | <c_wraith> | the mtl-ish answer to that is that if you need a pair of effects such that the lack of commutativity matters, you should create a new class that encapsulates that requirement. At which point I wonder what the point is... |
| 16:28:14 | → | Alleria joins (~JohnGalt@user/alleria) |
| 16:28:15 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 245 seconds) |
| 16:29:06 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 16:30:33 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 4.0.5) |
| 16:32:34 | <bwe> | geekosaur: so, I'd use mtl, correct? |
| 16:32:45 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer) |
| 16:35:19 | → | shapr joins (~user@2600:1700:c640:3100:7dfc:b197:b7f3:90c3) |
| 16:36:04 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) |
| 16:36:11 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer) |
| 16:36:49 | × | kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1)) |
| 16:40:12 | <geekosaur> | I don't know. I'd use mtl, others prefer effect systems but iirc those let you build illegal combinations of effects with no type errors |
| 16:41:04 | <bwe> | geekosaur: alright; you've mentioned a lot of misinformation around; which information would you point me to specifically? |
| 16:42:17 | × | kenran quits (~user@user/kenran) (Remote host closed the connection) |
| 16:45:53 | <geekosaur> | sadly I have more pointers to bad stuff than good |
| 16:46:12 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) |
| 16:46:13 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer) |
| 16:49:13 | <bwe> | hm, so blacklist approach, huh? |
| 16:49:18 | <EvanR> | time to run the garbage collector on your pointers! |
| 16:50:59 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:5836:1305:ce95:7f7f) (Remote host closed the connection) |
| 16:51:14 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:5836:1305:ce95:7f7f) |
| 16:54:05 | × | sb23 quits (~sb23@66.159.217.159) (Quit: Client closed) |
| 16:55:12 | <bwe> | geekosaur: what about chapter 7 of http://www.cs.nott.ac.uk/~pszgmh/monparsing.pdf ? |
| 16:56:31 | <Unicorn_Princess> | effect systems as in algebraic effects? |
| 16:56:45 | <ski> | or more generally, i suppose |
| 16:57:20 | <ski> | (as in, a type system tracking effects as well. often relatively fine-grained) |
| 16:57:53 | → | tzh joins (~tzh@c-71-193-181-0.hsd1.or.comcast.net) |
| 16:58:02 | <ski> | (e.g. the effect of reading mutable `x' could be different from the effect of reading mutable `y', in the inference rules) |
| 16:59:32 | <geekosaur> | bwe, that has the problem that it's Gopfer (which admittedly ws one of the inspirations for Haskell); I don't think it supported transformers as a general library, although it shows the basics of that |
| 16:59:38 | <geekosaur> | *Gofer |
| 16:59:51 | <geekosaur> | Unicorn_Princess, yes |
| 17:00:42 | <ski> | "don't like mtl much because effects aren't commutative" -- using ordered logic for the relevant constraints would be interesting |
| 17:00:42 | → | HasEvil joins (~HasEvil@5.151.177.140) |
| 17:00:52 | ski | has been reading about ordered logic, recently |
| 17:01:00 | <geekosaur> | the problem there is that monads don't really comprise an algebra |
| 17:01:09 | <geekosaur> | Cont/COntT breaks a lot of stuff, for example |
| 17:01:16 | <geekosaur> | *ContT |
| 17:01:17 | × | pounce quits (~pounce@user/cute/pounce) (Ping timeout: 240 seconds) |
| 17:01:24 | → | josh203 joins (~josh203@freifunk-gw.bsa1-cpe1.syseleven.net) |
| 17:01:35 | <ski> | still, `ConT' is also where a lot of fun and useful power can be had |
| 17:01:35 | × | danse-nr3 quits (~danse@151.37.249.255) (Ping timeout: 260 seconds) |
| 17:01:52 | <EvanR> | one does not simply compose monads |
| 17:02:15 | <ski> | (e.g. an unbounded stack of `ContT's, with `IO' at the bottom) |
| 17:02:21 | <HasEvil> | hi, I am new to haskell and trying to unpack a maybe. Can't seem to do it. |
| 17:02:39 | <EvanR> | use pattern matching |
| 17:02:41 | <ski> | HasEvil : what have you tried so far ? |
| 17:02:47 | <ski> | @where paste |
| 17:02:47 | <lambdabot> | Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com |
| 17:02:49 | <HasEvil> | fromMaybe |
| 17:02:56 | <EvanR> | or that |
| 17:03:02 | <ski> | @type fromMaybe |
| 17:03:03 | <lambdabot> | a -> Maybe a -> a |
| 17:03:05 | <ski> | @type maybe |
| 17:03:06 | <lambdabot> | b -> (a -> b) -> Maybe a -> b |
| 17:03:11 | <Unicorn_Princess> | finally something i understand |
| 17:03:44 | × | chomwitt quits (~chomwitt@2a02:587:7a24:bc00:1ac0:4dff:fedb:a3f1) (Ping timeout: 268 seconds) |
| 17:03:46 | <ski> | `fromMaybe' is for when you want to supply a default. `maybe' is more general (is equivalent to pattern-match), allows you to transform the value, if there was one, and otherwise provide a default result |
| 17:03:47 | <HasEvil> | EvanR I was wondering if you could do withouth that |
| 17:04:00 | <Unicorn_Princess> | HasEvil, what would you like to do, exactly? |
| 17:04:11 | <EvanR> | the `maybe' function does anything pattern matching could do with a Maybe |
| 17:04:19 | <EvanR> | sometimes it's more convenient |
| 17:04:23 | <ski> | @src fromMaybe |
| 17:04:23 | <lambdabot> | fromMaybe d Nothing = d |
| 17:04:24 | <lambdabot> | fromMaybe _ (Just v) = v |
| 17:04:26 | <ski> | @src maybe |
| 17:04:26 | <lambdabot> | maybe n _ Nothing = n |
| 17:04:26 | <lambdabot> | maybe _ f (Just x) = f x |
| 17:04:33 | <ski> | both of these are defined, via pattern-matching |
| 17:04:37 | <HasEvil> | https://paste.tomsmeding.com/rjwTrqm1 |
| 17:04:38 | → | _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
| 17:05:15 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) |
| 17:05:18 | <HasEvil> | Ok, so I have a function. that return a maybe. And I want to print it |
| 17:05:28 | <ski> | HasEvil> :t unicodeByName |
| 17:05:35 | <HasEvil> | Actually it returs a Maybe String |
| 17:05:48 | <EvanR> | % print (Just "Hello World") |
| 17:05:48 | <yahb2> | Just "Hello World" |
| 17:06:01 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 17:06:19 | <ski> | Nothing -> putStrLn "[ERROR] Can't find unicode. Sorry" ++ sad |
| 17:06:21 | <ski> | ought to be |
| 17:06:29 | <ski> | Nothing -> putStrLn ("[ERROR] Can't find unicode. Sorry " ++ sad) |
| 17:06:38 | <HasEvil> | k |
| 17:06:53 | → | AlexNoo_ joins (~AlexNoo@178.34.151.29) |
| 17:07:14 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer) |
| 17:07:50 | <HasEvil> | k, thx ski |
| 17:08:02 | <ski> | (although i'd s/sad/happy/,s/:\(/:\)/,s/Sorry/Fortunately/) |
| 17:08:11 | <HasEvil> | but why it would work. I am confussed now |
| 17:08:15 | <ski> | all clear ? |
| 17:08:45 | <HasEvil> | yeah, it compiled. Just needed the paran |
| 17:08:58 | <ski> | btw, instead of `hSetBuffering stdout NoBuffering', you could try `hFlush stdout', after the `putStr' invocation |
| 17:09:03 | × | AlexZenon quits (~alzenon@178.34.163.165) (Ping timeout: 256 seconds) |
| 17:09:12 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:5836:1305:ce95:7f7f) (Remote host closed the connection) |
| 17:09:19 | <HasEvil> | ski I know. I was just lazy |
| 17:09:48 | <ski> | (also, the brackets around `unicodeByName input' are redundant .. and you can replace the second `let' with ` ' (three spaces)) |
| 17:10:02 | <ski> | (and yea .. the `_ <- 's aren't necessary) |
| 17:10:28 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:5836:1305:ce95:7f7f) |
| 17:10:32 | × | josh203 quits (~josh203@freifunk-gw.bsa1-cpe1.syseleven.net) (Remote host closed the connection) |
| 17:11:04 | <geekosaur> | as to why you need the parentheses, function application is higher precedence than anything else so what you originally wrote was read as (putStrLn "[ERROR] Can't find unicode. Sorry") ++ sad |
| 17:11:10 | × | AlexNoo quits (~AlexNoo@178.34.163.165) (Ping timeout: 276 seconds) |
| 17:11:19 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
| 17:12:09 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) |
| 17:12:53 | <HasEvil> | thx geekosaur |
| 17:12:54 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer) |
| 17:14:19 | <HasEvil> | What if I want to do `let m = ("Hello, " ++ unicodeByName "smile")` |
| 17:15:03 | <ski> | that's fine |
| 17:15:14 | <ski> | well, ok. not with the `Maybe' in the way |
| 17:15:31 | <ski> | do you want to get rid of the `Maybe' here, or keep it around ? |
| 17:15:40 | <ski> | if the former, you can do |
| 17:16:12 | <ski> | m = maybe ":(" ("Hello, " ++) (unicodeByName "smile") |
| 17:16:14 | <ski> | if the latter |
| 17:16:26 | <ski> | m = fmap ("Hello, " ++) (unicodeByName "smile") |
| 17:16:29 | <ski> | which is the same as |
| 17:16:31 | <HasEvil> | k, so maybe can unpack maybe |
| 17:16:32 | <HasEvil> | ?? |
| 17:16:37 | <ski> | m = ("Hello, " ++) <$> unicodeByName "smile" |
| 17:16:41 | <ski> | yes |
| 17:16:55 | <ski> | the first of these is equivalent to |
| 17:16:56 | <HasEvil> | k ,thx |
| 17:17:04 | <ski> | m = case unicodeByName "smile" of |
| 17:17:11 | <ski> | Nothing -> ":(" |
| 17:17:16 | <Unicorn_Princess> | i don't like the 'maybe' function. it mixes defaulting and functor functionality, and seems just confusing |
| 17:17:25 | <ski> | Just s -> "Hello, " ++ s |
| 17:17:51 | <ski> | `maybe' is just the catamorphism on `Maybe'. just like `either' is the one for `Either', and `foldr' is the one for `[]' |
| 17:18:05 | <ski> | @type bool |
| 17:18:06 | <lambdabot> | a -> a -> Bool -> a |
| 17:18:13 | <ski> | that's catamorphism for `Bool' |
| 17:18:32 | <Unicorn_Princess> | HasEvil, i'd stick with fmap and fromMaybe. less confusing. unless you're comfortable with whatever the heck catamorphisms are |
| 17:19:08 | <ski> | "catamorphism" means : replace all the data constructors (belonging to the type in question) with corresponding callback parameters |
| 17:19:11 | <EvanR> | I had "so you want to unpack a Maybe. Let me first introduce you to some category theory" ready xD |
| 17:19:24 | → | chomwitt joins (~chomwitt@ppp-2-85-137-120.home.otenet.gr) |
| 17:19:34 | <ski> | so `foldr cons nil xs' replaces the `(:)'s in `xs' with `cons', and the `[]' with `nil' |
| 17:19:57 | <ski> | > foldr f z (a:b:c:d:[]) |
| 17:19:58 | <lambdabot> | f a (f b (f c (f d z))) |
| 17:20:23 | <ski> | similarly, `maybe nothing just m' replaces `Nothing' in `m' with `nothing', and `Just' in `m' with `just' |
| 17:20:32 | <ski> | and ditto for `either left right e' |
| 17:20:40 | <ski> | (and `bool false true b') |
| 17:20:51 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:5836:1305:ce95:7f7f) (Remote host closed the connection) |
| 17:20:53 | → | AlexZenon joins (~alzenon@178.34.151.29) |
| 17:21:25 | <Unicorn_Princess> | is this the text equivalent of throwing chalk at your students? |
| 17:21:26 | ski | hits EvanR over the haid with a right Kan extension |
| 17:21:34 | <HasEvil> | so, what's the diff between just and maube |
| 17:21:50 | <HasEvil> | Unicorn_Princess: probably. |
| 17:22:14 | <ski> | `just' above is an arbitrary parameter, given to the library function `maybe'. i could have said `maybe n j m' instead, if that would make it clearer ? |
| 17:22:54 | <HasEvil> | that I understand. I mant in more gernal terms. If a stdlib function is returing a just or a maybe. Why the difference |
| 17:22:56 | <EvanR> | variables with over 1 letter in haskell, incomprehensible |
| 17:23:34 | <Unicorn_Princess> | HasEvil, anyway, fmap will apply a function to whatever is inside your Maybe, and fromMaybe will return either what's inside your Maybe, or a default value you give it. nice and simple |
| 17:23:35 | <geekosaur> | Just is a data constructor, it takes a value and produces a value. Maybe is a type constructor, it takes a type and produces a type |
| 17:23:42 | <Unicorn_Princess> | the 'maybe' function does both at the same time |
| 17:24:02 | <ski> | e.g. in `maybe 0 (2 ^) (lookup "four" [("two",2),("three",3),("five",5),("seven",7)])', the `nothing'/`n' is `0' (which is what `Nothing' in the result of calling `lookup' will be replaced with), while the `just'/`j' here would be `(2 ^)'. so if the `lookup' gives you `Just n', you compute `2 ^ n'. if it gives you `Nothing', you give `0' as result instead |
| 17:24:03 | <HasEvil> | EvanR: true, As a bignner the whole `a -> b` was so hard to read. And then `Num a =>` can't just say `Num numa => numa` |
| 17:24:09 | <HasEvil> | would be much helpful |
| 17:24:24 | <EvanR> | Numa (Numa a) |
| 17:24:47 | <ski> | Unicorn_Princess : "the 'maybe' function does both at the same time" -- that's more or less an accident. it's nothing particular related to `maybe' being a catamorphism |
| 17:24:51 | <HasEvil> | geekosaur: ok, that actually is starting to make sense |
| 17:25:14 | ski | . o O ( `E (Numa (E (Lich a)))' ) |
| 17:25:19 | <HasEvil> | Unicorn_Princess: wdym does both at the same time |
| 17:25:35 | <HasEvil> | EvanR: yeah |
| 17:25:47 | <ski> | HasEvil : you're free to name your type variables with multiple characters, if you like to |
| 17:26:19 | <HasEvil> | ski: yeah, but when I ask `:type` they are named single char |
| 17:26:33 | <EvanR> | :t Just |
| 17:26:34 | <lambdabot> | a -> Maybe a |
| 17:26:48 | <ski> | because the implementation doesn't have common sense, can't figure out sensible names for the intended meaning of type variables |
| 17:26:52 | <EvanR> | Just :: a -> Maybe a -- explains the relationships between Just and Maybe |
| 17:26:58 | <EvanR> | in compressed form |
| 17:27:15 | <geekosaur> | the problem here is that `a` could be anything |
| 17:27:24 | <geekosaur> | so there's not really a sensible name for it |
| 17:27:48 | <johnw> | in fact, the opaqueness of the name "a" is meaningful: you can't know anything about that type other than its existence |
| 17:27:54 | <geekosaur> | ghc likes to use `t` (for `type`) when it doesn't have any other name for something |
| 17:28:00 | <HasEvil> | i get that, and it's readable here but when my prof. shows functioin whose type defination contains 3 generics. My mind goes black |
| 17:28:17 | <ski> | .. i guess one could decide to start by using the name `num' for instances of `Num', and `integral' for instances of `Integral', and so on .. but what, then, for a type variable which is constrained to belong to multiple type classes ? |
| 17:28:19 | <EvanR> | sometimes there are useful names for type variables |
| 17:28:26 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:5836:1305:ce95:7f7f) |
| 17:28:32 | <ski> | ("perfect being the enemy of good" ?) |
| 17:28:37 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) |
| 17:28:39 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer) |
| 17:29:05 | <HasEvil> | ski: maybe ord (change to lower case) but I'm just ranting. pretty sure will get used to it |
| 17:29:13 | <Unicorn_Princess> | HasEvil, basically, `maybe x f = fromMaybe x . fmap f` |
| 17:29:20 | <Unicorn_Princess> | (i assume this clears everything up) |
| 17:29:23 | <ski> | in fact, GHC does pick up the names of type variables, from operation that have explicit type signatures .. but often there's be multiple conflicting ones it could use, and so it just picks one of them |
| 17:29:24 | <johnw> | numOrIntegral? :) |
| 17:29:31 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 245 seconds) |
| 17:29:34 | <HasEvil> | it does. thx |
| 17:29:41 | <geekosaur> | "thingy" |
| 17:29:44 | <HasEvil> | Unicorn_Princess: |
| 17:29:59 | <ski> | HasEvil : in practice, you get used to it. and the succinctness of one-letter names can also help comprehend types (and ordinary value expressions) more, at times |
| 17:30:00 | <EvanR> | StateT stateType baseMonad returnType |
| 17:30:09 | <EvanR> | as opposed to StateT s m a |
| 17:30:24 | → | euleritian joins (~euleritia@dynamic-046-114-202-009.46.114.pool.telefonica.de) |
| 17:30:27 | <ski> | johnw : s/Or/And/, perchance :p |
| 17:30:41 | <HasEvil> | ski: yeah, I thought so. But rn it feels archaic. |
| 17:30:46 | ski | nods |
| 17:31:20 | <ski> | HasEvil : are you used to some other system where type variables automagically get more useful names inferred ? |
| 17:31:22 | <HasEvil> | also, is `&&` and `and` same |
| 17:31:30 | <EvanR> | :t (&&) |
| 17:31:31 | <lambdabot> | Bool -> Bool -> Bool |
| 17:31:32 | <EvanR> | :t and |
| 17:31:33 | <lambdabot> | Foldable t => t Bool -> Bool |
| 17:31:43 | <ski> | one is binary, the other "variadic" |
| 17:31:55 | <ski> | @type min |
| 17:31:56 | <lambdabot> | Ord a => a -> a -> a |
| 17:31:57 | <ski> | @type minimum |
| 17:31:58 | <lambdabot> | (Foldable t, Ord a) => t a -> a |
| 17:32:04 | <HasEvil> | ski: nah, the only other type system I have used is Rust. |
| 17:32:15 | <ski> | ok |
| 17:33:01 | <EvanR> | && always works, while technically and is totally unsafe and can crash! |
| 17:33:07 | <EvanR> | > and [] |
| 17:33:08 | <lambdabot> | True |
| 17:33:10 | <EvanR> | I'm wrong |
| 17:33:16 | <EvanR> | > minimum [] |
| 17:33:17 | <lambdabot> | *Exception: Prelude.minimum: empty list |
| 17:33:40 | <HasEvil> | hmm, ok, So, && for two expr. while and for multiple? |
| 17:33:56 | <EvanR> | and works for zero or more bools |
| 17:34:18 | <exarkun> | "while and for" is a lovely triple |
| 17:35:12 | <EvanR> | now I'm wondering how to define while to make that work |
| 17:37:09 | <ski> | @type ?while and for |
| 17:37:10 | <lambdabot> | (?while::(t1 Bool -> Bool) -> (t2 a -> (a -> f b) -> f (t2 b)) -> t3, Traversable t2, Applicative f, Foldable t1) => t3 |
| 17:37:15 | <ski> | luvly jubly |
| 17:37:28 | <EvanR> | o_O |
| 17:38:29 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 17:39:02 | → | pounce joins (~pounce@user/cute/pounce) |
| 17:39:43 | <Inst> | what's the most efficient way to express a string of text in unary? |
| 17:40:30 | <EvanR> | run length encoding |
| 17:41:14 | <EvanR> | [(),(),(),(),(),(),()] ==> 7 |
| 17:42:02 | <ski> | fwiw, i would not call that "unary" |
| 17:42:23 | <ski> | (the only number you can express in "base one" is zero) |
| 17:42:36 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) |
| 17:42:38 | <EvanR> | not one? |
| 17:42:42 | <ski> | (you could say Peano, or perhaps tally marks, if you wish) |
| 17:42:53 | <Inst> | peano, then |
| 17:43:02 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer) |
| 17:43:08 | <ski> | the digits in base `n' are the elements of `{0,1,2,...,n-2,n-1}' |
| 17:43:18 | <ski> | if `n = 1', then that's `{0}' |
| 17:43:35 | <ski> | so, we have the only numeral being `...00000', which expresses zero |
| 17:45:03 | <ski> | hm, anyway, to express pairs, we need an injection `pair :: Nat -> Nat -> Nat'. one possible definition is `pair m n = 2^m * 3^n' |
| 17:45:37 | <ski> | it's better, though, if it's also surjective, so that we don't waste representations by having no pairs map to them |
| 17:45:57 | <Inst> | yeah, but I think commonplace unary is good enough |
| 17:45:58 | <ski> | so, one can pick `pair m n = 2^m * (2*n + 1)', which is a bijection |
| 17:46:38 | <Inst> | this algorithm is far from efficient, right? |
| 17:46:52 | <Inst> | convert the chars in a string to numbers, show, then concat |
| 17:47:02 | <Inst> | that gives you a unary representation of a given text |
| 17:47:07 | <Inst> | but the size of the output is ridiculous |
| 17:47:17 | <Inst> | erm, replicate onto the concat |
| 17:47:30 | <ski> | still, that grows quite fast in `m'. even better is `pair m n = (m+n)*(m+n+1) `div` 2 + m' (which is counting diagonally in a quadrant of a coordinate system. (m+n)*(m+n+1) `div` 2 is the triangular number of `m+n') |
| 17:48:21 | <ski> | now, considering `[a] = 1 + a * [a]', we can use `pair' for the cons case here. and we use `0' for the `1' alternative, and `(1 +)' for the other alternative |
| 17:48:32 | <ski> | so |
| 17:48:49 | <ski> | encodeList :: (a -> Nat) -> ([a] -> Nat) |
| 17:48:59 | <ski> | encodeList encodeElem [ ] = 0 |
| 17:49:16 | <ski> | encodeList encodeElem (x:xs) = 1 + pair (encodeElem x) (encodeList encodeElem xs) |
| 17:49:47 | <ski> | (decoding isn't much harder) |
| 17:49:48 | → | notzmv joins (~zmv@user/notzmv) |
| 17:50:10 | × | pounce quits (~pounce@user/cute/pounce) (Ping timeout: 276 seconds) |
| 17:50:11 | <Inst> | welp |
| 17:50:14 | <Inst> | i just crashed nvim |
| 17:50:21 | → | econo_ joins (uid147250@id-147250.tinside.irccloud.com) |
| 17:50:34 | <int-e> | Inst: Nothing will be efficient here since you need length O(N) to represent N different values in "unary"; there are exponentially many strings of length n, so N ~ 2^O(n), so you're looking at exponentially large encodings or worse. |
| 17:50:49 | <ski> | an alternative is think of `[a]' as `exists (n :: Nat). a^n', so you represent a list as a pair of its length `n', and an `n'-tuple of elements |
| 17:50:52 | × | absence_ quits (torgeihe@hildring.pvv.ntnu.no) (Quit: Lost terminal) |
| 17:50:56 | × | euleritian quits (~euleritia@dynamic-046-114-202-009.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
| 17:51:15 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 17:51:17 | <int-e> | These kind of questions are quite firmly theoretical. |
| 17:51:34 | <EvanR> | you can use run-length encoding on your "unary" to compress it xD |
| 17:51:36 | <ski> | yea |
| 17:51:47 | <Inst> | It's an acquaintance of sorts |
| 17:51:50 | × | troydm quits (~troydm@user/troydm) (Ping timeout: 252 seconds) |
| 17:51:53 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) |
| 17:51:56 | <Inst> | I joked I'd only message them during business hours in unary |
| 17:52:08 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer) |
| 17:52:32 | <EvanR> | do they have a client which can "decode unary" |
| 17:52:37 | <int-e> | Well you can send a sequence of messages I suppose. |
| 17:52:48 | <int-e> | One character per message. That's not *too* explosive. |
| 17:53:07 | ski | . o O ( "A Functional Hitchhiker's Guide to Hereditarily Finite Sets, Ackermann Encodings and Pairing Functions" by Paul Tarau in 2008-08-06 at <https://arxiv.org/abs/0808.0754> ) |
| 17:53:10 | <Inst> | anyways, any idea how to convert from unicode to ASCII? |
| 17:53:17 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) |
| 17:53:25 | <geekosaur> | how do you convert 🙂 ? |
| 17:53:27 | <Inst> | because now this is a huge mess |
| 17:53:54 | <int-e> | UTF-7 |
| 17:54:01 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 260 seconds) |
| 17:54:03 | <exarkun> | UTF-1, obviously |
| 17:54:12 | <geekosaur> | if you mean "how do I encode Unicode as bytes?" then the answer is UTF-8 |
| 17:54:26 | <EvanR> | when one character is a big deal you can utilize ham radio codes like CQ, QRZ, QRM, etc |
| 17:54:38 | <EvanR> | QSO |
| 17:55:33 | <int-e> | How can UTF-7 be "obsolete"... it's much newer than Fortran ;-) |
| 17:56:09 | <EvanR> | meanwhile UTF-9 is alive and well |
| 17:58:07 | <Inst> | it turns out peano isn't efficient enough a representation format to encode messages as a joke :( |
| 17:59:30 | <EvanR> | you can send one character per line, each line a number of | |
| 17:59:30 | <Inst> | just to encode "ilu" takes 230 mb |
| 18:00:01 | <geekosaur> | -.-. --.- -.. . -.- -... ---.. -. .... |
| 18:00:14 | <int-e> | ah, ternary |
| 18:00:16 | <int-e> | ;) |
| 18:00:21 | <ski> | as `n' goes to `Nat', `m + n' goes to `Nat' (being `m + Nat') -- this is comparision/subtraction (by/with `m'), offsets |
| 18:00:22 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer) |
| 18:00:28 | <ski> | if `n > 0', then as `m' goes to `Nat', `m * n' goes to `Nat' (being `Nat * n') -- this is quotient&remainder, coordinates |
| 18:00:34 | <ski> | if `n > 1', then as `m' goes to `Nat', `n ^ m' goes to `Nat' (being `n ^ (Nat)', functions with finite support) -- this is numeral representation (in base `n'), digits |
| 18:00:40 | <Inst> | CQDEKB8NH ? |
| 18:01:09 | <geekosaur> | hm, I got that slightly wrong |
| 18:01:19 | <geekosaur> | been years since I did CW |
| 18:02:03 | <EvanR> | > let f n = replicate n '|' in (length . unlines . map (f . ord)) "ilu" |
| 18:02:04 | <lambdabot> | 333 |
| 18:02:12 | <EvanR> | 333 < 230 MB |
| 18:02:27 | <Inst> | goddamnit :( |
| 18:02:47 | <Inst> | but that's not a correct representation |
| 18:02:54 | <EvanR> | no? |
| 18:03:07 | <Inst> | is the representation of ilu and uli the same in this situation? |
| 18:03:13 | <EvanR> | no |
| 18:03:19 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
| 18:03:47 | <Inst> | unlines is working as a join |
| 18:03:58 | <Inst> | you lose the character information, i.e, there is a large number of possible interpretations of the resulting code |
| 18:04:01 | <geekosaur> | but it inserts spaces |
| 18:04:03 | <EvanR> | the newlines are serving the same purpose as the pause between codes in the CW above |
| 18:04:14 | <geekosaur> | er, newlines |
| 18:04:16 | <int-e> | Inst: no, there are newlines in there |
| 18:04:18 | <Inst> | i guess my implementation doesn't have spaces :( |
| 18:04:32 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) |
| 18:04:34 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer) |
| 18:04:42 | <Inst> | so i have to encode character separation via unary |
| 18:04:46 | <Inst> | all these jokes are silly, though |
| 18:04:54 | <EvanR> | a space could be a blank line or 32 | |
| 18:05:02 | → | stevenxl joins (uid133530@id-133530.uxbridge.irccloud.com) |
| 18:05:46 | <Inst> | the problem is that the encoding isn't data complete |
| 18:06:11 | <EvanR> | if you can send 0 and 1, that's the best you can do. Unless you're trying to send quantum states |
| 18:06:17 | <Inst> | you need something other than the simple representation, i.e, if you had space, it's spiritually the same as binary with space operating as 0 |
| 18:06:26 | <Inst> | if i can only send 1, or the number of 1s |
| 18:06:36 | <EvanR> | oh, then send the number of 1s |
| 18:06:40 | <EvanR> | much more efficient |
| 18:06:41 | → | pounce joins (~pounce@user/cute/pounce) |
| 18:06:46 | <EvanR> | aka run length encoding |
| 18:06:55 | <Inst> | but that ruins the joke, no? |
| 18:07:05 | <EvanR> | or is it much funnier |
| 18:07:11 | <int-e> | EvanR: oh and then you can encode the numbers in binary |
| 18:07:13 | <Inst> | it's not funny at all in an objective context |
| 18:07:19 | <EvanR> | lol |
| 18:07:21 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 18:07:27 | <int-e> | EvanR: you might end up with "ilu", just 3 characters |
| 18:07:41 | <int-e> | that seems rather efficient |
| 18:08:01 | <Inst> | subjectively? corny joke to encode messages in emoticons |
| 18:08:09 | <Inst> | oh well, the counterparty wouldn't appreciate this joke at this time anyways |
| 18:08:10 | <EvanR> | recursively run-length encoded natural numbers are pretty cool |
| 18:08:11 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) |
| 18:08:29 | <EvanR> | might not help with "ilu" though |
| 18:08:31 | <Inst> | given a single emoticon, encode a message using that emoticon only |
| 18:08:32 | <int-e> | single "unary" characters seaparated by newlines seems to be very much in the spirit of the joke and have a reasonable chance of being decoded. |
| 18:08:54 | → | waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
| 18:08:57 | <Inst> | thanks for being a dating coach! |
| 18:09:00 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 18:09:02 | <Inst> | now, to actually find someone who likes this as a joke! |
| 18:09:11 | × | HasEvil quits (~HasEvil@5.151.177.140) (Remote host closed the connection) |
| 18:09:12 | <int-e> | any added layer of encoding will make decoding less likely to happen or even be attempted. |
| 18:09:36 | <int-e> | qba'g ubyq lbhe oerngu |
| 18:09:44 | <EvanR> | you think you have a chance with that influencer xD |
| 18:09:49 | <Inst> | not that one |
| 18:09:50 | <EvanR> | is that what this is about |
| 18:10:19 | <Inst> | this is only the sort of lame joke that possibly flies when you're already "plushies" relative to each other |
| 18:10:54 | <EvanR> | this is starting to sound like a huge XY |
| 18:11:32 | <geekosaur> | figuratively or literally? |
| 18:11:32 | <Inst> | XY? |
| 18:11:33 | → | zetef joins (~quassel@2a02:2f00:5201:4b00:7fc8:6fbe:33d9:ba2a) |
| 18:11:36 | <ski> | hm, now i'm reminded of that programming challenge thing, that reoccured subsequent years, where in one year, you got a huge chunk of "alien DNA", that you were to decode an initial portion of, and then use that to decompress the remainder, and then decode an initial portion of that, and then decompress remainder again, &c. |
| 18:11:52 | × | pr0ton quits (~pr0ton@176.254.244.83) (Ping timeout: 256 seconds) |
| 18:12:58 | <EvanR> | was the kicker that the alien DNA was the HTTP over TCP over IP protocol |
| 18:14:30 | × | pounce quits (~pounce@user/cute/pounce) (Ping timeout: 260 seconds) |
| 18:15:39 | <ski> | i don't recall |
| 18:16:03 | <ski> | this may've been ICFP challenge or somesuch |
| 18:20:09 | × | danso quits (~danso@user/danso) (Ping timeout: 260 seconds) |
| 18:20:55 | → | danso joins (~danso@user/danso) |
| 18:21:57 | → | troydm joins (~troydm@user/troydm) |
| 18:23:44 | <int-e> | ski: this? https://save-endo.cs.uu.nl/ |
| 18:24:39 | → | haasn` joins (~nand@haasn.dev) |
| 18:26:27 | → | pr0ton joins (~pr0ton@176.254.244.83) |
| 18:28:43 | <ski> | i believe that's it, yes |
| 18:29:31 | Shock_ | is now known as shOkEy |
| 18:31:30 | × | gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
| 18:32:38 | <EvanR> | Teams may work in any programming language(s) that they wish. They may employ any computational resources at their disposal. |
| 18:32:45 | <EvanR> | ah the simple times before "AI" |
| 18:32:53 | → | idgaen joins (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
| 18:37:06 | → | gentauro joins (~gentauro@user/gentauro) |
| 18:40:34 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:5836:1305:ce95:7f7f) (Remote host closed the connection) |
| 18:41:27 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 18:41:56 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer) |
| 18:42:54 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) |
| 18:49:56 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer) |
| 18:52:37 | × | alp_ quits (~alp@2001:861:e3d6:8f80:d1dc:7d30:db10:a74e) (Ping timeout: 256 seconds) |
| 18:54:44 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) |
| 18:55:10 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer) |
| 18:56:20 | → | peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com) |
| 18:58:28 | <Inst> | Would it be worth putting up on hackage an idiomatic utility program for peano-based cryptography? |
| 19:00:35 | → | target_i joins (~target_i@217.175.14.39) |
| 19:03:21 | → | infinity0_ joins (~infinity0@pwned.gg) |
| 19:03:21 | infinity0 | is now known as Guest2611 |
| 19:03:21 | × | Guest2611 quits (~infinity0@pwned.gg) (Killed (zirconium.libera.chat (Nickname regained by services))) |
| 19:03:21 | infinity0_ | is now known as infinity0 |
| 19:04:49 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) |
| 19:05:40 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer) |
| 19:06:54 | <dminuoso_> | Is that software worth to you? |
| 19:08:23 | × | peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 264 seconds) |
| 19:12:14 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 19:12:21 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:5836:1305:ce95:7f7f) |
| 19:12:34 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 19:19:00 | × | jargon quits (~jargon@184.101.176.143) (Remote host closed the connection) |
| 19:20:33 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:5836:1305:ce95:7f7f) (Read error: Connection reset by peer) |
| 19:20:48 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:5836:1305:ce95:7f7f) |
| 19:25:32 | × | Inst quits (~Inst@120.244.192.187) (Ping timeout: 256 seconds) |
| 19:28:03 | → | Inst joins (~Inst@120.244.192.187) |
| 19:28:31 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 19:28:40 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) |
| 19:32:20 | × | dcoutts quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 256 seconds) |
| 19:32:55 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer) |
| 19:37:26 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) |
| 19:38:22 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer) |
| 19:38:44 | × | not_reserved quits (~not_reser@45.144.113.236) (Quit: Client closed) |
| 19:38:48 | × | zetef quits (~quassel@2a02:2f00:5201:4b00:7fc8:6fbe:33d9:ba2a) (Remote host closed the connection) |
| 19:42:19 | → | alp_ joins (~alp@2001:861:e3d6:8f80:1cde:a541:9274:7e5a) |
| 19:43:39 | → | dcoutts joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) |
| 19:47:38 | → | JeremyB99 joins (~JeremyB99@208.64.173.6) |
| 19:48:03 | <EvanR> | cryptography based on obscure humor xD |
| 19:49:51 | <tomsmeding> | Inst: what does that even mean |
| 19:51:36 | × | dcoutts quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 256 seconds) |
| 19:51:49 | <dminuoso_> | Sigh I wish nix was more like haskell. :( |
| 19:52:11 | × | JeremyB99 quits (~JeremyB99@208.64.173.6) (Ping timeout: 252 seconds) |
| 19:52:38 | <dminuoso_> | I want a rich prelude, whitespace aware grammar where bindings, list pattern matching... |
| 19:53:38 | <dminuoso_> | Its curious how Haskell has this "its a research" language label, but nix does not have this "its shoehorned unfinished research" label |
| 19:53:53 | <dminuoso_> | Maybe "get things done quickly instead of right" really is the recipe for success |
| 19:56:55 | <zzz> | javascript |
| 19:57:09 | <[exa]> | dminuoso_: it's a failure-delaying recipe |
| 19:57:26 | <dminuoso_> | [exa]: Seems to be a recurring theme in humanity. |
| 19:57:49 | <zzz> | nature knows there is no such thing as "right" |
| 19:57:51 | <[exa]> | dminuoso_: life is short, you gotta find the balance |
| 19:58:50 | <kaol> | Should've tried avoiding success more. |
| 20:00:07 | <zzz> | safety is commonly overrated but it's nice to think about |
| 20:01:11 | <zzz> | an in life you have to take risks |
| 20:03:49 | → | Pickchea joins (~private@user/pickchea) |
| 20:04:11 | → | dcoutts joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) |
| 20:05:35 | <sshine> | dminuoso_, doesn't Dhall translate to Nix? |
| 20:06:25 | <sshine> | dminuoso_, I attended my first Nix meetup last week. there was a "for beginners" talk, and I heard the sentence "Nix is *just* a bunch of shell scripts, and Perl." a lot of times. |
| 20:07:27 | <dminuoso_> | sshine: Yeah, dhall is somewhat nicer, but really adding another compilation layer isn't going to help with adoption at $work. |
| 20:07:54 | <sshine> | dminuoso_, I suppose so. but I also thought maybe that could be fixed with just a single package in one's nix configuration. |
| 20:08:09 | <sshine> | dminuoso_, do you use Nix for deployment at work? |
| 20:08:13 | <dminuoso_> | Yes. |
| 20:08:21 | <dminuoso_> | We operate over a hundred machines with it |
| 20:08:28 | <dminuoso_> | NixOS that is. |
| 20:08:50 | <sshine> | I'm aiming to do so. the lead architect asked me a leading question if I'd tried Nix. so I know I've got buy-in. :) it's just one of those things you have to invest your own time in also. |
| 20:09:25 | <dminuoso_> | Im really torn with nix. |
| 20:09:35 | <sshine> | I think we're at 15 or so now, running Debian with custom .debs, but upgrading is gradually turning to haywire. |
| 20:09:47 | <dminuoso_> | If it was just pure nix, I wouldnt focus too much on it. With NixOS its a trade off. |
| 20:10:02 | <sshine> | why? |
| 20:10:14 | <dminuoso_> | It comes with significant costs, none of which make me happy - but the benefits outweigh them slightly. |
| 20:11:02 | <sshine> | what costs are associated with NixOS that aren't with Nix? (also, if this is too offtopic for #haskell, I'm in #haskell-offtopic now.) |
| 20:11:44 | → | pounce joins (~pounce@user/cute/pounce) |
| 20:12:44 | × | dcoutts quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 268 seconds) |
| 20:15:42 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 20:15:52 | <yushyin> | i always tell myself, at least it's not YAML with python filters |
| 20:16:06 | <dminuoso_> | yushyin: Right, and thats sort of the "why do we even use it" reason. |
| 20:16:07 | × | pounce quits (~pounce@user/cute/pounce) (Read error: error:0A000119:SSL routines::decryption failed or bad record mac) |
| 20:16:10 | <dminuoso_> | Its better than the alternatives. |
| 20:16:16 | <sshine> | that's what they say at the Nix club. |
| 20:16:22 | <dminuoso_> | Which isnt mich to go on, but hey, its something. |
| 20:17:08 | <dminuoso_> | One of my favourite ones in nixos modules is: infinite recursion detected. GOOD LUCK! |
| 20:17:13 | <sshine> | "at least it's not YAML." -- but I think all YAML isn't created equally. for example, Ansible YAML seems to be schema-validated before they try to execute it. (executing is a mess, but at least you get good error messages in case you made a scope indentation error.) |
| 20:17:23 | → | pounce joins (~pounce@user/cute/pounce) |
| 20:17:37 | <dminuoso_> | The YAML part is a red herring in all of ansible. |
| 20:17:42 | <ski> | (sshine : it's fine) |
| 20:17:42 | <dminuoso_> | YAML is merely the lexical structure. |
| 20:17:48 | <dminuoso_> | It doesnt mean anything |
| 20:17:48 | <Rembane> | It's very red. It's very herring. |
| 20:17:50 | <sshine> | whereas Helm has a nicer execution model, but the syntax is... footguns with footguns all the way down. |
| 20:18:08 | <Rembane> | sshine: Does Helm use its own syntax? Home rolled and dangerous? |
| 20:18:09 | <dminuoso_> | Rembane: Are herrings red, though? |
| 20:18:20 | <dminuoso_> | Pink, maybe. |
| 20:18:34 | <Rembane> | dminuoso_: All my herrings are red. I am quite drunk when I am close to them though, and they are fermented. |
| 20:18:47 | <ski> | not smoked ? |
| 20:19:34 | <sshine> | Rembane, Helm uses handlebar-like macros, but the really difficult thing is that when you have macros that produce whitespace-sensitive output, you have a bunch of variations of handlebars that regulate the output, and a bunch of helper macros that indent it further. it feels like most of my cognitive capacity, when writing Helm scripts, goes into thinking about whitespace, and very little goes into |
| 20:19:40 | <sshine> | thinking about the underlying resource definitions. |
| 20:20:33 | <dminuoso_> | Rembane: Is there a casual connection to you being close to them, and them being fermeted? |
| 20:20:47 | <dminuoso_> | I can imagine throwing up while drunk could trigger fermentation. Is that it? |
| 20:21:18 | → | nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
| 20:21:38 | <monochrom> | :( |
| 20:23:19 | → | Tuplanolla joins (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) |
| 20:24:46 | × | stevenxl quits (uid133530@id-133530.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
| 20:26:10 | × | nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 255 seconds) |
| 20:27:37 | AlexNoo_ | is now known as AlexNoo |
| 20:29:44 | → | peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com) |
| 20:31:51 | × | iqubic quits (~avi@2601:602:9502:c70:c94f:89a4:f1d7:2a2a) (Ping timeout: 268 seconds) |
| 20:33:58 | × | pounce quits (~pounce@user/cute/pounce) (Ping timeout: 276 seconds) |
| 20:38:46 | × | shapr quits (~user@2600:1700:c640:3100:7dfc:b197:b7f3:90c3) (Remote host closed the connection) |
| 20:39:00 | → | shapr joins (~user@2600:1700:c640:3100:9f9c:9e66:1ec1:188) |
| 20:41:32 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
| 20:44:07 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:5836:1305:ce95:7f7f) (Remote host closed the connection) |
| 20:45:21 | × | yahb2 quits (~yahb2@2a01:4f8:c0c:5c7b::2) (Remote host closed the connection) |
| 20:45:45 | → | yahb2 joins (~yahb2@static.56.27.47.78.clients.your-server.de) |
| 20:45:45 | ChanServ | sets mode +v yahb2 |
| 20:45:56 | → | danza joins (~francesco@151.47.212.250) |
| 20:46:58 | × | peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds) |
| 20:53:13 | → | ircbrowse_tom joins (~ircbrowse@static.162.49.55.162.clients.your-server.de) |
| 20:53:19 | Server | sets mode +Cnt |
| 20:53:52 | → | marinelli joins (~weechat@gateway/tor-sasl/marinelli) |
| 20:54:28 | <zzz> | if i have a haskell program running on my server and i want another program (not haskell) to communicate with it, sending and getting responses just a few times a second, what would be the simplest way to do it? i am looking at IPC, pipes and so on but i'm a little lost. i've never done anything of the sort |
| 20:55:28 | <juri_> | can confirm all of the above, and pour on some gasoline: ansible's yaml verification is great, too bad it uses a templating system that is very python version / templating tool version / ansible version dependant. nothing like an ansible script doing the wrong thing halfway through a run because your dependencies don't quite work well enough together. |
| 20:56:13 | <sshine> | juri_, haha yeah, I do remember that. doing Ansible scripts to bootstrap a system, you have to install the right Python version first. |
| 20:56:48 | × | tomsmeding quits (~tomsmedin@static.21.109.88.23.clients.your-server.de) (Quit: ZNC 1.8.2 - https://znc.in) |
| 20:57:21 | → | tomsmeding joins (~tomsmedin@2a01:4f8:c0c:5e5e::2) |
| 20:58:21 | <sshine> | zzz, there's quite a lot you can do. TCP, UNIX domain socket. REST, RPC. here's a simple example: https://stackoverflow.com/questions/29593116/simple-unix-domain-sockets-server |
| 20:58:29 | <Rembane> | dminuoso_: No, not at all. First the herring is fermented and then it is eaten while drinking lots of fermented and distilled beverages. |
| 20:59:22 | <Rembane> | sshine: W.r.t. Helm: That sounds exciting in all the wrong ways. I think I would've prefered a compiler to macros and templates. |
| 21:02:34 | <sshine> | Rembane, the Helm documentation even has a section on how bad this is: https://helm.sh/docs/chart_template_guide/control_structures/#controlling-whitespace -- I remember doing this for a while, it occurred to me "Wait, Lisp has macros, and Lisp doesn't blow up when I misplace a whitespace. what's happening here?" |
| 21:02:52 | <dminuoso_> | Rembane: That sounds like an awful complication. Couldnt you just ferment the hering in the same drink you are drinking? |
| 21:02:57 | <dminuoso_> | Seems it would speed up the consumption process. |
| 21:03:01 | <Rembane> | sshine: That's hilarious! |
| 21:03:31 | <Rembane> | dminuoso_: Hm... that's a good point. The part I'm really interested in is the concept of distilling herring. |
| 21:03:53 | <dminuoso_> | Rembane: Well you can distill herring just fine. Its just that after one destillation you will have 0% herring left. |
| 21:04:02 | <sshine> | Rembane, it's like the clip from Rick & Morty where, if you align the dead flies correctly on Rick's table, it unlocks his bunker. except, it's not a joke. |
| 21:04:08 | <dminuoso_> | That may or may not be what you want. |
| 21:05:56 | <Rembane> | dminuoso_: Is there no herring in the alcohol? |
| 21:06:19 | × | danza quits (~francesco@151.47.212.250) (Ping timeout: 255 seconds) |
| 21:06:26 | <Rembane> | sshine: I try to laugh at it anyway. I'm a fool. I am truly fascinated that things ended up like this. |
| 21:06:33 | <dminuoso_> | You have a point, I dont actually know the boiling point of herring. |
| 21:06:47 | <dminuoso_> | Sounds like we need some bachelor students. |
| 21:06:50 | <Rembane> | I assume the same as water. |
| 21:07:16 | <dminuoso_> | Rembane: Are you suggesting if you boil a pot of water with herrings, some of the herring will start evaporating into air as herring gas? |
| 21:07:23 | <Vq> | You fry or pickle them, you don't boil them. |
| 21:07:34 | <Rembane> | dminuoso_: Yes! |
| 21:07:46 | <sshine> | Rembane, I think handlebar-style templating was a pretty great thing in back-end web frameworks, it was a great improvement over PHP, decoupling markup and domain logic, and the syntax is super lightweight and non-invasive wrt. HTML/CSS. so why not repurpose it for generating YAML that defines what servers run and not? |
| 21:08:23 | <EvanR> | I said HTML should just have functions in the sense of lambda calculus, beta reduction. People thought I was nuts |
| 21:08:38 | <EvanR> | either because that's PHP and it's terrible. Or that's PHP which is great and already exists |
| 21:09:08 | <juri_> | xhtml + xslt was neat. wish it would have caught on, instead of css. |
| 21:09:10 | → | trev joins (~trev@user/trev) |
| 21:09:19 | <Rembane> | sshine: I agree wholheartedly until the part where it should generate something that is whitespace sensitive. |
| 21:09:31 | <sshine> | yeah, I liked xslt. |
| 21:09:43 | <Rembane> | I think there is a language that is a lisp and that compiles down to html. |
| 21:09:56 | <EvanR> | is it called javascript |
| 21:10:23 | <Rembane> | It might be a lisp, but it doesn't look like one. |
| 21:10:28 | <sshine> | I try to obsess about only a couple of languages per decade. |
| 21:11:02 | → | pavonia joins (~user@user/siracusa) |
| 21:11:03 | × | target_i quits (~target_i@217.175.14.39) (Quit: leaving) |
| 21:12:15 | → | teqwve joins (teqwve@2a01:4f8:c2c:e5b0::1) |
| 21:13:05 | <Rembane> | It seems like I was thinking of X-expressions and Racket which is a Scheme and not really a Lisp, so Javascript could most definitely work too. |
| 21:13:21 | <ski> | Scheme is a Lisp |
| 21:13:58 | <Rembane> | Then I've misunderstood something. |
| 21:14:02 | × | _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection) |
| 21:14:02 | <Rembane> | That's reassuring. |
| 21:14:07 | <ski> | (Logo and Dylan are often also "spiritually" considered Lisps, even though they don't use SExps) |
| 21:14:17 | <EvanR> | by defining suitable "builder" functions a bunch of markup in js looks vaguely like funny looking s-expressions xD |
| 21:14:18 | <sshine> | somehow the lisp in Scheme is silent. |
| 21:14:52 | × | end quits (~end@user/end/x-0094621) (Quit: end) |
| 21:17:22 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:5836:1305:ce95:7f7f) |
| 21:19:29 | → | end joins (~end@user/end/x-0094621) |
| 21:22:09 | → | JeremyB99 joins (~JeremyB99@208.64.173.6) |
| 21:23:47 | × | bcksl quits (~bcksl@user/bcksl) (Quit: \) |
| 21:27:16 | × | JeremyB99 quits (~JeremyB99@208.64.173.6) (Ping timeout: 276 seconds) |
| 21:28:08 | → | bcksl joins (~bcksl@user/bcksl) |
| 21:28:08 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17ee:4c81:15dc:c9c4:136:fc18) |
| 21:31:31 | ← | L29Ah parts (~L29Ah@wikipedia/L29Ah) () |
| 21:34:27 | × | caryhartline quits (~caryhartl@168.182.58.169) (Ping timeout: 268 seconds) |
| 21:35:34 | × | mrmr15533 quits (~mrmr@user/mrmr) (Ping timeout: 255 seconds) |
| 21:35:39 | → | dcoutts joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) |
| 21:38:45 | × | szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
| 21:41:35 | × | dhil quits (~dhil@2001:8e0:2014:3100:8523:26aa:23b6:e435) (Ping timeout: 260 seconds) |
| 21:43:12 | × | alp_ quits (~alp@2001:861:e3d6:8f80:1cde:a541:9274:7e5a) (Ping timeout: 256 seconds) |
| 21:44:00 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17ee:4c81:15dc:c9c4:136:fc18) (Ping timeout: 268 seconds) |
| 21:44:56 | × | brettgilio quits (a35ba67324@2604:bf00:561:2000::260) (Ping timeout: 245 seconds) |
| 21:44:56 | × | aniketd quits (32aa4844cd@2604:bf00:561:2000::dcb) (Ping timeout: 245 seconds) |
| 21:44:56 | × | evanrelf quits (3addc196af@2604:bf00:561:2000::f0) (Ping timeout: 245 seconds) |
| 21:44:56 | × | jleightcap quits (7bc4014b62@user/jleightcap) (Ping timeout: 245 seconds) |
| 21:44:56 | × | bsima1 quits (9d7e39c8ad@2604:bf00:561:2000::dd) (Ping timeout: 245 seconds) |
| 21:45:05 | × | chaitlatte0 quits (ea29c0bb16@user/chaitlatte0) (Read error: Connection reset by peer) |
| 21:45:05 | × | lukec quits (9dfd4d094e@2604:bf00:561:2000::10e) (Read error: Connection reset by peer) |
| 21:45:10 | × | shreyasminocha quits (51fdc93eda@user/shreyasminocha) (Read error: Connection reset by peer) |
| 21:45:11 | × | whereiseveryone quits (206ba86c98@2604:bf00:561:2000::2e4) (Read error: Connection reset by peer) |
| 21:45:11 | × | fluffyballoon quits (45ce440a48@2604:bf00:561:2000::e2) (Read error: Connection reset by peer) |
| 21:45:18 | → | lukec joins (9dfd4d094e@2604:bf00:561:2000::10e) |
| 21:45:21 | → | evanrelf joins (3addc196af@2604:bf00:561:2000::f0) |
| 21:45:23 | → | bsima1 joins (9d7e39c8ad@2604:bf00:561:2000::dd) |
| 21:45:27 | → | chaitlatte0 joins (ea29c0bb16@2604:bf00:561:2000::1124) |
| 21:45:28 | × | chaitlatte0 quits (ea29c0bb16@2604:bf00:561:2000::1124) (Changing host) |
| 21:45:28 | → | chaitlatte0 joins (ea29c0bb16@user/chaitlatte0) |
| 21:45:35 | → | brettgilio joins (a35ba67324@2604:bf00:561:2000::260) |
| 21:45:35 | → | whereiseveryone joins (206ba86c98@2604:bf00:561:2000::2e4) |
| 21:45:35 | → | jleightcap joins (7bc4014b62@user/jleightcap) |
| 21:45:35 | → | fluffyballoon joins (45ce440a48@2604:bf00:561:2000::e2) |
| 21:45:35 | → | shreyasminocha joins (51fdc93eda@user/shreyasminocha) |
| 21:45:37 | → | aniketd joins (32aa4844cd@2604:bf00:561:2000::dcb) |
| 21:45:49 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 21:45:57 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:46:01 | × | fgaz_ quits (1ff9197ed6@2604:bf00:561:2000::11ea) (Read error: Connection reset by peer) |
| 21:46:01 | × | kuruczgy quits (55b66dd3ae@2604:bf00:561:2000::127f) (Read error: Connection reset by peer) |
| 21:46:01 | × | sus quits (1b7af6299f@user/zeromomentum) (Read error: Connection reset by peer) |
| 21:46:02 | × | theesm quits (2cbdf4b38a@2604:bf00:561:2000::11c8) (Read error: Connection reset by peer) |
| 21:46:02 | × | fvr quits (ef3e56ca8b@2604:bf00:561:2000::3c4) (Read error: Connection reset by peer) |
| 21:46:02 | × | b0o quits (0e4a0bf4c9@2604:bf00:561:2000::1bf) (Read error: Connection reset by peer) |
| 21:46:02 | × | JoelMcCracken quits (5ea8252fbb@2604:bf00:561:2000::10e3) (Write error: Connection reset by peer) |
| 21:46:02 | × | akspecs quits (00cc8321af@sourcehut/user/akspecs) (Write error: Connection reset by peer) |
| 21:46:02 | × | jkoshy quits (99b9359beb@user/jkoshy) (Write error: Connection reset by peer) |
| 21:46:02 | × | arcadewise quits (52968ed80d@2604:bf00:561:2000::3df) (Read error: Connection reset by peer) |
| 21:46:02 | × | ymherklotz quits (cb2c9cfbdd@2604:bf00:561:2000::29a) (Read error: Connection reset by peer) |
| 21:46:02 | × | henrytill quits (e0180937c3@2604:bf00:561:2000::e8c) (Read error: Connection reset by peer) |
| 21:46:02 | × | samhh_ quits (7569f027cf@2604:bf00:561:2000::e4) (Read error: Connection reset by peer) |
| 21:46:02 | × | sm2n quits (ae95cb1267@user/sm2n) (Read error: Connection reset by peer) |
| 21:46:02 | × | rselim quits (ce261f06ff@user/milesrout) (Write error: Connection reset by peer) |
| 21:46:02 | × | Ankhers quits (e99e97ef8e@2604:bf00:561:2000::2a2) (Read error: Connection reset by peer) |
| 21:46:02 | × | filwisher quits (2e6936c793@2604:bf00:561:2000::170) (Read error: Connection reset by peer) |
| 21:46:02 | × | samhh quits (7569f027cf@2604:bf00:561:2000::e4) (Read error: Connection reset by peer) |
| 21:46:02 | × | jakzale quits (6291399afa@user/jakzale) (Read error: Connection reset by peer) |
| 21:46:02 | × | fn_lumi quits (3d621153a5@2604:bf00:561:2000::df7) (Read error: Connection reset by peer) |
| 21:46:02 | × | eso quits (a0662dfd5e@2604:bf00:561:2000::1266) (Read error: Connection reset by peer) |
| 21:46:02 | × | fluffyballoon quits (45ce440a48@2604:bf00:561:2000::e2) (Read error: Connection reset by peer) |
| 21:46:03 | × | probie quits (cc0b34050a@user/probie) (Write error: Connection reset by peer) |
| 21:46:03 | × | ggb quits (a62ffbaf4f@2604:bf00:561:2000::3ac) (Write error: Connection reset by peer) |
| 21:46:03 | × | shreyasminocha quits (51fdc93eda@user/shreyasminocha) (Read error: Connection reset by peer) |
| 21:46:03 | × | chaitlatte0 quits (ea29c0bb16@user/chaitlatte0) (Write error: Connection reset by peer) |
| 21:46:03 | × | raghavgururajan quits (ea769b8000@user/raghavgururajan) (Write error: Connection reset by peer) |
| 21:46:03 | × | aniketd quits (32aa4844cd@2604:bf00:561:2000::dcb) (Read error: Connection reset by peer) |
| 21:46:03 | × | bsima1 quits (9d7e39c8ad@2604:bf00:561:2000::dd) (Read error: Connection reset by peer) |
| 21:46:03 | × | brettgilio quits (a35ba67324@2604:bf00:561:2000::260) (Write error: Connection reset by peer) |
| 21:46:03 | × | whereiseveryone quits (206ba86c98@2604:bf00:561:2000::2e4) (Read error: Connection reset by peer) |
| 21:46:03 | × | evanrelf quits (3addc196af@2604:bf00:561:2000::f0) (Write error: Connection reset by peer) |
| 21:46:03 | × | jleightcap quits (7bc4014b62@user/jleightcap) (Read error: Connection reset by peer) |
| 21:46:03 | × | cpli quits (77fc530071@2604:bf00:561:2000::252) (Write error: Connection reset by peer) |
| 21:46:03 | × | jmcantrell quits (644f1bed9a@user/jmcantrell) (Write error: Connection reset by peer) |
| 21:46:03 | × | lukec quits (9dfd4d094e@2604:bf00:561:2000::10e) (Write error: Connection reset by peer) |
| 21:46:09 | × | Ram-Z_ quits (Ram-Z@2a01:7e01::f03c:91ff:fe57:d2df) (Ping timeout: 256 seconds) |
| 21:46:14 | → | samhh joins (7569f027cf@2604:bf00:561:2000::e4) |
| 21:46:17 | → | fgaz_ joins (1ff9197ed6@2604:bf00:561:2000::11ea) |
| 21:46:17 | → | ggb joins (a62ffbaf4f@2604:bf00:561:2000::3ac) |
| 21:46:17 | → | bsima1 joins (9d7e39c8ad@2604:bf00:561:2000::dd) |
| 21:46:17 | → | lukec joins (9dfd4d094e@2604:bf00:561:2000::10e) |
| 21:46:18 | → | filwisher joins (2e6936c793@2604:bf00:561:2000::170) |
| 21:46:18 | → | raghavgururajan joins (ea769b8000@user/raghavgururajan) |
| 21:46:28 | → | JeremyB99 joins (~JeremyB99@2600:1702:21b0:a500:6581:2a34:dec3:8883) |
| 21:46:32 | → | jkoshy joins (99b9359beb@user/jkoshy) |
| 21:46:32 | → | arcadewise joins (52968ed80d@2604:bf00:561:2000::3df) |
| 21:46:32 | → | jleightcap joins (7bc4014b62@user/jleightcap) |
| 21:46:32 | → | brettgilio joins (a35ba67324@2604:bf00:561:2000::260) |
| 21:46:32 | → | fvr joins (ef3e56ca8b@2604:bf00:561:2000::3c4) |
| 21:46:36 | × | dcoutts quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Remote host closed the connection) |
| 21:46:37 | → | eso joins (a0662dfd5e@2604:bf00:561:2000::1266) |
| 21:46:37 | → | sus joins (1b7af6299f@user/zeromomentum) |
| 21:46:37 | → | fluffyballoon joins (45ce440a48@2604:bf00:561:2000::e2) |
| 21:46:44 | → | kuruczgy joins (55b66dd3ae@2604:bf00:561:2000::127f) |
| 21:46:44 | → | theesm joins (2cbdf4b38a@2604:bf00:561:2000::11c8) |
| 21:46:44 | → | whereiseveryone joins (206ba86c98@2604:bf00:561:2000::2e4) |
| 21:46:50 | → | aniketd joins (32aa4844cd@2604:bf00:561:2000::dcb) |
| 21:46:54 | → | fn_lumi joins (3d621153a5@2604:bf00:561:2000::df7) |
| 21:46:54 | → | ymherklotz joins (cb2c9cfbdd@2604:bf00:561:2000::29a) |
| 21:46:54 | → | probie joins (cc0b34050a@user/probie) |
| 21:46:54 | → | henrytill joins (e0180937c3@2604:bf00:561:2000::e8c) |
| 21:46:54 | → | shreyasminocha joins (51fdc93eda@user/shreyasminocha) |
| 21:46:57 | → | JoelMcCracken joins (5ea8252fbb@2604:bf00:561:2000::10e3) |
| 21:46:57 | → | cpli joins (77fc530071@2604:bf00:561:2000::252) |
| 21:46:57 | → | chaitlatte0 joins (ea29c0bb16@user/chaitlatte0) |
| 21:46:57 | → | akspecs joins (00cc8321af@sourcehut/user/akspecs) |
| 21:46:58 | → | dcoutts joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) |
| 21:47:00 | → | jakzale joins (6291399afa@user/jakzale) |
| 21:47:00 | → | jmcantrell joins (644f1bed9a@user/jmcantrell) |
| 21:47:00 | × | JeremyB99 quits (~JeremyB99@2600:1702:21b0:a500:6581:2a34:dec3:8883) (Read error: Connection reset by peer) |
| 21:47:00 | → | evanrelf joins (3addc196af@2604:bf00:561:2000::f0) |
| 21:47:00 | → | sm2n joins (ae95cb1267@2604:bf00:561:2000::109) |
| 21:47:00 | → | rselim joins (ce261f06ff@2604:bf00:561:2000::257) |
| 21:47:00 | → | Ankhers joins (e99e97ef8e@2604:bf00:561:2000::2a2) |
| 21:47:00 | → | b0o joins (0e4a0bf4c9@2604:bf00:561:2000::1bf) |
| 21:47:02 | × | rselim quits (ce261f06ff@2604:bf00:561:2000::257) (Changing host) |
| 21:47:02 | → | rselim joins (ce261f06ff@user/milesrout) |
| 21:47:02 | × | sm2n quits (ae95cb1267@2604:bf00:561:2000::109) (Changing host) |
| 21:47:02 | → | sm2n joins (ae95cb1267@user/sm2n) |
| 21:47:38 | → | samhh_ joins (7569f027cf@2604:bf00:561:2000::e4) |
| 21:48:25 | → | mechap joins (~mechap@user/mechap) |
| 21:48:42 | → | JeremyB99 joins (~JeremyB99@2600:1702:21b0:a500:6581:2a34:dec3:8883) |
| 21:48:49 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 21:48:52 | × | JeremyB99 quits (~JeremyB99@2600:1702:21b0:a500:6581:2a34:dec3:8883) (Read error: Connection reset by peer) |
| 21:49:19 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
| 21:50:04 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 21:50:42 | → | Ram-Z joins (~Ram-Z@li1814-254.members.linode.com) |
| 21:50:56 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 21:51:26 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 21:52:40 | → | iqubic joins (~avi@2601:602:9502:c70:2d15:c772:1b7d:e5a5) |
| 21:54:20 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 21:54:56 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 21:55:53 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 21:56:23 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 21:58:46 | → | peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com) |
| 21:59:05 | × | fendor quits (~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) (Remote host closed the connection) |
| 21:59:19 | → | JeremyB99 joins (~JeremyB99@2600:1702:21b0:a500:6581:2a34:dec3:8883) |
| 21:59:41 | × | JeremyB99 quits (~JeremyB99@2600:1702:21b0:a500:6581:2a34:dec3:8883) (Read error: Connection reset by peer) |
| 22:01:11 | × | trev quits (~trev@user/trev) (Quit: trev) |
| 22:01:39 | × | jinsun quits (~jinsun@user/jinsun) (Ping timeout: 260 seconds) |
| 22:01:48 | → | jinsun_ joins (~jinsun@user/jinsun) |
| 22:01:48 | jinsun_ | is now known as jinsun |
| 22:08:59 | × | mechap quits (~mechap@user/mechap) (Quit: WeeChat 4.1.1) |
| 22:11:52 | → | mechap joins (~mechap@user/mechap) |
| 22:12:25 | × | mechap quits (~mechap@user/mechap) (Client Quit) |
| 22:12:33 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:13:01 | → | mechap joins (~mechap@user/mechap) |
| 22:15:37 | × | sawilagar quits (~sawilagar@user/sawilagar) (Ping timeout: 255 seconds) |
| 22:17:03 | × | peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 259 seconds) |
| 22:19:30 | → | szkl joins (uid110435@id-110435.uxbridge.irccloud.com) |
| 22:22:52 | × | acidjnk quits (~acidjnk@p200300d6e72b9317058012a22410a419.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
| 22:28:00 | → | JeremyB99 joins (~JeremyB99@2600:1702:21b0:a500:6581:2a34:dec3:8883) |
| 22:28:15 | × | Inst quits (~Inst@120.244.192.187) (Remote host closed the connection) |
| 22:30:16 | × | JeremyB99 quits (~JeremyB99@2600:1702:21b0:a500:6581:2a34:dec3:8883) (Read error: Connection reset by peer) |
| 22:30:31 | × | idgaen quits (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.1.1) |
| 22:31:39 | × | ddellacosta quits (~ddellacos@ool-44c73d16.dyn.optonline.net) (Quit: WeeChat 4.1.1) |
| 22:32:58 | → | mengu joins (~mengu@c83-254-18-254.bredband.tele2.se) |
| 22:40:02 | × | Jackneill quits (~Jackneill@20014C4E1E120500906E1D747CFD14BF.dsl.pool.telekom.hu) (Ping timeout: 260 seconds) |
| 22:40:57 | × | shapr quits (~user@2600:1700:c640:3100:9f9c:9e66:1ec1:188) (Remote host closed the connection) |
| 22:41:10 | → | shapr joins (~user@2600:1700:c640:3100:147b:3662:c432:30f1) |
| 22:41:16 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 22:41:47 | → | alp_ joins (~alp@2001:861:e3d6:8f80:1124:c998:cd66:bc03) |
| 22:44:50 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 22:47:20 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 22:49:11 | → | dolio joins (~dolio@130.44.134.54) |
| 22:50:37 | × | dolio quits (~dolio@130.44.134.54) (Client Quit) |
| 22:52:15 | → | dolio joins (~dolio@130.44.134.54) |
| 22:52:23 | × | coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
| 22:55:18 | → | ddellacosta joins (~ddellacos@ool-44c73d16.dyn.optonline.net) |
| 22:56:06 | → | cyphase joins (~cyphase@user/cyphase) |
| 23:05:21 | → | coot joins (~coot@89-69-206-216.dynamic.chello.pl) |
| 23:08:36 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 23:10:15 | × | coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
| 23:12:50 | → | peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com) |
| 23:14:38 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 23:21:26 | × | mengu quits (~mengu@c83-254-18-254.bredband.tele2.se) (Quit: Client closed) |
| 23:22:22 | × | peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds) |
| 23:23:32 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 23:26:07 | → | JeremyB99 joins (~JeremyB99@2600:1702:21b0:a500:6581:2a34:dec3:8883) |
| 23:27:20 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 23:28:09 | × | JeremyB99 quits (~JeremyB99@2600:1702:21b0:a500:6581:2a34:dec3:8883) (Read error: Connection reset by peer) |
| 23:32:48 | → | JeremyB99 joins (~JeremyB99@2600:1702:21b0:a500:6581:2a34:dec3:8883) |
| 23:33:23 | × | JeremyB99 quits (~JeremyB99@2600:1702:21b0:a500:6581:2a34:dec3:8883) (Read error: Connection reset by peer) |
| 23:36:39 | × | chomwitt quits (~chomwitt@ppp-2-85-137-120.home.otenet.gr) (Ping timeout: 256 seconds) |
| 23:37:23 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 23:37:37 | <meejah> | if you were to build a little toy 2D game-like thing (goal: learn more haskell) on a Linux machine, which Haskell framework would you reach for right now? |
| 23:38:32 | <meejah> | (I'm asking here, because I want something showing "good haskell" -- i.e. sure I could use the GTK bindings, but then I'm doing "c-like gtk in haskell" approximately, it seems) |
| 23:40:31 | <carter> | meejah: dear im gui |
| 23:40:51 | <carter> | It’s dirt simple but you can make it fancy |
| 23:41:03 | <carter> | Or maybe I’m just ignorant at gui dev |
| 23:41:16 | <jackdk> | meejah: Note that whatever program you write, there's often an "imperative outer layer" which grows up around the program and then you have a core of pure data structures and functions to work out what you need to change in the imperative layer |
| 23:41:23 | × | thegeekinside quits (~thegeekin@189.180.53.210) (Remote host closed the connection) |
| 23:43:36 | <jackdk> | meejah: https://www.youtube.com/watch?v=GaorHAlUkVs is an interesting talk using some pretty high-powered tools to get performance but captures the idea pretty well |
| 23:43:45 | → | JeremyB99 joins (~JeremyB99@2600:1702:21b0:a500:6581:2a34:dec3:8883) |
| 23:44:36 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 23:46:16 | × | JeremyB99 quits (~JeremyB99@2600:1702:21b0:a500:6581:2a34:dec3:8883) (Read error: Connection reset by peer) |
| 23:47:10 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 23:47:17 | <duncan> | meejah: I have a Haskell implementation of the 'greed' game using Brick |
| 23:47:44 | <duncan> | Brick runs in the terminal and it is a bunch of combinators |
| 23:48:27 | <meejah> | thanks! (I've played a little with Brick and yeah it looks neat) |
| 23:48:37 | <meejah> | it's the "reactive" type thing? |
| 23:48:46 | <duncan> | It's not reactive |
| 23:48:52 | <duncan> | State is updated every so often though |
| 23:49:17 | <meejah> | jackdk: thanks, i'll check out the talk |
| 23:49:34 | <meejah> | duncan: oh, is it like monomer then? (more like model/view/controller a bit) |
| 23:49:56 | <duncan> | Well, it's not reactive in the same way the reactive-banana is |
| 23:50:01 | <meejah> | right, okay |
| 23:50:04 | <duncan> | But it might be given it has a state machine |
| 23:50:12 | → | emmanuelux joins (~emmanuelu@user/emmanuelux) |
| 23:50:25 | <meejah> | (yeah i meant "reactive" in that sense, like Obsidian etc ) |
| 23:50:31 | <duncan> | https://github.com/druimalban/hgreed |
| 23:50:45 | <duncan> | A famous Haskeller starred the repository IIRC. |
| 23:53:51 | <duncan> | Oh god I think I used some recursion scheme with that |
| 23:54:01 | <duncan> | Probably not a great teaching tool. |
| 23:55:13 | <EvanR> | meejah, simple graphics library gloss has a "game" mode |
| 23:55:35 | <EvanR> | but you'd have to bring your own audio if you want audio |
| 23:55:36 | → | masterbuilder joins (~quassel@user/masterbuilder) |
| 23:57:06 | × | pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 260 seconds) |
| 23:57:25 | × | gabriel_sevecek quits (~gabriel@188-167-229-200.dynamic.chello.sk) (Ping timeout: 276 seconds) |
| 23:58:36 | → | pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it) |
| 23:59:30 | <duncan> | I think it would involve a lot of wrangling with 2D graphics libraries, whereas Brick is just blitting composed together text objects to the terminal |
All times are in UTC on 2023-11-28.