2020/12/03

2020-12-03 00:03:53 +0100Amras(~Amras@unaffiliated/amras) (Ping timeout: 246 seconds)
2020-12-03 00:04:44 +0100cptwunderlich(d4ba391c@gateway/web/cgi-irc/kiwiirc.com/ip.212.186.57.28) ()
2020-12-03 00:06:11 +0100conal(~conal@198.8.81.86) (Quit: Computer has gone to sleep.)
2020-12-03 00:07:53 +0100conal(~conal@198.8.81.86)
2020-12-03 00:08:05 +0100aarvar(~foewfoiew@50.35.43.33)
2020-12-03 00:11:58 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt)
2020-12-03 00:12:47 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
2020-12-03 00:13:14 +0100infinity0(~infinity0@freenet/developer/infinity0) (Remote host closed the connection)
2020-12-03 00:15:24 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius) (Quit: leaving)
2020-12-03 00:16:29 +0100danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 246 seconds)
2020-12-03 00:17:43 +0100xcmw(~textual@cpe-69-133-55-43.cinci.res.rr.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-03 00:21:47 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2020-12-03 00:22:18 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
2020-12-03 00:22:45 +0100joaoh82(~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net)
2020-12-03 00:22:53 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius)
2020-12-03 00:23:34 +0100 <koz_> @hoogle cmp
2020-12-03 00:23:34 +0100 <lambdabot> Data.Vector.Fusion.Bundle cmp :: Ord a => Bundle v a -> Bundle v a -> Ordering
2020-12-03 00:23:34 +0100 <lambdabot> Data.Vector.Generic cmp :: (Vector v a, Ord a) => v a -> v a -> Ordering
2020-12-03 00:23:34 +0100 <lambdabot> RIO.Vector cmp :: (Vector v a, Ord a) => v a -> v a -> Ordering
2020-12-03 00:23:46 +0100 <koz_> I guess I want 'compare'.
2020-12-03 00:23:48 +0100 <koz_> :t compare
2020-12-03 00:23:49 +0100rcdilorenzo(~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Quit: rcdilorenzo)
2020-12-03 00:23:49 +0100 <lambdabot> Ord a => a -> a -> Ordering
2020-12-03 00:24:04 +0100rcdilorenzo(~rcdiloren@cpe-76-182-87-188.nc.res.rr.com)
2020-12-03 00:24:34 +0100xcmw(~textual@2607:f388:1080:2::c2)
2020-12-03 00:24:36 +0100aarvar(~foewfoiew@50.35.43.33) ()
2020-12-03 00:25:04 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius) (Client Quit)
2020-12-03 00:25:28 +0100 <koz_> > EQ <> EQ
2020-12-03 00:25:30 +0100 <lambdabot> EQ
2020-12-03 00:25:35 +0100 <koz_> > EQ <> LT
2020-12-03 00:25:38 +0100 <lambdabot> LT
2020-12-03 00:25:42 +0100 <koz_> > EQ <> GT
2020-12-03 00:25:44 +0100 <lambdabot> GT
2020-12-03 00:25:50 +0100 <koz_> Hmm, interesting.
2020-12-03 00:26:20 +0100 <koz_> Is there a more concise way to spell something like (x `compare` x') <> (y `compare` y')?
2020-12-03 00:27:50 +0100 <koz_> :t comparing
2020-12-03 00:27:52 +0100 <lambdabot> Ord a => (b -> a) -> b -> b -> Ordering
2020-12-03 00:28:20 +0100rcdilorenzo(~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Client Quit)
2020-12-03 00:28:35 +0100rcdilorenzo(~rcdiloren@cpe-76-182-87-188.nc.res.rr.com)
2020-12-03 00:28:53 +0100 <ski> `EQ' is neutral element
2020-12-03 00:29:14 +0100 <koz_> ski: So EQ <> anything == anything <> EQ == EQ ?
2020-12-03 00:29:25 +0100 <ski> > sortBy (comparing length <> compare) (words "The quick brown fox jumps over the lazy dog")
2020-12-03 00:29:27 +0100 <lambdabot> ["The","dog","fox","the","lazy","over","brown","jumps","quick"]
2020-12-03 00:29:45 +0100nisstyre(~wes@python-zero/conduct-committee/nisstyre) (Quit: WeeChat 2.8)
2020-12-03 00:29:52 +0100 <ski> (primarily sorts by length, then for words of the same length, sorts them normally/lexicographically)
2020-12-03 00:29:52 +0100jamm_(~jamm@unaffiliated/jamm)
2020-12-03 00:30:14 +0100nisstyre(~wes@python-zero/conduct-committee/nisstyre)
2020-12-03 00:30:42 +0100 <ski> @where monoids
2020-12-03 00:30:42 +0100 <lambdabot> comment on "Monoids? In my programming language?" by Cale in 2008 (or 2009 ?) at <http://www.reddit.com/r/programming/comments/7cf4r/monoids_in_my_programming_language/c06adnx> about a use of `
2020-12-03 00:30:42 +0100 <lambdabot> instance Monoid a => Monoid (rho -> a)'
2020-12-03 00:32:58 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-03 00:33:29 +0100jlamothe(~jlamothe@198.251.55.207) (Ping timeout: 260 seconds)
2020-12-03 00:33:42 +0100 <iqubic> How does that work?
2020-12-03 00:33:48 +0100 <iqubic> :t comparing length
2020-12-03 00:33:50 +0100 <lambdabot> Foldable t => t a -> t a -> Ordering
2020-12-03 00:34:04 +0100 <iqubic> :t comparing length <> compare
2020-12-03 00:34:06 +0100 <lambdabot> (Foldable t, Ord (t a)) => t a -> t a -> Ordering
2020-12-03 00:34:18 +0100 <iqubic> I'm so confused by that.
2020-12-03 00:34:23 +0100jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 260 seconds)
2020-12-03 00:34:25 +0100L29Ah(~L29Ah@unaffiliated/l29ah) (Ping timeout: 260 seconds)
2020-12-03 00:34:38 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
2020-12-03 00:34:45 +0100joaoh82(~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Ping timeout: 240 seconds)
2020-12-03 00:34:52 +0100aplainze1akind(~johndoe@captainludd.powered.by.lunarbnc.net)
2020-12-03 00:35:02 +0100 <merijn> iqubic: "instance Monoid r => Monoid (a -> r) where mempty = \_ -> mempty; mappend f g = \x -> mappend (f x) (g x)"
2020-12-03 00:35:15 +0100aplainze1akindaplainzetakind
2020-12-03 00:35:18 +0100 <merijn> iqubic: Except that instance applies recursively, so works for any number of arguments
2020-12-03 00:35:34 +0100 <ski> @type comparing (length :: [a] -> Int) <> compare
2020-12-03 00:35:36 +0100 <lambdabot> Ord a => [a] -> [a] -> Ordering
2020-12-03 00:35:54 +0100 <merijn> :t comparing length
2020-12-03 00:35:56 +0100 <lambdabot> Foldable t => t a -> t a -> Ordering
2020-12-03 00:36:01 +0100 <merijn> :t compare
2020-12-03 00:36:03 +0100 <lambdabot> Ord a => a -> a -> Ordering
2020-12-03 00:36:07 +0100 <iqubic> mempty = const mempty and f <> g = \x -> (f x) <> (g x).
2020-12-03 00:36:12 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius)
2020-12-03 00:36:16 +0100tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Remote host closed the connection)
2020-12-03 00:36:30 +0100 <ski> so, it's using the `Monoid Ordering' on the `Ordering' result of `comparing length' and `compare', combining them with a preferential merging. only if the first is `EQ', does it check the latter
2020-12-03 00:37:10 +0100 <iqubic> Wait. Is "comparing length <> compare" the same as "comparing (length <> compare)"?
2020-12-03 00:37:16 +0100 <merijn> iqubic: no
2020-12-03 00:37:21 +0100 <merijn> the latter is a type error
2020-12-03 00:37:29 +0100 <iqubic> :t comparing
2020-12-03 00:37:30 +0100 <lambdabot> Ord a => (b -> a) -> b -> b -> Ordering
2020-12-03 00:37:42 +0100 <iqubic> :t comparing length
2020-12-03 00:37:44 +0100 <lambdabot> Foldable t => t a -> t a -> Ordering
2020-12-03 00:38:35 +0100 <merijn> iqubic: "comparing f" simply applies 'f' to both sides and compares the result
2020-12-03 00:38:39 +0100 <iqubic> I know.
2020-12-03 00:38:51 +0100infinity0(~infinity0@freenet/developer/infinity0)
2020-12-03 00:38:52 +0100 <koz_> Galaxy brain question: are all type errors equal?
2020-12-03 00:39:03 +0100hackage(mniip@haskell/bot/hackage) (Remote host closed the connection)
2020-12-03 00:39:05 +0100orcus-(~orcus@unaffiliated/orcus) (Quit: ZNC 1.7.5 - https://znc.in)
2020-12-03 00:39:16 +0100 <merijn> koz_: Define "all", "type", "error", and "equal" :)
2020-12-03 00:39:22 +0100 <koz_> merijn: Darn.
2020-12-03 00:39:23 +0100ishutin(~Ishutin@80-95-86-98.pool.digikabel.hu)
2020-12-03 00:39:27 +0100orcus(~orcus@unaffiliated/orcus)
2020-12-03 00:39:35 +0100 <monochrom> Type Error Farm. "Some type errors are more equal than others."
2020-12-03 00:39:39 +0100hackage(mniip@haskell/bot/hackage)
2020-12-03 00:39:45 +0100 <merijn> koz_: Especially equal is hard
2020-12-03 00:40:08 +0100 <monochrom> Equal is easy if you use uni-valued univalence.
2020-12-03 00:40:11 +0100jlamothe(~jlamothe@198.251.55.207)
2020-12-03 00:40:11 +0100 <koz_> merijn: I too have read Girard's book, wherein he opines on this point in a very French way in Chapter 1.
2020-12-03 00:40:19 +0100 <merijn> Spend 5 minutes looking into dependent types and homotopy type theories and discover there's about infinitely many ways for things to be equal ;)
2020-12-03 00:40:28 +0100 <ski> which book's that, koz_ ?
2020-12-03 00:40:40 +0100 <ski> ("Proofs and Types" ?)
2020-12-03 00:40:49 +0100 <koz_> ski: That one.
2020-12-03 00:40:56 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 240 seconds)
2020-12-03 00:41:05 +0100 <ski> he's often interesting
2020-12-03 00:41:10 +0100 <monochrom> Ah, the French have first-hand experience in this because "the King of France" is the prototypical example in the topic of referential transparency.
2020-12-03 00:41:21 +0100skiwatched half of a talk of his .. in french
2020-12-03 00:41:31 +0100 <ski> (only trouble is that i don't understand french)
2020-12-03 00:41:50 +0100 <iqubic> Alright. I know understand how "sortBy (comparing length <> compare)" works.
2020-12-03 00:42:14 +0100 <monochrom> If you understand "the King of France is bold" you understand referential transparency, equality, pure functional programming, and effect systems. >:)
2020-12-03 00:42:53 +0100 <koz_> monochrom: Is that an example of reduction? :P
2020-12-03 00:43:03 +0100 <monochrom> ha I don't know
2020-12-03 00:43:09 +0100ishutin_(~Ishutin@193-110-63-35.cable-modem.hdsnet.hu) (Ping timeout: 260 seconds)
2020-12-03 00:43:37 +0100 <monochrom> I should have added "quantum-gravity unification" there for good measure.
2020-12-03 00:43:49 +0100conal(~conal@198.8.81.86) (Quit: Computer has gone to sleep.)
2020-12-03 00:44:52 +0100 <iqubic> :t comparing
2020-12-03 00:44:54 +0100 <lambdabot> Ord a => (b -> a) -> b -> b -> Ordering
2020-12-03 00:45:35 +0100 <ski> @hoogle Eq b => (a -> b) -> (a -> a -> Bool)
2020-12-03 00:45:36 +0100 <lambdabot> Distribution.Simple.Utils equating :: Eq a => (b -> a) -> b -> b -> Bool
2020-12-03 00:45:36 +0100 <lambdabot> Distribution.Utils.Generic equating :: Eq a => (b -> a) -> b -> b -> Bool
2020-12-03 00:45:36 +0100 <lambdabot> CorePrelude equating :: Eq a => (b -> a) -> b -> b -> Bool
2020-12-03 00:46:03 +0100mbomba(~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca)
2020-12-03 00:46:38 +0100 <hekkaidekapus> monochrom: There is also: « L'État, c’est moi. » for full referential transparency. (”The state and I are uno.” :p)
2020-12-03 00:46:55 +0100 <koz_> hekkaidekapus: I call a category error.
2020-12-03 00:46:57 +0100conal(~conal@198.8.81.86)
2020-12-03 00:47:12 +0100 <iqubic> "comparing length <> compare" works like this: https://dpaste.com/H8X5SENPN
2020-12-03 00:47:22 +0100 <hekkaidekapus> koz_: <<loop>>
2020-12-03 00:47:26 +0100xcmw(~textual@2607:f388:1080:2::c2) (Ping timeout: 264 seconds)
2020-12-03 00:47:26 +0100benjamin-l(~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e60) (Ping timeout: 264 seconds)
2020-12-03 00:47:42 +0100 <ski> @quote change.the.state
2020-12-03 00:47:42 +0100 <lambdabot> MonadState says: Do not try to change the state; that's impossible. Instead only try to realize the truth: There is no state.
2020-12-03 00:48:01 +0100 <koz_> hekkaidekapus: Lol...
2020-12-03 00:48:14 +0100__monty__(~toonn@unaffiliated/toonn) (Quit: leaving)
2020-12-03 00:48:26 +0100 <hekkaidekapus> ski: But we just found the state…
2020-12-03 00:48:42 +0100 <koz_> > False <> False
2020-12-03 00:48:42 +0100 <hekkaidekapus> iqubic: Did you read the URL ski posted above?
2020-12-03 00:48:44 +0100 <lambdabot> error:
2020-12-03 00:48:44 +0100 <lambdabot> • No instance for (Semigroup Bool) arising from a use of ‘<>’
2020-12-03 00:48:44 +0100 <lambdabot> • In the expression: False <> False
2020-12-03 00:48:57 +0100 <koz_> Are there wrappers for Bool for this purpose?
2020-12-03 00:49:07 +0100erisco(~erisco@d24-57-249-233.home.cgocable.net)
2020-12-03 00:49:12 +0100 <ski> > Any False <> Any True
2020-12-03 00:49:12 +0100 <solonarv> sure, a bunch of them
2020-12-03 00:49:13 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
2020-12-03 00:49:14 +0100 <lambdabot> Any {getAny = True}
2020-12-03 00:49:17 +0100 <ski> > All False <> All True
2020-12-03 00:49:20 +0100 <lambdabot> All {getAll = False}
2020-12-03 00:49:23 +0100 <koz_> Yay, thanks!
2020-12-03 00:49:30 +0100 <iqubic> koz_: I have looked at the reddit post.
2020-12-03 00:49:32 +0100 <solonarv> Min and Max also work, if you want to be cryptic
2020-12-03 00:49:39 +0100 <solonarv> (Min = All, Max = Any)
2020-12-03 00:49:50 +0100 <koz_> solonarv: Being cryptic is not my goal (today).
2020-12-03 00:50:11 +0100benjamin-l(~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e60)
2020-12-03 00:50:21 +0100 <iqubic> koz_: Any == (Bool, Or, True), All == (Bool, And, False)
2020-12-03 00:50:47 +0100 <monochrom> For boolean algebra, min and max are better analogies than * and +
2020-12-03 00:50:54 +0100 <iqubic> First is the M, second is <>, third is Mempty
2020-12-03 00:51:05 +0100 <monochrom> In fact, scratch analogies, min and max are the real deal.
2020-12-03 00:51:40 +0100 <monochrom> a*a = a makes no sense, min a a = a does.
2020-12-03 00:51:55 +0100 <monochrom> a*(a+b) = a makes no sense, min a (max a b) = a does.
2020-12-03 00:51:57 +0100 <solonarv> a*a=a does make sense when the domain is {0,1}
2020-12-03 00:52:07 +0100 <solonarv> it's 1+1=1 that makes no sense
2020-12-03 00:52:12 +0100 <monochrom> OK right.
2020-12-03 00:52:44 +0100hekkaidekapus_(~tchouri@gateway/tor-sasl/hekkaidekapus)
2020-12-03 00:54:43 +0100hekkaidekapus(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
2020-12-03 00:55:20 +0100 <ski> let the domain be ⌜{0,1,2,⋯ ,∞}⌝, ⌜0⌝ standing for "true", and ⌜∞⌝ for "false"
2020-12-03 00:55:25 +0100hackagekempe 0.1.0.0 - Kempe compiler https://hackage.haskell.org/package/kempe-0.1.0.0 (vmchale)
2020-12-03 00:56:12 +0100 <ski> (more specifically, "forever true" and "forever false". ⌜1⌝ is "false now, but (forever) true, in one time step". ⌜2⌝ is "false now, and in the next instant, but (forever) true, in two time steps")
2020-12-03 00:56:34 +0100 <ski> (what then is "and","or","not" ?)
2020-12-03 00:57:14 +0100sakirious(~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) (Quit: The Lounge - https://thelounge.chat)
2020-12-03 00:58:21 +0100sakirious(~sakirious@c-71-197-191-137.hsd1.wa.comcast.net)
2020-12-03 00:58:35 +0100 <pjb> ski: the domain is not closed for not Only not ⌜0⌝ = ⌜∞⌝ and not ⌜∞⌝ = ⌜0⌝ can be defined.
2020-12-03 00:58:38 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2020-12-03 00:59:11 +0100 <pjb> ski: and ⌜a⌝ ⌜b⌝ = ⌜max a b⌝ or ⌜a⌝ ⌜b⌝ = ⌜min a b⌝
2020-12-03 01:00:45 +0100threadlock(~threadloc@195.140.213.38) (Remote host closed the connection)
2020-12-03 01:00:46 +0100 <ski> "not" will be "approximative" (won't be an involution)
2020-12-03 01:01:03 +0100 <ski> but yes, that's conjunction and disjunction
2020-12-03 01:01:44 +0100irc_user(uid423822@gateway/web/irccloud.com/x-fpptyyxiewbpsugc)
2020-12-03 01:02:04 +0100hackage(mniip@haskell/bot/hackage) (Ping timeout: 246 seconds)
2020-12-03 01:02:55 +0100hackage(mniip@haskell/bot/hackage)
2020-12-03 01:05:15 +0100 <ski> negation of ⌜∞⌝ is ⌜0⌝, of course, and negation of ⌜0⌝ is ⌜∞⌝. negation of positive integers will also be mapped to ⌜∞⌝
2020-12-03 01:07:55 +0100 <hekkaidekapus_> Is this about irredundant subsets?
2020-12-03 01:08:13 +0100hekkaidekapus_hekkaidekapus
2020-12-03 01:10:33 +0100 <ski> it's about (discrete) dynamical systems
2020-12-03 01:10:57 +0100elliott_(~elliott@pool-108-51-141-12.washdc.fios.verizon.net)
2020-12-03 01:12:13 +0100drincruz(~adriancru@ool-44c748be.dyn.optonline.net) (Ping timeout: 264 seconds)
2020-12-03 01:12:23 +0100xcmw(~textual@cpe-69-133-55-43.cinci.res.rr.com)
2020-12-03 01:12:31 +0100recon_-(~quassel@2602:febc:0:b6::6ca2) (Quit: No Ping reply in 180 seconds.)
2020-12-03 01:12:56 +0100 <ski> you have a type ⌜A⌝, and an endofunction ⌜α : A ⟶ A⌝. given a point in ⌜A⌝, to "advance time one step", you apply ⌜α⌝. for each point, you'll get an "orbit", if you repeat this
2020-12-03 01:12:59 +0100 <hekkaidekapus> Hmm, ok. I thought you were about to build up free sub-algebras and somehow land back to, from my guessing, what started it all (monoids, the Haskell way).
2020-12-03 01:13:04 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
2020-12-03 01:13:16 +0100solonarv(~solonarv@anancy-651-1-197-136.w109-217.abo.wanadoo.fr) (Ping timeout: 240 seconds)
2020-12-03 01:13:36 +0100 <ski> an orbit can eventually get stuck in a loop/cycle. or it might continue on to new points, eternally (in case the carrier ⌜A⌝ is infinite)
2020-12-03 01:14:02 +0100 <ski> a cycle, or an infinite strand, can have many "hairs" on it, that can branch back like trees
2020-12-03 01:14:08 +0100recon_-(~quassel@2602:febc:0:b6::6ca2)
2020-12-03 01:16:02 +0100 <ski> a subdynamical system of ⌜⟨A,α⟩⌝ is a subset ⌜S⌝ of ⌜A⌝, such that ⌜α⌝ is closed under ⌜S⌝ -- it's restriction to ⌜S⌝ has an image that fits inside ⌜S⌝ : ⌜α|S : S ⟶ S⌝
2020-12-03 01:17:12 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2020-12-03 01:17:15 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2020-12-03 01:17:46 +0100 <ski> now, if we have a point ⌜x⌝ of ⌜A⌝, we can ask whether it's included in the subobject ⌜S⌝. can ask ⌜x ∈ S⌝. the result of this question, the truth-value, is a point in the dynamical system of truth-values, ⌜Ω⌝ (the "subobject classifier")
2020-12-03 01:18:47 +0100LKoen(~LKoen@105.175.9.109.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
2020-12-03 01:20:56 +0100tromp_(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
2020-12-03 01:21:28 +0100 <ski> a map between dynamical systems, ⌜f : ⟨A,α⟩ ⟶ ⟨B,β⟩⌝ consists of a function between the carriers, ⌜f : A ⟶ B⌝, satisfuying the property that if we "advance time" (using ⌜α⌝) a step in ⌜A⌝, then use ⌜f⌝ to map to ⌜B⌝, then we get the same result as if we use ⌜f⌝ directly to map over to ⌜B⌝, and then "advance time" (using ⌜β⌝) over there : ⌜f ∘ α = β
2020-12-03 01:21:34 +0100 <ski> ∘ f⌝ (or, if you prefer, ⌜∀ x : A. f(α(x)) = β(f(x))⌝)
2020-12-03 01:22:43 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2020-12-03 01:22:53 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Remote host closed the connection)
2020-12-03 01:23:42 +0100Tops2(~Tobias@dyndsl-095-033-092-058.ewe-ip-backbone.de) (Read error: Connection reset by peer)
2020-12-03 01:23:45 +0100 <hekkaidekapus> The properties you are describing are better served with visual representations.
2020-12-03 01:23:47 +0100 <ski> (so ⌜f⌝ will map any "image of points, connected by \"advance time\"", inside ⌜A⌝, to a corresponding image, inside ⌜B⌝, still connected in the same way, although possibly "smushed" a bit (blurring things together, so we can't see as much detail))
2020-12-03 01:23:52 +0100 <ski> yes
2020-12-03 01:24:22 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds)
2020-12-03 01:24:32 +0100sagax(~sagax_nb@213.138.71.146) (Quit: Konversation terminated!)
2020-12-03 01:24:33 +0100 <hekkaidekapus> Are you into graphics? (specifically, the fractal kind)
2020-12-03 01:26:27 +0100 <ski> anyway, to describe "being an element of ⌜S⌝", we want to have a map ⌜χ_S : ⟨A,α⟩ ⟶ ⟨Ω,ω⟩⌝. it should map ⌜x⌝ to ⌜0⌝, just in case ⌜x⌝ was a member of ⌜S⌝
2020-12-03 01:26:28 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64) (Remote host closed the connection)
2020-12-03 01:27:15 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64)
2020-12-03 01:27:17 +0100 <ski> if ⌜x⌝ was not a member of ⌜S⌝, but ⌜α(x)⌝ is, then ⌜x⌝ should be mapped to ⌜1⌝. if not, but ⌜α(α(x))⌝ is, then ⌜x⌝ should be mapped to ⌜2⌝. and so on
2020-12-03 01:27:44 +0100 <ski> if no "descendant" of ⌜x⌝ is a member of ⌜S⌝, then ⌜x⌝ is mapped to ⌜∞⌝
2020-12-03 01:27:59 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-12-03 01:28:24 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-03 01:28:58 +0100 <ski> (once you get inside a sub-dynamical-system, like ⌜⟨S,α|S⟩⌝, you can never escape. because ⌜α|S : S ⟶ S⌝ never maps from inside to outside)
2020-12-03 01:29:56 +0100 <ski> hm, well. i find fractals interesting, sure
2020-12-03 01:29:57 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
2020-12-03 01:30:48 +0100joaoh82(~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net)
2020-12-03 01:31:19 +0100da39a3ee5e6b4b0d(~da39a3ee5@171.5.161.165)
2020-12-03 01:31:23 +0100 <hekkaidekapus> What if there are “multiple-descendants”? (multiple variables to the process)
2020-12-03 01:31:24 +0100borne(~fritjof@200116b864cc28008cdf581d4c1cc02f.dip.versatel-1u1.de) (Ping timeout: 240 seconds)
2020-12-03 01:33:01 +0100 <hekkaidekapus> Immediate descendants, if that makes sense (not in the setting you began with, in some other system).
2020-12-03 01:33:09 +0100mcfilib_(sid302703@gateway/web/irccloud.com/x-riwkfcukospcncdx) ()
2020-12-03 01:33:19 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds)
2020-12-03 01:33:29 +0100borne(~fritjof@200116b8640d8d008cdf581d4c1cc02f.dip.versatel-1u1.de)
2020-12-03 01:33:32 +0100mcfilib_(sid302703@gateway/web/irccloud.com/x-kgkbcflsogtbjjaz)
2020-12-03 01:33:37 +0100da39a3ee5e6b4b0d(~da39a3ee5@171.5.161.165) (Client Quit)
2020-12-03 01:33:43 +0100mcfilib_(sid302703@gateway/web/irccloud.com/x-kgkbcflsogtbjjaz) (Client Quit)
2020-12-03 01:34:09 +0100mcfilib(sid302703@gateway/web/irccloud.com/x-pupkwpbkjgigplfb)
2020-12-03 01:34:33 +0100blankhart(~blankhart@c-71-232-98-152.hsd1.ma.comcast.net)
2020-12-03 01:34:50 +0100 <ski> (another example is to take, not dynamical systems, but (directed, multi-)graphs. there's an obvious notion of "subgraph", that similarly gives rise to a "truth-value" graph. having two nodes (⌜⊥⌝,⌜⊤⌝, "false" and "true"), and five edges (⌜⊥ : ⊥ ⟶ ⊥⌝,⌜source : ⊤ ⟶ ⊥⌝,⌜target : ⊤ ⟶ ⊥⌝,⌜ends : ⊤ ⟶ ⊤⌝,⌜⊤ : ⊤ ⟶ ⊤⌝)
2020-12-03 01:34:58 +0100Iceland_jack(~user@31.124.48.169) (Ping timeout: 246 seconds)
2020-12-03 01:35:01 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 272 seconds)
2020-12-03 01:35:04 +0100xff0x(~fox@2001:1a81:5348:9f00:a33e:b10d:3d9:e994) (Ping timeout: 240 seconds)
2020-12-03 01:35:11 +0100 <ski> well, you can take two endofunctions, rather than one, e.g.
2020-12-03 01:35:17 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius) (Quit: leaving)
2020-12-03 01:35:33 +0100 <ski> so, at each turn, you can go either left or right
2020-12-03 01:35:50 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-12-03 01:36:16 +0100xff0x(~fox@2001:1a81:5348:9f00:9f14:5df2:6b84:6dea)
2020-12-03 01:36:28 +0100 <ski> (er .. sorry, should have been ⌜target : ⊥ ⟶ ⊤⌝ ..)
2020-12-03 01:36:46 +0100thc202(~thc202@unaffiliated/thc202) (Ping timeout: 244 seconds)
2020-12-03 01:37:19 +0100dnlkrgr(~dnlkrgr@HSI-KBW-046-005-005-080.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 265 seconds)
2020-12-03 01:37:43 +0100 <hekkaidekapus> Nice. Thank you for sharing, I’ll call it a night.
2020-12-03 01:38:38 +0100skinods
2020-12-03 01:38:39 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius)
2020-12-03 01:39:17 +0100da39a3ee5e6b4b0d(~da39a3ee5@mx-ll-171.5.161-165.dynamic.3bb.co.th)
2020-12-03 01:39:48 +0100 <ski> ("Conceptual Mathematics: A First Introduction to Categories" by F. William "Bill" Lawvere,Stephen H. Schanuel in 2009, does go into those examples, a bit)
2020-12-03 01:39:55 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
2020-12-03 01:39:56 +0100joaoh82(~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Ping timeout: 240 seconds)
2020-12-03 01:40:05 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 240 seconds)
2020-12-03 01:40:10 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 256 seconds)
2020-12-03 01:44:26 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 264 seconds)
2020-12-03 01:46:57 +0100 <koz_> :t mapMaybe
2020-12-03 01:46:58 +0100 <lambdabot> (a -> Maybe b) -> [a] -> [b]
2020-12-03 01:47:11 +0100 <koz_> @hoogle mapMaybe
2020-12-03 01:47:12 +0100 <lambdabot> Data.Maybe mapMaybe :: (a -> Maybe b) -> [a] -> [b]
2020-12-03 01:47:12 +0100 <lambdabot> Data.IntMap.Internal mapMaybe :: (a -> Maybe b) -> IntMap a -> IntMap b
2020-12-03 01:47:12 +0100 <lambdabot> Data.IntMap.Lazy mapMaybe :: (a -> Maybe b) -> IntMap a -> IntMap b
2020-12-03 01:48:20 +0100 <ski> @type (=<<) . (maybe mzero return .)
2020-12-03 01:48:22 +0100 <lambdabot> MonadPlus m => (a -> Maybe b) -> m a -> m b
2020-12-03 01:50:18 +0100 <MarcelineVQ> not quite as cool as mapPossibly
2020-12-03 01:51:48 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-03 01:53:45 +0100jmchael(~Chi1thang@87.112.60.168) (Ping timeout: 260 seconds)
2020-12-03 01:57:06 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-12-03 01:59:52 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
2020-12-03 02:00:13 +0100lambdaman(~lambdaman@d23-16-215-123.bchsia.telus.net) (Remote host closed the connection)
2020-12-03 02:01:37 +0100alp(~alp@2a01:e0a:58b:4920:dc54:a0f8:3325:44d9) (Ping timeout: 272 seconds)
2020-12-03 02:01:41 +0100blankhart(~blankhart@c-71-232-98-152.hsd1.ma.comcast.net) (Ping timeout: 260 seconds)
2020-12-03 02:04:50 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 264 seconds)
2020-12-03 02:05:00 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-03 02:05:45 +0100dhil(~dhil@195.213.192.34) (Ping timeout: 240 seconds)
2020-12-03 02:10:19 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2020-12-03 02:12:29 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2020-12-03 02:13:39 +0100joaj(~joaj@2001:818:e326:8200:5273:55b7:3a86:e6ca) (Ping timeout: 272 seconds)
2020-12-03 02:14:38 +0100joaj(~joaj@2001:818:e326:8200:9fc:6bde:c18a:1771)
2020-12-03 02:14:45 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 260 seconds)
2020-12-03 02:16:29 +0100conal(~conal@198.8.81.86) (Quit: Computer has gone to sleep.)
2020-12-03 02:16:34 +0100blankhart(~blankhart@c-71-232-98-152.hsd1.ma.comcast.net)
2020-12-03 02:20:09 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
2020-12-03 02:20:22 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving)
2020-12-03 02:20:36 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2020-12-03 02:20:38 +0100conal(~conal@198.8.81.86)
2020-12-03 02:21:19 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-03 02:22:44 +0100george2829838(450c2c3e@69.12.44.62)
2020-12-03 02:23:40 +0100johnw(~johnw@haskell/developer/johnw) (Quit: ZNC - http://znc.in)
2020-12-03 02:24:37 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 260 seconds)
2020-12-03 02:25:25 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2020-12-03 02:25:45 +0100cyphase(~cyphase@unaffiliated/cyphase) (Ping timeout: 240 seconds)
2020-12-03 02:26:12 +0100jMCg(~jMCg@195.140.213.38)
2020-12-03 02:26:18 +0100conal(~conal@198.8.81.86) (Quit: Computer has gone to sleep.)
2020-12-03 02:26:43 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
2020-12-03 02:28:46 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-03 02:30:07 +0100george2829838(450c2c3e@69.12.44.62) (Remote host closed the connection)
2020-12-03 02:31:11 +0100cyphase(~cyphase@unaffiliated/cyphase)
2020-12-03 02:32:03 +0100recon_-(~quassel@2602:febc:0:b6::6ca2) (Quit: quity)
2020-12-03 02:32:23 +0100recon_-(~quassel@208.87.96.9)
2020-12-03 02:40:09 +0100blankhart(~blankhart@c-71-232-98-152.hsd1.ma.comcast.net) (Ping timeout: 265 seconds)
2020-12-03 02:41:38 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 272 seconds)
2020-12-03 02:41:51 +0100Lord_of_Life(~Lord@46.217.221.243)
2020-12-03 02:51:41 +0100elliott_(~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Quit: WeeChat 2.9)
2020-12-03 02:52:17 +0100elliott_(~elliott@pool-108-51-141-12.washdc.fios.verizon.net)
2020-12-03 02:52:20 +0100elliott_(~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Client Quit)
2020-12-03 02:52:37 +0100NinjaTrappeur(~ninja@unaffiliated/ninjatrappeur) (Ping timeout: 260 seconds)
2020-12-03 02:52:48 +0100elliott_(~elliott@pool-108-51-141-12.washdc.fios.verizon.net)
2020-12-03 02:58:31 +0100cyphase(~cyphase@unaffiliated/cyphase) (Ping timeout: 265 seconds)
2020-12-03 02:59:34 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2020-12-03 03:01:48 +0100cyphase(~cyphase@unaffiliated/cyphase)
2020-12-03 03:02:56 +0100NinjaTrappeur(~ninja@unaffiliated/ninjatrappeur)
2020-12-03 03:03:10 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2020-12-03 03:03:10 +0100m0rphism(~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de) (Ping timeout: 272 seconds)
2020-12-03 03:03:16 +0100cads(~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 240 seconds)
2020-12-03 03:06:02 +0100miguel_clean(~Miguel@89-72-187-203.dynamic.chello.pl) (Quit: Leaving.)
2020-12-03 03:07:36 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 256 seconds)
2020-12-03 03:08:12 +0100guest123(~user@49.5.6.87)
2020-12-03 03:08:39 +0100fionnan(~fionnan@109.255.20.201)
2020-12-03 03:10:47 +0100inkbottle(~inkbottle@aaubervilliers-654-1-81-2.w86-212.abo.wanadoo.fr)
2020-12-03 03:12:05 +0100zebrag(~inkbottle@aaubervilliers-654-1-118-216.w86-198.abo.wanadoo.fr) (Ping timeout: 240 seconds)
2020-12-03 03:15:22 +0100Deide(~Deide@217.155.19.23) (Quit: Seeee yaaaa)
2020-12-03 03:15:29 +0100dcoutts_(~dcoutts@unaffiliated/dcoutts)
2020-12-03 03:17:23 +0100Jonkimi727406120(~Jonkimi@119.123.243.225)
2020-12-03 03:18:22 +0100dcoutts(~dcoutts@unaffiliated/dcoutts) (Ping timeout: 256 seconds)
2020-12-03 03:19:11 +0100hackageservant-swagger-ui 0.3.4.3.37.2 - Servant swagger ui https://hackage.haskell.org/package/servant-swagger-ui-0.3.4.3.37.2 (DavidJohnson)
2020-12-03 03:19:45 +0100halbGefressen(~halbGefre@2a02:810d:f40:2a9c:40b2:2308:84bd:8b9b) (Quit: halbGefressen)
2020-12-03 03:19:58 +0100m0rphism(~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de)
2020-12-03 03:20:36 +0100Khisanth(~Khisanth@56.sub-174-244-145.myvzw.com) (Ping timeout: 240 seconds)
2020-12-03 03:23:15 +0100jollygood2(~bc8165ab@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout))
2020-12-03 03:24:09 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2020-12-03 03:25:50 +0100xff0x(~fox@2001:1a81:5348:9f00:9f14:5df2:6b84:6dea) (Ping timeout: 264 seconds)
2020-12-03 03:26:41 +0100hackageservant-swagger-ui-core 0.3.4 - Servant swagger ui core components https://hackage.haskell.org/package/servant-swagger-ui-core-0.3.4 (DavidJohnson)
2020-12-03 03:26:49 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2020-12-03 03:27:31 +0100xff0x(~fox@2001:1a81:5384:5000:270f:7277:a2a:3b14)
2020-12-03 03:28:33 +0100 <iqubic> :t many
2020-12-03 03:28:35 +0100 <lambdabot> Alternative f => f a -> f [a]
2020-12-03 03:28:40 +0100 <iqubic> What does this even do?
2020-12-03 03:29:03 +0100 <Axman6> runs the f a until it fails and returns all results
2020-12-03 03:29:20 +0100 <Axman6> @src many
2020-12-03 03:29:21 +0100 <lambdabot> Source not found. Sorry.
2020-12-03 03:30:25 +0100 <iqubic> But how would the f a action have multiple results?
2020-12-03 03:30:43 +0100 <Axman6> f ~ Parser
2020-12-03 03:30:43 +0100shinobi_(~shinobi@c-24-147-48-162.hsd1.ma.comcast.net)
2020-12-03 03:31:13 +0100 <iqubic> huh? What do you mean?
2020-12-03 03:31:13 +0100 <Axman6> char :: Char -> Parser Char, many (char 'a') runnagainst "aaabbb" would return "aaa"
2020-12-03 03:31:20 +0100 <iqubic> Ah I see. That makes sense.
2020-12-03 03:31:40 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 272 seconds)
2020-12-03 03:32:03 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Remote host closed the connection)
2020-12-03 03:33:18 +0100 <iqubic> How does many work?
2020-12-03 03:33:45 +0100shinobi(~shinobi@c-24-147-48-162.hsd1.ma.comcast.net) (Ping timeout: 240 seconds)
2020-12-03 03:34:15 +0100Khisanth(~Khisanth@115.sub-174-197-143.myvzw.com)
2020-12-03 03:34:15 +0100 <Axman6> many f = ((:) <$> f a <*> many f) <|> pure []
2020-12-03 03:34:46 +0100 <Axman6> one of those recursive calls to many f will eventually return [] because the f failed
2020-12-03 03:35:00 +0100 <Axman6> uh, should be (:) <$> f <*> ...
2020-12-03 03:36:00 +0100 <iqubic> So it will run `f a` again and again and again until it fails?
2020-12-03 03:36:24 +0100 <iqubic> That's very powerful.
2020-12-03 03:36:51 +0100 <Axman6> it'll run f again (which has type f a, sorry)
2020-12-03 03:37:10 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-12-03 03:37:12 +0100 <Axman6> it is powerful, but can be prone to doing too much
2020-12-03 03:37:20 +0100 <Axman6> which is why things like manyTill exist
2020-12-03 03:37:24 +0100 <Axman6> :t manyTill
2020-12-03 03:37:26 +0100 <lambdabot> error: Variable not in scope: manyTill
2020-12-03 03:37:32 +0100 <Axman6> @hoogle manyTill
2020-12-03 03:37:32 +0100 <lambdabot> Text.ParserCombinators.ReadP manyTill :: ReadP a -> ReadP end -> ReadP [a]
2020-12-03 03:37:32 +0100 <lambdabot> Text.Parsec manyTill :: Stream s m t => ParsecT s u m a -> ParsecT s u m end -> ParsecT s u m [a]
2020-12-03 03:37:32 +0100 <lambdabot> Text.Parsec.Combinator manyTill :: Stream s m t => ParsecT s u m a -> ParsecT s u m end -> ParsecT s u m [a]
2020-12-03 03:37:45 +0100shatriff(~vitaliish@176.52.219.10)
2020-12-03 03:37:50 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-03 03:38:27 +0100 <iqubic> What does manyTill do again?
2020-12-03 03:38:49 +0100rcdilorenzo(~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Quit: rcdilorenzo)
2020-12-03 03:38:53 +0100 <Axman6> which is something like manyTill fa fend = (fend $> []) <|> ((:) <$> fa <*> manyTill fa fend), i.e., parse as many a's as you can until fend succeeds
2020-12-03 03:39:05 +0100rcdilorenzo(~rcdiloren@cpe-76-182-87-188.nc.res.rr.com)
2020-12-03 03:39:13 +0100 <iqubic> Ah.
2020-12-03 03:40:17 +0100 <iqubic> manyTill letterChar (char ",") "abcdefghi, 12345"
2020-12-03 03:40:26 +0100 <iqubic> Something like that might return just the letters.
2020-12-03 03:41:13 +0100 <Axman6> so parsing some numbers in the format [1,2,3,4] might look like: char '[' *> ((:) <$> int <*> manyTill (char ',' *> int) (char ']')
2020-12-03 03:41:51 +0100 <Axman6> uh, though that won't work for empty lists
2020-12-03 03:42:04 +0100 <iqubic> Right, except that parser combinators give us something better:
2020-12-03 03:42:07 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
2020-12-03 03:42:51 +0100 <iqubic> https://hackage.haskell.org/package/parser-combinators-1.2.1/docs/Control-Applicative-Combinators.…
2020-12-03 03:43:17 +0100 <iqubic> Actually, you'd just want sepBy.
2020-12-03 03:43:18 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-12-03 03:43:20 +0100rcdilorenzo(~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Client Quit)
2020-12-03 03:43:24 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2020-12-03 03:43:38 +0100rcdilorenzo(~rcdiloren@cpe-76-182-87-188.nc.res.rr.com)
2020-12-03 03:43:45 +0100 <iqubic> This is going to useful for remembering how Megaparsec works when doing Advent Of Code tonight.
2020-12-03 03:46:14 +0100joaj(~joaj@2001:818:e326:8200:9fc:6bde:c18a:1771) (Ping timeout: 264 seconds)
2020-12-03 03:46:27 +0100poi(6f63120c@KD111099018012.ppp-bb.dion.ne.jp)
2020-12-03 03:46:52 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 260 seconds)
2020-12-03 03:47:03 +0100 <Axman6> yeah I was going to say there's definitely preexisting combinators for exactly this sort of parsing, since these patternsd are so common
2020-12-03 03:49:17 +0100 <iqubic> Yeah.
2020-12-03 03:49:52 +0100 <iqubic> I just wrote this for myself: http://dpaste.com/3JUVJ2QXS
2020-12-03 03:50:02 +0100 <iqubic> I think that should do what I want.
2020-12-03 03:50:54 +0100Stanley00(~stanley00@unaffiliated/stanley00)
2020-12-03 03:53:36 +0100text70(48b61385@072-182-019-133.res.spectrum.com)
2020-12-03 03:53:38 +0100blankhart(~blankhart@c-71-232-98-152.hsd1.ma.comcast.net)
2020-12-03 03:53:59 +0100guest123(~user@49.5.6.87) (Read error: Connection reset by peer)
2020-12-03 03:54:37 +0100guest123(~user@49.5.6.87)
2020-12-03 03:54:38 +0100lassulus(~lassulus@NixOS/user/lassulus) (Ping timeout: 256 seconds)
2020-12-03 03:54:48 +0100 <koala_man> how can I get the path to a cabal built executable?
2020-12-03 03:55:56 +0100vg(~vg@139.59.59.230)
2020-12-03 03:55:56 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-12-03 03:56:17 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-12-03 03:56:39 +0100 <dibblego> you can use the --installdir flag to cabal install to know where it is, at least
2020-12-03 03:56:56 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds)
2020-12-03 03:57:11 +0100guest123(~user@49.5.6.87) (Remote host closed the connection)
2020-12-03 03:57:19 +0100guest123(~user@49.5.6.87)
2020-12-03 03:57:33 +0100vgTooDifficult
2020-12-03 03:58:37 +0100poi(6f63120c@KD111099018012.ppp-bb.dion.ne.jp) (Remote host closed the connection)
2020-12-03 04:00:38 +0100irc_user(uid423822@gateway/web/irccloud.com/x-fpptyyxiewbpsugc) (Quit: Connection closed for inactivity)
2020-12-03 04:01:16 +0100 <ezzieyguywuf> so, I'm using config-value (and I really like it!) but I could use some advice, or maybe just bounce some ideas, regarding my config file structure. here is an example of what I currently have, but I'm wondering if there is some better way to have the user provide a list of (match-strings, new-description) pairs. https://dpaste.com/6A6Z4K7LL
2020-12-03 04:02:10 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
2020-12-03 04:03:36 +0100blankhart(~blankhart@c-71-232-98-152.hsd1.ma.comcast.net) (Ping timeout: 240 seconds)
2020-12-03 04:05:41 +0100drbean(~drbean@TC210-63-209-27.static.apol.com.tw)
2020-12-03 04:06:38 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 264 seconds)
2020-12-03 04:08:46 +0100lassulus(~lassulus@NixOS/user/lassulus)
2020-12-03 04:08:51 +0100 <monochrom> koala_man: There are two defaults, depending on v1 commands vs v2 commands. $HOME/.cabal/bin and $HOME/.local/bin
2020-12-03 04:09:30 +0100 <glguy> ezzieyguywuf, I would say just don't use key-value pairs, instead use a list
2020-12-03 04:09:43 +0100 <monochrom> I highly recommend customizing $HOME/.cabal/config to set them to what works best for you.
2020-12-03 04:09:59 +0100urodna(~urodna@unaffiliated/urodna) (Quit: urodna)
2020-12-03 04:10:20 +0100 <glguy> ezzieyguywuf, like what I have in the example config file here: https://github.com/glguy/irc-core a list of servers
2020-12-03 04:11:27 +0100pjb(~t@2a01cb04063ec500c51bcad49f8457d6.ipv6.abo.wanadoo.fr) (Ping timeout: 272 seconds)
2020-12-03 04:12:56 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
2020-12-03 04:13:09 +0100 <ezzieyguywuf> glguy: now, is servers strictly a list, or can it contain a section that would apply to all servers listed?
2020-12-03 04:13:32 +0100 <ezzieyguywuf> similar to how in the example I posted, any of the matches get the same DebitAccount and CreditAccount
2020-12-03 04:13:49 +0100rcdilorenzo(~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Quit: rcdilorenzo)
2020-12-03 04:13:54 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-03 04:14:04 +0100rcdilorenzo(~rcdiloren@cpe-76-182-87-188.nc.res.rr.com)
2020-12-03 04:14:52 +0100lassulus(~lassulus@NixOS/user/lassulus) (Ping timeout: 256 seconds)
2020-12-03 04:17:47 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 260 seconds)
2020-12-03 04:18:20 +0100rcdilorenzo(~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Client Quit)
2020-12-03 04:18:37 +0100rcdilorenzo(~rcdiloren@cpe-76-182-87-188.nc.res.rr.com)
2020-12-03 04:18:59 +0100 <glguy> I have a separate "default" entry
2020-12-03 04:20:14 +0100 <texasmynsted> Before I go all crazy... This should be possible right? I want to use parseTimeM and parse a String that may be in one of a dozen formats.
2020-12-03 04:21:23 +0100 <ezzieyguywuf> glguy: hrm, yes I see, however in my case I would have the equivalent of "servers1", "servers2", "servers3" etc... each needing their own "default1", "default2", "default3", etc, in which case mimicking the approach in irc-core makes a bit less sense I think
2020-12-03 04:21:34 +0100 <ezzieyguywuf> texasmynsted: yes.
2020-12-03 04:22:08 +0100 <ezzieyguywuf> texasmynsted: though you'll have to, of course, write a format string for each of the dozens that you wish to match
2020-12-03 04:22:22 +0100 <texasmynsted> I have that part.
2020-12-03 04:22:53 +0100 <ezzieyguywuf> texasmynsted: i think there's one that returns a Maybe or something...h/o let me check the doc
2020-12-03 04:23:15 +0100 <texasmynsted> I am trying to think of the correct way to keep trying until I get a Just or run out of options
2020-12-03 04:23:33 +0100 <texasmynsted> parseTimeM returns a Maybe
2020-12-03 04:24:16 +0100 <texasmynsted> I have it working find for a known, single format. It either parses it correctly or leaves it alone.
2020-12-03 04:24:49 +0100RusAlex(~Chel@unaffiliated/rusalex) (Ping timeout: 260 seconds)
2020-12-03 04:24:56 +0100guest123(~user@49.5.6.87) (Ping timeout: 240 seconds)
2020-12-03 04:25:05 +0100m0rphism(~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de) (Ping timeout: 240 seconds)
2020-12-03 04:25:18 +0100 <texasmynsted> Now I want to it to parse it correctly or keep trying until it works, or runs out of formats and thus leaves the value alone
2020-12-03 04:25:19 +0100 <ezzieyguywuf> ah, yes well there you go.
2020-12-03 04:25:47 +0100 <ezzieyguywuf> so you could do an fmap over all your formatstrings, and then check if you get any Just's
2020-12-03 04:25:56 +0100RusAlex(~Chel@unaffiliated/rusalex)
2020-12-03 04:25:59 +0100 <ezzieyguywuf> or there may be a better way to do that, like "until" or something
2020-12-03 04:26:02 +0100 <texasmynsted> I guess I could just keep working recursively over a list formats
2020-12-03 04:27:43 +0100 <ezzieyguywuf> texasmynsted: if I were to take a stab at it, I guess I'd start with `fmap (flip (parseTimeM True defaulteTimeLocale) inputString) listOfFormats` and go from there
2020-12-03 04:28:09 +0100 <ezzieyguywuf> though again, there may be a more efficient way to do this, i.e. stop at the first match rather than checking each format
2020-12-03 04:28:26 +0100 <texasmynsted> okay
2020-12-03 04:28:37 +0100 <texasmynsted> I was thinking something like asum might be of use
2020-12-03 04:28:49 +0100rcdilorenzo(~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Quit: rcdilorenzo)
2020-12-03 04:29:03 +0100rcdilorenzo(~rcdiloren@cpe-76-182-87-188.nc.res.rr.com)
2020-12-03 04:29:18 +0100 <sm[m]> Me too
2020-12-03 04:30:33 +0100 <texasmynsted> :-)
2020-12-03 04:30:40 +0100 <texasmynsted> Okay this sounds worth a try then
2020-12-03 04:30:46 +0100 <texasmynsted> Thank you
2020-12-03 04:31:11 +0100hackageimplicit-hie-cradle 0.3.0.1 - Auto generate hie-bios cradles https://hackage.haskell.org/package/implicit-hie-cradle-0.3.0.1 (Avi_Dessauer)
2020-12-03 04:31:59 +0100 <ezzieyguywuf> texasmynsted: maybe something like this? https://dpaste.com/3KGZMHFPX
2020-12-03 04:32:47 +0100lassulus(~lassulus@NixOS/user/lassulus)
2020-12-03 04:33:00 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
2020-12-03 04:33:36 +0100rcdilorenzo(~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Client Quit)
2020-12-03 04:33:51 +0100rcdilorenzo(~rcdiloren@cpe-76-182-87-188.nc.res.rr.com)
2020-12-03 04:34:29 +0100lagothrixGuest79853
2020-12-03 04:34:29 +0100Guest79853(~lagothrix@unaffiliated/lagothrix) (Killed (verne.freenode.net (Nickname regained by services)))
2020-12-03 04:34:35 +0100lagothrix(~lagothrix@unaffiliated/lagothrix)
2020-12-03 04:35:45 +0100texasmyn_(~texasmyns@212.102.45.103)
2020-12-03 04:35:48 +0100 <texasmyn_> nice thank you.
2020-12-03 04:36:05 +0100theDon(~td@94.134.91.130) (Ping timeout: 240 seconds)
2020-12-03 04:36:31 +0100 <ezzieyguywuf> texasmyn_: 👍️
2020-12-03 04:36:37 +0100 <ezzieyguywuf> texasmyn_: good luck!
2020-12-03 04:37:50 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 264 seconds)
2020-12-03 04:38:06 +0100 <ezzieyguywuf> texasmyn_: I think fromMaybe can help you clean that up a hair
2020-12-03 04:38:20 +0100theDon(~td@muedsl-82-207-238-021.citykom.de)
2020-12-03 04:38:22 +0100lassulus(~lassulus@NixOS/user/lassulus) (Ping timeout: 246 seconds)
2020-12-03 04:38:50 +0100texasmynsted(~texasmyns@212.102.44.36) (Ping timeout: 256 seconds)
2020-12-03 04:42:24 +0100blankhart(~blankhart@c-71-232-98-152.hsd1.ma.comcast.net)
2020-12-03 04:44:46 +0100 <glguy> ezzieyguywuf, I don't understand your use-case yet, then
2020-12-03 04:45:00 +0100 <glguy> ezzieyguywuf, do you know how you'd write it if you didn't have to conform to my existing ideas?
2020-12-03 04:46:17 +0100 <iqubic> I wish I had a function foo that acts exactly like id if the input is a String, but runs Show on the input otherwise.
2020-12-03 04:46:38 +0100 <iqubic> Does something like that exist?
2020-12-03 04:47:06 +0100 <iqubic> Mainly I want to avoid having "\"foobarbaz\"" as the output of this function
2020-12-03 04:47:32 +0100 <iqubic> I'd probably have to write a typeclass, and then use flexible instances or something.
2020-12-03 04:48:28 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-12-03 04:50:56 +0100 <glguy> ezzieyguywuf, what about this? https://paste.tomsmeding.com/iuhpMcF1
2020-12-03 04:53:15 +0100adm_(~adm@117.208.17.143)
2020-12-03 04:54:46 +0100 <ezzieyguywuf> glguy: that's perfect!
2020-12-03 04:55:05 +0100 <ezzieyguywuf> I knew it was doable, I think I was just too deep in it to get there
2020-12-03 04:56:14 +0100lassulus(~lassulus@NixOS/user/lassulus)
2020-12-03 04:56:24 +0100 <glguy> I generally don't like user-defined keys in key-value maps
2020-12-03 04:56:30 +0100 <glguy> (for config)
2020-12-03 04:56:41 +0100Jonkimi727406120(~Jonkimi@119.123.243.225) (Ping timeout: 260 seconds)
2020-12-03 04:58:23 +0100 <ezzieyguywuf> glguy: i.e. the way I originally had it?
2020-12-03 04:58:33 +0100 <ezzieyguywuf> b/c yea, that was rubbing me the wrong way
2020-12-03 04:58:35 +0100 <glguy> yeah, and for the very reason you complained about
2020-12-03 04:58:41 +0100hackageimplicit-hie-cradle 0.3.0.2 - Auto generate hie-bios cradles https://hackage.haskell.org/package/implicit-hie-cradle-0.3.0.2 (Avi_Dessauer)
2020-12-03 04:59:00 +0100 <glguy> I don't want the section naming lexical syntax to impose contraints on semantically important configuration stuff
2020-12-03 04:59:15 +0100joaoh82(~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net)
2020-12-03 04:59:29 +0100trepanger(~z@ics141-225.icsincorporated.com) (Ping timeout: 260 seconds)
2020-12-03 04:59:34 +0100joaoh82(~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Read error: Connection reset by peer)
2020-12-03 04:59:50 +0100 <glguy> I know a lot of other languages like this just let you use arbitrary values as keys
2020-12-03 05:00:02 +0100haasn(~nand@mpv/developer/haasn) (Quit: ZNC 1.7.5+deb4 - https://znc.in)
2020-12-03 05:00:09 +0100joaoh82(~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net)
2020-12-03 05:01:22 +0100haasn(~nand@mpv/developer/haasn)
2020-12-03 05:01:50 +0100borne(~fritjof@200116b8640d8d008cdf581d4c1cc02f.dip.versatel-1u1.de) (Ping timeout: 264 seconds)
2020-12-03 05:02:28 +0100lassulus(~lassulus@NixOS/user/lassulus) (Ping timeout: 256 seconds)
2020-12-03 05:03:20 +0100adm_(~adm@117.208.17.143) (Remote host closed the connection)
2020-12-03 05:06:02 +0100rcdilorenzo(~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Quit: rcdilorenzo)
2020-12-03 05:06:03 +0100trepanger(~z@ics141-225.icsincorporated.com)
2020-12-03 05:06:24 +0100loller(uid358106@gateway/web/irccloud.com/x-rrjevhwdhvmhkvwa) (Quit: Connection closed for inactivity)
2020-12-03 05:07:20 +0100dftxbs3e(~dftxbs3e@unaffiliated/dftxbs3e)
2020-12-03 05:07:59 +0100Jonkimi727406120(~Jonkimi@119.123.243.225)
2020-12-03 05:10:53 +0100adm_(~adm@117.208.17.143)
2020-12-03 05:12:40 +0100Jonkimi727406120(~Jonkimi@119.123.243.225) (Ping timeout: 256 seconds)
2020-12-03 05:14:13 +0100 <texasmyn_> This is what I have so far... https://gist.github.com/mmynsted/e5ef944c65959fee414ce4a56bb8451c
2020-12-03 05:15:26 +0100 <texasmyn_> My initial test it has not found the format from those I provided, though it should. It is times like this I wish I knew a quick way to throw in some debug logging.
2020-12-03 05:20:32 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-03 05:21:46 +0100wei2912(~wei2912@unaffiliated/wei2912)
2020-12-03 05:23:14 +0100lassulus(~lassulus@NixOS/user/lassulus)
2020-12-03 05:23:31 +0100 <iqubic> Does ghcid work with cabal repl?
2020-12-03 05:24:33 +0100nineonine(~nineonine@50.216.62.2)
2020-12-03 05:25:22 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-12-03 05:25:46 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-03 05:25:52 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-12-03 05:27:47 +0100polyphem(~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Ping timeout: 260 seconds)
2020-12-03 05:28:21 +0100 <dsal> texasmyn_: Debug.Trace
2020-12-03 05:28:36 +0100drbean(~drbean@TC210-63-209-27.static.apol.com.tw) (Ping timeout: 240 seconds)
2020-12-03 05:29:04 +0100 <texasmyn_> dsal: Okay I will check that out.
2020-12-03 05:29:14 +0100 <texasmyn_> At least is works in my Tasty tests.
2020-12-03 05:29:28 +0100 <texasmyn_> I mean At least it works in my Tasty tests.
2020-12-03 05:29:30 +0100 <MarcelineVQ> iqubic: ghcid -c 'cabal repl'
2020-12-03 05:29:41 +0100 <iqubic> I've got it. Thanks.
2020-12-03 05:30:49 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds)
2020-12-03 05:32:13 +0100 <texasmyn_> ooh :-) Yes, looks like Debug.Trace is exactly what I am looking for
2020-12-03 05:32:17 +0100 <texasmyn_> Thank you dsal
2020-12-03 05:35:44 +0100benjamin-l(~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e60) (Ping timeout: 240 seconds)
2020-12-03 05:36:09 +0100text70(48b61385@072-182-019-133.res.spectrum.com) (Remote host closed the connection)
2020-12-03 05:36:14 +0100argent0(~argent0@168.227.96.53)
2020-12-03 05:36:17 +0100mbomba(~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca) (Quit: WeeChat 3.0)
2020-12-03 05:36:59 +0100TooDifficult(~vg@139.59.59.230) (Quit: TooDifficult)
2020-12-03 05:37:15 +0100erisco(~erisco@d24-57-249-233.home.cgocable.net) (Read error: Connection reset by peer)
2020-12-03 05:37:22 +0100TooDifficult(~TooDiffic@139.59.59.230)
2020-12-03 05:41:21 +0100 <monochrom> texasmyn_: My Debug.Trace tutorial: http://www.cs.utoronto.ca/~trebla/CSCC24-2020-Summer/tracing.html
2020-12-03 05:41:43 +0100Jonkimi727406120(~Jonkimi@119.123.243.225)
2020-12-03 05:41:43 +0100TooDifficult(~TooDiffic@139.59.59.230) (Ping timeout: 246 seconds)
2020-12-03 05:41:45 +0100 <monochrom> As it happens, my students were also asking how to print debugging messages.
2020-12-03 05:42:20 +0100 <monochrom> To their discredit, I already gave them the link on the course website long before they asked.
2020-12-03 05:42:41 +0100 <dibblego> never tell students about Debug.Trace
2020-12-03 05:43:27 +0100 <monochrom> Denied.
2020-12-03 05:43:43 +0100 <dibblego> let putStrLn = trace
2020-12-03 05:43:44 +0100 <monochrom> I have a student who was trying: case putStrLn "hi" of _ -> ...
2020-12-03 05:44:10 +0100 <dibblego> it's also to give you deniability for when they discover it themselves
2020-12-03 05:44:17 +0100adm_(~adm@117.208.17.143) ()
2020-12-03 05:44:26 +0100 <monochrom> Down that road is "how do I extract a from IO a" and discovering unsafePerformIO from googling
2020-12-03 05:44:33 +0100 <dibblego> fun ey?
2020-12-03 05:44:41 +0100 <monochrom> No, Debug.Trace is infinitely better in comparison.
2020-12-03 05:44:43 +0100 <dibblego> I cover that question in lecture 1
2020-12-03 05:45:00 +0100 <dibblego> if you ever ask yourself, "how do I get the a out (f a), the answer is bind, write this in your notes"
2020-12-03 05:45:56 +0100Jonkimi727406120(~Jonkimi@119.123.243.225) (Ping timeout: 240 seconds)
2020-12-03 05:46:16 +0100benjamin-l(~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e60)
2020-12-03 05:47:19 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 246 seconds)
2020-12-03 05:48:08 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-03 05:50:05 +0100ddellacosta(dd@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 256 seconds)
2020-12-03 05:50:36 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2020-12-03 05:51:00 +0100blankhart(~blankhart@c-71-232-98-152.hsd1.ma.comcast.net) (Ping timeout: 272 seconds)
2020-12-03 05:52:53 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2020-12-03 05:53:19 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-03 05:54:32 +0100Kaiepi(~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
2020-12-03 05:54:32 +0100Unicorn_Princess(~Unicorn_P@89-212-115-169.static.t-2.net) (Read error: Connection reset by peer)
2020-12-03 05:54:53 +0100Kaiepi(~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net)
2020-12-03 05:55:25 +0100Unicorn_Princess(~Unicorn_P@89-212-115-169.static.t-2.net)
2020-12-03 06:01:54 +0100andreas303(~andreas@gateway/tor-sasl/andreas303) (Remote host closed the connection)
2020-12-03 06:02:38 +0100 <ezzieyguywuf> glguy: I created some more vim stuf for config-value if you're interested, it builds on the syntax file you made but also adds (1) filetype detection, (2) proper handling of comments. https://gitlab.com/ezzieyguywuf/vim-config-value
2020-12-03 06:04:58 +0100andreas303(~andreas@gateway/tor-sasl/andreas303)
2020-12-03 06:09:23 +0100 <texasmyn_> wow hello dibblego
2020-12-03 06:09:29 +0100 <texasmyn_> I never see you here
2020-12-03 06:09:36 +0100texasmyn_texasmynsted
2020-12-03 06:09:44 +0100 <texasmynsted> How are things?
2020-12-03 06:09:47 +0100benjamin-l(~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e60) (Ping timeout: 260 seconds)
2020-12-03 06:09:57 +0100 <dibblego> hey mate, pretty good
2020-12-03 06:11:03 +0100 <texasmynsted> :-)
2020-12-03 06:11:35 +0100benjamin-l(~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e61)
2020-12-03 06:14:16 +0100Tario(~Tario@201.192.165.173) (Ping timeout: 246 seconds)
2020-12-03 06:16:34 +0100boxscape(54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55)
2020-12-03 06:21:15 +0100Jonkimi727406120(~Jonkimi@119.123.243.225)
2020-12-03 06:21:19 +0100petersen(~petersen@redhat/juhp)
2020-12-03 06:25:52 +0100Jonkimi727406120(~Jonkimi@119.123.243.225) (Ping timeout: 265 seconds)
2020-12-03 06:26:56 +0100 <texasmynsted> Any new training, or flying or anything?
2020-12-03 06:27:48 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2020-12-03 06:30:04 +0100 <dibblego> yes, I fly about 20 hours per week, doing written exams lately; did formation and RG endorsement recently
2020-12-03 06:30:07 +0100conal(~conal@64.71.133.70)
2020-12-03 06:32:25 +0100Iceland_jack(~user@31.124.48.169)
2020-12-03 06:32:35 +0100 <texasmynsted> oh nice
2020-12-03 06:32:45 +0100 <texasmynsted> 20 hours is a lot of flying
2020-12-03 06:33:23 +0100 <dibblego> from first to last civil twilight, each weekend
2020-12-03 06:33:57 +0100 <dibblego> also did a night rating, so sometimes then too
2020-12-03 06:34:42 +0100 <texasmynsted> :-)
2020-12-03 06:34:44 +0100 <texasmynsted> Wow fun
2020-12-03 06:34:55 +0100alx741(~alx741@186.178.110.121) (Ping timeout: 246 seconds)
2020-12-03 06:35:28 +0100 <dibblego> day flight is all flight instruction, I fly at night for fun occasionally
2020-12-03 06:36:08 +0100elliott_(~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
2020-12-03 06:36:36 +0100 <texasmynsted> I love the idea of flying but might panic a bit for the landing
2020-12-03 06:36:52 +0100 <dibblego> just close ya eyes and hope
2020-12-03 06:37:47 +0100 <texasmynsted> LOL
2020-12-03 06:38:13 +0100 <dibblego> that's what most of my students do anyway
2020-12-03 06:38:13 +0100 <texasmynsted> Catch you later.
2020-12-03 06:38:19 +0100 <dibblego> scratchya
2020-12-03 06:40:27 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-12-03 06:41:49 +0100conal(~conal@64.71.133.70)
2020-12-03 06:43:42 +0100Jonkimi727406120(~Jonkimi@119.123.243.225)
2020-12-03 06:43:47 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
2020-12-03 06:43:57 +0100cads(~cads@ip-64-72-99-232.lasvegas.net)
2020-12-03 06:48:00 +0100alx741(~alx741@186.178.110.235)
2020-12-03 06:48:04 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 240 seconds)
2020-12-03 06:49:22 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-03 06:50:33 +0100da39a3ee5e6b4b0d(~da39a3ee5@mx-ll-171.5.161-165.dynamic.3bb.co.th) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-03 06:52:38 +0100 <glguy> ezzieyguywuf: pull requests encouraged :)
2020-12-03 06:53:12 +0100zaquest(~notzaques@5.128.210.178) (Quit: Leaving)
2020-12-03 06:54:16 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2020-12-03 06:55:03 +0100pthariensflame(~pthariens@2600:6c52:7280:100:3526:4e41:9f18:1bc7)
2020-12-03 06:55:16 +0100pthariensflame(~pthariens@2600:6c52:7280:100:3526:4e41:9f18:1bc7) (Client Quit)
2020-12-03 06:55:26 +0100jMCg(~jMCg@195.140.213.38) (Remote host closed the connection)
2020-12-03 06:57:21 +0100zaquest(~notzaques@5.128.210.178)
2020-12-03 06:57:24 +0100zaquest(~notzaques@5.128.210.178) (Remote host closed the connection)
2020-12-03 06:57:45 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection)
2020-12-03 06:57:53 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-03 06:58:22 +0100MrSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
2020-12-03 06:59:09 +0100MrSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt)
2020-12-03 06:59:46 +0100Techcable(znc@irc.techcable.net) (Ping timeout: 256 seconds)
2020-12-03 07:01:38 +0100nullheroes(~danielvu@168.235.66.22) (Ping timeout: 256 seconds)
2020-12-03 07:03:13 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2020-12-03 07:03:25 +0100dmiles(~dmiles@c-73-67-179-188.hsd1.wa.comcast.net) (Ping timeout: 240 seconds)
2020-12-03 07:03:31 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2020-12-03 07:04:01 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
2020-12-03 07:04:45 +0100texasmynsted(~texasmyns@212.102.45.103) (Ping timeout: 240 seconds)
2020-12-03 07:05:54 +0100alp(~alp@2a01:e0a:58b:4920:2c52:ef0a:5cc:82b2)
2020-12-03 07:08:26 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 264 seconds)
2020-12-03 07:09:49 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz)
2020-12-03 07:10:26 +0100nullheroes(~danielvu@168.235.66.22)
2020-12-03 07:11:02 +0100vicfred_(~vicfred@unaffiliated/vicfred)
2020-12-03 07:11:23 +0100Techcable(znc@irc.techcable.net)
2020-12-03 07:12:41 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-12-03 07:13:59 +0100vicfred(~vicfred@unaffiliated/vicfred) (Ping timeout: 260 seconds)
2020-12-03 07:14:29 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
2020-12-03 07:15:56 +0100nullheroes(~danielvu@168.235.66.22) (Ping timeout: 240 seconds)
2020-12-03 07:16:08 +0100Techcable(znc@irc.techcable.net) (Ping timeout: 256 seconds)
2020-12-03 07:16:17 +0100mounty(~mounty@2001:8000:2f59:0:348e:496f:dd83:259f) (Ping timeout: 260 seconds)
2020-12-03 07:18:43 +0100vicfred_(~vicfred@unaffiliated/vicfred) (Quit: Leaving)
2020-12-03 07:19:13 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 260 seconds)
2020-12-03 07:21:06 +0100alp(~alp@2a01:e0a:58b:4920:2c52:ef0a:5cc:82b2) (Remote host closed the connection)
2020-12-03 07:21:25 +0100alp(~alp@2a01:e0a:58b:4920:8402:ce99:23ef:5435)
2020-12-03 07:24:38 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
2020-12-03 07:25:18 +0100Techcable(znc@irc.techcable.net)
2020-12-03 07:25:48 +0100z0k(~user@101.50.127.33) (Ping timeout: 265 seconds)
2020-12-03 07:26:07 +0100echoreply(~echoreply@unaffiliated/echoreply) (Quit: WeeChat 1.9.1)
2020-12-03 07:26:09 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-03 07:26:26 +0100xff0x(~fox@2001:1a81:5384:5000:270f:7277:a2a:3b14) (Ping timeout: 264 seconds)
2020-12-03 07:26:35 +0100echoreply(~echoreply@unaffiliated/echoreply)
2020-12-03 07:27:02 +0100xff0x(~fox@port-92-193-204-144.dynamic.as20676.net)
2020-12-03 07:27:40 +0100z0k(~user@101.50.127.33)
2020-12-03 07:29:08 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 244 seconds)
2020-12-03 07:29:26 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 264 seconds)
2020-12-03 07:29:49 +0100nullheroes(~danielvu@168.235.66.22)
2020-12-03 07:30:42 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds)
2020-12-03 07:31:19 +0100lambdaman(~lambdaman@d23-16-215-123.bchsia.telus.net)
2020-12-03 07:31:34 +0100mbomba(~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca)
2020-12-03 07:31:47 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2020-12-03 07:32:11 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2020-12-03 07:34:49 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
2020-12-03 07:35:25 +0100lambdaman(~lambdaman@d23-16-215-123.bchsia.telus.net) (Ping timeout: 240 seconds)
2020-12-03 07:36:10 +0100alp(~alp@2a01:e0a:58b:4920:8402:ce99:23ef:5435) (Remote host closed the connection)
2020-12-03 07:36:23 +0100noecho(~noecho@static.143.42.203.116.clients.your-server.de) (Quit: ZNC - http://znc.in)
2020-12-03 07:36:31 +0100alp(~alp@2a01:e0a:58b:4920:c0f7:91e2:75ec:62f6)
2020-12-03 07:36:53 +0100noecho(~noecho@2a01:4f8:1c0c:80ee::4223)
2020-12-03 07:37:03 +0100macrover(~macrover@ip68-108-126-211.lv.lv.cox.net)
2020-12-03 07:37:53 +0100coot(~coot@37.30.53.191.nat.umts.dynamic.t-mobile.pl)
2020-12-03 07:38:26 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-03 07:39:01 +0100hexfive(~hexfive@50-47-142-195.evrt.wa.frontiernet.net) (Quit: i must go. my people need me.)
2020-12-03 07:39:37 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 260 seconds)
2020-12-03 07:39:53 +0100gioyik_(~gioyik@186.112.99.244)
2020-12-03 07:42:12 +0100gioyik(~gioyik@186.118.250.147) (Ping timeout: 256 seconds)
2020-12-03 07:43:45 +0100keviv_(~keviv@35.142.17.117)
2020-12-03 07:47:08 +0100feb(~feb@178.162.212.214)
2020-12-03 07:48:34 +0100johnw(~johnw@haskell/developer/johnw)
2020-12-03 07:48:54 +0100sagax(~sagax_nb@213.138.71.146)
2020-12-03 07:49:57 +0100alp(~alp@2a01:e0a:58b:4920:c0f7:91e2:75ec:62f6) (Ping timeout: 272 seconds)
2020-12-03 07:50:28 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-03 07:50:29 +0100kupi(uid212005@gateway/web/irccloud.com/x-uzfuhbaegjptzqnv) (Quit: Connection closed for inactivity)
2020-12-03 07:52:52 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser)
2020-12-03 07:54:58 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2020-12-03 07:56:31 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-12-03 08:01:08 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 256 seconds)
2020-12-03 08:02:30 +0100jasperr(~gazso@91-82-250-42.pool.digikabel.hu)
2020-12-03 08:04:06 +0100 <jasperr> hello everybody
2020-12-03 08:04:25 +0100nineonine(~nineonine@50.216.62.2) (Ping timeout: 240 seconds)
2020-12-03 08:05:05 +0100 <jasperr> maybe I am missing something very trivial... I would like to use XsdToHaskell and DtdToHaskell on debian buster distribution
2020-12-03 08:05:57 +0100lambdaman(~lambdaman@d23-16-215-123.bchsia.telus.net)
2020-12-03 08:07:12 +0100boxscape(54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55) (Quit: Connection closed)
2020-12-03 08:07:20 +0100 <jasperr> as far as I see I have all the related ghc-* packages installed from the debian apt repositories, however I cannot find a way to get these utilities... including the -dev packages as well
2020-12-03 08:08:38 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-djudanwmexelqxja) (Quit: Connection closed for inactivity)
2020-12-03 08:10:14 +0100DataComputist(~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Quit: Leaving...)
2020-12-03 08:11:54 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2020-12-03 08:12:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-12-03 08:13:54 +0100DataComputist(~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net)
2020-12-03 08:14:08 +0100joaoh82(~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Ping timeout: 272 seconds)
2020-12-03 08:16:58 +0100knupfer(~Thunderbi@i5E86B442.versanet.de)
2020-12-03 08:18:49 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-azvgqwppafppryvm) (Quit: Connection closed for inactivity)
2020-12-03 08:19:43 +0100ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex) (Ping timeout: 240 seconds)
2020-12-03 08:20:48 +0100echoreply(~echoreply@unaffiliated/echoreply) (Ping timeout: 256 seconds)
2020-12-03 08:21:43 +0100gioyik_(~gioyik@186.112.99.244) (Quit: WeeChat 3.0)
2020-12-03 08:23:35 +0100 <jasperr> digging a bit I found /usr/bin/DtdToHaskell coming from debian package haxml, XsdToHaskell is simply not provided, I do not understand why
2020-12-03 08:24:11 +0100argent0(~argent0@168.227.96.53) (Remote host closed the connection)
2020-12-03 08:27:56 +0100knupfer(~Thunderbi@i5E86B442.versanet.de) (Ping timeout: 240 seconds)
2020-12-03 08:30:26 +0100alp(~alp@2a01:e0a:58b:4920:bd96:e74f:fabb:2840)
2020-12-03 08:31:41 +0100 <glguy> jasperr: in that case you might just have to build it outside of the package system
2020-12-03 08:32:16 +0100stree(~stree@50-108-78-9.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception)
2020-12-03 08:32:34 +0100stree(~stree@50-108-78-9.adr01.mskg.mi.frontiernet.net)
2020-12-03 08:35:24 +0100bitmagie(~Thunderbi@200116b80644c800d0172d212adf5a3c.dip.versatel-1u1.de)
2020-12-03 08:36:26 +0100 <jasperr> I see... I do not like this idea that much
2020-12-03 08:38:12 +0100dnlkrgr(~dnlkrgr@HSI-KBW-046-005-005-080.hsi8.kabel-badenwuerttemberg.de)
2020-12-03 08:38:28 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 246 seconds)
2020-12-03 08:40:54 +0100joaoh82(~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net)
2020-12-03 08:41:05 +0100monochrom(trebla@216.138.220.146) (Ping timeout: 240 seconds)
2020-12-03 08:41:17 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-03 08:41:20 +0100dhouthoo(~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be)
2020-12-03 08:41:22 +0100jlamothe(~jlamothe@198.251.55.207) (Ping timeout: 256 seconds)
2020-12-03 08:41:27 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2020-12-03 08:42:06 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Client Quit)
2020-12-03 08:43:30 +0100bitmagie(~Thunderbi@200116b80644c800d0172d212adf5a3c.dip.versatel-1u1.de) (Quit: bitmagie)
2020-12-03 08:44:55 +0100L29Ah(~L29Ah@unaffiliated/l29ah)
2020-12-03 08:46:44 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-12-03 08:46:45 +0100tessier(~treed@kernel-panic/copilotco) (Ping timeout: 240 seconds)
2020-12-03 08:47:14 +0100Unicorn_Princess(~Unicorn_P@89-212-115-169.static.t-2.net) (Quit: Leaving)
2020-12-03 08:48:03 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-03 08:48:14 +0100jlamothe(~jlamothe@198.251.55.207)
2020-12-03 08:48:39 +0100zaquest(~notzaques@5.128.210.178)
2020-12-03 08:48:41 +0100hackagenothunks 0.1.2 - Examine values for unexpected thunks https://hackage.haskell.org/package/nothunks-0.1.2 (EdskoDeVries)
2020-12-03 08:48:42 +0100zaquest(~notzaques@5.128.210.178) (Read error: Connection reset by peer)
2020-12-03 08:49:59 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2020-12-03 08:52:23 +0100Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2020-12-03 08:56:06 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-12-03 08:57:16 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2020-12-03 08:57:28 +0100 <jasperr> maybe the best is then to contact the Debian Haskell Group
2020-12-03 08:57:50 +0100chele(~chele@ip5b416ea2.dynamic.kabel-deutschland.de)
2020-12-03 08:59:39 +0100ph88(~ph88@2a02:8109:9e00:7e5c:b9be:939f:4d9:5357)
2020-12-03 09:02:24 +0100lassulus(~lassulus@NixOS/user/lassulus) (Quit: WeeChat 2.7.1)
2020-12-03 09:02:59 +0100 <Orbstheorem> Hello, I'm trying to write an inductive type instance over Nat but I can't manage to convince GHC that by base-case and inductive step are disjoint: https://paste.gnugen.ch/raw/fsvt
2020-12-03 09:05:03 +0100raichoo(~raichoo@dslb-188-101-186-206.188.101.pools.vodafone-ip.de)
2020-12-03 09:05:16 +0100 <Orbstheorem> I'm not even sure, this is an inductive type instance, so I may aswell describe what I want: Given a type-level "depth" and a tree, I want to make another tree that is complete and has nodes of type `Maybe a` and contain the information of the original tree if such tree contained that node.
2020-12-03 09:05:25 +0100 <Orbstheorem> s/sure,/sure
2020-12-03 09:06:10 +0100echoreply(~echoreply@unaffiliated/echoreply)
2020-12-03 09:06:20 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 265 seconds)
2020-12-03 09:07:21 +0100bitmagie(~Thunderbi@200116b80644c800d0172d212adf5a3c.dip.versatel-1u1.de)
2020-12-03 09:09:31 +0100da39a3ee5e6b4b0d(~da39a3ee5@ppp-223-24-170-139.revip6.asianet.co.th)
2020-12-03 09:10:18 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2020-12-03 09:10:21 +0100ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex)
2020-12-03 09:11:00 +0100is_null(~jpic@pdpc/supporter/professional/is-null) (Remote host closed the connection)
2020-12-03 09:12:43 +0100Varis(~Tadas@unaffiliated/varis)
2020-12-03 09:13:07 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
2020-12-03 09:13:53 +0100jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se)
2020-12-03 09:17:31 +0100Lycurgus(~niemand@cpe-45-46-137-210.buffalo.res.rr.com)
2020-12-03 09:17:41 +0100xcmw(~textual@cpe-69-133-55-43.cinci.res.rr.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-03 09:17:43 +0100lambdaman(~lambdaman@d23-16-215-123.bchsia.telus.net) (Quit: Leaving...)
2020-12-03 09:18:06 +0100graf_blutwurst(~user@2001:171b:226e:adc0:416e:f9ed:b426:e09e)
2020-12-03 09:19:15 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2020-12-03 09:20:58 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Client Quit)
2020-12-03 09:22:13 +0100nados(~dan@69-165-210-185.cable.teksavvy.com) (Quit: Leaving)
2020-12-03 09:22:17 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-03 09:23:53 +0100benjamin-l(~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e61) (Ping timeout: 246 seconds)
2020-12-03 09:26:05 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-12-03 09:28:22 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-12-03 09:29:24 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-12-03 09:30:59 +0100sleblanc(~sleblanc@unaffiliated/sebleblanc)
2020-12-03 09:31:00 +0100oxide(~lambda@unaffiliated/mclaren)
2020-12-03 09:31:46 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-12-03 09:31:54 +0100 <sleblanc> > let p = isDigit &&& isAlpha
2020-12-03 09:31:56 +0100 <lambdabot> <no location info>: error:
2020-12-03 09:31:56 +0100 <lambdabot> not an expression: ‘let p = isDigit &&& isAlpha’
2020-12-03 09:32:29 +0100 <sleblanc> > (isAlpha &&& isDigit) 'a'
2020-12-03 09:32:32 +0100 <lambdabot> (True,False)
2020-12-03 09:32:39 +0100 <sleblanc> > (isAlpha &&& isDigit) '9'
2020-12-03 09:32:42 +0100 <lambdabot> (False,True)
2020-12-03 09:32:59 +0100RoguePointer(~jigen@unaffiliated/roguepointer) (Quit: <>)
2020-12-03 09:33:07 +0100 <sleblanc> > or $ (isAlpha && isDigit) '9'
2020-12-03 09:33:10 +0100 <lambdabot> error:
2020-12-03 09:33:10 +0100 <lambdabot> • Couldn't match expected type ‘Char -> t0 Bool’
2020-12-03 09:33:10 +0100 <lambdabot> with actual type ‘Bool’
2020-12-03 09:33:17 +0100RoguePointer(~jigen@94.177.235.178)
2020-12-03 09:33:17 +0100RoguePointer(~jigen@94.177.235.178) (Changing host)
2020-12-03 09:33:17 +0100RoguePointer(~jigen@unaffiliated/roguepointer)
2020-12-03 09:33:17 +0100 <sleblanc> > or $ (isAlpha &&& isDigit) '9'
2020-12-03 09:33:20 +0100 <lambdabot> True
2020-12-03 09:33:30 +0100 <sleblanc> > or $ (isAlpha &&& isDigit) 'a'
2020-12-03 09:33:32 +0100 <lambdabot> False
2020-12-03 09:33:37 +0100 <sleblanc> why?
2020-12-03 09:33:49 +0100 <sleblanc> > or (True, False)
2020-12-03 09:33:52 +0100 <lambdabot> False
2020-12-03 09:34:23 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds)
2020-12-03 09:35:11 +0100hackageclickhouse-haskell 0.1.1.0 - A Haskell library as database client for Clickhouse https://hackage.haskell.org/package/clickhouse-haskell-0.1.1.0 (MaboroshiChan)
2020-12-03 09:35:49 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
2020-12-03 09:36:04 +0100 <idnar> :t or
2020-12-03 09:36:06 +0100 <lambdabot> Foldable t => t Bool -> Bool
2020-12-03 09:36:15 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2020-12-03 09:36:19 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2)
2020-12-03 09:36:44 +0100bahamas(~lucian@unaffiliated/bahamas)
2020-12-03 09:37:09 +0100 <idnar> sleblanc: the Foldable instance on tuples doesn't do what you want:
2020-12-03 09:37:34 +0100 <sleblanc> yeah. what is the meaning behind this behaviour?
2020-12-03 09:37:40 +0100 <idnar> > toList (1, 2)
2020-12-03 09:37:42 +0100 <lambdabot> error:
2020-12-03 09:37:43 +0100 <lambdabot> Ambiguous occurrence ‘toList’
2020-12-03 09:37:43 +0100 <lambdabot> It could refer to
2020-12-03 09:37:47 +0100 <sleblanc> what use is there for that?
2020-12-03 09:38:38 +0100 <sleblanc> > Data.Foldable.toList (1,2)
2020-12-03 09:38:40 +0100 <lambdabot> [2]
2020-12-03 09:39:22 +0100 <Sose> I'm not sure but I think conceptually a 2-tuple in Haskell is not "a thing with 2 elements" but rather "a thing with 1 element and some context (the first element)"
2020-12-03 09:39:37 +0100 <Sose> it's a little weird imho
2020-12-03 09:40:11 +0100 <idnar> well, Foldable (,) is a kind error, so it has to be Foldable ((,) a)
2020-12-03 09:40:11 +0100 <Sose> atleast when it comes to some instances like Functor and Foldable
2020-12-03 09:40:14 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 264 seconds)
2020-12-03 09:40:22 +0100 <sleblanc> it would also give an excuse for not having Foldable (,,) et al.
2020-12-03 09:40:42 +0100 <sleblanc> idnar, right…
2020-12-03 09:41:26 +0100miguel_clean(~Miguel@89-72-187-203.dynamic.chello.pl)
2020-12-03 09:41:41 +0100 <sleblanc> are there any concrete uses of the foldable instance for ((,) a) ?
2020-12-03 09:42:00 +0100 <idnar> https://mail.haskell.org/pipermail/haskell-cafe/2020-November/132978.html
2020-12-03 09:42:27 +0100da39a3ee5e6b4b0d(~da39a3ee5@ppp-223-24-170-139.revip6.asianet.co.th) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-03 09:42:42 +0100 <idnar> this is frequently debated
2020-12-03 09:43:13 +0100joaoh82(~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Ping timeout: 246 seconds)
2020-12-03 09:43:28 +0100 <jle`> i think there are nice usages of Traversable ((,) w)
2020-12-03 09:43:30 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Quit: nineonine)
2020-12-03 09:43:38 +0100 <idnar> one use is assoc-listish things
2020-12-03 09:43:40 +0100 <jle`> but that would require Foldable as a superclass
2020-12-03 09:43:44 +0100 <jle`> so idk
2020-12-03 09:43:58 +0100 <jle`> i'm not happy with the Foldable instance existing either, it has caused me a lot of headache in the past
2020-12-03 09:44:08 +0100 <jle`> it sort of directly compromises the ideals of type safety in haskell
2020-12-03 09:44:50 +0100 <idnar> > sum [("foo", 1), ("bar", 2)]
2020-12-03 09:44:52 +0100 <lambdabot> error:
2020-12-03 09:44:52 +0100 <lambdabot> • No instance for (Num ([Char], Integer))
2020-12-03 09:44:52 +0100 <lambdabot> arising from a use of ‘e_112’
2020-12-03 09:45:00 +0100 <idnar> ugh
2020-12-03 09:45:05 +0100 <sleblanc> owch
2020-12-03 09:45:20 +0100lassulus(~lassulus@NixOS/user/lassulus)
2020-12-03 09:45:33 +0100 <idnar> > foldr (+) 0 [("foo", 1), ("bar", 2)]
2020-12-03 09:45:35 +0100 <lambdabot> error:
2020-12-03 09:45:35 +0100 <lambdabot> • No instance for (Num ([Char], Integer))
2020-12-03 09:45:35 +0100 <lambdabot> arising from a use of ‘e_1012’
2020-12-03 09:46:04 +0100 <idnar> > foldMap Sum [("foo", 1), ("bar", 2)]
2020-12-03 09:46:06 +0100 <lambdabot> error:
2020-12-03 09:46:06 +0100 <lambdabot> • No instance for (Num ([Char], Integer))
2020-12-03 09:46:06 +0100 <lambdabot> arising from a use of ‘e_112’
2020-12-03 09:46:14 +0100shatriff(~vitaliish@176.52.219.10) (Read error: Connection reset by peer)
2020-12-03 09:46:33 +0100 <idnar> oh I'm dumb
2020-12-03 09:46:34 +0100 <sleblanc> something something expecting different results
2020-12-03 09:46:41 +0100shatriff(~vitaliish@176.52.219.10)
2020-12-03 09:47:02 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-12-03 09:47:20 +0100kuribas(~user@ptr-25vy0i8gptzu7g9n288.18120a2.ip6.access.telenet.be)
2020-12-03 09:47:33 +0100 <idnar> > foldMap (foldMap Sum) [("foo", 1), ("bar", 2)]
2020-12-03 09:47:35 +0100 <lambdabot> Sum {getSum = 3}
2020-12-03 09:47:48 +0100 <idnar> a bit silly
2020-12-03 09:48:54 +0100Amras(~Amras@unaffiliated/amras)
2020-12-03 09:50:50 +0100 <sleblanc> sum $ map snd [("foo", 1), ("bar", 2)]
2020-12-03 09:50:52 +0100 <sleblanc> > sum $ map snd [("foo", 1), ("bar", 2)]
2020-12-03 09:50:54 +0100 <lambdabot> 3
2020-12-03 09:51:30 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-03 09:53:15 +0100Amras(~Amras@unaffiliated/amras) (Remote host closed the connection)
2020-12-03 09:54:05 +0100borne(~fritjof@200116b864c920008cdf581d4c1cc02f.dip.versatel-1u1.de)
2020-12-03 09:54:40 +0100 <Orbstheorem> > fmap (bimap sum sum) [("foo", 1), ("bar", 2)]
2020-12-03 09:54:43 +0100 <lambdabot> error:
2020-12-03 09:54:43 +0100 <lambdabot> • Could not deduce (Num Char) arising from a use of ‘sum’
2020-12-03 09:54:43 +0100 <lambdabot> from the context: (Foldable t, Num d, Num (t d))
2020-12-03 09:56:19 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
2020-12-03 09:56:29 +0100Amras(~Amras@unaffiliated/amras)
2020-12-03 09:56:36 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
2020-12-03 09:56:46 +0100phasespace(~sar@89-162-33-21.fiber.signal.no)
2020-12-03 09:56:49 +0100joaoh82(~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net)
2020-12-03 09:57:12 +0100SupaYoshi(~supayoshi@213-10-140-13.fixed.kpn.net) (Read error: Connection reset by peer)
2020-12-03 09:57:42 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch)
2020-12-03 09:58:19 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:9156:658b:3008:cf:28b1)
2020-12-03 09:59:16 +0100cfricke(~cfricke@unaffiliated/cfricke)
2020-12-03 09:59:35 +0100SupaYoshi(~supayoshi@213-10-140-13.fixed.kpn.net)
2020-12-03 09:59:38 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 260 seconds)
2020-12-03 10:00:06 +0100loprakoa[m](loprakoama@gateway/shell/matrix.org/x-zoiumweqktphvybc) (Quit: Idle for 30+ days)
2020-12-03 10:00:06 +0100dyniec[m](dyniecmatr@gateway/shell/matrix.org/x-bzyahcrtvmhlgeby) (Quit: Idle for 30+ days)
2020-12-03 10:00:45 +0100Lycurgus(~niemand@cpe-45-46-137-210.buffalo.res.rr.com) (Quit: Exeunt)
2020-12-03 10:01:14 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 264 seconds)
2020-12-03 10:02:01 +0100mbomba(~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca) (Quit: WeeChat 3.0)
2020-12-03 10:03:10 +0100dnlkrgr(~dnlkrgr@HSI-KBW-046-005-005-080.hsi8.kabel-badenwuerttemberg.de) (Quit: WeeChat 2.9)
2020-12-03 10:06:31 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
2020-12-03 10:06:53 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
2020-12-03 10:07:17 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2020-12-03 10:11:17 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 260 seconds)
2020-12-03 10:12:49 +0100berberman_(~berberman@unaffiliated/berberman)
2020-12-03 10:13:18 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch)
2020-12-03 10:13:38 +0100berberman(~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds)
2020-12-03 10:15:27 +0100danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
2020-12-03 10:16:07 +0100boxscape(54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55)
2020-12-03 10:17:11 +0100hackagemail-pool 2.2.1 - Preconfigured email connection pool on top of smtp. https://hackage.haskell.org/package/mail-pool-2.2.1 (Jappie)
2020-12-03 10:19:08 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2020-12-03 10:23:39 +0100fendor(~fendor@178.115.131.244.wireless.dyn.drei.com)
2020-12-03 10:25:34 +0100Digit(~user@fsf/member/digit)
2020-12-03 10:26:02 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-12-03 10:26:51 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
2020-12-03 10:28:21 +0100 <Digit> hi. i'm wondering if there's an established/illustrated/expressed relationship between feynman diagrams, and monads, either directly or indirectly (like a shared simplification or augment of understanding or processing or something). or has my brain just started barking up the wrong tree?
2020-12-03 10:29:22 +0100 <[exa]> Digit: CT has commutative diagrams
2020-12-03 10:29:26 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-12-03 10:29:56 +0100danso(~dan@69-165-210-185.cable.teksavvy.com) (Quit: WeeChat 2.9)
2020-12-03 10:30:08 +0100 <Digit> category theory. *nods*
2020-12-03 10:30:25 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-lkwbhxlzvzytbqoi) (Quit: Connection closed for inactivity)
2020-12-03 10:30:31 +0100 <boxscape> monads can also be expressed in string diagrams which look kind of similar to FDs https://ncatlab.org/nlab/show/string+diagram but not sure there's an actual connection there
2020-12-03 10:31:16 +0100 <boxscape> (the string diagrams for monads are on this page https://ncatlab.org/nlab/show/monad )
2020-12-03 10:31:31 +0100 <[exa]> the feynman diagrams kindof describe a single process with inputs and outputs right?
2020-12-03 10:31:50 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 264 seconds)
2020-12-03 10:32:12 +0100bitmagie(~Thunderbi@200116b80644c800d0172d212adf5a3c.dip.versatel-1u1.de) (Quit: bitmagie)
2020-12-03 10:32:25 +0100Yumasi(~guillaume@2a01:e0a:5cb:4430:e1ea:8f38:f518:4e69)
2020-12-03 10:33:27 +0100 <boxscape> the string diagram page contains a link to https://ncatlab.org/nlab/show/%27t+Hooft+double+line+notation which mentions feynman diagrams in the opening paragraph
2020-12-03 10:34:36 +0100lassulus(~lassulus@NixOS/user/lassulus) (Ping timeout: 240 seconds)
2020-12-03 10:36:46 +0100dnlkrgr(~dnlkrgr@HSI-KBW-046-005-005-080.hsi8.kabel-badenwuerttemberg.de)
2020-12-03 10:37:01 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
2020-12-03 10:37:05 +0100jespada(~jespada@90.254.245.49) (Ping timeout: 240 seconds)
2020-12-03 10:37:50 +0100knupfer(~Thunderbi@dynamic-046-114-144-045.46.114.pool.telefonica.de)
2020-12-03 10:37:54 +0100jespada(~jespada@90.254.245.49)
2020-12-03 10:40:21 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-03 10:40:41 +0100lassulus(~lassulus@NixOS/user/lassulus)
2020-12-03 10:41:15 +0100wei2912(~wei2912@unaffiliated/wei2912) (Remote host closed the connection)
2020-12-03 10:41:37 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 260 seconds)
2020-12-03 10:42:04 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
2020-12-03 10:43:14 +0100 <ski> Digit : "The Catsters" <https://www.youtube.com/playlist?list=PLlGXNwjYhXYxKVa67r0pKuYufECy713bv> mentions string diagrams (and also talks about monads in different videos)
2020-12-03 10:43:19 +0100lassulus(~lassulus@NixOS/user/lassulus) (Read error: error:1408F10B:SSL routines:ssl3_get_record:wrong version number)
2020-12-03 10:43:52 +0100howdoi(uid224@gateway/web/irccloud.com/x-lajkqzxuizaoleyn) (Quit: Connection closed for inactivity)
2020-12-03 10:44:22 +0100zaquest(~notzaques@5.128.210.178)
2020-12-03 10:45:06 +0100 <ski> it would be nice to be able to reexport an operation, with a restricted type signature (so that e.g. `Data.Foldable' exports `length :: Foldable t => t a -> Int', while `Prelude' reexports it as `length :: [a] -> Int'
2020-12-03 10:45:07 +0100zaquest(~notzaques@5.128.210.178) (Remote host closed the connection)
2020-12-03 10:46:52 +0100pjb(~t@2a01cb04063ec500f481f246a0d62c86.ipv6.abo.wanadoo.fr)
2020-12-03 10:47:14 +0100thc202(~thc202@unaffiliated/thc202)
2020-12-03 10:47:17 +0100b3z(~b3z@vmd41962.contaboserver.net)
2020-12-03 10:47:32 +0100 <ski> Orbstheorem : it seems `n + 1' (nor `1 + n') is not considered to be disjoint from `0' (i tried `instance (0 <= n,PadTree n) => PadTree (n + 1) where ...', since obviously `instance (depth ~ n + 1,...) => PadTree depth where ...' will obviously overlap with `instance PadTree 0 where ...', can't possibly work ..)
2020-12-03 10:48:44 +0100Lord_of_Life(~Lord@46.217.221.243) (Changing host)
2020-12-03 10:48:44 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362)
2020-12-03 10:48:53 +0100 <boxscape> ski can't you do that simply by defining a new length method in Prelude and say "length :: [a] -> Int; length = length"?
2020-12-03 10:49:06 +0100 <boxscape> uh
2020-12-03 10:49:12 +0100 <boxscape> imagine I qualified that length on the rhs
2020-12-03 10:52:43 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-03 10:52:56 +0100 <ski> boxscape : the point would be to not have an identifier clash, if you import both (but rather get the most general version (if any. or else, have to disaambiguate))
2020-12-03 10:53:17 +0100mouseghost(~draco@wikipedia/desperek)
2020-12-03 10:53:19 +0100 <boxscape> Ah, I see
2020-12-03 10:54:32 +0100christo(~chris@81.96.113.213)
2020-12-03 10:54:37 +0100fendor(~fendor@178.115.131.244.wireless.dyn.drei.com) (Remote host closed the connection)
2020-12-03 10:55:04 +0100 <ski> Orbstheorem : btw, why "Square" ? .. also, on this line, `data PerfectlyBalancedBinaryTree a = Elems a | Double (PerfectlyBalancedBinaryTree (a,a))' might be interesting to consider. you could also make a GADT one of kind `Nat -> * -> *' (rather than the phantom type `SquareTree' that you have)
2020-12-03 10:55:19 +0100dmiles(~dmiles@c-73-67-179-188.hsd1.wa.comcast.net)
2020-12-03 10:55:51 +0100LKoen(~LKoen@105.175.9.109.rev.sfr.net)
2020-12-03 10:56:29 +0100lassulus(~lassulus@NixOS/user/lassulus)
2020-12-03 10:57:22 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2020-12-03 11:00:00 +0100thallada(~thallada@fsf/member/thallada) (Quit: WeeChat 2.4)
2020-12-03 11:05:25 +0100m0rphism(~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de)
2020-12-03 11:05:27 +0100knupfer(~Thunderbi@dynamic-046-114-144-045.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
2020-12-03 11:05:33 +0100 <boxscape> Digit there's also a paragraph here on feynman diagrams as string diagrams https://ncatlab.org/nlab/show/Feynman+diagram#AsStringDiagrams
2020-12-03 11:11:14 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) (Remote host closed the connection)
2020-12-03 11:12:17 +0100oxide(~lambda@unaffiliated/mclaren) (Quit: oxide)
2020-12-03 11:12:45 +0100shatriff(~vitaliish@176.52.219.10)
2020-12-03 11:13:01 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-12-03 11:13:15 +0100shatriff(~vitaliish@176.52.219.10)
2020-12-03 11:16:21 +0100SupaYoshi(~supayoshi@213-10-140-13.fixed.kpn.net) (Quit: Goodbye!)
2020-12-03 11:22:53 +0100ubert(~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233)
2020-12-03 11:23:21 +0100tsrt^(tsrt@ip98-184-89-2.mc.at.cox.net) ()
2020-12-03 11:30:40 +0100lassulus(~lassulus@NixOS/user/lassulus) (Ping timeout: 246 seconds)
2020-12-03 11:32:00 +0100pavonia(~user@unaffiliated/siracusa) (Quit: Bye!)
2020-12-03 11:33:10 +0100hackageclickhouse-haskell 0.1.2.0 - A Haskell library as database client for Clickhouse https://hackage.haskell.org/package/clickhouse-haskell-0.1.2.0 (MaboroshiChan)
2020-12-03 11:38:43 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 246 seconds)
2020-12-03 11:41:03 +0100mastarija(~mastarija@93-136-113-7.adsl.net.t-com.hr)
2020-12-03 11:41:18 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-12-03 11:43:14 +0100danza_(~francesco@151.53.76.12)
2020-12-03 11:44:44 +0100danza(~francesco@151.53.79.66) (Ping timeout: 256 seconds)
2020-12-03 11:45:30 +0100danza__(~francesco@151.53.67.9)
2020-12-03 11:45:46 +0100caef^(caef@ip98-184-89-2.mc.at.cox.net)
2020-12-03 11:48:12 +0100danza_(~francesco@151.53.76.12) (Ping timeout: 272 seconds)
2020-12-03 11:51:19 +0100f-a(~f-a@151.36.58.162)
2020-12-03 11:52:15 +0100SupaYoshi(~supayoshi@213-10-140-13.fixed.kpn.net)
2020-12-03 11:52:27 +0100SupaYoshi(~supayoshi@213-10-140-13.fixed.kpn.net) (Remote host closed the connection)
2020-12-03 11:54:24 +0100mouseghost(~draco@wikipedia/desperek) (Quit: mew wew)
2020-12-03 11:54:26 +0100SupaYoshi(~supayoshi@213-10-140-13.fixed.kpn.net)
2020-12-03 11:57:35 +0100SupaYoshi(~supayoshi@213-10-140-13.fixed.kpn.net) (Client Quit)
2020-12-03 11:58:37 +0100whatisRT(~whatisRT@2002:5b41:6a33:0:7903:e9c9:42a2:c7c5)
2020-12-03 11:58:42 +0100SupaYoshi(~supayoshi@213-10-140-13.fixed.kpn.net)
2020-12-03 11:59:08 +0100Jonkimi727406120(~Jonkimi@119.123.243.225) (Ping timeout: 256 seconds)
2020-12-03 11:59:08 +0100alp(~alp@2a01:e0a:58b:4920:bd96:e74f:fabb:2840) (Remote host closed the connection)
2020-12-03 11:59:44 +0100alp(~alp@2a01:e0a:58b:4920:b500:dcf8:65db:294b)
2020-12-03 12:00:24 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 260 seconds)
2020-12-03 12:00:51 +0100cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9)
2020-12-03 12:01:06 +0100SupaYoshi(~supayoshi@213-10-140-13.fixed.kpn.net) (Client Quit)
2020-12-03 12:01:36 +0100cfricke(~cfricke@unaffiliated/cfricke)
2020-12-03 12:02:02 +0100SupaYoshi(~supayoshi@213-10-140-13.fixed.kpn.net)
2020-12-03 12:03:22 +0100SupaYoshi(~supayoshi@213-10-140-13.fixed.kpn.net) (Client Quit)
2020-12-03 12:03:26 +0100danza_(~francesco@151.53.95.77)
2020-12-03 12:04:02 +0100danza__(~francesco@151.53.67.9) (Ping timeout: 272 seconds)
2020-12-03 12:06:02 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-wyoujgmfddjrgmqq)
2020-12-03 12:09:47 +0100SupaYoshi(~supayoshi@213-10-140-13.fixed.kpn.net)
2020-12-03 12:11:12 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Remote host closed the connection)
2020-12-03 12:11:37 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2)
2020-12-03 12:12:11 +0100hackagehw-kafka-client 4.0.0 - Kafka bindings for Haskell https://hackage.haskell.org/package/hw-kafka-client-4.0.0 (alexeyraga)
2020-12-03 12:15:11 +0100hackagefriendly 0.1.0.2 - Attempt to pretty-print any input https://hackage.haskell.org/package/friendly-0.1.0.2 (EdskoDeVries)
2020-12-03 12:16:14 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) (Ping timeout: 264 seconds)
2020-12-03 12:18:48 +0100 <mastarija> About the "cross compiling". I have a 64 bit Windows machine, and I have a 64 bit linux / CloudLinux / cPanel server. Since it's cPanel, I don't have a great control over it, however I can upload and execute custom scripts / executables.
2020-12-03 12:19:23 +0100 <mastarija> Can I just use a VM / WSL to compile locally and then execute on server?
2020-12-03 12:19:59 +0100 <mastarija> If my program is fairly simple and doesn't depend on dll's and stuff?
2020-12-03 12:20:20 +0100 <mastarija> I'm guessing it needs to be statically linked?
2020-12-03 12:21:23 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds)
2020-12-03 12:22:03 +0100fendor(~fendor@178.115.131.244.wireless.dyn.drei.com)
2020-12-03 12:22:03 +0100carlomagno(~cararell@148.87.23.6) (Remote host closed the connection)
2020-12-03 12:25:17 +0100dhil(~dhil@195.213.192.34)
2020-12-03 12:26:18 +0100 <maerwald> static linking on linux and then execute in WSL ubuntu?
2020-12-03 12:26:26 +0100tromp_(~tromp@dhcp-077-249-230-040.chello.nl)
2020-12-03 12:26:28 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer)
2020-12-03 12:27:34 +0100 <mastarija> maerwald, no, basically I want to compile on windows in WSL or some VM and then execute on my cPanel / CloudLinux server.
2020-12-03 12:28:13 +0100 <mastarija> But since this is WSL or VM Linux, then windows part doesn't really matter I guess :/
2020-12-03 12:28:43 +0100 <mastarija> I mean, in theory it should work, right?
2020-12-03 12:28:50 +0100carlomagno(~cararell@148.87.23.11)
2020-12-03 12:28:58 +0100Libertinus(58c19c04@dsl-trebng21-58c19c-4.dhcp.inet.fi)
2020-12-03 12:29:07 +0100 <maerwald> I don't understand why you would want to use WSL to create a linux executable
2020-12-03 12:29:26 +0100 <maerwald> path of maximum resistance?
2020-12-03 12:30:54 +0100 <mastarija> Yes
2020-12-03 12:31:07 +0100 <mastarija> I have Windows and I'm too lazy to switch to Linux
2020-12-03 12:31:15 +0100 <ezzieyguywuf> glguy: I considered a pull request, but having it in a separate repository allows for easy integration with the various vim plugin managers
2020-12-03 12:31:17 +0100 <mastarija> And I can't compile on my server for "reasons"
2020-12-03 12:31:21 +0100 <Libertinus> New to irc and Haskell. Where and how should I ask about installation on MacOS Catalina. Watched and "copied" actions on a video but did not succeed. Some old partial installation might interfere
2020-12-03 12:31:59 +0100 <maerwald> Libertinus: https://www.haskell.org/ghcup/
2020-12-03 12:32:09 +0100 <Libertinus> Ta!
2020-12-03 12:33:03 +0100 <mastarija> maerwald, anyway, scratch the Windows part. If I compile Haskell program on linux distro X and try to run it on linux distro Y, will it work?
2020-12-03 12:33:09 +0100 <Libertinus> That is the procedure I tried. Did not install and I don't have a clue what the error msg means.
2020-12-03 12:33:28 +0100 <maerwald> mastarija: you can use alpine linux docker image to create a sttic executable
2020-12-03 12:33:34 +0100 <maerwald> *static
2020-12-03 12:34:00 +0100 <maerwald> here's an example https://gist.github.com/hasufell/f0893abfbba63ac4ea40feb0520946ee
2020-12-03 12:34:34 +0100jamm_(~jamm@unaffiliated/jamm)
2020-12-03 12:36:59 +0100cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9)
2020-12-03 12:37:26 +0100MrSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
2020-12-03 12:38:06 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
2020-12-03 12:38:41 +0100 <mastarija> maerwald, I'm assuming the resulting product doesn't require Docker on the target system?
2020-12-03 12:38:52 +0100hc(~hc@bsd.pm) (Remote host closed the connection)
2020-12-03 12:39:45 +0100danza__(~francesco@151.74.111.235)
2020-12-03 12:39:54 +0100 <maerwald> that's just an example on how to create static executables: 1. use alpine, 2. install static versions of system libraries, 3. run stack/cabal with --ghc-options='-optl-static -split-sections'
2020-12-03 12:40:27 +0100 <ski> Libertinus : mentioning the error message might help
2020-12-03 12:41:06 +0100 <maerwald> mastarija: or try nix and spend a few weeks figuring out how it works: https://github.com/nh2/static-haskell-nix
2020-12-03 12:41:24 +0100uberj_(~uberj@107.170.237.156) (Remote host closed the connection)
2020-12-03 12:41:31 +0100 <mastarija> XD
2020-12-03 12:41:43 +0100uberj_(~uberj@107.170.237.156)
2020-12-03 12:41:52 +0100 <mastarija> Thanks
2020-12-03 12:42:07 +0100danza_(~francesco@151.53.95.77) (Read error: Connection reset by peer)
2020-12-03 12:42:42 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 260 seconds)
2020-12-03 12:43:03 +0100roconnor(~roconnor@host-45-58-200-239.dyn.295.ca) (Remote host closed the connection)
2020-12-03 12:43:58 +0100Iceland_jack(~user@31.124.48.169) (Remote host closed the connection)
2020-12-03 12:44:51 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2020-12-03 12:45:33 +0100Stanley00(~stanley00@unaffiliated/stanley00) (Remote host closed the connection)
2020-12-03 12:45:53 +0100bahamas(~lucian@unaffiliated/bahamas) (Ping timeout: 260 seconds)
2020-12-03 12:46:07 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2020-12-03 12:46:40 +0100mouseghost(~draco@wikipedia/desperek)
2020-12-03 12:48:08 +0100jamm_(~jamm@unaffiliated/jamm)
2020-12-03 12:48:26 +0100danza__(~francesco@151.74.111.235) (Ping timeout: 256 seconds)
2020-12-03 12:49:40 +0100 <Libertinus> Here's the error msgI got from trying to install HAskell:
2020-12-03 12:49:46 +0100 <Libertinus> Last login: Thu Dec 3 00:22:46 on consoleanokhi@MacBook-Pro ~ % curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | shWelcome to Haskell!This script will download and install the following binaries: * ghcup - The Haskell toolchain installer (for managing GHC/cabal versions) * ghc - The Glasgow Haskell Compiler *
2020-12-03 12:49:47 +0100 <Libertinus> cabal - The Cabal build toolghcup installs only into the following directory,which can be removed anytime: /Users/anokhi/.ghcupPress ENTER to proceed or ctrl-c to abort.Note that this script can be re-run at any given time. % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload
2020-12-03 12:49:47 +0100 <Libertinus> Total Spent Left Speed100 8796k 100 8796k 0 0 4903k 0 0:00:01 0:00:01 --:--:-- 4900k[ Info ] Upgrading GHCup...[ Warn ] No GHCup update availableSystem requirements Note: On OS X, in the course of running ghcup you will be given a dialog box to install the command line tools. Accept and the requirements will be installed
2020-12-03 12:49:48 +0100 <Libertinus> for you. You will then need to run the command again.Press ENTER to proceed or ctrl-c to abort.Installation may take a while.[ Info ] verifying digest of: ghc-8.8.4-x86_64-apple-darwin.tar.xz[ Info ] Unpacking: ghc-8.8.4-x86_64-apple-darwin.tar.xz to /var/folders/3f/fjxj71mn6hj5bzz665k_566r0000gn/T/ghcup-Bl7w0V[ Info ] Installing GHC (this may
2020-12-03 12:49:48 +0100 <Libertinus> take a while)[ ghc-configure ] not found (too old?)[ ghc-configure ] checking for gcc... gcc[ ghc-configure ] checking whether the C compiler works... no[ ghc-configure ] configure: error: in `/private/var/folders/3f/fjxj71mn6hj5...[ ghc-configure ] configure: error: C compiler cannot create executables[ ghc-configure ] See `config.log' for more
2020-12-03 12:49:48 +0100 <Libertinus> details[ Error ] Build failed with NonZeroExit 77 "./configure" ["--prefix=/Users/anokhi/.ghcup/ghc/8.8.4"] Check the logs at "/Users/anokhi/.ghcup/logs" and the build directory "/var/folders/3f/fjxj71mn6hj5bzz665k_566r0000gn/T/ghcup-Bl7w0V" for more clues. Make sure to clean up "/var/folders/3f/fjxj71mn6hj5bzz665k_566r0000gn/T/ghcup-Bl7w0V"
2020-12-03 12:49:49 +0100 <Libertinus> afterwards."_eghcup --cache install ghc recommended" failed!anokhi@MacBook-Pro ~ % curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | shWelcome to Haskell!This script will download and install the following binaries: * ghcup - The Haskell toolchain installer (for managing GHC/cabal versions) * ghc - The Glasgow
2020-12-03 12:49:49 +0100Libertinus(58c19c04@dsl-trebng21-58c19c-4.dhcp.inet.fi) (Killed (Sigyn (Spam is off topic on freenode.)))
2020-12-03 12:49:50 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-12-03 12:50:33 +0100 <int-e> :/
2020-12-03 12:50:33 +0100 <maerwald> ...
2020-12-03 12:50:50 +0100lassulus(~lassulus@NixOS/user/lassulus)
2020-12-03 12:51:10 +0100 <maerwald> seems xcode not installed
2020-12-03 12:53:37 +0100ClaudiusMaximus(~claude@223.153.198.146.dyn.plus.net)
2020-12-03 12:54:03 +0100ClaudiusMaximus(~claude@223.153.198.146.dyn.plus.net) (Changing host)
2020-12-03 12:54:03 +0100ClaudiusMaximus(~claude@unaffiliated/claudiusmaximus)
2020-12-03 12:54:04 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-03 12:54:17 +0100ChanServ+o ski
2020-12-03 12:54:37 +0100ChanServ-o ski
2020-12-03 12:54:46 +0100christo(~chris@81.96.113.213)
2020-12-03 12:55:01 +0100ulidtko|kulidtko
2020-12-03 12:56:45 +0100joaj(~joaj@2001:690:2100:110:cceb:227c:edbc:592c)
2020-12-03 12:57:08 +0100Orbstheorem(~roosember@hellendaal.orbstheorem.ch) (Quit: WeeChat 2.3)
2020-12-03 12:57:23 +0100Aquazi(uid312403@gateway/web/irccloud.com/x-hleddgoteowwxjqp)
2020-12-03 12:58:09 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
2020-12-03 12:58:43 +0100 <boxscape> why do value constructors have to begin with an uppercase letter? Distinguishing between a function and a constructor doesn't seem like something that a haskell compiler has to be able to do during parsing
2020-12-03 12:58:58 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2020-12-03 12:59:14 +0100christo(~chris@81.96.113.213) (Ping timeout: 260 seconds)
2020-12-03 12:59:32 +0100 <merijn> boxscape: Eh, because asking yourself "is this maybe a constructor?" every 5 minutes while coding sucks
2020-12-03 13:00:05 +0100 <boxscape> hm, I guess. I suppose I'm just used to that being a coding convention thing rather than something that's enforced
2020-12-03 13:00:36 +0100 <boxscape> i.e. readability being a reason for uppercase vs lowercase
2020-12-03 13:00:50 +0100solonarv(~solonarv@anancy-651-1-197-136.w109-217.abo.wanadoo.fr)
2020-12-03 13:01:29 +0100danza__(~francesco@151.46.171.237)
2020-12-03 13:01:45 +0100 <boxscape> I guess it helps with DataKinds since otherwise you couldn't use constructors without ' without it looking like a type variable to the constructor
2020-12-03 13:02:00 +0100Libertinus(58c19c04@dsl-trebng21-58c19c-4.dhcp.inet.fi)
2020-12-03 13:02:29 +0100 <ski> in the MLs, data constructors can begin with both lower and upper case. and so, for constant patterns, you could mistake them for a variable pattern, if you don't recall their being constructors. also, with a typo, they'd become variables
2020-12-03 13:02:52 +0100 <ski> Libertinus : please don't paste large amounts of text into the channel. use e.g. a paste service/site
2020-12-03 13:03:02 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 264 seconds)
2020-12-03 13:03:06 +0100 <boxscape> hm yeah that's fair point
2020-12-03 13:03:46 +0100 <ski> perhaps one could argue for type families starting with lower case ?
2020-12-03 13:04:04 +0100 <Libertinus> I tried to paste the error texts i got from trying to install Haskell (platform?) but the window froze. Will try again in a moment. An early perhaps partial installation might interfere. Any attempts at help are appreciated.
2020-12-03 13:04:11 +0100hackagehaskoin-core 0.17.4 - Bitcoin & Bitcoin Cash library for Haskell https://hackage.haskell.org/package/haskoin-core-0.17.4 (jprupp)
2020-12-03 13:04:14 +0100 <boxscape> Well, right now lowercase in type *always* means type variable, you'd have to give that up
2020-12-03 13:04:26 +0100 <boxscape> but that'll likely be given up eventually anyway with Dependent haskell
2020-12-03 13:04:29 +0100whatisRT(~whatisRT@2002:5b41:6a33:0:7903:e9c9:42a2:c7c5) (Quit: ZNC 1.8.1 - https://znc.in)
2020-12-03 13:05:02 +0100 <ski> @where paste
2020-12-03 13:05:02 +0100 <lambdabot> Help us help you: please paste full code, input and/or output at eg https://paste.tomsmeding.com
2020-12-03 13:05:09 +0100 <merijn> boxscape: I hope not
2020-12-03 13:05:11 +0100 <ski> Libertinus : try pasting at that site, e.g. ^
2020-12-03 13:05:32 +0100 <merijn> tbh, I wouldn't consider Dependent Haskell such an inevitability
2020-12-03 13:05:47 +0100 <Libertinus> At lambdadots site?
2020-12-03 13:05:49 +0100 <ski> boxscape : yes. the point being that you can't match on type families
2020-12-03 13:05:59 +0100 <ski> Libertinus : at <https://paste.tomsmeding.com>
2020-12-03 13:06:03 +0100 <tdammers> frankly, I kind of suspect that the usefulness of fully dependent haskell is being exaggerated a fair bit
2020-12-03 13:06:05 +0100 <boxscape> merijn following the proposal discussions at the moment it's not looking inevitable but looks like it has good chances
2020-12-03 13:06:10 +0100 <boxscape> ski yeah that makes sense
2020-12-03 13:06:17 +0100 <Libertinus> ski: thank you!
2020-12-03 13:06:32 +0100 <ski> Libertinus : .. and then, paste the resulting psate link, in here
2020-12-03 13:06:41 +0100 <boxscape> maybe that paste site should replace gist in the #haskell topic?
2020-12-03 13:06:48 +0100 <merijn> tdammers: Right. I'd rather not see Dependent Haskell, tbh
2020-12-03 13:07:09 +0100hc(~hc@bsd.pm)
2020-12-03 13:07:26 +0100AlterEgo-(~ladew@124-198-158-163.dynamic.caiway.nl)
2020-12-03 13:07:41 +0100hackagephonetic-languages-simplified-lists-examples 0.3.0.0 - Simplified and somewhat optimized version of the phonetic-languages-examples. https://hackage.haskell.org/package/phonetic-languages-simplified-lists-examples-0.3.0.0 (OleksandrZhabenko)
2020-12-03 13:08:11 +0100 <Libertinus> ski: ok - but where do I get such psate link
2020-12-03 13:09:02 +0100 <Libertinus> ski: on the tomsmeding window i only see my long error msgs now
2020-12-03 13:09:04 +0100 <ski> copy the link of the paste site into your browser. then create a new paste there, which should appear on a new address, which you can paste in here
2020-12-03 13:09:13 +0100 <ski> check the location bar
2020-12-03 13:09:26 +0100Tario(~Tario@201.192.165.173)
2020-12-03 13:09:39 +0100 <Libertinus> ski: ok, will try. am an old geezer and this is new to me..
2020-12-03 13:10:11 +0100 <Libertinus> ski: https://paste.tomsmeding.com/SDIcYQr4
2020-12-03 13:10:18 +0100cfricke(~cfricke@unaffiliated/cfricke)
2020-12-03 13:11:03 +0100 <merijn> Is there a convenient "keep every Nth element of a list" in libraries?
2020-12-03 13:12:51 +0100toorevitimirp(~tooreviti@117.182.183.16)
2020-12-03 13:13:03 +0100 <ski> @type \n -> map head . chunksOf n
2020-12-03 13:13:06 +0100 <lambdabot> Int -> [b] -> [b]
2020-12-03 13:13:15 +0100Orbstheorem(~roosember@hellendaal.orbstheorem.ch)
2020-12-03 13:13:32 +0100mastarija(~mastarija@93-136-113-7.adsl.net.t-com.hr) (Quit: Leaving)
2020-12-03 13:15:37 +0100 <ski> <maerwald> seems xcode not installed
2020-12-03 13:16:39 +0100 <ski> Libertinus : hm, anyway, now your best bet is someone who knows about MacOS to possibly have any clue about what to .. (i don't really)
2020-12-03 13:17:34 +0100 <tomsmeding> Libertinus: any clue what ghc-configure said right above that line "not found (too old?)"?
2020-12-03 13:17:55 +0100 <tomsmeding> but yeah I think you're missing the command-line tools
2020-12-03 13:18:02 +0100 <Libertinus> ski: thank you! I followed a youtube video step by step - they got thirs installed ok, I did not. Will try asking later, have to leave the chat now.
2020-12-03 13:18:09 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
2020-12-03 13:18:30 +0100 <tomsmeding> Libertinus: e.g. https://medium.com/flawless-app-stories/install-command-line-tools-on-macos-catalina-anansewaa-com…
2020-12-03 13:18:39 +0100alp(~alp@2a01:e0a:58b:4920:b500:dcf8:65db:294b) (Ping timeout: 272 seconds)
2020-12-03 13:18:39 +0100 <Libertinus> tomsmeding: a moment
2020-12-03 13:19:48 +0100 <Libertinus> Tomsmeding: I pasted everything from the terminal window. I do not have ore information than that
2020-12-03 13:20:12 +0100 <Libertinus> * more than that
2020-12-03 13:20:14 +0100 <tomsmeding> try doing the `xcode-select --install` from the article I linked; that has a reasonable chance of working and fixing the issue
2020-12-03 13:20:46 +0100 <Libertinus> was the xcode msg meant to me?
2020-12-03 13:20:53 +0100Aleksejs(~Aleksejs@haskell.lv)
2020-12-03 13:21:06 +0100 <ski> (possibly)
2020-12-03 13:21:26 +0100f-a(~f-a@151.36.58.162) ()
2020-12-03 13:21:51 +0100 <dminuoso> % data A = A { fooA :: String } | B { fooB :: String }
2020-12-03 13:21:51 +0100 <yahb> dminuoso:
2020-12-03 13:21:54 +0100 <dminuoso> % fooA (B "foo")
2020-12-03 13:21:55 +0100 <yahb> dminuoso: "*** Exception: No match in record selector fooA
2020-12-03 13:22:07 +0100 <dminuoso> % data A = A { fooA :: String } | B { fooA :: String }
2020-12-03 13:22:07 +0100 <yahb> dminuoso:
2020-12-03 13:22:12 +0100 <dminuoso> % fooA (B "foo")
2020-12-03 13:22:12 +0100 <yahb> dminuoso: "foo"
2020-12-03 13:22:30 +0100 <tomsmeding> Libertinus: yes sorry
2020-12-03 13:22:32 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 244 seconds)
2020-12-03 13:23:10 +0100 <Aleksejs> Hi, why there's no such thing as Divisable that would unite Integral and Fractional? Then (/) could be of type Divisable a => a -> a -> a
2020-12-03 13:23:12 +0100 <Libertinus> tomsmeding: my bad I did not spot the article link at first. Wll try to do that. Thanks!
2020-12-03 13:23:31 +0100 <dminuoso> So Im pondering whether or not to write something like `data A = A { aText :: Text, aInt :: Int } | B { bText :: Text, bInt :: Int } | C { cText :: Text, cInt :: Int, cInt2 :: Int }` or whether to write these as separate data types, and then some `data AnyThing = AnyA A | AnyB B | AnyC C`
2020-12-03 13:23:37 +0100 <dminuoso> Would you be annoyed about the ergonomics of the latter?
2020-12-03 13:23:54 +0100 <Orbstheorem> ski: Thanks for you answer, I'll come back to it later today ^^
2020-12-03 13:24:08 +0100 <dminuoso> This seems like a trade off between introducial partial field selectors and an an annoying additional union type around it
2020-12-03 13:25:47 +0100jollygood2(~bc8165ab@217.29.117.252)
2020-12-03 13:26:17 +0100 <Libertinus> Tomsmeding: Trying to install xcode results i this error msg: Can't install the software because it is not currently available from the Software Update server" Am runing Catalina 10.15.3
2020-12-03 13:26:51 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-03 13:27:31 +0100 <tomsmeding> wat?
2020-12-03 13:27:37 +0100 <tomsmeding> apple having an outage?
2020-12-03 13:28:17 +0100 <tomsmeding> Libertinus: perhaps this https://stackoverflow.com/questions/56452358/install-command-line-developer-tools-cant-install-the… 🤷
2020-12-03 13:28:18 +0100 <hc> oh, is their ocsp responder for "trustd" broken again? =)
2020-12-03 13:28:26 +0100 <Libertinus> tomsmeding: That's the error msg I get.
2020-12-03 13:28:38 +0100 <tomsmeding> hc: not even, different server this time :D
2020-12-03 13:28:39 +0100 <dminuoso> Libertinus: Yeah that happens frequently
2020-12-03 13:28:46 +0100 <dminuoso> Libertinus: You need to download it directly from their website sometimes.
2020-12-03 13:28:47 +0100 <tomsmeding> Libertinus: see the first answer for a workaround
2020-12-03 13:28:54 +0100 <tomsmeding> i.e. what dminuoso says
2020-12-03 13:29:08 +0100 <Libertinus> ok...
2020-12-03 13:29:16 +0100 <dminuoso> Just to clarify, that's an Apple bug.
2020-12-03 13:29:28 +0100 <tomsmeding> sorry for the mess, but then this is not our fault in this specific case :p
2020-12-03 13:30:56 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
2020-12-03 13:31:25 +0100 <ski> Aleksejs : what would the expected laws for it be ?
2020-12-03 13:32:52 +0100 <Libertinus> Tomsmeding: I am now downloading command line tools for xcode 12.2.
2020-12-03 13:32:58 +0100 <tomsmeding> nice!
2020-12-03 13:33:08 +0100 <Libertinus> :)
2020-12-03 13:33:30 +0100cosimone(~cosimone@93-47-228-249.ip115.fastwebnet.it)
2020-12-03 13:33:31 +0100 <Libertinus> Spooky face, dat one..
2020-12-03 13:33:52 +0100 <dminuoso> Aleksejs: What exactly are you looking to unite here? Both give you a notion of dividing (one gives real division, the other gives integral division).
2020-12-03 13:33:52 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 246 seconds)
2020-12-03 13:34:36 +0100natechan(~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-12-03 13:34:45 +0100 <dminuoso> In fact, the Real superclass lets you do integral division on Real numbers too.
2020-12-03 13:35:23 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Ping timeout: 240 seconds)
2020-12-03 13:36:08 +0100doct0rhu(~orctarorg@pool-72-88-158-154.nwrknj.fios.verizon.net) (Remote host closed the connection)
2020-12-03 13:36:28 +0100 <Libertinus> Tomsmeding: I'd need MAcOS 10.15.4. to bo able to install the xxcode tools I have 10.15.3.
2020-12-03 13:36:58 +0100 <Libertinus> tomsmeding: the installer says that. I guess I must upgrade my OS
2020-12-03 13:37:19 +0100 <tomsmeding> that's dumb
2020-12-03 13:37:41 +0100 <tomsmeding> they don't provide an installer for the previous version or something?
2020-12-03 13:37:45 +0100 <tomsmeding> (been a while since I used a maC)
2020-12-03 13:37:48 +0100 <tomsmeding> *mac
2020-12-03 13:38:03 +0100 <merijn> tomsmeding: They do, but they're on the website not in the appstore, I think
2020-12-03 13:38:15 +0100 <Libertinus> tomsmeding: I picked to latest non-beta version of the command line tools. Should I see if there is an older version available?
2020-12-03 13:38:20 +0100 <tomsmeding> the CLT aren't in the app store anyway merijn
2020-12-03 13:38:26 +0100 <dminuoso> Libertinus: Did you go through the apple website or the app store?
2020-12-03 13:38:28 +0100 <tomsmeding> Libertinus: I guess so?
2020-12-03 13:38:30 +0100 <merijn> tomsmeding: Xcode is and you install CLI via xcode
2020-12-03 13:38:46 +0100 <dminuoso> https://developer.apple.com/download/more/?=command%20line%20tools
2020-12-03 13:38:49 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
2020-12-03 13:38:54 +0100Nahra(~Nahra@unaffiliated/nahra)
2020-12-03 13:38:55 +0100 <tomsmeding> merijn: as far as I remember you install CLI using xcode-select, which doesn't require an xcode installation
2020-12-03 13:38:57 +0100 <dminuoso> Is where you should go
2020-12-03 13:39:00 +0100 <Libertinus> domingo: Apple web site . got the linnk from here
2020-12-03 13:39:04 +0100 <tomsmeding> though one way to do it is certainly to install xcode
2020-12-03 13:39:13 +0100 <tomsmeding> but that's... heavy
2020-12-03 13:39:23 +0100 <dminuoso> merijn: Go make your case again about what a lovely OS macOS is..
2020-12-03 13:39:27 +0100 <merijn> tomsmeding: Eh, you do need xcode *anyway*
2020-12-03 13:39:37 +0100 <merijn> tomsmeding: Else you don't have a C compiler or linker
2020-12-03 13:39:38 +0100 <Libertinus> merijn: do I?
2020-12-03 13:39:47 +0100 <tomsmeding> don't the CLT give gcc?
2020-12-03 13:40:00 +0100 <dminuoso> well they give you clang
2020-12-03 13:40:09 +0100 <tomsmeding> (yes fair)
2020-12-03 13:40:14 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 264 seconds)
2020-12-03 13:40:24 +0100 <tomsmeding> merijn: if you need xcode anyway, then why does ghcup just install the CLT? ;)
2020-12-03 13:40:31 +0100natechan(~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
2020-12-03 13:40:59 +0100mastarija(~mastarija@93-136-113-7.adsl.net.t-com.hr)
2020-12-03 13:41:11 +0100 <dminuoso> Im confident xcode clt will give you clang+linker
2020-12-03 13:41:14 +0100 <Libertinus> merijn: I am a non-entity in programing, so if installing xcode makes life simpler for me, I'd like to do that
2020-12-03 13:41:16 +0100 <dminuoso> and other stuff
2020-12-03 13:41:20 +0100 <dminuoso> Libertinus: You dont nede xcode.
2020-12-03 13:41:27 +0100Libertinus(58c19c04@dsl-trebng21-58c19c-4.dhcp.inet.fi) (Remote host closed the connection)
2020-12-03 13:42:07 +0100 <tomsmeding> o/
2020-12-03 13:43:14 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 264 seconds)
2020-12-03 13:46:00 +0100Libertinus(58c19c04@dsl-trebng21-58c19c-4.dhcp.inet.fi)
2020-12-03 13:46:03 +0100 <Libertinus> dminuoso: then I need to update my os to be able to install the xcode CLT
2020-12-03 13:48:06 +0100 <Libertinus> dminuoso: is it possible to update to 10.15.4 and avoid updating to Big sur?
2020-12-03 13:48:11 +0100hackageukrainian-phonetics-basic 0.3.2.0 - A library to work with the basic Ukrainian phonetics and syllable segmentation. https://hackage.haskell.org/package/ukrainian-phonetics-basic-0.3.2.0 (OleksandrZhabenko)
2020-12-03 13:49:38 +0100raichoo(~raichoo@dslb-188-101-186-206.188.101.pools.vodafone-ip.de) (Quit: Lost terminal)
2020-12-03 13:51:53 +0100alp(~alp@2a01:e0a:58b:4920:b500:dcf8:65db:294b)
2020-12-03 13:52:55 +0100 <tomsmeding> Libertinus: I think the non-haskell internet can help you better with that than we can
2020-12-03 13:52:57 +0100drincruz(~adriancru@ool-44c748be.dyn.optonline.net)
2020-12-03 13:53:39 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-12-03 13:54:06 +0100 <Libertinus> tomsmeding: you have been most helpful! Will search the net, and return with haskell stuff, eventually. Have a good 'un! :)
2020-12-03 13:54:18 +0100 <tomsmeding> Cheers!
2020-12-03 13:54:35 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2020-12-03 13:54:45 +0100 <Libertinus> dminuoso: thank you, too!!
2020-12-03 13:55:21 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-03 13:55:29 +0100 <Libertinus> :)
2020-12-03 13:57:15 +0100fendor(~fendor@178.115.131.244.wireless.dyn.drei.com) (Remote host closed the connection)
2020-12-03 13:58:00 +0100cosimone(~cosimone@93-47-228-249.ip115.fastwebnet.it) (Quit: cosimone)
2020-12-03 13:59:55 +0100zaquest(~notzaques@5.128.210.178)
2020-12-03 14:00:34 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
2020-12-03 14:02:13 +0100LKoen(~LKoen@105.175.9.109.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
2020-12-03 14:04:41 +0100hackagehaskoin-core 0.17.5 - Bitcoin & Bitcoin Cash library for Haskell https://hackage.haskell.org/package/haskoin-core-0.17.5 (jprupp)
2020-12-03 14:04:42 +0100zaquest(~notzaques@5.128.210.178) (Remote host closed the connection)
2020-12-03 14:05:01 +0100m0rphism(~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de) (Ping timeout: 264 seconds)
2020-12-03 14:07:01 +0100Rudd0(~Rudd0@185.189.115.103) (Remote host closed the connection)
2020-12-03 14:07:13 +0100DTZUZU_(~DTZUZU@205.ip-149-56-132.net) (Read error: Connection reset by peer)
2020-12-03 14:07:22 +0100DTZUZU(~DTZUZU@205.ip-149-56-132.net)
2020-12-03 14:07:28 +0100xsarnik0(xsarnik@gateway/shell/fi.muni.cz/x-qqlqhiysrvqfxaju) (Quit: Ping timeout (120 seconds))
2020-12-03 14:07:28 +0100Jajik(xchlup2@gateway/shell/fi.muni.cz/x-nixiositsvhijnwj) (Quit: Ping timeout (120 seconds))
2020-12-03 14:07:49 +0100dnlkrgr(~dnlkrgr@HSI-KBW-046-005-005-080.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 246 seconds)
2020-12-03 14:08:28 +0100tomsmeding(~tomsmedin@tomsmeding.com) (Quit: ZNC 1.7.5 - https://znc.in)
2020-12-03 14:08:48 +0100tomsmeding(~tomsmedin@tomsmeding.com)
2020-12-03 14:09:10 +0100zariuq(~zar@fw1.ciirc.cvut.cz)
2020-12-03 14:09:33 +0100texasmynsted(~texasmyns@212.102.45.115)
2020-12-03 14:09:36 +0100sdx23(~sdx23@unaffiliated/sdx23) (Ping timeout: 240 seconds)
2020-12-03 14:09:56 +0100Rembane(~Rembane@li346-36.members.linode.com) (Ping timeout: 240 seconds)
2020-12-03 14:10:35 +0100xsarnik0(xsarnik@gateway/shell/fi.muni.cz/x-tgciqxhajxesnkwi)
2020-12-03 14:10:41 +0100Jajik(xchlup2@gateway/shell/fi.muni.cz/x-xjonixprwtlmdjwb)
2020-12-03 14:10:54 +0100gxt(~gxt@gateway/tor-sasl/gxt) (Quit: WeeChat 2.9)
2020-12-03 14:10:56 +0100zar(~zar@fw1.ciirc.cvut.cz) (Ping timeout: 240 seconds)
2020-12-03 14:11:03 +0100Rembane(~Rembane@li346-36.members.linode.com)
2020-12-03 14:12:50 +0100sdx23(~sdx23@unaffiliated/sdx23)
2020-12-03 14:13:36 +0100LKoen(~LKoen@105.175.9.109.rev.sfr.net)
2020-12-03 14:15:03 +0100texasmyn_(~texasmyns@212.102.45.103)
2020-12-03 14:15:30 +0100gxt(~gxt@gateway/tor-sasl/gxt)
2020-12-03 14:15:52 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu)
2020-12-03 14:16:05 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds)
2020-12-03 14:16:47 +0100fendor(~fendor@91.141.2.63.wireless.dyn.drei.com)
2020-12-03 14:16:51 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-03 14:16:55 +0100fendor(~fendor@91.141.2.63.wireless.dyn.drei.com) (Remote host closed the connection)
2020-12-03 14:16:58 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:9156:658b:3008:cf:28b1) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-03 14:18:13 +0100texasmynsted(~texasmyns@212.102.45.115) (Ping timeout: 264 seconds)
2020-12-03 14:19:22 +0100chaosmasttter(~chaosmast@p200300c4a7122601056aeb346f192a12.dip0.t-ipconnect.de)
2020-12-03 14:25:34 +0100ph88(~ph88@2a02:8109:9e00:7e5c:b9be:939f:4d9:5357) (Quit: Leaving)
2020-12-03 14:26:38 +0100mastarija_(~mastarija@93-142-67-36.adsl.net.t-com.hr)
2020-12-03 14:28:06 +0100bahamas(~lucian@188.24.181.166)
2020-12-03 14:28:07 +0100bahamas(~lucian@188.24.181.166) (Changing host)
2020-12-03 14:28:07 +0100bahamas(~lucian@unaffiliated/bahamas)
2020-12-03 14:28:07 +0100 <AWizzArd> stylish-haskell suggests to Emacs users to read the “Using external formatters” section of the haskell-mode manual: http://haskell.github.io/haskell-mode/manual/latest/Autoformating.html#Autoformating
2020-12-03 14:28:25 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 240 seconds)
2020-12-03 14:28:37 +0100 <AWizzArd> How will Emacs know about stylish-haskell? Is this backed into haskell-mode itself, the support for this specific formatter?
2020-12-03 14:29:12 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
2020-12-03 14:29:18 +0100 <dminuoso> AWizzArd: haskell-mode will invoke it as an external command
2020-12-03 14:29:26 +0100 <dminuoso> So its necessary to be on PATH
2020-12-03 14:30:00 +0100 <dminuoso> (custom-set-variables '(haskell-stylish-on-save t))
2020-12-03 14:30:18 +0100mastarija(~mastarija@93-136-113-7.adsl.net.t-com.hr) (Ping timeout: 260 seconds)
2020-12-03 14:30:36 +0100 <AWizzArd> dminuoso: does stylish also support formatting a (marked) region?
2020-12-03 14:32:15 +0100 <dminuoso> AWizzArd: Id guess no.
2020-12-03 14:32:39 +0100 <dminuoso> At best it could only work for a region that is also valid as a top level binding
2020-12-03 14:32:56 +0100 <dminuoso> Such that you could put the region into a temporary file, treat it as a module, run stylish-haskell on it, and splice it back in
2020-12-03 14:33:22 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-12-03 14:33:25 +0100SupaYoshi(~supayoshi@213-10-140-13.fixed.kpn.net) (Ping timeout: 240 seconds)
2020-12-03 14:33:25 +0100 <dminuoso> Such a thing is certainly implementable in emacs
2020-12-03 14:33:42 +0100monochrom(trebla@216.138.220.146)
2020-12-03 14:34:04 +0100drincruz(~adriancru@ool-44c748be.dyn.optonline.net) (Ping timeout: 246 seconds)
2020-12-03 14:34:04 +0100 <dminuoso> AWizzArd: Concretely
2020-12-03 14:34:09 +0100SupaYoshi(~supayoshi@213-10-140-13.fixed.kpn.net)
2020-12-03 14:34:15 +0100ph88(~ph88@ip5f5af6cd.dynamic.kabel-deutschland.de)
2020-12-03 14:34:41 +0100 <dminuoso> AWizzArd: (defcustom haskell-mode-stylish-haskell-path "stylish-haskell" "Path to `stylish-haskell' executable." :group 'haskell :type 'string)
2020-12-03 14:34:58 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:9156:658b:3008:cf:28b1)
2020-12-03 14:35:06 +0100 <AWizzArd> dminuoso: Aah okay, that makes sense!
2020-12-03 14:35:30 +0100 <dminuoso> So you can override that if you want to
2020-12-03 14:35:55 +0100 <dminuoso> e.g. through M-x customize-group RET haskell RET
2020-12-03 14:36:56 +0100notzmv(~user@unaffiliated/zmv) (Ping timeout: 265 seconds)
2020-12-03 14:37:10 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-12-03 14:37:31 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-12-03 14:39:12 +0100cads(~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 272 seconds)
2020-12-03 14:40:50 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2020-12-03 14:41:36 +0100mastarija_(~mastarija@93-142-67-36.adsl.net.t-com.hr) (Quit: Leaving)
2020-12-03 14:41:49 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Client Quit)
2020-12-03 14:42:53 +0100 <dminuoso> Does aeson have primitives to parse a string as numeric types?
2020-12-03 14:43:44 +0100texasmyn_(~texasmyns@212.102.45.103) (Ping timeout: 260 seconds)
2020-12-03 14:44:46 +0100raichoo(~raichoo@dslb-188-101-186-206.188.101.pools.vodafone-ip.de)
2020-12-03 14:44:59 +0100 <nshepperd2> any regex-tdfa experts here? is there a way to execute a regex in this library 'incrementally'?
2020-12-03 14:45:44 +0100 <nshepperd2> that is, I want to feed characters in one at a time, and be able to determine after each step whether it is in an accepting, failing, or unfinished state
2020-12-03 14:46:05 +0100hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net)
2020-12-03 14:46:38 +0100 <nshepperd2> (the true purpose of this is that I want to execute a regex within / convert a regex into a parsec-style parser)
2020-12-03 14:46:50 +0100LKoen(~LKoen@105.175.9.109.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
2020-12-03 14:47:47 +0100Sornaensis(~kvirc@79.142.232.102.static.router4.bolignet.dk)
2020-12-03 14:48:03 +0100Wuzzy(~Wuzzy@p549c9976.dip0.t-ipconnect.de)
2020-12-03 14:48:34 +0100jespada(~jespada@90.254.245.49) (Ping timeout: 256 seconds)
2020-12-03 14:48:38 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:9156:658b:3008:cf:28b1) (Ping timeout: 264 seconds)
2020-12-03 14:48:46 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2020-12-03 14:50:03 +0100urodna(~urodna@unaffiliated/urodna)
2020-12-03 14:50:29 +0100jespada(~jespada@90.254.245.49)
2020-12-03 14:52:21 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-12-03 14:52:42 +0100cosimone(~cosimone@93-47-228-249.ip115.fastwebnet.it)
2020-12-03 14:53:27 +0100feb(~feb@178.162.212.214) (Remote host closed the connection)
2020-12-03 14:53:31 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Remote host closed the connection)
2020-12-03 14:53:37 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
2020-12-03 14:54:22 +0100jamm_(~jamm@unaffiliated/jamm)
2020-12-03 14:56:06 +0100drincruz(~adriancru@ool-44c748be.dyn.optonline.net)
2020-12-03 14:56:45 +0100texasmynsted(~texasmyns@212.102.45.103)
2020-12-03 14:57:47 +0100 <nshepperd2> hmm, pcre supports partial matching
2020-12-03 15:03:24 +0100laurenceday(~leday@173.203.125.91.dyn.plus.net)
2020-12-03 15:04:04 +0100lpy(~nyd@unaffiliated/elysian)
2020-12-03 15:04:53 +0100laurenceday(~leday@173.203.125.91.dyn.plus.net) (Remote host closed the connection)
2020-12-03 15:06:51 +0100sagax(~sagax_nb@213.138.71.146) (Read error: Connection reset by peer)
2020-12-03 15:08:32 +0100laurenceday(~leday@173.203.125.91.dyn.plus.net)
2020-12-03 15:11:28 +0100cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9)
2020-12-03 15:11:39 +0100joaoh82(~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Remote host closed the connection)
2020-12-03 15:12:13 +0100joaoh82(~joaoh82@157-131-134-210.dedicated.static.sonic.net)
2020-12-03 15:12:51 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2020-12-03 15:13:23 +0100zariuq(~zar@fw1.ciirc.cvut.cz) (Remote host closed the connection)
2020-12-03 15:13:30 +0100zargoertzel(~zar@fw1.ciirc.cvut.cz)
2020-12-03 15:16:23 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2020-12-03 15:23:12 +0100sunweaver1(~sunweaver@185.163.110.125)
2020-12-03 15:23:54 +0100SupaYoshi(~supayoshi@213-10-140-13.fixed.kpn.net) (Ping timeout: 260 seconds)
2020-12-03 15:23:58 +0100SupaYoshii(~supayoshi@213-10-140-13.fixed.kpn.net)
2020-12-03 15:24:48 +0100drincruz(~adriancru@ool-44c748be.dyn.optonline.net) (Ping timeout: 272 seconds)
2020-12-03 15:28:03 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser)
2020-12-03 15:29:46 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2020-12-03 15:30:17 +0100drincruz(~adriancru@ool-44c748be.dyn.optonline.net)
2020-12-03 15:30:48 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
2020-12-03 15:31:10 +0100 <siraben> Is there a more efficient structure than a vector of bytestirngs?
2020-12-03 15:31:21 +0100 <siraben> vector of unboxed vectors of chars?
2020-12-03 15:32:37 +0100Mrbuck(~Mrbuck@gateway/tor-sasl/mrbuck)
2020-12-03 15:33:05 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Remote host closed the connection)
2020-12-03 15:33:09 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch)
2020-12-03 15:33:49 +0100 <merijn> siraben: for what?
2020-12-03 15:34:16 +0100 <siraben> merijn: https://github.com/siraben/hoac-2020/blob/master/day3.hs
2020-12-03 15:34:26 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
2020-12-03 15:34:31 +0100 <siraben> I switched from list of bytestrings to vector of bytestrings but didn't seem to improve the benchmarks
2020-12-03 15:34:31 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch) (Client Quit)
2020-12-03 15:34:39 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-12-03 15:35:33 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Remote host closed the connection)
2020-12-03 15:35:40 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
2020-12-03 15:35:56 +0100Sornaensis|2(~kvirc@077213194197.dynamic.telenor.dk)
2020-12-03 15:37:51 +0100lassulus(~lassulus@NixOS/user/lassulus) (Quit: WeeChat 2.9)
2020-12-03 15:38:06 +0100 <dolio> Seems like a better improvement would be only folding once.
2020-12-03 15:38:45 +0100Sornaensis(~kvirc@79.142.232.102.static.router4.bolignet.dk) (Ping timeout: 240 seconds)
2020-12-03 15:38:50 +0100darjeeling_(~darjeelin@115.215.41.204) (Ping timeout: 260 seconds)
2020-12-03 15:39:35 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-12-03 15:39:36 +0100 <siraben> In part 2?
2020-12-03 15:39:56 +0100 <siraben> Ah, right.
2020-12-03 15:40:56 +0100 <dolio> Sure, althought part 1 is just using a subset of the information of part 2, so you could fold once for both.
2020-12-03 15:40:58 +0100christo(~chris@81.96.113.213)
2020-12-03 15:41:53 +0100 <merijn> Any specific reason for optimising this? Or just for shits & giggles? :p
2020-12-03 15:42:07 +0100fendor(~fendor@91.141.2.63.wireless.dyn.drei.com)
2020-12-03 15:42:14 +0100 <siraben> shits and giggles
2020-12-03 15:42:22 +0100 <siraben> also benchmarking is fun :P
2020-12-03 15:42:29 +0100LKoen(~LKoen@105.175.9.109.rev.sfr.net)
2020-12-03 15:43:10 +0100hackagephonetic-languages-simplified-properties-lists 0.3.0.0 - A generalization of the uniqueness-periods-vector-properties package. https://hackage.haskell.org/package/phonetic-languages-simplified-properties-lists-0.3.0.0 (OleksandrZhabenko)
2020-12-03 15:43:17 +0100lassulus(~lassulus@NixOS/user/lassulus)
2020-12-03 15:43:18 +0100sleblanc(~sleblanc@unaffiliated/sebleblanc) (Ping timeout: 256 seconds)
2020-12-03 15:45:16 +0100 <Taneb> Does GHC have any limits on the number of fields in a record?
2020-12-03 15:45:25 +0100 <merijn> "probably"
2020-12-03 15:46:06 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection)
2020-12-03 15:46:33 +0100 <dolio> It starts having problems with tuples around 64 elements, so it's possible there's a similar problem with other constructors.
2020-12-03 15:48:10 +0100z0(~z0@188.251.71.80)
2020-12-03 15:48:12 +0100 <merijn> 62
2020-12-03 15:48:30 +0100vicfred(~vicfred@unaffiliated/vicfred)
2020-12-03 15:48:36 +0100 <merijn> Tuple size 63 and up are commented out with a comment about GHC segfaulting when the higher ones are added
2020-12-03 15:49:01 +0100 <dolio> I saw some recent discussion where something larger than 62 was mentioned as working.
2020-12-03 15:49:14 +0100Sornaensis|2(~kvirc@077213194197.dynamic.telenor.dk) (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/)
2020-12-03 15:49:24 +0100 <oats> it always tickled me that the tuples were manually defined :P
2020-12-03 15:49:38 +0100 <dolio> I think it was 64 for some SIMD thing.
2020-12-03 15:49:47 +0100joaj(~joaj@2001:690:2100:110:cceb:227c:edbc:592c) (Ping timeout: 244 seconds)
2020-12-03 15:49:51 +0100 <merijn> > 2 * 26 + 10
2020-12-03 15:49:53 +0100 <lambdabot> 62
2020-12-03 15:49:58 +0100 <merijn> Nope, 62
2020-12-03 15:50:07 +0100 <merijn> dolio: https://hackage.haskell.org/package/ghc-prim-0.6.1/docs/src/GHC.Tuple.html :p
2020-12-03 15:50:33 +0100 <dolio> I didn't say there were tuples bigger than 62 defined in that file.
2020-12-03 15:50:42 +0100 <oats> the greatest haskell file of all time
2020-12-03 15:50:49 +0100 <z0> is there a significant difference resource wise between cycling a list vs calculating the index mod length?
2020-12-03 15:50:56 +0100joaj(~joaj@2001:690:2100:1b:a36f:f7ab:d46c:98f0)
2020-12-03 15:51:11 +0100 <merijn> z0: If you intend to index said list, yes
2020-12-03 15:51:23 +0100 <dolio> Anyhow, I'm not sure anyone knows what was failing with tuples that big anyway. It could be unrelated to the constructors.
2020-12-03 15:51:28 +0100 <oats> indexing lists booooo
2020-12-03 15:51:28 +0100 <merijn> z0: at least, when you start from the beginning each time
2020-12-03 15:51:54 +0100 <merijn> oats: How can it be the best Haskell file? It has none of the best functions
2020-12-03 15:52:10 +0100darjeeling_(~darjeelin@122.245.218.196)
2020-12-03 15:52:33 +0100 <oats> merijn: truly you have not reached tuple enlightenment
2020-12-03 15:52:48 +0100 <merijn> oats: reallyUnsafePtrEquality# is clearly better
2020-12-03 15:52:56 +0100 <merijn> as is accursedUnutterablePerformIO
2020-12-03 15:53:28 +0100 <oats> do you like sharing an address space with a malevolent bringer of chaos?
2020-12-03 15:54:30 +0100 <tomsmeding> yeah some time recently on the mailing list it came up that there was a primop somewhere that returned a 64-tuple, that you couldn't even use because when pattern matching on that tuple ghc said "I don't support tuples longer than 62"
2020-12-03 15:55:46 +0100 <tomsmeding> this and descendants https://mail.haskell.org/pipermail/ghc-devs/2020-September/019273.html
2020-12-03 15:56:38 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-03 15:57:31 +0100int-ejust made a single constructor type with 1024 Int fields and ghc didn't complain... it's getting slow to compile though.
2020-12-03 16:00:11 +0100hackageprolude 0.0.0.12 - ITProTV's custom prelude https://hackage.haskell.org/package/prolude-0.0.0.12 (saramuse)
2020-12-03 16:01:06 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2020-12-03 16:01:25 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
2020-12-03 16:02:29 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Client Quit)
2020-12-03 16:02:57 +0100 <exarkun> Anyone know of a nice IRC client library?
2020-12-03 16:03:39 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-12-03 16:04:13 +0100LKoen_(~LKoen@105.175.9.109.rev.sfr.net)
2020-12-03 16:05:23 +0100 <solonarv> z0: cycle xs !! n has to follow n cons-cells, xs !! (n `mod` length xs) only has to follow length xs + n `mod` length xs cons cells
2020-12-03 16:05:44 +0100 <solonarv> (and if you're indexing multiple times, you only have to calculate the length once, of course)
2020-12-03 16:06:04 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2020-12-03 16:07:09 +0100LKoen(~LKoen@105.175.9.109.rev.sfr.net) (Ping timeout: 260 seconds)
2020-12-03 16:07:36 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Client Quit)
2020-12-03 16:08:19 +0100conal(~conal@64.71.133.70)
2020-12-03 16:08:26 +0100borne(~fritjof@200116b864c920008cdf581d4c1cc02f.dip.versatel-1u1.de) (Ping timeout: 264 seconds)
2020-12-03 16:08:55 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net)
2020-12-03 16:09:36 +0100danza__(~francesco@151.46.171.237) (Read error: Connection reset by peer)
2020-12-03 16:10:16 +0100borne(~fritjof@200116b864c920008cdf581d4c1cc02f.dip.versatel-1u1.de)
2020-12-03 16:10:51 +0100notzmv(~user@unaffiliated/zmv)
2020-12-03 16:11:02 +0100mrchampion(~mrchampio@216-26-218-246.dynamic.tbaytel.net) (Ping timeout: 260 seconds)
2020-12-03 16:12:18 +0100christo(~chris@81.96.113.213)
2020-12-03 16:13:29 +0100Entertainment(~entertain@104.246.132.210)
2020-12-03 16:15:03 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
2020-12-03 16:16:22 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2020-12-03 16:16:39 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2020-12-03 16:19:18 +0100 <exarkun> in a `consumer :: MonadIO m => MVar () -> ConduitT (Either ByteString IrcEvent) o m ()` when I try to get some events with `events <- takeC 2` I get a type error - Couldn't match type ‘o’ with ‘Either ByteString IrcEvent’
2020-12-03 16:19:29 +0100 <exarkun> What does using `takeC` have to do with the output type?
2020-12-03 16:19:51 +0100 <merijn> exarkun: within a do block all lines must have the same output
2020-12-03 16:20:18 +0100 <merijn> exarkun: "instance Monad m => Monad (ConduitT i o m)"
2020-12-03 16:20:27 +0100 <merijn> note that both i and o are fixed there
2020-12-03 16:20:38 +0100polyphem(~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889)
2020-12-03 16:23:01 +0100gxt(~gxt@gateway/tor-sasl/gxt) (Remote host closed the connection)
2020-12-03 16:23:27 +0100 <exarkun> I think I understand the first part. I'm not sure if I understand "both i and o are fixed there".
2020-12-03 16:23:44 +0100gxt(~gxt@gateway/tor-sasl/gxt)
2020-12-03 16:23:57 +0100 <merijn> exarkun: "ConduitT i o m" (with specific types 'i', 'o', and 'm') forms a monad
2020-12-03 16:24:04 +0100 <exarkun> Ah ok
2020-12-03 16:24:22 +0100 <merijn> exarkun: Within a do block all "statements" must have the same type (which has to have a Monad instance)
2020-12-03 16:24:55 +0100 <merijn> exarkun: Remember that "do { x <- foo; bar x }" translate to "foo >>= \x -> bar x"
2020-12-03 16:24:58 +0100 <merijn> :t (>>=)
2020-12-03 16:25:01 +0100 <lambdabot> Monad m => m a -> (a -> m b) -> m b
2020-12-03 16:25:14 +0100 <exarkun> So with that type declaration, the type of `o` will be inferred from what's in the definition of the function, and since `i` is that `Either ...`, using `takeC` like this tells the type checker that `o` must be the same `Either ...`?
2020-12-03 16:25:22 +0100 <merijn> the 'm' there is "ConduitT i o m" and it must be the same on each side
2020-12-03 16:25:59 +0100Mrbuck(~Mrbuck@gateway/tor-sasl/mrbuck) (Quit: WeeChat 2.9)
2020-12-03 16:26:14 +0100 <merijn> exarkun: The problem is that "takeC :: ConduitT a a m ()", yeah
2020-12-03 16:26:37 +0100 <merijn> exarkun: Eh, also note that "events <- takeC 2" probably doesn't do what you expect...
2020-12-03 16:26:51 +0100 <exarkun> Oh? :/
2020-12-03 16:26:56 +0100Digit(~user@fsf/member/digit) (Ping timeout: 256 seconds)
2020-12-03 16:27:00 +0100 <merijn> exarkun: That will simply forward 2 inputs downstream and 'events' will be () :p
2020-12-03 16:27:06 +0100 <exarkun> Oof.
2020-12-03 16:27:09 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-12-03 16:27:11 +0100hackagephonetic-languages-simplified-lists-examples 0.4.0.0 - Simplified and somewhat optimized version of the phonetic-languages-examples. https://hackage.haskell.org/package/phonetic-languages-simplified-lists-examples-0.4.0.0 (OleksandrZhabenko)
2020-12-03 16:27:16 +0100 <exarkun> Yea. That is not what I expected.
2020-12-03 16:27:37 +0100 <exarkun> Guess I should read the conduit docs harder.
2020-12-03 16:28:26 +0100danza__(~francesco@151.53.83.218)
2020-12-03 16:28:26 +0100mrchampion(~mrchampio@216-26-218-246.dynamic.tbaytel.net)
2020-12-03 16:28:26 +0100 <merijn> exarkun: Since "takeC :: Int -> ConduitT a a m ()" note that the Monad here is "ConduitT a a m" so the "result" in "(>>=) :: Monad m => m a -> (a -> m b) -> m b" the 'a' of >>= is just ()
2020-12-03 16:28:49 +0100 <z0> solonarv: thanks. i guess i always imagine the possibility of some compiler optimization surprising me
2020-12-03 16:28:51 +0100 <merijn> exarkun: You need to process 2 events at a time?
2020-12-03 16:29:48 +0100 <exarkun> merijn: Probably not. This is my first conduit-using program ever. I'm actually just trying to throw 4 events in the trash (but also wait for them to happen before moving on).
2020-12-03 16:30:18 +0100 <merijn> exarkun: that'd be more like "dropC 4" :p
2020-12-03 16:30:45 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-03 16:30:53 +0100 <merijn> exarkun: What do you mean by "wait for them"?
2020-12-03 16:30:57 +0100hexo(~hexo@gateway/tor-sasl/hexo)
2020-12-03 16:31:15 +0100 <exarkun> merijn: It's an irc client. I want to send a message after they've been received.
2020-12-03 16:31:58 +0100 <exarkun> I see `dropC` has a more favorable type for this... `dropC :: Monad m => Int -> ConduitT a o m ()` so the result is still () but the output type is not fixed as the same as the input type.
2020-12-03 16:32:03 +0100christo(~chris@81.96.113.213)
2020-12-03 16:32:06 +0100DataComputist(~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Quit: Leaving...)
2020-12-03 16:32:37 +0100 <exarkun> Also I see that the conduit docs I was looking at are using `foldC` and I guess that's why they work and my code doesn't ... because foldC also doesn't fix the output and has a useful result type instead of ().
2020-12-03 16:33:23 +0100toorevitimirp(~tooreviti@117.182.183.16) (Ping timeout: 260 seconds)
2020-12-03 16:34:31 +0100 <exarkun> I think I understand `ConduitT` a little better now, at least, thanks
2020-12-03 16:34:35 +0100bahamas(~lucian@unaffiliated/bahamas) (Quit: leaving)
2020-12-03 16:35:01 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection)
2020-12-03 16:35:16 +0100harwiltz(~harwiltz@modemcable052.131-226-192.mc.videotron.ca)
2020-12-03 16:36:49 +0100christo(~chris@81.96.113.213) (Ping timeout: 264 seconds)
2020-12-03 16:36:52 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-12-03 16:37:04 +0100 <harwiltz> Hello all. I tried recompiling my XMonad config today, and suddenly the build fails because it can't load XMonad.Actions.Volume.It says that the package xmonad-extras-<hash> is unusable due to missing dependencies, which are all packages with hashes.
2020-12-03 16:37:15 +0100 <merijn> exarkun: ConduitT is best thought of as a stream/conveyor built "ConduitT i o m r" 'i's go in, 'o's come out, processing might trigger effects 'm' and when done processing input, return 'r'
2020-12-03 16:37:27 +0100 <harwiltz> When I search for these packages on my system, I find their corresponding libraries but with different hash suffiexs.
2020-12-03 16:37:30 +0100_linker_(~linker@2a02:a31a:a041:9a80:2cd0:74ec:fa0:a975)
2020-12-03 16:37:31 +0100 <harwiltz> suffixes
2020-12-03 16:38:04 +0100 <merijn> exarkun: So, "dropC 4" consumes the first 4 'i's coming in (and not sending anything out), then all further 'i's get forwarded to whatever you compose dropC with
2020-12-03 16:38:08 +0100 <exarkun> merijn: makes sense! I had only gotten as far as considering i and o before, m and r were off my radar :)
2020-12-03 16:39:01 +0100britva(~britva@2a02:aa13:7240:2980:c416:eb6b:963d:a119)
2020-12-03 16:39:45 +0100 <merijn> exarkun: So you'd do something like 'do { result <- takeC 4 .| yourFold; stuffWith result }" here the first 4 inputs go into yourFold, after which takeC stops giving data (causing the fold to finish and return a result) the remaining inputs go into "stuffWith result"
2020-12-03 16:40:26 +0100 <harwiltz> Nvm sorry, just rebuilt xmonad-extras and that solved it
2020-12-03 16:40:28 +0100harwiltz(~harwiltz@modemcable052.131-226-192.mc.videotron.ca) (Quit: WeeChat 2.9)
2020-12-03 16:42:28 +0100dnlkrgr(~dnlkrgr@HSI-KBW-046-005-005-080.hsi8.kabel-badenwuerttemberg.de)
2020-12-03 16:43:24 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2020-12-03 16:43:51 +0100christo(~chris@81.96.113.213)
2020-12-03 16:44:05 +0100 <exarkun> merijn: I thiiink I get it. I'll have practice a bit, probably.
2020-12-03 16:45:00 +0100 <exarkun> I think I keep confusing the `do`-block monad type with the ConduitT result type
2020-12-03 16:45:22 +0100 <exarkun> That is, mixing them up when thinking about how the pieces fit together.
2020-12-03 16:45:40 +0100 <merijn> exarkun: For conduit do notation is for "first process inputs with this conduit, then when it finishes, continue with this one, etc."
2020-12-03 16:45:59 +0100 <merijn> Whereas you want .| for sequencing things into a stream
2020-12-03 16:51:05 +0100 <exarkun> Hm I don't think I understand the distinction. Is it about where processing "continues" from?
2020-12-03 16:51:42 +0100cads(~cads@ip-64-72-99-232.lasvegas.net)
2020-12-03 16:52:58 +0100 <merijn> exarkun: if you have "foo .| bar" inputs go into foo which then yields results to 'bar' for further processing
2020-12-03 16:53:56 +0100 <exarkun> That part seems pretty straightforward at least :)
2020-12-03 16:53:57 +0100Zetagon(~leo@c151-177-52-233.bredband.comhem.se)
2020-12-03 16:53:57 +0100 <merijn> exarkun: But, suppose you want "foo" to, say, first compute something from the first 4 inputs and then use that to transform the rest, then you get code like above "foo = do { result <- takeC 4 .| yourFold; stuffWith result }'
2020-12-03 16:54:49 +0100 <exarkun> Maybe since I haven't implemented a fold (nor tried to learn how I would do that), only seen `foldC`, that part is harder to follow.
2020-12-03 16:55:05 +0100 <merijn> So now all inputs go into 'foo', still. But the first 4 inputs to foo get fed into yourFold (due to takeC 4), which returns a result. Then all other inputs to 'foo' (beyond the first 4) get fed into "stuffWith result" (and the output of that goes to bar)
2020-12-03 16:57:01 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-braorqjpjuqmensd)
2020-12-03 16:57:53 +0100 <exarkun> Apart from how exactly folds are implemented, I think I follow that part.
2020-12-03 16:58:33 +0100 <exarkun> And it seems like it means that the reason I started using do here - to implement some messy, not-very-well-thought-out-yet logic on message inputs and outputs in an imperative style - might not have been wrong
2020-12-03 16:59:28 +0100 <merijn> exarkun: Yeah, for Conduit you wanna think in pipeline (stages)
2020-12-03 16:59:41 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
2020-12-03 16:59:59 +0100 <merijn> "my input is IRC events and I wanna turn that into output X" and then worry about what that means
2020-12-03 17:00:35 +0100Saukk(~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4)
2020-12-03 17:00:42 +0100urek(~urek@2804:7f1:e10a:9644:81a3:232e:2e84:9c43)
2020-12-03 17:01:37 +0100exarkunnods
2020-12-03 17:02:01 +0100 <exarkun> gotta set this aside for now, alas. thanks very much for the hand holding.
2020-12-03 17:03:20 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
2020-12-03 17:04:56 +0100hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Read error: Connection reset by peer)
2020-12-03 17:05:06 +0100Rudd0(~Rudd0@185.189.115.98)
2020-12-03 17:05:25 +0100Zetagon(~leo@c151-177-52-233.bredband.comhem.se) (Ping timeout: 240 seconds)
2020-12-03 17:05:38 +0100urek(~urek@2804:7f1:e10a:9644:81a3:232e:2e84:9c43) (Quit: urek)
2020-12-03 17:06:04 +0100codeAlways(uid272474@gateway/web/irccloud.com/x-qyqdgokdlfkqbekd)
2020-12-03 17:06:09 +0100codeAlways(uid272474@gateway/web/irccloud.com/x-qyqdgokdlfkqbekd) (Client Quit)
2020-12-03 17:06:10 +0100urek(~urek@2804:7f1:e10a:9644:81a3:232e:2e84:9c43)
2020-12-03 17:06:10 +0100Zetagon(~leo@c151-177-52-233.bredband.comhem.se)
2020-12-03 17:06:26 +0100 <nshepperd2> muahaha. i now have a parsing library which embeds both PCRE and Read within scanf, within trifecta
2020-12-03 17:06:50 +0100 <merijn> nshepperd2: I'm pretty sure there are laws against this...
2020-12-03 17:06:50 +0100 <nshepperd2> unlimited power~
2020-12-03 17:07:01 +0100 <merijn> Like the Geneva convention >.>
2020-12-03 17:07:06 +0100ubert(~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) (Remote host closed the connection)
2020-12-03 17:07:22 +0100 <nshepperd2> all my typeclasses are lawless
2020-12-03 17:08:27 +0100 <mouseghost> hammurabi codex
2020-12-03 17:11:13 +0100 <nshepperd2> an example: parse (scanf "%/[a-z]+/s = %r") "foo = True" :: (Text, Bool)
2020-12-03 17:11:21 +0100 <nshepperd2> ("foo",True)
2020-12-03 17:12:05 +0100 <nshepperd2> scanf "%/[a-z]+/s = %r" :: Trifecta.Parser (Text, Bool)
2020-12-03 17:12:34 +0100 <merijn> I'm not sure whether to be impressed or disgusted
2020-12-03 17:12:44 +0100 <Clint> why not both
2020-12-03 17:12:49 +0100 <merijn> How do you know the return type? God awful typeclassery?
2020-12-03 17:13:01 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-03 17:13:33 +0100 <AWizzArd> dminuoso: do you know if Stylish-Haskell now also uses the GHC parser? I think in the past it had its own, but it could break after syntax changes.
2020-12-03 17:13:44 +0100 <nshepperd2> relatively tame typeclassery
2020-12-03 17:14:01 +0100 <merijn> Is it time for me to dig up my "auto-formatting is bad and you should feel bad" link again? >.>
2020-12-03 17:14:45 +0100z0(~z0@188.251.71.80) (Ping timeout: 240 seconds)
2020-12-03 17:14:58 +0100 <nshepperd2> I have typeclass instances (Scanf a, Scanf b) => Scanf (a, b) which just combine monadic parsers applicatively
2020-12-03 17:16:25 +0100Boomerang(~Boomerang@xd520f68c.cust.hiper.dk)
2020-12-03 17:17:09 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection)
2020-12-03 17:17:31 +0100danso(~dan@69-165-210-185.cable.teksavvy.com)
2020-12-03 17:17:49 +0100 <nshepperd2> (you do have to specify put a type signature if the return type is ambiguous. there's no fancy format string typechecker magic)
2020-12-03 17:18:07 +0100pavonia(~user@unaffiliated/siracusa)
2020-12-03 17:18:35 +0100fryguybob(~fryguybob@cpe-74-65-31-113.rochester.res.rr.com) (Ping timeout: 256 seconds)
2020-12-03 17:19:16 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 246 seconds)
2020-12-03 17:19:26 +0100Tops2(~Tobias@dyndsl-095-033-024-237.ewe-ip-backbone.de)
2020-12-03 17:19:46 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-12-03 17:20:31 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-hhucsrtimygjrzko)
2020-12-03 17:20:45 +0100 <AWizzArd> merijn: find that link pls (:
2020-12-03 17:23:37 +0100jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection)
2020-12-03 17:23:49 +0100fryguybob(~fryguybob@cpe-74-65-31-113.rochester.res.rr.com)
2020-12-03 17:25:57 +0100 <merijn> AWizzArd: https://twitter.com/comerijn/status/1257804634833420292
2020-12-03 17:27:25 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 240 seconds)
2020-12-03 17:29:14 +0100 <monochrom> You should keep bookmarks of your own tweets.
2020-12-03 17:30:40 +0100 <merijn> monochrom: I have it bookmarked, actually :p
2020-12-03 17:30:41 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection)
2020-12-03 17:30:59 +0100 <merijn> After I had to look it up for the 3rd time :p
2020-12-03 17:31:19 +0100 <monochrom> I guess in the long term the question "how to search through my bookmarks" and it's the same question all over again.
2020-12-03 17:33:03 +0100 <boxscape> that's obvious, use meta-bookmarks
2020-12-03 17:33:44 +0100 <merijn> SQLite database, tags and full-text search, duh
2020-12-03 17:33:48 +0100 <AWizzArd> hr hr hr
2020-12-03 17:34:12 +0100jmchael(~Chi1thang@87.112.60.168)
2020-12-03 17:36:07 +0100 <merijn> Facts: Everything is better with SQLite
2020-12-03 17:36:24 +0100borne(~fritjof@200116b864c920008cdf581d4c1cc02f.dip.versatel-1u1.de) (Ping timeout: 240 seconds)
2020-12-03 17:36:46 +0100borne(~fritjof@87.123.105.43)
2020-12-03 17:37:36 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 240 seconds)
2020-12-03 17:38:58 +0100chris8142(~chris8142@srvnet-01-071.ikbnet.co.at)
2020-12-03 17:40:17 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-12-03 17:41:25 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-12-03 17:41:36 +0100Zetagon(~leo@c151-177-52-233.bredband.comhem.se) (Ping timeout: 272 seconds)
2020-12-03 17:43:01 +0100sagax(~sagax_nb@213.138.71.146)
2020-12-03 17:43:50 +0100Yumasi(~guillaume@2a01:e0a:5cb:4430:e1ea:8f38:f518:4e69) (Ping timeout: 264 seconds)
2020-12-03 17:46:42 +0100chris8142(~chris8142@srvnet-01-071.ikbnet.co.at) (Quit: WeeChat 3.0)
2020-12-03 17:46:49 +0100 <Chousuke> I think Firefox stores bookmarks in a SQLite database? :P
2020-12-03 17:47:03 +0100chris8142(~chris8142@srvnet-01-071.ikbnet.co.at)
2020-12-03 17:47:17 +0100 <merijn> It does
2020-12-03 17:47:22 +0100 <solonarv> however it stores them, it definitely has tags (that I don't use :p)
2020-12-03 17:47:32 +0100 <merijn> Also, literally every browser uses SQLite
2020-12-03 17:47:33 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-12-03 17:47:40 +0100 <Chousuke> as they should
2020-12-03 17:47:42 +0100 <merijn> thunderbird and Apple's Mail.app use it for email too
2020-12-03 17:47:50 +0100 <Chousuke> SQLite is good software.
2020-12-03 17:47:54 +0100 <Chousuke> which is rare.
2020-12-03 17:49:33 +0100 <[exa]> postgresql is cool too
2020-12-03 17:50:03 +0100 <merijn> [exa]: Different usecase(s) :p
2020-12-03 17:50:06 +0100 <[exa]> but that pretty much finishes the list of good relational databases. :]
2020-12-03 17:50:10 +0100 <[exa]> yes, certainly
2020-12-03 17:54:11 +0100 <Chousuke> both have a focus on being good at what they do and slowly expanding their capabilities rather than first trying to do everything and figuring out how to do it well only afterwards :P
2020-12-03 17:54:29 +0100AlterEgo__(~ladew@124-198-158-163.dynamic.caiway.nl)
2020-12-03 17:54:39 +0100AlterEgo-(~ladew@124-198-158-163.dynamic.caiway.nl) (Read error: Connection reset by peer)
2020-12-03 17:55:23 +0100loller(uid358106@gateway/web/irccloud.com/x-iymviwnzwlbemvjr)
2020-12-03 17:55:26 +0100loller(uid358106@gateway/web/irccloud.com/x-iymviwnzwlbemvjr) (Client Quit)
2020-12-03 17:55:47 +0100loller_(uid358106@gateway/web/irccloud.com/x-ystjmforbrvlleet)
2020-12-03 17:55:55 +0100drincruz_(~adriancru@ool-44c748be.dyn.optonline.net)
2020-12-03 17:57:52 +0100phaul(~phaul@ruby/staff/phaul)
2020-12-03 17:58:58 +0100drincruz(~adriancru@ool-44c748be.dyn.optonline.net) (Ping timeout: 265 seconds)
2020-12-03 18:03:04 +0100shutdown_-h_now(~arjan@2001:1c06:2d0b:2312:3da6:b84a:a587:6e3b) (Ping timeout: 240 seconds)
2020-12-03 18:05:05 +0100 <dsal> sqlite is the sane way to put data into a file.
2020-12-03 18:05:16 +0100 <dsal> postgres is a pretty good database
2020-12-03 18:06:39 +0100 <sm[m]> Chousuke++
2020-12-03 18:07:08 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2020-12-03 18:09:00 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-12-03 18:10:15 +0100christo(~chris@81.96.113.213)
2020-12-03 18:10:36 +0100hexo-(~hexo@83.167.228.130) (Ping timeout: 240 seconds)
2020-12-03 18:11:23 +0100Adluc(~Adluc@2a01:430:17:1::ffff:328) (Ping timeout: 260 seconds)
2020-12-03 18:13:53 +0100kritzefitz(~kritzefit@212.86.56.80)
2020-12-03 18:14:26 +0100Boomerang(~Boomerang@xd520f68c.cust.hiper.dk) (Ping timeout: 265 seconds)
2020-12-03 18:14:33 +0100nineonine_(~nineonine@50.216.62.2)
2020-12-03 18:16:49 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2)
2020-12-03 18:17:02 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 260 seconds)
2020-12-03 18:17:02 +0100nineonine_nineonine
2020-12-03 18:18:24 +0100shutdown_-h_now(~arjan@2001:1c06:2d0b:2312:a913:5438:3a24:3de8)
2020-12-03 18:20:39 +0100ClaudiusMaximus(~claude@unaffiliated/claudiusmaximus) (Quit: ->)
2020-12-03 18:21:10 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) (Ping timeout: 244 seconds)
2020-12-03 18:21:20 +0100ClaudiusMaximus(~claude@223.153.198.146.dyn.plus.net)
2020-12-03 18:21:21 +0100borne(~fritjof@87.123.105.43) (Quit: WeeChat 2.9)
2020-12-03 18:21:26 +0100ClaudiusMaximus(~claude@223.153.198.146.dyn.plus.net) (Changing host)
2020-12-03 18:21:26 +0100ClaudiusMaximus(~claude@unaffiliated/claudiusmaximus)
2020-12-03 18:23:45 +0100fendor(~fendor@91.141.2.63.wireless.dyn.drei.com) (Read error: Connection reset by peer)
2020-12-03 18:24:48 +0100borne(~fritjof@200116b864c92000f60f2508b10af3d6.dip.versatel-1u1.de)
2020-12-03 18:26:11 +0100fendor(~fendor@91.141.2.63.wireless.dyn.drei.com)
2020-12-03 18:29:07 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu)
2020-12-03 18:30:15 +0100Adluc(~Adluc@2a01:430:17:1::ffff:328)
2020-12-03 18:31:51 +0100juuandyy(~juuandyy@90.166.144.65)
2020-12-03 18:32:08 +0100alp(~alp@2a01:e0a:58b:4920:b500:dcf8:65db:294b) (Remote host closed the connection)
2020-12-03 18:32:29 +0100alp(~alp@2a01:e0a:58b:4920:d1b5:6b8:6f38:d8f3)
2020-12-03 18:34:26 +0100arahael1(~arahael@124-168-0-93.tpgi.com.au)
2020-12-03 18:36:19 +0100asthasr(~asthasr@162.210.29.120)
2020-12-03 18:36:56 +0100arahael(~arahael@124-150-64-50.tpgi.com.au) (Ping timeout: 256 seconds)
2020-12-03 18:37:05 +0100pokid(~pokid@unaffiliated/pokid)
2020-12-03 18:37:28 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-12-03 18:37:50 +0100alp(~alp@2a01:e0a:58b:4920:d1b5:6b8:6f38:d8f3) (Ping timeout: 264 seconds)
2020-12-03 18:37:52 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-03 18:38:23 +0100laurenceday(~leday@173.203.125.91.dyn.plus.net) (Quit: Leaving.)
2020-12-03 18:38:55 +0100chaosmasttter(~chaosmast@p200300c4a7122601056aeb346f192a12.dip0.t-ipconnect.de) (Quit: WeeChat 2.9)
2020-12-03 18:39:15 +0100cads2(~cads@ip-64-72-99-232.lasvegas.net)
2020-12-03 18:40:42 +0100hexo-(~hexo@83.167.228.130)
2020-12-03 18:41:34 +0100Mrbuck(~Mrbuck@gateway/tor-sasl/mrbuck)
2020-12-03 18:41:53 +0100cads(~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 256 seconds)
2020-12-03 18:42:14 +0100ph88(~ph88@ip5f5af6cd.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
2020-12-03 18:43:08 +0100Tops2(~Tobias@dyndsl-095-033-024-237.ewe-ip-backbone.de) (Quit: Leaving.)
2020-12-03 18:43:29 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2020-12-03 18:44:15 +0100Tops2(~Tobias@dyndsl-095-033-024-237.ewe-ip-backbone.de)
2020-12-03 18:44:36 +0100carlomagno(~cararell@148.87.23.11) (Ping timeout: 240 seconds)
2020-12-03 18:45:48 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2)
2020-12-03 18:46:20 +0100cads2(~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 256 seconds)
2020-12-03 18:47:49 +0100anhydrite(~anhydrite@4e69b241.skybroadband.com) (Ping timeout: 246 seconds)
2020-12-03 18:48:01 +0100chris8142(~chris8142@srvnet-01-071.ikbnet.co.at) (Quit: WeeChat 3.0)
2020-12-03 18:48:06 +0100p8m(p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 272 seconds)
2020-12-03 18:50:26 +0100gioyik(~gioyik@186.112.99.244)
2020-12-03 18:51:21 +0100Guest4563(~Siempre@4e69b241.skybroadband.com)
2020-12-03 18:54:15 +0100hexfive(~hexfive@50-47-142-195.evrt.wa.frontiernet.net)
2020-12-03 18:55:09 +0100 <justsomeguy> What is your opinion of fossil (the version control software that uses sqlite as a back-end)?
2020-12-03 18:57:49 +0100carlomagno(~cararell@148.87.23.12)
2020-12-03 18:58:34 +0100 <koz_> Mine is primarily 'whatever its merits, git has network effects and thus it's what'll get used nine times out of ten, merits be damned'.
2020-12-03 18:59:00 +0100theorbtwo(~theorb@cpc81822-swin19-2-0-cust3.3-1.cable.virginm.net)
2020-12-03 18:59:01 +0100theorb(~theorb@cpc81822-swin19-2-0-cust3.3-1.cable.virginm.net) (Ping timeout: 246 seconds)
2020-12-03 19:00:26 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) (Remote host closed the connection)
2020-12-03 19:01:33 +0100 <Chousuke> My opinion is that git's good enough :P
2020-12-03 19:01:59 +0100 <monochrom> :)
2020-12-03 19:02:24 +0100 <Chousuke> the UI is terrible, but the software itself is solid, so the good reasons to use alternatives just often aren't good enough
2020-12-03 19:03:13 +0100 <justsomeguy> To be honest I've been using various vcs' and still haven't incorporated any of them into my workflow in a productive way. They mostly serve as extended undo rather than a useful microblog of changes with narrative structure.
2020-12-03 19:03:44 +0100shf(~sheaf@2a01:cb19:80cc:7e00:bd72:6c13:4bde:b40f) (Read error: Connection reset by peer)
2020-12-03 19:04:25 +0100Ariakenom(~Ariakenom@h-98-128-229-53.NA.cust.bahnhof.se)
2020-12-03 19:04:34 +0100 <koz_> My experience with git is roughly this comic: https://xkcd.com/1597/
2020-12-03 19:05:09 +0100 <Chousuke> I think git was successful because it was such a huge improvement over the status quo in terms of what it enabled you to do, and it arrived at the right time.
2020-12-03 19:05:17 +0100 <Sonolin> yup
2020-12-03 19:05:47 +0100 <Sonolin> being created by Linus Torvalds is a lot of free promo as well
2020-12-03 19:05:50 +0100 <monochrom> haha koz_. Although, I haven't run into that kind of problems. (I'm a casual user.)
2020-12-03 19:06:55 +0100 <Chousuke> I'm pretty comfortable with git nowadays, so people nuking their projects unnecessarily bothers me somewhat :P
2020-12-03 19:08:05 +0100 <Chousuke> the UI is bad, but its internal workings are so straightforward that I can always just look up whatever magic incantation I need for the operation I want to do if I can't remember it
2020-12-03 19:08:21 +0100 <Sonolin> yea once you grok it it is really powerful
2020-12-03 19:08:35 +0100ph88(~ph88@95.90.246.205)
2020-12-03 19:08:36 +0100 <Sonolin> SourceTree is nice for those unwilling to learn
2020-12-03 19:10:33 +0100britva(~britva@2a02:aa13:7240:2980:c416:eb6b:963d:a119) (Quit: This computer has gone to sleep)
2020-12-03 19:10:34 +0100 <koz_> I'm semi-casual. Like, I've learned worse, but git is far from 'good enough' in my opinion. I just tolerate it because if you wanna contribute to basically anything nowadays you _have_ to know it.
2020-12-03 19:11:13 +0100 <Chousuke> I mean "good enough" in terms of what you can do with it
2020-12-03 19:11:35 +0100joaoh82_(~joaoh82@157-131-134-210.dedicated.static.sonic.net)
2020-12-03 19:11:41 +0100 <Chousuke> The problem with eg. subversion was that if you wanted to use it to untangle a tricky merge, you just couldn't
2020-12-03 19:11:41 +0100hackagegeos 0.4.0 - Bindings for GEOS. https://hackage.haskell.org/package/geos-0.4.0 (petefrance)
2020-12-03 19:12:04 +0100 <koz_> I actually used subversion in a professional setting.
2020-12-03 19:12:07 +0100 <koz_> Never again.
2020-12-03 19:12:19 +0100 <Chousuke> with git you can make temporary commits and add things piecemeal and rewrite things all you want, and that helps you deal with tricky situations
2020-12-03 19:12:19 +0100 <koz_> Like, if you can't do the equivalent of .gitignore, you are pretty badly designed IMHO.
2020-12-03 19:12:45 +0100 <Chousuke> with Subversion you just have a mess in your worktree and no help from the tool :P
2020-12-03 19:13:10 +0100geekosaurremembers when svn was a step *up*, though
2020-12-03 19:13:18 +0100 <geekosaur> everything is relative
2020-12-03 19:13:33 +0100 <Chousuke> oh yeah, the first source control I used was RCS :)
2020-12-03 19:13:33 +0100Saukk(~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) (Remote host closed the connection)
2020-12-03 19:13:42 +0100 <Chousuke> svn is definitely somewhat better than that.
2020-12-03 19:13:45 +0100 <geekosaur> I started out on SCCS
2020-12-03 19:13:49 +0100joaoh82(~joaoh82@157-131-134-210.dedicated.static.sonic.net) (Ping timeout: 260 seconds)
2020-12-03 19:14:07 +0100monochromcame from the time of .cvsignore
2020-12-03 19:14:38 +0100Aquazi(uid312403@gateway/web/irccloud.com/x-hleddgoteowwxjqp) (Quit: Connection closed for inactivity)
2020-12-03 19:14:54 +0100 <dminuoso> Is there a typeclass that gives us sort of equality of Maybe a or say Nothing ~= Just ""
2020-12-03 19:15:01 +0100 <dminuoso> Or Nothing ~= Just []
2020-12-03 19:15:01 +0100 <monochrom> So if you also mean that subversion can't do the equivalent of .cvsignore, that's disappointing. subversion was supposed to be one level up above cvs.
2020-12-03 19:15:16 +0100 <koz_> monochrom: AFAICT, no.
2020-12-03 19:15:30 +0100 <Chousuke> and Subversion is still decent for completely linear things like configuration, or for storing versions of binary artifacts.
2020-12-03 19:15:31 +0100 <jle`> dminuoso: compare on fold, maybe
2020-12-03 19:15:33 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 260 seconds)
2020-12-03 19:15:50 +0100alp(~alp@2a01:e0a:58b:4920:914d:f2ca:3630:62c6)
2020-12-03 19:15:53 +0100 <Sonolin> SVN always took *forever* to do anything too
2020-12-03 19:16:06 +0100 <dminuoso> jle`: Mmm, that would only work on foldables. The "" was supposed to talk about Text actually
2020-12-03 19:16:20 +0100 <dminuoso> Sorry about that, my brain is currently locked into OverloadedStrings
2020-12-03 19:16:24 +0100 <Chousuke> that's because if you deploy it the "standard" way, it does a gajillion HTTP requests to the server for pretty much anything
2020-12-03 19:16:54 +0100 <dminuoso> Also, I might need `Nothing ~= Just 0` as well..
2020-12-03 19:17:26 +0100 <Chousuke> at one point at work we had a graph showing audit failures against AD
2020-12-03 19:17:27 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection)
2020-12-03 19:17:29 +0100raichoo(~raichoo@dslb-188-101-186-206.188.101.pools.vodafone-ip.de) (Quit: Lost terminal)
2020-12-03 19:17:32 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-12-03 19:17:41 +0100 <dminuoso> For context, Im dealing with a particularly bad API that for some "unset" fields it gives me `{ "foo": "" }`, other times it gives me {"foo": null} or it just leaves the attribute away
2020-12-03 19:17:43 +0100 <Chousuke> and also audit successes
2020-12-03 19:17:55 +0100xcmw(~textual@cpe-69-133-55-43.cinci.res.rr.com)
2020-12-03 19:18:00 +0100 <Chousuke> and there were noticeable spikes in those numbers when someone checked out a large svn repo :P
2020-12-03 19:18:06 +0100 <dminuoso> And I want to write tests that verify that the thing Im putting in is the thing Im getting out..
2020-12-03 19:18:08 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-12-03 19:18:25 +0100 <geekosaur> nothing built in, because it's kinda poorly specified. depending on approach I could see Data.Default or Monoid
2020-12-03 19:19:48 +0100 <geekosaur> but combining either one with Maybe is a problem
2020-12-03 19:20:29 +0100conal(~conal@64.71.133.70)
2020-12-03 19:21:02 +0100 <geekosaur> some custom wrapped Maybe whose comparison function "promotes" Nothing to mempty (and unwraps a Just)?
2020-12-03 19:21:36 +0100 <dminuoso> % lower x | x == empty = Nothing; lower x = Just x
2020-12-03 19:21:37 +0100 <yahb> dminuoso:
2020-12-03 19:21:52 +0100 <dminuoso> % l =&= r == (lower =<< l) == (lower =<< r)
2020-12-03 19:21:53 +0100 <yahb> dminuoso: ; <interactive>:30:1: error: Precedence parsing error cannot mix `==' [infix 4] and `==' [infix 4] in the same infix expression
2020-12-03 19:22:02 +0100 <dminuoso> % l =&= r = (lower =<< l) == (lower =<< r)
2020-12-03 19:22:02 +0100 <yahb> dminuoso:
2020-12-03 19:22:14 +0100 <dminuoso> % Just "" =&= Nothing
2020-12-03 19:22:14 +0100 <yahb> dminuoso: True
2020-12-03 19:22:21 +0100 <dminuoso> Mmm.
2020-12-03 19:22:25 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 240 seconds)
2020-12-03 19:22:57 +0100 <dminuoso> geekosaur: ah yeah, promoting the other way seems saner.
2020-12-03 19:23:10 +0100 <monochrom> dminuoso: I wonder if instead of coding up a special equality, code up a normalization, Just a -> a, Nothing -> mempty or default.
2020-12-03 19:23:28 +0100 <geekosaur> that was basically what I proposed
2020-12-03 19:24:38 +0100 <dminuoso> Cheers, I think Ill go that road. I was on the tree of going the other direction, and it felt like unnecessary extra work
2020-12-03 19:24:40 +0100 <dminuoso> And the bind was weird
2020-12-03 19:25:08 +0100 <monochrom> @type fold
2020-12-03 19:25:09 +0100 <lambdabot> (Foldable t, Monoid m) => t m -> m
2020-12-03 19:25:16 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
2020-12-03 19:25:30 +0100 <monochrom> Yeah the normalization looks like fold if the wrapped type is a Foldable.
2020-12-03 19:25:47 +0100LKoen_(~LKoen@105.175.9.109.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
2020-12-03 19:25:52 +0100 <monochrom> Although, to get "Nothing -> 0" you have to jump through the hoop of Sum...
2020-12-03 19:26:15 +0100 <geekosaur> yeh, the problem there being Text is MonoFoldable…
2020-12-03 19:26:58 +0100 <monochrom> fromMaybe is a pretty low-tech one-liner solution for all cases.
2020-12-03 19:27:30 +0100 <monochrom> Don't bring in Day convolution if a simple fromMaybe does the job :)
2020-12-03 19:27:41 +0100britva(~britva@2a02:aa13:7240:2980:c416:eb6b:963d:a119)
2020-12-03 19:28:38 +0100zyklotomic(~ethan@unaffiliated/chocopuff)
2020-12-03 19:28:45 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-03 19:29:07 +0100 <zyklotomic> is it a bad idea to have a dependency on something like microlens?
2020-12-03 19:29:42 +0100 <zyklotomic> I want to use https://hackage.haskell.org/package/microlens for only a very small component just for slightly cleaner code
2020-12-03 19:29:51 +0100 <zyklotomic> are dependencies usually a bad idea
2020-12-03 19:29:54 +0100kritzefitz(~kritzefit@212.86.56.80) (Ping timeout: 272 seconds)
2020-12-03 19:31:23 +0100 <geekosaur> actually practically everything in the haskell world has dependencies
2020-12-03 19:31:57 +0100 <geekosaur> this is not a "everything but the kitchen sink is in base" ecosystem
2020-12-03 19:33:11 +0100benjamin-l(~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e61)
2020-12-03 19:34:05 +0100 <monochrom> Pulling in a huge library just to use one single thing from it, and it is a one-liner "foo f g x y z = f x (g y z)", that's a bad idea.
2020-12-03 19:34:24 +0100 <monochrom> Pulling in a huge library because you actually use, say, 60% of it, that's a good idea.
2020-12-03 19:34:34 +0100 <monochrom> In other words, as always, it depends.
2020-12-03 19:35:31 +0100m0rphism(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
2020-12-03 19:35:38 +0100juuandyy(~juuandyy@90.166.144.65) (Ping timeout: 256 seconds)
2020-12-03 19:36:27 +0100Johan63(910e67ae@customer-145-14-103-174.stosn.net)
2020-12-03 19:36:39 +0100 <koz_> Also, not everythign that looks like a dependency truly is. vector or containers, for example, come with GHC.
2020-12-03 19:36:50 +0100Johan63(910e67ae@customer-145-14-103-174.stosn.net) (Remote host closed the connection)
2020-12-03 19:36:59 +0100 <monochrom> vector still doesn't. containers does.
2020-12-03 19:37:11 +0100hackagecircular 0.2.0 - Circular fixed-sized mutable vectors https://hackage.haskell.org/package/circular-0.2.0 (dschrempf)
2020-12-03 19:37:14 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-12-03 19:37:15 +0100 <monochrom> text did not, but does now, since 8.6 or something
2020-12-03 19:37:38 +0100 <koz_> monochrom: Wait really? Vector _isn't_ a boot library?
2020-12-03 19:37:42 +0100 <monochrom> No.
2020-12-03 19:37:45 +0100 <koz_> TIL.
2020-12-03 19:37:54 +0100 <koz_> Ah, because it's _array_, right?
2020-12-03 19:38:04 +0100 <geekosaur> Array's the bootlib, yes
2020-12-03 19:38:11 +0100hackagegeos 0.4.1 - Bindings for GEOS. https://hackage.haskell.org/package/geos-0.4.1 (petefrance)
2020-12-03 19:38:13 +0100 <monochrom> containers isn't a boot library in the strictest sense either. But someone decided it's good to include.
2020-12-03 19:38:50 +0100 <monochrom> And I am grateful that I don't have to take 20 minutes to rebuild text for every new version of GHC.
2020-12-03 19:40:03 +0100 <geekosaur> wasn't it that it used to be and was never really removed after TH or ghc-lib was reworked to not expose containers?
2020-12-03 19:41:02 +0100 <monochrom> I don't know. But interesting.
2020-12-03 19:41:16 +0100 <zyklotomic> that makes sense, it just feels uncomfortable having dependencies for small things, even somehing like vector
2020-12-03 19:41:22 +0100 <monochrom> I can believe it's more like someone forgot to exclude it, heh.
2020-12-03 19:42:12 +0100 <geekosaur> ot sure it's "forgot" or "too many people just blindly assume it's there now"
2020-12-03 19:42:24 +0100joaoh82_(~joaoh82@157-131-134-210.dedicated.static.sonic.net) (Ping timeout: 260 seconds)
2020-12-03 19:42:26 +0100christo(~chris@81.96.113.213)
2020-12-03 19:42:48 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2020-12-03 19:42:59 +0100 <monochrom> mtl went through several toggles
2020-12-03 19:43:59 +0100 <monochrom> to give you a sense that these things can be observatinally equivalent to politics.
2020-12-03 19:44:30 +0100 <monochrom> Don't look for a technical-merit explanation when a political explanation suffices.
2020-12-03 19:44:49 +0100joaoh82(~joaoh82@143.179.113.4)
2020-12-03 19:47:01 +0100christo(~chris@81.96.113.213) (Ping timeout: 264 seconds)
2020-12-03 19:47:43 +0100joaoh82(~joaoh82@143.179.113.4) (Remote host closed the connection)
2020-12-03 19:48:16 +0100joaoh82(~joaoh82@157-131-134-210.dedicated.static.sonic.net)
2020-12-03 19:49:32 +0100jneira(5127ade4@gateway/web/cgi-irc/kiwiirc.com/ip.81.39.173.228) (Quit: Connection closed)
2020-12-03 19:49:37 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-12-03 19:50:16 +0100contiver(~contiver@84-115-64-44.wifi.dynamic.surfer.at)
2020-12-03 19:50:40 +0100hackagemmsyn7h 0.8.1.0 - Produces a sound recording specified by the Ukrainian text. https://hackage.haskell.org/package/mmsyn7h-0.8.1.0 (OleksandrZhabenko)
2020-12-03 19:53:45 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 240 seconds)
2020-12-03 19:57:10 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu) (Ping timeout: 245 seconds)
2020-12-03 19:58:59 +0100matryoshka(~matryoshk@184.75.223.227) (Read error: Connection reset by peer)
2020-12-03 19:59:02 +0100matryoshka`(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
2020-12-03 19:59:58 +0100mouseghost(~draco@wikipedia/desperek) (Quit: mew wew)
2020-12-03 20:00:00 +0100contiver(~contiver@84-115-64-44.wifi.dynamic.surfer.at) (Ping timeout: 256 seconds)
2020-12-03 20:00:50 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2)
2020-12-03 20:00:53 +0100hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net)
2020-12-03 20:01:02 +0100alp(~alp@2a01:e0a:58b:4920:914d:f2ca:3630:62c6) (Remote host closed the connection)
2020-12-03 20:01:31 +0100alp(~alp@2a01:e0a:58b:4920:914d:f2ca:3630:62c6)
2020-12-03 20:01:31 +0100 <hyperisco> is there a way to run processes (like createProcess) but work with handles with Text instead of String?
2020-12-03 20:02:02 +0100 <merijn> zyklotomic: Why though? Isn't great that something as incredibly wired in and unchangeable as "arrays" in other languages can simply be implemented as a library?
2020-12-03 20:02:07 +0100gxt(~gxt@gateway/tor-sasl/gxt) (Remote host closed the connection)
2020-12-03 20:02:50 +0100gxt(~gxt@gateway/tor-sasl/gxt)
2020-12-03 20:02:51 +0100Boomerang(~Boomerang@xd520f68c.cust.hiper.dk)
2020-12-03 20:02:59 +0100 <monochrom> That goes to what I sometimes explain to students.
2020-12-03 20:03:34 +0100berberman(~berberman@unaffiliated/berberman)
2020-12-03 20:03:36 +0100 <monochrom> It is a triumph of language design that, for example, cons list can be user-defined in Haskell, and even made as efficient as any "built-in primitive" story.
2020-12-03 20:03:59 +0100borne(~fritjof@200116b864c92000f60f2508b10af3d6.dip.versatel-1u1.de) (Ping timeout: 244 seconds)
2020-12-03 20:04:00 +0100 <tomjaguarpaw> hyperisco: What do you mean? Do you want functions like hGetLine :: Handle -> IO Text ?
2020-12-03 20:04:08 +0100 <hyperisco> yeah
2020-12-03 20:04:34 +0100 <monochrom> But if everyone did define their own cons lists, inter-operability of two libraries would go out of the Window. It is still a good idea that the standard library provides one version so everyone is on the same page.
2020-12-03 20:04:38 +0100 <tomjaguarpaw> hyperisco: https://www.stackage.org/lts-13.21/hoogle?q=Handle%20-%3E%20IO%20Text
2020-12-03 20:04:43 +0100 <tomjaguarpaw> Those?
2020-12-03 20:04:50 +0100berberman_(~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds)
2020-12-03 20:04:57 +0100 <hyperisco> duuno, it isn't loaded
2020-12-03 20:05:10 +0100 <tomjaguarpaw> Stackage can be pretty slow ...
2020-12-03 20:05:18 +0100 <hyperisco> there it goes, yes, thanks
2020-12-03 20:05:26 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) (Ping timeout: 264 seconds)
2020-12-03 20:05:38 +0100 <tomjaguarpaw> You're welcome
2020-12-03 20:06:12 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2)
2020-12-03 20:06:19 +0100kritzefitz(~kritzefit@212.86.56.80)
2020-12-03 20:06:33 +0100juuandyy(~juuandyy@90.166.144.65)
2020-12-03 20:06:53 +0100 <monochrom> Actually cons list is not even the most convincing example.
2020-12-03 20:06:54 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-12-03 20:07:02 +0100 <monochrom> Here is the most convincing example: Booleans.
2020-12-03 20:08:22 +0100 <monochrom> Booleans can be user-defined in Haskell. Hackage could be full of user-defined third-party boolean libraries.
2020-12-03 20:08:41 +0100hackagehaskoin-store 0.38.4 - Storage and index for Bitcoin and Bitcoin Cash https://hackage.haskell.org/package/haskoin-store-0.38.4 (jprupp)
2020-12-03 20:09:31 +0100 <monochrom> This is a triumph of core language design. But if we really allowed proliferation of third-party booleans on hackage just because "isn't it cool that GHC is decoupled from booleans?", well that actually is far from cool.
2020-12-03 20:09:40 +0100hackager-glpk-phonetic-languages-ukrainian-durations 0.2.2.0 - Can be used to calculate the durations of the approximations of the Ukrainian phonemes. https://hackage.haskell.org/package/r-glpk-phonetic-languages-ukrainian-durations-0.2.2.0 (OleksandrZhabenko)
2020-12-03 20:12:29 +0100 <hyperisco> hm I guess there is this too which is a little annoying https://hackage.haskell.org/package/process-1.6.10.0/docs/System-Process.html#v:proc
2020-12-03 20:13:50 +0100boxscape(54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55) (Ping timeout: 256 seconds)
2020-12-03 20:13:50 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-12-03 20:14:08 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-12-03 20:15:11 +0100miguel_clean(~Miguel@89-72-187-203.dynamic.chello.pl) (Read error: Connection reset by peer)
2020-12-03 20:15:17 +0100 <tomjaguarpaw> hyperisco: You mean that it takes Strings rather than Texts?
2020-12-03 20:15:22 +0100 <hyperisco> yes
2020-12-03 20:15:44 +0100 <tomjaguarpaw> Yeah, I don't know any API that uses Text for createProcess. Perhaps one exists.
2020-12-03 20:18:06 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu)
2020-12-03 20:19:50 +0100joaoh82(~joaoh82@157-131-134-210.dedicated.static.sonic.net) (Ping timeout: 256 seconds)
2020-12-03 20:20:01 +0100xcmw(~textual@cpe-69-133-55-43.cinci.res.rr.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-03 20:22:28 +0100Lord_of_Life(~Lord@46.217.221.243)
2020-12-03 20:22:28 +0100Lord_of_Life(~Lord@46.217.221.243) (Changing host)
2020-12-03 20:22:28 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362)
2020-12-03 20:23:30 +0100howdoi(uid224@gateway/web/irccloud.com/x-oyiccouvdvnehmhe)
2020-12-03 20:23:43 +0100vicfred(~vicfred@unaffiliated/vicfred) (Ping timeout: 246 seconds)
2020-12-03 20:25:47 +0100nkatte(~nkatte@2804:14c:7982:10c9:4e1d:96ff:fe53:98e1)
2020-12-03 20:25:56 +0100nkatte(~nkatte@2804:14c:7982:10c9:4e1d:96ff:fe53:98e1) (Read error: Connection reset by peer)
2020-12-03 20:26:14 +0100nkatte(~nkatte@2804:14c:7982:10c9:4e1d:96ff:fe53:98e1)
2020-12-03 20:28:27 +0100xcmw(~textual@cpe-69-133-55-43.cinci.res.rr.com)
2020-12-03 20:28:48 +0100DavidEichmann(~david@62.110.198.146.dyn.plus.net)
2020-12-03 20:31:58 +0100nkatte(~nkatte@2804:14c:7982:10c9:4e1d:96ff:fe53:98e1) (Quit: nkatte)
2020-12-03 20:32:18 +0100nkatte(~nkatte@2804:14c:7982:10c9:4e1d:96ff:fe53:98e1)
2020-12-03 20:32:22 +0100_deepfire(~user@80.92.100.69) (Remote host closed the connection)
2020-12-03 20:34:55 +0100joaoh82(~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net)
2020-12-03 20:36:34 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311) (Read error: Connection reset by peer)
2020-12-03 20:36:54 +0100juuandyy(~juuandyy@90.166.144.65) (Ping timeout: 256 seconds)
2020-12-03 20:37:13 +0100justsomeguy(~justsomeg@216.186.218.241)
2020-12-03 20:37:13 +0100justsomeguy(~justsomeg@216.186.218.241) (Changing host)
2020-12-03 20:37:13 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2020-12-03 20:37:41 +0100hackagemail-pool 2.2.2 - Preconfigured email connection pool on top of smtp. https://hackage.haskell.org/package/mail-pool-2.2.2 (Jappie)
2020-12-03 20:37:59 +0100nkatte(~nkatte@2804:14c:7982:10c9:4e1d:96ff:fe53:98e1) (Quit: nkatte)
2020-12-03 20:40:06 +0100cosimone(~cosimone@93-47-228-249.ip115.fastwebnet.it) (Quit: cosimone)
2020-12-03 20:47:18 +0100dyniec[m](dyniecmatr@gateway/shell/matrix.org/x-wodmmdskrlskbezg)
2020-12-03 20:48:30 +0100kuribas(~user@ptr-25vy0i8gptzu7g9n288.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2020-12-03 20:49:32 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 256 seconds)
2020-12-03 20:51:53 +0100seveg(~gabriel@2a02-ab04-0249-8d00-3603-db93-c217-257c.dynamic.v6.chello.sk) (Quit: WeeChat 3.0)
2020-12-03 20:53:03 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311) (Read error: Connection reset by peer)
2020-12-03 20:53:35 +0100justsomeguy(~justsomeg@216.186.218.241)
2020-12-03 20:53:35 +0100justsomeguy(~justsomeg@216.186.218.241) (Changing host)
2020-12-03 20:53:35 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2020-12-03 20:56:25 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Read error: Connection reset by peer)
2020-12-03 20:56:49 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2020-12-03 20:58:40 +0100christo(~chris@81.96.113.213)
2020-12-03 20:59:10 +0100 <hyperisco> any reason you can think stack is suddenly taking over a minute to link a small program
2020-12-03 20:59:46 +0100zyklotomic(~ethan@unaffiliated/chocopuff) (Ping timeout: 246 seconds)
2020-12-03 20:59:52 +0100joaj(~joaj@2001:690:2100:1b:a36f:f7ab:d46c:98f0) (Quit: WeeChat 2.9)
2020-12-03 21:00:42 +0100Zetagon(~leo@c151-177-52-233.bredband.comhem.se)
2020-12-03 21:00:58 +0100danza_(~francesco@151.53.73.59)
2020-12-03 21:01:28 +0100 <monochrom> bad sector
2020-12-03 21:02:34 +0100 <hyperisco> man I have enough spurious problems don't be saying that
2020-12-03 21:03:10 +0100danza__(~francesco@151.53.83.218) (Ping timeout: 260 seconds)
2020-12-03 21:03:13 +0100christo(~chris@81.96.113.213) (Ping timeout: 264 seconds)
2020-12-03 21:03:24 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311) ()
2020-12-03 21:05:05 +0100jespada(~jespada@90.254.245.49) (Ping timeout: 240 seconds)
2020-12-03 21:05:47 +0100britva(~britva@2a02:aa13:7240:2980:c416:eb6b:963d:a119) (Quit: This computer has gone to sleep)
2020-12-03 21:06:04 +0100britva(~britva@2a02:aa13:7240:2980:c416:eb6b:963d:a119)
2020-12-03 21:07:22 +0100jespada(~jespada@90.254.245.49)
2020-12-03 21:07:41 +0100hackagechessIO 0.5.0.0 - Basic chess library https://hackage.haskell.org/package/chessIO-0.5.0.0 (mlang)
2020-12-03 21:08:19 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-12-03 21:15:36 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 256 seconds)
2020-12-03 21:15:42 +0100hackagemail-pool 2.2.3 - Preconfigured email connection pool on top of smtp. https://hackage.haskell.org/package/mail-pool-2.2.3 (Jappie)
2020-12-03 21:17:18 +0100britva(~britva@2a02:aa13:7240:2980:c416:eb6b:963d:a119) (Quit: This computer has gone to sleep)
2020-12-03 21:23:12 +0100cosimone(~cosimone@93-47-228-249.ip115.fastwebnet.it)
2020-12-03 21:23:12 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-12-03 21:23:22 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-12-03 21:23:45 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-12-03 21:24:09 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-03 21:24:25 +0100 <dminuoso> 19:27:29 monochrom | Don't bring in Day convolution if a simple fromMaybe does the job :)
2020-12-03 21:24:31 +0100 <dminuoso> Hold on, I can use Day convolution here?
2020-12-03 21:24:32 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
2020-12-03 21:24:46 +0100 <geekosaur> heh
2020-12-03 21:25:04 +0100 <monochrom> No, I'm just tossing out Day convolution blindly as a stereotypical example of advanced math.
2020-12-03 21:25:27 +0100 <monochrom> Like, "adjunction" is no longer intimidating.
2020-12-03 21:27:16 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-03 21:27:25 +0100joaoh82(~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Ping timeout: 246 seconds)
2020-12-03 21:27:38 +0100vicfred(~vicfred@unaffiliated/vicfred)
2020-12-03 21:28:05 +0100knupfer(~Thunderbi@200116b82cc3670094f77ab4f8d612cb.dip.versatel-1u1.de)
2020-12-03 21:28:49 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
2020-12-03 21:30:49 +0100joaoh82(~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net)
2020-12-03 21:31:41 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-03 21:33:42 +0100sunweaver1(~sunweaver@185.163.110.125) (Remote host closed the connection)
2020-12-03 21:36:46 +0100christo(~chris@81.96.113.213)
2020-12-03 21:36:47 +0100nf(~n@monade.li) (Quit: Fairfarren.)
2020-12-03 21:37:12 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
2020-12-03 21:37:28 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-12-03 21:37:51 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-03 21:38:01 +0100 <dolio> You mean, basic math that people are scared of. Not advanced math.
2020-12-03 21:38:18 +0100AlterEgo__(~ladew@124-198-158-163.dynamic.caiway.nl) (Quit: Leaving)
2020-12-03 21:41:59 +0100nf(~n@monade.li)
2020-12-03 21:43:13 +0100kosmikus(~kosmikus@nullzig.kosmikus.org) (Ping timeout: 256 seconds)
2020-12-03 21:43:29 +0100kosmikus(~kosmikus@haskell/developer/kosmikus)
2020-12-03 21:43:40 +0100Feuermagier(~Feuermagi@213.178.26.41)
2020-12-03 21:45:23 +0100Nahra(~Nahra@unaffiliated/nahra) (Quit: leaving)
2020-12-03 21:48:56 +0100 <monochrom> Yeah OK!
2020-12-03 21:49:05 +0100Deide(~Deide@217.155.19.23)
2020-12-03 21:49:31 +0100nf(~n@monade.li) (Quit: Fairfarren.)
2020-12-03 21:51:13 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-12-03 21:51:37 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-03 21:52:46 +0100Boomerang(~Boomerang@xd520f68c.cust.hiper.dk) (Ping timeout: 256 seconds)
2020-12-03 21:53:02 +0100Libertinus(58c19c04@dsl-trebng21-58c19c-4.dhcp.inet.fi) (Remote host closed the connection)
2020-12-03 21:54:16 +0100lambda(~xiretza@mail.xiretza.xyz)
2020-12-03 21:56:16 +0100zyklotomic(~ethan@210.13.104.210)
2020-12-03 21:56:21 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius)
2020-12-03 21:56:22 +0100xcmw(~textual@cpe-69-133-55-43.cinci.res.rr.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-03 21:57:08 +0100xcmw(~textual@cpe-69-133-55-43.cinci.res.rr.com)
2020-12-03 21:57:16 +0100 <sclv> if i want the first Just from a list of Maybes (or Nothing) then `listToMaybe . catMaybes` does the trick
2020-12-03 21:57:34 +0100 <sclv> I don't recall if there's something slicker, codegolfwise
2020-12-03 21:57:39 +0100 <sclv> using the First monoid is more verbose
2020-12-03 21:57:54 +0100 <sclv> maybe like an alternative concat or something?
2020-12-03 21:58:15 +0100 <jle`> > asum [Nothing, Just 3, Just 4, Nothing, Just 5]
2020-12-03 21:58:17 +0100 <lambdabot> Just 3
2020-12-03 21:58:28 +0100 <jle`> not that it's any more readable
2020-12-03 21:58:57 +0100 <geekosaur> they're doing code golf, readable isn't a constraint
2020-12-03 21:59:12 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-12-03 21:59:37 +0100 <ephemient> :t join . find isJust -- was my first thought, but `asum` probably can't be beat
2020-12-03 21:59:39 +0100 <lambdabot> Foldable t => t (Maybe a) -> Maybe a
2020-12-03 22:00:01 +0100 <dminuoso> Maybe monochrom knows how to use Day here? ..
2020-12-03 22:00:04 +0100dminuososmiles
2020-12-03 22:00:05 +0100Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving)
2020-12-03 22:00:12 +0100geekosaurwas poking asum but jle` beat him to it
2020-12-03 22:00:16 +0100nf(~n@monade.li)
2020-12-03 22:00:23 +0100 <oats> stupid idea of the day: rename 'Just' to 'A'
2020-12-03 22:00:24 +0100joaoh82(~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Remote host closed the connection)
2020-12-03 22:00:28 +0100 <dsal> asum is a good thing to know. I've also used it for more effectful stuff like "which of these works?"
2020-12-03 22:00:33 +0100 <oats> [Nothing, A 3, A 4, Nothing, A 5]
2020-12-03 22:00:52 +0100 <pjb> s/Nothing/A_Nothing/g
2020-12-03 22:00:54 +0100 <jle`> Nothing = NotA
2020-12-03 22:01:01 +0100joaoh82(~joaoh82@157-131-134-210.dedicated.static.sonic.net)
2020-12-03 22:01:12 +0100 <dminuoso> If you're going to break hackage, at least break it properly and just flip Nothing and Just.
2020-12-03 22:01:13 +0100 <jle`> or maybe Nada
2020-12-03 22:01:25 +0100 <dminuoso> [Just, Nothing 3, Nothing 4, Just, Nothing 5]
2020-12-03 22:01:30 +0100 <dsal> Just and Unjust
2020-12-03 22:01:32 +0100 <oats> lol
2020-12-03 22:01:42 +0100 <monochrom> Since an infinite list is involved, I would take a co-limit in an O-category... >:)
2020-12-03 22:02:12 +0100 <dminuoso> jle`: Think we should revive the idea we floated around 2-3 years ago, or what Haskell would be if Germany had won the war.
2020-12-03 22:02:28 +0100 <monochrom> Yikes.
2020-12-03 22:02:42 +0100 <jle`> i literally have no recollection of this conversation D:
2020-12-03 22:02:51 +0100 <monochrom> Iron Sky Haskell?
2020-12-03 22:02:52 +0100 <lambda> hi, looking for a point-free version of `[0,x..]`, something like `multiplesOf`, but I can't find anything - does a function for this exist in base?
2020-12-03 22:03:14 +0100graf_blutwurst(~user@2001:171b:226e:adc0:416e:f9ed:b426:e09e) (Remote host closed the connection)
2020-12-03 22:03:15 +0100 <merijn> lambda: enumFromThen ? :p
2020-12-03 22:03:18 +0100coot(~coot@37.30.53.191.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2020-12-03 22:03:18 +0100 <merijn> :t enumFromThen
2020-12-03 22:03:20 +0100 <lambdabot> Enum a => a -> a -> [a]
2020-12-03 22:03:25 +0100shf(~sheaf@2a01:cb19:80cc:7e00:d9e0:5dd0:4ff3:cac9)
2020-12-03 22:03:25 +0100 <dminuoso> The language would be called Schönfinkel (I know it's not German, but it it sounds Germany so its too good to pass up on)
2020-12-03 22:03:26 +0100 <oats> [Nichts, Ein 3, Ein 4, Nichts...]
2020-12-03 22:03:27 +0100 <merijn> > enumFromThen 0 3
2020-12-03 22:03:30 +0100 <lambdabot> [0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,7...
2020-12-03 22:03:43 +0100 <dminuoso> And currying would be schönfinkeln...
2020-12-03 22:03:50 +0100 <oats> well, s/Ein/Nur
2020-12-03 22:03:51 +0100 <merijn> lambda: the [..] syntax is just syntactic sugar for various Enum operations
2020-12-03 22:04:01 +0100 <dminuoso> oats: Dont translate literallz
2020-12-03 22:04:07 +0100 <dminuoso> Nichts and Ein sound perfect.
2020-12-03 22:04:07 +0100 <lambda> merijn: oh, yep, totally missed that - I only saw enumFrom
2020-12-03 22:04:08 +0100 <oats> yassss
2020-12-03 22:05:15 +0100 <dminuoso> instanz Anwendbar Vielleicht wobei abbilden f Nichts = Nichts; abbilden f (Nur x) = Nur (f x)
2020-12-03 22:05:17 +0100 <dminuoso> It's perfect
2020-12-03 22:05:55 +0100 <sclv> thanks for asum, hoogle took me there too
2020-12-03 22:05:56 +0100 <oats> lololol
2020-12-03 22:06:34 +0100 <oats> what would monads be called?
2020-12-03 22:06:42 +0100 <oats> monad, rather
2020-12-03 22:07:50 +0100 <dminuoso> Well, Monade or Monas have greek stems
2020-12-03 22:08:21 +0100 <oats> how about "Abflachungzeug" :P
2020-12-03 22:08:22 +0100 <dminuoso> Depending on how Hitler would have designed the Münchener Schönfinkel Kompilierer, that might have been permissable
2020-12-03 22:08:54 +0100conal(~conal@64.71.133.70)
2020-12-03 22:09:07 +0100 <oats> MSK lol, I love it
2020-12-03 22:09:44 +0100 <zyklotomic> is it possible to have the update record syntax refer to its respective parameter?
2020-12-03 22:10:01 +0100 <dminuoso> zyklotomic: Not currently
2020-12-03 22:10:12 +0100 <dminuoso> IIRC there is a proposal in progress to address this.
2020-12-03 22:10:35 +0100 <zyklotomic> like data Pog = Pog { a :: Int, b :: Int } --> p = Pog 5 7; p = Pog { a = a + 1 } right?
2020-12-03 22:10:53 +0100 <zyklotomic> just in case I didn't describe it clearly enough
2020-12-03 22:11:03 +0100jneira(5127ade4@gateway/web/cgi-irc/kiwiirc.com/ip.81.39.173.228)
2020-12-03 22:11:06 +0100 <jle`> yeah, there's no syntax at the moment
2020-12-03 22:11:16 +0100alx741(~alx741@186.178.110.235) (Quit: alx741)
2020-12-03 22:11:26 +0100 <jle`> but there are some lightweight lensy solutions for it
2020-12-03 22:11:33 +0100 <zyklotomic> % right
2020-12-03 22:11:34 +0100 <yahb> zyklotomic: ; <interactive>:33:1: error:; * No instance for (Show (a0 b0 c0 -> a0 (Either d0 b0) (Either d0 c0))) arising from a use of `print'; (maybe you haven't applied a function to enough arguments?); * In a stmt of an interactive GHCi command: print it
2020-12-03 22:11:36 +0100 <merijn> RecordWildCards can do it
2020-12-03 22:11:46 +0100 <jle`> oh yea, but only one at a time
2020-12-03 22:11:50 +0100 <dminuoso> Mmm, no. RecordDotSyntax doesnt quite do it.
2020-12-03 22:11:54 +0100unlink2(~unlink2@p200300ebcf259600971664e9499d7db7.dip0.t-ipconnect.de)
2020-12-03 22:11:57 +0100 <dminuoso> zyklotomic: The best we have currently is what lens/optics offers us.
2020-12-03 22:12:07 +0100 <merijn> "f p@Pog{..} = p{ a = a + 1}"
2020-12-03 22:12:18 +0100 <merijn> jle`: What? No, that should work for any number of fields
2020-12-03 22:12:19 +0100 <dminuoso> Yeah. RecordWildCards at its worst.
2020-12-03 22:12:34 +0100 <dminuoso> It's unhygeniec.
2020-12-03 22:12:41 +0100Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
2020-12-03 22:13:10 +0100 <zyklotomic> so a naive question at that, hope you don't mind, but would it make sense to make this standard/official syntax, the lensy behavior
2020-12-03 22:13:17 +0100 <merijn> dminuoso: I wasn't asked for a *good* solution, just *a* solutions
2020-12-03 22:13:34 +0100 <dminuoso> zyklotomic: So roughly if you had a field _foo with an appropriate lens foo
2020-12-03 22:13:34 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-12-03 22:13:41 +0100 <merijn> zyklotomic: Theoretically? Maybe
2020-12-03 22:13:44 +0100unlink__(~unlink2@p200300ebcf179a00278fd81c0246cc89.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-12-03 22:13:49 +0100 <jle`> merijn: ah, like, myFunc Pog{..} Pog{..} = ...
2020-12-03 22:13:55 +0100 <geekosaur> zyklotomic, if you hadn't noticed, there's still a fair amount of argument over what the right approach is
2020-12-03 22:13:59 +0100 <merijn> zyklotomic: Realistically: It's not happening anytime soon :p
2020-12-03 22:14:06 +0100 <dminuoso> zyklotomic: oh hold on. No, because its not just syntax.
2020-12-03 22:14:19 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-12-03 22:14:21 +0100 <ephemient> `{-# LANGUAGE NamedFieldPuns #-} f p@Pog {a} = p {a = a + 1}` less unhygenic?
2020-12-03 22:14:31 +0100 <merijn> zyklotomic: Basically: "Would it make sense for new languages to be designed with lenses for the fields?" 'definitely'
2020-12-03 22:14:32 +0100 <zyklotomic> because they are technically functions?
2020-12-03 22:14:50 +0100 <merijn> zyklotomic: "Is it a good idea to *retroactively* change this?" 'probably not'
2020-12-03 22:14:54 +0100 <dminuoso> zyklotomic: The novelty of optics/lenses is that we get to have a non-syntactical but first-class way of splitting data into whats in focus and whats not.
2020-12-03 22:14:55 +0100 <zyklotomic> i'm a beginner so a lot of this context is lost on me
2020-12-03 22:15:06 +0100 <geekosaur> meanwhile many people use lens to do it, but lens is large and you have to derive lenses for your records
2020-12-03 22:15:08 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) (Remote host closed the connection)
2020-12-03 22:15:18 +0100 <dminuoso> zyklotomic: Note the *non-syntactical* part here.
2020-12-03 22:15:38 +0100 <zyklotomic> dminuoso: yes or maybe I should rephrase it, making it more "standard"?
2020-12-03 22:15:56 +0100 <dminuoso> zyklotomic: Well the rough interface of lens has become de-facto standard in Haskell.
2020-12-03 22:15:59 +0100 <zyklotomic> like you have to use the very large lenses library
2020-12-03 22:15:59 +0100seveg(~gabriel@2a02-ab04-0249-8d00-3603-db93-c217-257c.dynamic.v6.chello.sk)
2020-12-03 22:16:04 +0100 <zyklotomic> ah I see
2020-12-03 22:16:05 +0100 <dminuoso> Even the newer library `optics` matches it closely
2020-12-03 22:16:22 +0100 <dminuoso> zyklotomic: You can use microlenses or optics-core if you want a more lightweight approach
2020-12-03 22:16:28 +0100jollygood2(~bc8165ab@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout))
2020-12-03 22:16:46 +0100 <zyklotomic> i think a struggle i have had is that "de facto" is very obscure
2020-12-03 22:16:48 +0100seveg(~gabriel@2a02-ab04-0249-8d00-3603-db93-c217-257c.dynamic.v6.chello.sk) (Client Quit)
2020-12-03 22:16:50 +0100 <zyklotomic> *or finding out what is de facto
2020-12-03 22:16:57 +0100 <jle`> with library support you could do something like `over #a (+ 3) p`. not quite syntax, just library built on top of the language (if you derive a Generic instance for Pog)
2020-12-03 22:17:03 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-12-03 22:17:33 +0100 <zyklotomic> dminuoso: yup, I asked a question earlier about microlenses but it felt wrong pulling in a dependecy just to modify a data type
2020-12-03 22:17:48 +0100alx741(~alx741@186.178.110.235)
2020-12-03 22:17:53 +0100 <dminuoso> Right. For a single use site I wouldn't consider it.
2020-12-03 22:18:11 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-03 22:18:25 +0100 <zyklotomic> jle`: yeah, I realize it isn't necessarily syntax per se, I meant like part of the "core"? I really don't know what to call it
2020-12-03 22:18:37 +0100 <zyklotomic> kinda lke how Monads aren't part of the language, they're defined in terms of the language right?
2020-12-03 22:18:50 +0100 <dminuoso> Well, its both
2020-12-03 22:18:59 +0100 <sclv> well Monads are part of the language, because "do notation" is baked into the spec
2020-12-03 22:19:10 +0100 <jle`> yeah heh, it's a little bit of both, but i see the point you're trying to make
2020-12-03 22:19:16 +0100 <dminuoso> The typeclass Monad is defined in the Haskell report, but the typeclass is just a plain haskell typeclass you could have written yourself
2020-12-03 22:19:19 +0100 <sclv> you could define the language without Monads and define them independently and you'd have everything but the donation
2020-12-03 22:19:22 +0100 <sclv> er the notation
2020-12-03 22:19:34 +0100 <jle`> you're getting a donation?
2020-12-03 22:19:36 +0100nf(~n@monade.li) (Quit: Fairfarren.)
2020-12-03 22:19:46 +0100nf(~n@monade.li)
2020-12-03 22:19:51 +0100 <zyklotomic> yeah, I think the issue I have is like decoupling which part is which? what is GHC, what is Prelude, what is a seperate package, etc.
2020-12-03 22:19:52 +0100 <dminuoso> or denotion?
2020-12-03 22:20:01 +0100 <sclv> wow there's dyslexia and there's swapping in a whole word lol
2020-12-03 22:20:10 +0100 <dminuoso> zyklotomic: Oh yeah, that GHC part is brought up regularly in various places
2020-12-03 22:20:17 +0100 <dminuoso> Some argue that GHC shouldnt come in base..
2020-12-03 22:20:26 +0100 <sclv> Haskell the language is the Report. Then GHC has a bunch of stuff on top
2020-12-03 22:20:32 +0100 <sclv> Prelude is in the report
2020-12-03 22:20:38 +0100 <dminuoso> (By GHC I mean the module hierarchy of GHC.xxx)
2020-12-03 22:20:52 +0100 <sclv> but even in the report there's the "heart" of haskell and then there's the defined libs and functions
2020-12-03 22:21:01 +0100 <sclv> layers of onion
2020-12-03 22:21:05 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 240 seconds)
2020-12-03 22:21:34 +0100 <dminuoso> zyklotomic: I guess this "field update notation" isn't as important in the realm of Haskell, perhaps because of how Haskellers tend to write code it might not see as much use.
2020-12-03 22:21:35 +0100 <jle`> zyklotomic: there's the base "package" (i use package interchangeably with 'library' here) that's included with ghc, and there is are a few libraries that are used in ghc's source code ('boot packages') which are somewhat considered to be standard/reliable to depend on
2020-12-03 22:21:42 +0100 <jle`> but there's a bit of a nebulous cloud outside of that
2020-12-03 22:22:00 +0100 <dminuoso> There's the odd case where I might want it, but I dont think it'd justify a modification to syntax.
2020-12-03 22:22:14 +0100 <jle`> there is some movement for "built-in lenses" to be built within the language, with a special magic typeclass, i think
2020-12-03 22:22:17 +0100seveg(~gabriel@2a02-ab04-0249-8d00-3603-db93-c217-257c.dynamic.v6.chello.sk)
2020-12-03 22:22:27 +0100seveg(~gabriel@2a02-ab04-0249-8d00-3603-db93-c217-257c.dynamic.v6.chello.sk) (Client Quit)
2020-12-03 22:22:27 +0100 <dminuoso> jle`: you mean OverloadedLabels?
2020-12-03 22:22:35 +0100 <zyklotomic> dminuoso: could you elaborate on the how Haskellers tend to write code part, curious
2020-12-03 22:22:35 +0100 <dminuoso> Or even more magical?
2020-12-03 22:22:46 +0100 <jle`> OverloadedLabels is already here, it supports `over #a (+ 3) p` above
2020-12-03 22:23:06 +0100 <jle`> dminuoso: i'm tlaking about like HasField
2020-12-03 22:23:09 +0100 <dminuoso> zyklotomic: I cant put my finger quite on it, but in the past 3 years I can count the occurences of "relative field updates" on a single hand.
2020-12-03 22:23:18 +0100 <dminuoso> For my own code.
2020-12-03 22:23:31 +0100 <dminuoso> All were done with optics because the library was already in the code anyway
2020-12-03 22:24:06 +0100 <koz_> I don't quite understand how this note applies to StateT for MonadLogic: http://hackage.haskell.org/package/logict-0.7.0.3/docs/src/Control.Monad.Logic.Class.html#line-121
2020-12-03 22:24:19 +0100 <jle`> dminuoso: we're one step away from it, for https://hackage.haskell.org/package/base-4.14.0.0/docs/GHC-Records.html
2020-12-03 22:24:30 +0100 <koz_> Does that mean that even though you stack StateT s Logic a, the state won't split when the computation does?
2020-12-03 22:24:32 +0100 <dminuoso> jle`: ah
2020-12-03 22:24:50 +0100 <zyklotomic> dminuoso: maybe this whole thing is a code smell, I'm doing something with a buffer inside State, and i'm basically pushing on and popping off that buffer
2020-12-03 22:24:53 +0100 <jle`> but still i think without deeper support for lens within the language, just "having the lens" isn't really good enough
2020-12-03 22:25:04 +0100 <koz_> I would assume the state _would_ split, as StateT s Logic a ~ s -> Logic (a, s)
2020-12-03 22:25:09 +0100 <zyklotomic> hence why this idea/want came to my mind
2020-12-03 22:25:21 +0100 <dminuoso> zyklotomic: Im not saying it never happens. If you want you can show your code, but it's not unreasonable to ask for it.
2020-12-03 22:25:43 +0100 <dminuoso> More specifically, Im not saying it's a code smell, just that it doesn't happen too often in idiomatic haskell.
2020-12-03 22:25:46 +0100 <koz_> More precisely - I _want_ each 'solution' to have its own pet state.
2020-12-03 22:25:48 +0100 <jle`> and yeah, i am not even claiming that deeper support for lens within the language is a good idea
2020-12-03 22:25:50 +0100nil(~n@monade.li)
2020-12-03 22:25:58 +0100 <zyklotomic> dminuoso: ah thanks for the offer I see
2020-12-03 22:26:23 +0100nil(~n@monade.li) (Client Quit)
2020-12-03 22:26:25 +0100 <jle`> but i do think optics is the nicest user-friendly lens interface i've seen so far
2020-12-03 22:26:30 +0100 <dminuoso> Indeed. :)
2020-12-03 22:26:47 +0100 <dminuoso> It wasnt until optics was released, and I had a long talk with Adam, that I started using it.
2020-12-03 22:26:50 +0100 <dminuoso> Haven't looked back ever since
2020-12-03 22:27:07 +0100 <dminuoso> lens was too intimidating with illegible errors
2020-12-03 22:27:12 +0100borne(~fritjof@200116b864c92000f60f2508b10af3d6.dip.versatel-1u1.de)
2020-12-03 22:27:17 +0100SupaYoshii(~supayoshi@213-10-140-13.fixed.kpn.net) (Quit: Goodbye!)
2020-12-03 22:27:41 +0100 <jle`> lens has an important role in exploring the concepts loose and fast, maybe. i don't think one could have jumped straight to an optics interface
2020-12-03 22:27:42 +0100seveg(~gabriel@2a02-ab04-0249-8d00-3603-db93-c217-257c.dynamic.v6.chello.sk)
2020-12-03 22:27:52 +0100 <jle`> but maybe the same thing could be said of haskell and the rest of the PL ecosystem
2020-12-03 22:27:56 +0100 <dminuoso> Also what's nice about optics-core is that it has a light dependency footprint and *still* gives you Prism and Iso.
2020-12-03 22:28:20 +0100danza_(~francesco@151.53.73.59) (Quit: Leaving)
2020-12-03 22:28:56 +0100 <zyklotomic> dminuoso: in fact, uhh it's python https://github.com/fxsjy/jieba/blob/67fa2e36e72f69d9134b8a1037b83fbb070b9775/jieba/__init__.py#L249
2020-12-03 22:29:42 +0100 <zyklotomic> so i'm basically trying to recreate this algorithm in haskell
2020-12-03 22:29:44 +0100 <dminuoso> I see.
2020-12-03 22:29:51 +0100 <zyklotomic> the __cut_DAG function was where I employed State and a buffer, or am I going about it the wrong way
2020-12-03 22:30:09 +0100 <zyklotomic> and as you can see, there's that pushing and popping off the buffer behavior
2020-12-03 22:30:56 +0100 <dminuoso> It's hard to say on the spot. Generally, mapping algorithms directly into Haskell is ont ideal
2020-12-03 22:31:30 +0100SupaYoshi(~supayoshi@213-10-140-13.fixed.kpn.net)
2020-12-03 22:31:48 +0100 <dolio> I think the main thing would be that I wouldn't springle direct record munging all over my code, generally.
2020-12-03 22:31:53 +0100__monty__(~toonn@unaffiliated/toonn)
2020-12-03 22:32:17 +0100 <dolio> There might be some key manipulations to factor out and then refer to elsewhere.
2020-12-03 22:32:19 +0100 <zyklotomic> yeah, but for this one specifically, I guess I struggled to find any easier way to have this kind of logic i guess
2020-12-03 22:33:29 +0100 <koz_> As a random aside, I am disappointed that it's not called 'These1s'. :P
2020-12-03 22:33:46 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-12-03 22:35:05 +0100 <dminuoso> zyklotomic: Can you roughly describe what this does?
2020-12-03 22:35:56 +0100macrover(~macrover@ip68-108-126-211.lv.lv.cox.net) (Ping timeout: 240 seconds)
2020-12-03 22:36:10 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-12-03 22:36:24 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 256 seconds)
2020-12-03 22:36:56 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 240 seconds)
2020-12-03 22:37:50 +0100 <zyklotomic> dminuoso: yeah sure, it is a word segmentation algorithm, algorith wise, it has a split string such as "abcdefg" -> ["a", "bc", "def", "g"], and the part that I shared is checking if the list
2020-12-03 22:37:53 +0100Blkt(~Blkt@2a01:4f8:200:2425::adda) (Ping timeout: 272 seconds)
2020-12-03 22:37:59 +0100 <zyklotomic> ["a", "bc", "def", "g"] can be split any further
2020-12-03 22:38:21 +0100 <zyklotomic> the imperative python code you see loops through each of these split segments, if the segment is of length 1, it pushes it onto buffer
2020-12-03 22:38:31 +0100 <dminuoso> Presumably this has to do with Chinese linguistics?
2020-12-03 22:38:33 +0100 <zyklotomic> if it is not length 1, check if the buffer is empty, if not, split
2020-12-03 22:38:35 +0100 <zyklotomic> yup lol
2020-12-03 22:39:05 +0100 <zyklotomic> and so on, if that makes sense
2020-12-03 22:39:21 +0100Zetagon(~leo@c151-177-52-233.bredband.comhem.se) (Remote host closed the connection)
2020-12-03 22:39:22 +0100 <dminuoso> So that sounds like a very simple task for Conduit
2020-12-03 22:39:26 +0100urek(~urek@2804:7f1:e10a:9644:81a3:232e:2e84:9c43) (Ping timeout: 246 seconds)
2020-12-03 22:39:28 +0100jespada(~jespada@90.254.245.49) (Ping timeout: 256 seconds)
2020-12-03 22:40:03 +0100 <dminuoso> Or I guess you could do this directly on a list
2020-12-03 22:40:19 +0100 <dminuoso> in which case such a "buffer" would just be a function argument, wouldnt even bother with StateT here
2020-12-03 22:40:21 +0100 <zyklotomic> I've no experience with Conduit lol
2020-12-03 22:40:36 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 256 seconds)
2020-12-03 22:40:47 +0100Blkt(~Blkt@2a01:4f8:200:2425::adda)
2020-12-03 22:41:03 +0100catchme(uid355354@gateway/web/irccloud.com/x-tmcodhvuaxunpqgn)
2020-12-03 22:41:09 +0100 <zyklotomic> I think it was because it felt a lot more complex to make it completely functional when I first started trying to write it
2020-12-03 22:41:26 +0100 <zyklotomic> could you give a dumb downed reason how Conduit would work
2020-12-03 22:41:45 +0100 <dminuoso> Let me make up a similar problem and show you how it could be solved
2020-12-03 22:42:14 +0100jespada(~jespada@90.254.245.49)
2020-12-03 22:42:22 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection)
2020-12-03 22:42:28 +0100Boomerang(~Boomerang@xd520f68c.cust.hiper.dk)
2020-12-03 22:42:45 +0100joaoh82_(~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net)
2020-12-03 22:44:03 +0100dhouthoo(~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) (Quit: WeeChat 2.9)
2020-12-03 22:45:14 +0100pokid(~pokid@unaffiliated/pokid) ()
2020-12-03 22:45:24 +0100xcmw(~textual@cpe-69-133-55-43.cinci.res.rr.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-03 22:45:43 +0100seveg(~gabriel@2a02-ab04-0249-8d00-3603-db93-c217-257c.dynamic.v6.chello.sk) (Quit: WeeChat 3.0)
2020-12-03 22:46:33 +0100joaoh82(~joaoh82@157-131-134-210.dedicated.static.sonic.net) (Ping timeout: 265 seconds)
2020-12-03 22:47:17 +0100seveg(~gabriel@2a02-ab04-0249-8d00-3603-db93-c217-257c.dynamic.v6.chello.sk)
2020-12-03 22:47:29 +0100nf(~n@monade.li) (Quit: Fairfarren.)
2020-12-03 22:47:39 +0100nf(~n@monade.li)
2020-12-03 22:49:55 +0100danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds)
2020-12-03 22:50:30 +0100nf(~n@monade.li) (Client Quit)
2020-12-03 22:50:43 +0100nf(~n@monade.li)
2020-12-03 22:51:24 +0100seveg(~gabriel@2a02-ab04-0249-8d00-3603-db93-c217-257c.dynamic.v6.chello.sk) (Client Quit)
2020-12-03 22:52:20 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-12-03 22:52:28 +0100seveg(~gabriel@2a02-ab04-0249-8d00-3603-db93-c217-257c.dynamic.v6.chello.sk)
2020-12-03 22:52:33 +0100nf(~n@monade.li) (Client Quit)
2020-12-03 22:53:34 +0100conal(~conal@64.71.133.70)
2020-12-03 22:53:50 +0100seveg(~gabriel@2a02-ab04-0249-8d00-3603-db93-c217-257c.dynamic.v6.chello.sk) (Client Quit)
2020-12-03 22:53:54 +0100xcmw(~textual@cpe-69-133-55-43.cinci.res.rr.com)
2020-12-03 22:53:58 +0100conal(~conal@64.71.133.70) (Client Quit)
2020-12-03 22:54:12 +0100AndreasK(uid320732@gateway/web/irccloud.com/x-ylkxsbmenduzxmys) (Quit: Connection closed for inactivity)
2020-12-03 22:54:55 +0100nf(~n@monade.li)
2020-12-03 22:55:07 +0100seveg(~gabriel@2a02-ab04-0249-8d00-3603-db93-c217-257c.dynamic.v6.chello.sk)
2020-12-03 22:56:27 +0100davidfg41(~davidfg4@185.204.1.185)
2020-12-03 22:57:08 +0100xcmw(~textual@cpe-69-133-55-43.cinci.res.rr.com) (Client Quit)
2020-12-03 22:57:26 +0100 <zyklotomic> dminuoso: i really appreciate it, but i gotta go, i'll most certainly pop back in if you do create that example
2020-12-03 22:58:05 +0100Techcable(znc@irc.techcable.net) (Quit: ZNC - http://znc.in)
2020-12-03 22:58:57 +0100Techcable(znc@irc.techcable.net)
2020-12-03 22:59:42 +0100Mrbuck(~Mrbuck@gateway/tor-sasl/mrbuck) (Quit: WeeChat 2.9)
2020-12-03 23:02:01 +0100zyklotomic(~ethan@210.13.104.210) (Ping timeout: 265 seconds)
2020-12-03 23:04:11 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
2020-12-03 23:06:34 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2)
2020-12-03 23:10:25 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2020-12-03 23:14:13 +0100urek(~urek@2804:7f1:e10a:9644:81a3:232e:2e84:9c43)
2020-12-03 23:14:22 +0100hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 256 seconds)
2020-12-03 23:17:26 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) (Remote host closed the connection)
2020-12-03 23:19:28 +0100thc202(~thc202@unaffiliated/thc202) (Quit: thc202)
2020-12-03 23:22:48 +0100 <ezzieyguywuf> I tried to reproduce this on a smaller program but was unable to do so. Currently, the output shown in the comment above `main` is what I get, but I can't understand why the prompt is being printed AFTER I hit enter. https://dpaste.com/2QFM9VS94
2020-12-03 23:22:55 +0100 <ezzieyguywuf> the relevant function in `promptMatch`
2020-12-03 23:24:49 +0100sagax(~sagax_nb@213.138.71.146) (Remote host closed the connection)
2020-12-03 23:25:06 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-03 23:25:21 +0100isovector1(~isovector@172.103.216.166.cable.tpia.cipherkey.com)
2020-12-03 23:25:21 +0100 <ezzieyguywuf> hrm, turns out that changing to TextIO.putStrLn fixes it, but again I was unable to reproduce this on a smaller scale
2020-12-03 23:25:24 +0100 <ezzieyguywuf> weird
2020-12-03 23:25:26 +0100knupfer(~Thunderbi@200116b82cc3670094f77ab4f8d612cb.dip.versatel-1u1.de) (Remote host closed the connection)
2020-12-03 23:25:30 +0100 <iqubic> jle`: How does OverloadedLabels work with Lens again? Like how do you set that up?
2020-12-03 23:25:30 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-12-03 23:25:34 +0100knupfer(~Thunderbi@200116b82cc36700fd01663be2310e7a.dip.versatel-1u1.de)
2020-12-03 23:25:48 +0100 <isovector1> jle`: just read your post on shuffling groups and it was the most clarifying thing i've ever seen on groups. thanks!!
2020-12-03 23:25:50 +0100 <iqubic> I can I get that to automatically generate lenses for my custom data?
2020-12-03 23:25:55 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-03 23:26:00 +0100 <ezzieyguywuf> this was my attempt to reproduce https://dpaste.com/CHPNWYGL4
2020-12-03 23:26:23 +0100 <exarkun> irc-conduit wants a ConduitT with (Either ... IrcMessage) as its output type. What if I have an input to my pipeline for which I want to generate more than one IrcMessage?
2020-12-03 23:26:32 +0100 <isovector1> jle`: how come you're not on planet haskell?
2020-12-03 23:26:35 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2)
2020-12-03 23:27:36 +0100 <isovector1> jle`: oh it looks like your rss feed is broken. most recent post i'm seeing is from 2013
2020-12-03 23:27:43 +0100 <exarkun> is this what unfoldC is for?
2020-12-03 23:27:46 +0100__monty__(~toonn@unaffiliated/toonn) (Quit: leaving)
2020-12-03 23:27:59 +0100isovector1(~isovector@172.103.216.166.cable.tpia.cipherkey.com) (Remote host closed the connection)
2020-12-03 23:28:33 +0100 <iqubic> exarkun: It's like unfoldr, but puts outputs into a conduit, instead of a list.
2020-12-03 23:30:29 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-12-03 23:30:48 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection)
2020-12-03 23:30:49 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds)
2020-12-03 23:31:05 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-12-03 23:31:13 +0100 <monochrom> ezzieyguywuf: I can reproduce. Expect different behaviour between {build exe and run} and {runghc or ghci}. This is general line-buffering issue. If you use putStr without newline, and you want it to "happen right now", hFlush.
2020-12-03 23:31:45 +0100 <ezzieyguywuf> monochrom: ah hah, thank you for the tip.
2020-12-03 23:33:08 +0100Boomerang(~Boomerang@xd520f68c.cust.hiper.dk) (Ping timeout: 256 seconds)
2020-12-03 23:34:25 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2020-12-03 23:37:44 +0100 <dminuoso> monochrom: https://gist.github.com/dminuoso/78b9e52de12306ce5511d367200dbebe
2020-12-03 23:37:48 +0100 <dminuoso> Works like a charm, cheers!
2020-12-03 23:38:31 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) (Remote host closed the connection)
2020-12-03 23:38:31 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-12-03 23:38:51 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-12-03 23:40:25 +0100 <dminuoso> iqubic: So OverloadedLabels essentially gives you variables identifiable by type level symbols
2020-12-03 23:40:31 +0100ces(~ces@52d3c113.dynamic-ip.k-net.dk)
2020-12-03 23:40:45 +0100 <dminuoso> OverloadedLabels is just syntax sugar for `fromLabel @"Foobar"`
2020-12-03 23:40:49 +0100 <iqubic> How can I use that with Generic Lenes?
2020-12-03 23:40:52 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood)
2020-12-03 23:41:36 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-03 23:41:50 +0100 <iqubic> *lenses
2020-12-03 23:41:52 +0100 <dminuoso> See https://hackage.haskell.org/package/generic-lens-2.0.0.0/docs/Data-Generics-Labels.html
2020-12-03 23:42:06 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-12-03 23:44:15 +0100 <iqubic> That's a bit confusing.
2020-12-03 23:45:39 +0100mbomba(~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca)
2020-12-03 23:46:12 +0100 <dminuoso> instance ( capital ~ BeginsWithCapital name, IsLabelHelper capital name p f s t a b, pafb ~ p a (f b), psft ~ p s (f t)) => IsLabel name (pafb -> psft) where
2020-12-03 23:47:03 +0100 <dminuoso> So say you wrote `#_Foo` in your code somehow, this would get desugared into `fromLabel @"_Foo"`
2020-12-03 23:47:17 +0100 <dminuoso> Then set `name` to "_Foo"
2020-12-03 23:47:31 +0100arahael1arahael
2020-12-03 23:48:00 +0100 <iqubic> And just importing Data.Generic.Lens does this for me?
2020-12-03 23:48:04 +0100 <dminuoso> Based on type inference of the resulting type it knows p, f, s, t, a and b
2020-12-03 23:48:17 +0100 <dminuoso> And some tyfams/fundeps + generics
2020-12-03 23:48:22 +0100 <dminuoso> And voila, you have a prism
2020-12-03 23:49:51 +0100isovector1(~isovector@172.103.216.166.cable.tpia.cipherkey.com)
2020-12-03 23:50:16 +0100 <iqubic> Do I need to invoke any fancy template haskell stuff?
2020-12-03 23:51:05 +0100 <dminuoso> No.
2020-12-03 23:51:28 +0100 <iqubic> I'm not sure I understand.
2020-12-03 23:51:37 +0100 <iqubic> It's fine though.
2020-12-03 23:53:11 +0100 <dminuoso> Very handwavingly, you can imagine the implementation of the above instance to be `instance ... => IsLabel name (pafb -> psft) where fromLabel = to . genericThing`
2020-12-03 23:53:37 +0100 <dminuoso> The rest from there is just simple plain generics
2020-12-03 23:53:38 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-03 23:53:56 +0100 <dminuoso> The type level symbols is passed into the generics code so it can find the correct field
2020-12-03 23:54:51 +0100 <iqubic> I understand how that works.
2020-12-03 23:54:57 +0100knupfer(~Thunderbi@200116b82cc36700fd01663be2310e7a.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
2020-12-03 23:55:12 +0100 <iqubic> It's the part about using these lenses in real code.
2020-12-03 23:55:17 +0100xcmw(~textual@cpe-69-133-55-43.cinci.res.rr.com)
2020-12-03 23:55:36 +0100 <dminuoso> What do you mean? They are like any other lens
2020-12-03 23:56:06 +0100 <dminuoso> Potentially not as efficient in degenerate cases, but other than that it's the same
2020-12-03 23:57:42 +0100 <iqubic> Let's say I have "data Foo a = Foo {Bar :: (Int, a), Baz :: Int}" How would I go about changing the int in the Bar tuple?
2020-12-03 23:58:39 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2020-12-03 23:58:41 +0100 <dminuoso> Assuming you meant to write bar and baz (lowercase), then that'd be:
2020-12-03 23:58:52 +0100 <iqubic> I did mean for it to be lowercase.
2020-12-03 23:58:59 +0100 <dminuoso> f & #bar . _1 %~ f
2020-12-03 23:59:05 +0100 <dminuoso> err
2020-12-03 23:59:08 +0100 <dminuoso> x & #bar . _1 %~ f
2020-12-03 23:59:15 +0100 <iqubic> Oh, is that all?
2020-12-03 23:59:19 +0100 <dminuoso> Yes.
2020-12-03 23:59:32 +0100cosimone(~cosimone@93-47-228-249.ip115.fastwebnet.it) (Quit: cosimone)
2020-12-03 23:59:44 +0100sondr3(~sondr3@cm-84.211.56.132.getinternet.no)