←2015-02-04 2015-02-05 2015-02-06→ ↑2015 ↑all
00:05:26 -!- Warrigal has joined.
00:07:25 -!- tswett has quit (Quit: Leaving).
00:07:39 -!- Warrigal has changed nick to tswett.
00:07:59 <oerjan> removing errors by adding one ghc extension at a time...
00:08:07 <Taneb> :D
00:08:58 -!- shikhin_ has joined.
00:08:59 -!- shikhin_ has quit (Changing host).
00:08:59 -!- shikhin_ has joined.
00:10:29 <oerjan> Taneb: i'm trying to show that current ghc (well, 7.8.3) _can_ express the types necessary to implement the new kind-aware Typeable without a builtin solver. but it needs a _lot_ of extensions.
00:10:39 -!- boily has joined.
00:11:23 <boily> hell®jan.
00:11:48 <oerjan> gah now it accepts everything except the main function
00:12:03 -!- shikhin has quit (Ping timeout: 264 seconds).
00:12:06 <oerjan> and i don't want to change that because this is supposed to be backwards-compatible :(
00:12:51 <oerjan> oh i haven't defined a Kindable instance for ()
00:14:24 <oerjan> now it compiled, but it thinks main isn't in scope
00:14:55 <Melvar> oerjan: Is there any problem about () being the name of both a value and a type?
00:15:19 <oerjan> not in normal haskell, no.
00:15:48 <oerjan> but this is with DataKinds, so in theory you would add a ' in front of the value one when promoting it to a type.
00:16:01 <oerjan> but i'm using the kind so that's not necessary.
00:16:09 <Melvar> Ah.
00:17:01 <oerjan> oh wait, i forgot to save the file after i uncommented main again :P
00:17:12 <oerjan> yay it works!
00:18:59 -!- spiette has quit (Quit: :qa!).
00:19:11 -!- spiette has joined.
00:20:06 <oerjan> http://oerjan.nvg.org/haskell/TypeableDesign/
00:21:23 <oerjan> the latest epiphany that made this possible is that you can have a type family as a superclass
00:23:04 -!- Jafet has joined.
00:23:45 -!- spiette has quit (Client Quit).
00:29:35 -!- Jafet has set topic: What is the land-speed velocity of a migrating fungot? | acking ubbles and urting arriers | https://dl.dropboxusercontent.com/u/2023808/wisdom.pdf http://codu.org/logs/_esoteric/ http://tunes.org/~nef/logs/esoteric/.
00:31:20 <boily> Jafellot. urting?
00:31:42 <AndoDaan> ursting?
00:32:35 -!- adu has joined.
00:32:36 <Jafet> alk o he and.
00:35:35 <boily> AndoDaan: ursting as asy, ut 'm aving rouble ith urting.
00:35:44 <boily> Jafet: eah ight, s f.
00:36:39 <AndoDaan> ou aving iggle, ate?
00:39:15 <boily> elp, 'm ompletely ost ere.
00:39:59 <tswett> I s l y g a n s f l!
00:40:07 <tswett> H y g. T a o m.
00:40:20 <tswett> O c, j t f l o e w d p e i t r t s.
00:40:42 <tswett> I m, I g t f l c s a a m o s w y w t r t s l.
00:40:50 <boily> AAAAAAAAAAAAAAAAAAAAAAAAAAAAH!
00:41:14 <oerjan> ou re ll vil
00:41:32 <boily> erjan: ot y ault. our win tarted t.
00:41:43 <oerjan> h.
00:42:43 <boily> h.
00:44:50 <oerjan> here goes
00:45:12 <oerjan> maybe i should actually join #ghc
00:45:28 <boily> I should have plugged a few stealth diæreses in all that unusual discussion...
00:45:46 -!- contrapumpkin has changed nick to copumpkin.
00:45:58 <oerjan> just claim they were all in the censored letters hth
00:47:23 <boily> that's where'd've put them. very discreet, elegant in their placement. not unlike a zen garden ambush.
00:48:07 <oerjan> is that like plants vs. zombies?
00:48:21 * oerjan hasn't actually played that, but has heard good things
00:52:25 <elliott> oerjan: type family as a superclass @_@
00:53:09 <elliott> oerjan: btw, wasn't implicit Typeable for all types meant to be part of the Typeable redo to start with?
00:53:12 <elliott> it seems like that didn't happen?
00:53:25 <oerjan> i dunno
00:54:27 <boily> zen zombies. zenbies.
00:55:10 <oerjan> elliott: well i started thinking, if you want to deduce that subparts of kinds are kinds, you need to make that fact a superclass if ghc's inference is to comprehend it properly. but the problem is, different kinds have different number of subparts, so i couldn't put a fixed number of them as superclasses. then i realized the obvious...
00:55:36 <oerjan> *representable kinds
00:55:50 -!- lurklurklurk has joined.
00:55:53 <oerjan> *Kindable kinds
00:56:00 <elliott> `relcome lurklurklurk
00:56:16 <HackEgo> lurklurklurk: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <http://esolangs.org/>. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
00:56:32 <tswett> Hacking Hubbles and hurting harriers.
00:56:38 <oerjan> you may lurk, but you won't get slower than HackEgo
00:56:47 <tswett> I guess it's a proper noun.
00:56:52 <tswett> Hacking Hubbles and hurting Harriers.
00:57:31 -!- tswett has set topic: What is the land-speed velocity of a migrating fungot? | acking ubbles and urting arriers | ZFC is a Chu space. | https://dl.dropboxusercontent.com/u/2023808/wisdom.pdf http://codu.org/logs/_esoteric/ http://tunes.org/~nef/logs/esoteric/.
00:57:41 <oerjan> by "comprehend it properly", i mean comprehend it without you needing to repeat it at every usage site.
00:57:41 <tswett> I just felt like announcing to the world that ZFC is a Chu space.
00:58:02 <oerjan> OKAY
00:58:15 <oerjan> (because everything is, right?)
00:58:24 <oerjan> (same with category theory)
00:58:29 <boily> Taneb: Tanelle. have you invented that?
00:58:32 <HackEgo> [wiki] [[StackStacks]] http://esolangs.org/w/index.php?diff=41842&oldid=40793 * Oj742 * (-5) /* Instructions */ Corrected stack effect diagrams
00:58:34 <tswett> Well, I suppose you could say that everything is a Chu space.
00:58:42 <lurklurklurk> Hello
00:58:44 <tswett> But ZFC is a Chu space in a particular meaningful way.
00:58:47 <Taneb> boily, I did, but then I forgot
00:58:58 <Taneb> lurklurklurk, you seem to not be lurking particularly well
00:59:02 <boily> lurklurklurk: hi!
00:59:07 <tswett> Define the points as being the models of ZFC, and the states as being the statements in the language of ZFC.
00:59:22 <tswett> Then the r function is the truth function. 1 if the statement is true in the model, 0 if it's not.
01:00:04 <tswett> Every theory of a similar sort is a Chu space in the same way.
01:00:49 <oerjan> that sounds related to gödel's second completeness theorem
01:01:03 <tswett> So then a morphism from a theory A to a theory B consists of a mapping of models of A to models of B, and a mapping of statements of B to statements of A, where the two mappings are compatible.
01:02:00 <tswett> (Given a model m of A and a statement s in B, the image of s is true in m if and only if s is true in the image of m.)
01:02:19 <tswett> Pretty sure G&owithanumlaut;del only had one completeness theorem.
01:06:02 <boily> well, he started working on another, but he didn't finish.
01:06:13 <oerjan> oops
01:07:59 <tswett> The second incompleteness theorem, for ZFC: if the statement "ZFC has a model" is true in every model of ZFC, then there exist no models of ZFC.
01:13:51 -!- lurklurklurk has quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/).
01:14:46 <elliott> oerjan: does this handle datakinds
01:14:57 <elliott> can't possibly, right?
01:14:59 <elliott> automatically, I mean
01:15:57 <tswett> So I think this little fact generalizes to other types of theories without insanely much trouble.
01:16:02 <tswett> Like, consider the calculus of constructions.
01:17:25 <tswett> Points are models of the calculus of constructions. States are terms in the calculus of constructions. Then the r function is what value a term denotes in a model.
01:18:34 -!- arjanb has quit (Quit: bbl).
01:28:32 -!- Phantom_Hoover has quit (Remote host closed the connection).
01:33:08 <oerjan> elliott: um nothing about it is automatic, but it's just a matter of making deriving (Typeable) also derive the corresponding Kindable instance for the datakind. i have [] and () as examples in the file.
01:33:12 <elliott> right
01:38:49 <tswett> So certain theories seem to have "free models".
01:39:21 <tswett> Like, consider this theory:
01:40:05 <tswett> There exists an object x. For all objects x, there exists an object y.
01:40:27 <tswett> The free model of that theory is the natural numbers.
01:42:05 <tswett> I guess this is a better way of stating that theory. There exists an object 0. For all objects x, there exists an object S(x).
01:43:18 <Taneb> tswett, that is consistent with the natural numbers
01:43:29 <tswett> Indeed. The natural numbers are a model of that theory.
01:43:50 <tswett> Any set, along with a point in that set and a function from the set to itself, is a model of that theory.
01:43:57 <tswett> But the natural numbers are the free model.
01:44:05 <tswett> I think my idea of a "free model" might be the same thing as a term model.
01:44:08 <Taneb> Is the set {{}} a model?
01:44:55 <oerjan> obviously
01:45:03 <tswett> Yeah. 0 = {}, and S({}) = {}.
01:45:47 <oerjan> that's also a free algebra
01:46:02 <oerjan> i mean, the natural numbers with the operation S
01:46:35 <tswett> Right. An algebra is pretty much a type of model, right?
01:46:43 <oerjan> pretty much
01:46:57 <tswett> An algebra is the same thing as a model, a type-of-algebra is the same thing as a theory.
01:47:01 <tswett> More or less.
01:47:30 <oerjan> although this type-of-algebra is a variety.
01:48:35 <oerjan> well, with no equations, even
01:49:08 <oerjan> (does that mean it's a free variety?)
01:51:11 <tswett> Now, categories aren't a type-of-algebra, right? Categories are two-sorted, and one of the sorts is parameterized by the other.
01:51:45 <oerjan> you can ignore the objects and use the identity morphisms instead
01:52:07 <oerjan> however the fact composition isn't always defined may be a bigger problem
01:53:20 <tswett> Ooh, ooh. Lemme see if I understand the proof of the model existence theorem.
01:53:39 <tswett> Suppose we have a consistent theory in first-order logic.
01:54:10 <tswett> Given a statement, there are three possibilities: the theory entails that it's true, the theory entails that it's false, or the statement is independent of the theory.
01:54:38 <tswett> So look through all statements that exist. Whenever you find a statement that's independent of the theory, just arbitrarily decide whether it's true or false.
01:55:01 <tswett> Now you have an assignment of a truth value to every possible statement.
01:55:09 <oerjan> um it needs to be independent of the theory and the statements you've already decided
01:55:17 <tswett> Right.
01:56:00 <tswett> Then... I don't know if you can go from this assignment of a truth value to every statement to a model.
01:57:44 <oerjan> i think for every existence theorem that you've decided to be true, you need to choose a witness for it
01:57:54 <oerjan> *existence statement
01:58:18 <tswett> Yeah, we need to have witnesses.
01:58:26 <oerjan> oh and then you get to decide statements involving that witness as a free variable
02:00:17 -!- PinealGl1ndOptic has quit (Ping timeout: 244 seconds).
02:01:21 <oerjan> and then you probably use zorn's lemma to show you've got a maximal element where everything is decided and everything has witnesses
02:01:44 <tswett> Boy.
02:01:53 <oerjan> (element of the set of partial assignments)
02:02:39 <oerjan> or maybe you don't actually need choice, i don't know this
02:07:27 <tswett> Well, the set of all statements is countable.
02:08:04 <tswett> You can just enumerate them and say that each nondisprovable one is true, or each nonprovable one is false.
02:08:11 <tswett> Except that doesn't give you witnesses.
02:08:34 <tswett> Anyway, I guess you ultimately get a model just by saying that each term is an element of the model, and you glue two terms together if the model entails that the two terms are equal.
02:08:49 <tswett> Er, if the augmented theory entails that.
02:13:13 -!- PinealGlandOptic has joined.
02:16:21 -!- ^v has quit (Read error: Connection reset by peer).
02:16:48 -!- ^v has joined.
02:22:43 -!- naturalog has joined.
02:29:54 <tswett> Now, my view of things is pretty classical-finitistic.
02:30:19 -!- adu has quit (Quit: adu).
02:31:30 <tswett> Once you start talking about uncountable collections, I start to think that you're not really talking about "real mathematical objects" but rather hypothetical ones.
02:32:51 <tswett> This is why I want to figure out how to do model theory without actually talking about models.
02:39:03 <tswett> I definitely feel like there should be a concept of morphisms between models. There probably is.
02:39:17 <tswett> There pretty much has to be.
02:40:33 <tswett> I guess it depends on the flavor of theory, though.
02:41:01 <tswett> The group axioms are a sort of theory, right? A model of the group axioms is a group.
02:41:33 <tswett> And a morphism between two models of the group axioms is a function such that, what.
02:42:04 <tswett> True statements remain true when you take the image of every point mentioned in the statement.
02:42:28 -!- Lymia has quit (Ping timeout: 245 seconds).
02:44:23 <naturalog> hi. i was wondering lately, why Notation3 isnt used as a programming language per-se
02:47:15 <naturalog> and couldnt come up with anything :)
02:47:41 <tswett> Well, can you write fizzbuzz in it?
02:48:00 <naturalog> any dtlc
02:48:17 <naturalog> any HOL
02:48:35 <tswett> What's a DTLC?
02:48:44 <naturalog> dependently typed lambda calculus
02:48:46 <naturalog> e.g. Idris
02:48:52 <naturalog> agda
02:49:03 <naturalog> coq
02:49:28 <tswett> Sounds pretty nice.
02:49:35 <tswett> And is it interpretable?
02:49:56 <naturalog> well...yes and no
02:50:12 <naturalog> you dont actually interpret it, you ask it logic questions
02:50:38 <naturalog> on the other hand you could translate it isomorphically to Idris then idris compiler will compile it to C and gcc from there
02:51:00 <naturalog> but you actually query it with tools like cwm
02:52:07 <naturalog> like "given those rules, what should i do now?"
02:52:11 <boily> if it's isomorphic to Idris, then there exists a map from Idris to Notation3.
02:52:25 <naturalog> sure there's a map
02:52:25 <boily> so program in Idris, then translate.
02:52:49 <naturalog> well it sounds better to program in n3 and then translate. or not translate at all, but query, or infer
02:53:46 <naturalog> ofc Curry-Howard isomorphism has to be kept in mind wrt this
02:55:11 -!- boily has quit (Quit: EXTRACURICULAR CHICKEN).
02:55:36 <oerjan> `? boily
02:55:37 <HackEgo> boily is monetizing a broterhood scheme with the Guardian of Lachine. He's also a NaniDispenser, a Trigotillectomic Man Eating Chicken and a METARologist. He is seriously lacking in the f-word department.
02:57:08 -!- PinealGlandOptic has quit (Ping timeout: 264 seconds).
02:58:33 -!- PinealGlandOptic has joined.
03:20:45 -!- PinealGlandOptic has quit (Ping timeout: 252 seconds).
03:21:15 -!- PinealGlandOptic has joined.
03:23:06 -!- oren has joined.
03:25:57 -!- Lymia has joined.
03:29:58 -!- adu has joined.
03:30:02 <oren> I just realized something: Perl and python code is easy to write but herd to read because it lacks redundancy.
03:31:01 <oren> e.g. python variables never state what exactly their type or usage is.
03:31:41 <oren> So why not make an interpreter which, as it executes, inserts redundancy into the surce
03:32:21 <oren> redundant information such as the type of variables
03:33:42 <naturalog> +1
03:36:57 <oren> In the original source it might say "var x = y * z", but after you run it the first time, the source now says "matrix[batch_size,number_of_outputs] x = y * z"
03:44:48 <oren> C++ could also use such thing. E.g. have an auto type, but have it replaced upon compilation with the variable's actual type
03:47:22 <elliott> in lots of editing environments for languages with type inference you can query the inferred type of some expression or variable in the code
04:01:31 <int-e> oerjan: your latest code on #9858 scares me.
04:04:08 * oerjan cackles evilly
04:04:20 <oerjan> well, you were right that type families were a good idea
04:05:01 <oerjan> and i was right that having things be superclasses was a good idea
04:06:22 <oerjan> also, my hands hate you for suggesting 30 x 30 bridges hth
04:08:23 <int-e> oerjan: Putting the constraints directly in the type family is quite clever. Anyway, there's still the question of whether one wants to track the whole kind of type constructors or just the poly-kinded arguments. For the former, you need the Kindable superclass for Typeable; for the latter, perhaps you don't.
04:09:45 <int-e> (I did the latter, which in retrospect is the main reason why the KindRep stuff didn't infect the normal Typeable (s a) instance.)
04:11:38 <oerjan> well my point in having Kindable a superclass is so it doesn't have to mentioned explicitly in type signatures, giving backwards compatibility
04:11:44 <oerjan> *to be
04:14:11 <oerjan> also my instance code for Typeable (a b) doesn't mention Kindable now.
04:15:07 <oerjan> and also i don't put the kind in the TypeRep for the monokind types
04:15:42 <oerjan> although it's still in the superclass of course
04:19:39 -!- Eolus has joined.
04:19:53 <Eolus> Pffft I hate phones
04:20:04 <oerjan> noisy little buggers
04:20:21 <Eolus> They never work >:(
04:20:46 -!- Eolus has quit (Client Quit).
04:21:25 -!- Guest81556 has joined.
04:21:59 -!- Guest81556 has changed nick to Lilax.
04:22:26 <Lilax> ok so just getting used to and chat
04:27:32 <int-e> oerjan: So essentially, you've circumvented the open world assumption, saying "well, whatever the instance is, it *will* contain evidence for the parts, just as if the standard instance had been used."
04:27:50 <int-e> So tricky.
04:28:32 <int-e> But it's a complication that the compiler doesn't actually face.
04:29:10 <oerjan> have you looked at my kind-polymorphic recursion test cases?
04:29:18 <int-e> oerjan: on the matter of not breaking code, I wonder how many uses that amount to variations on typeRep (Proxy :: Proxy Proxy) are out there.
04:32:34 <oerjan> obviously there are no working uses out there that depend on typeReps actually distinguishing kinds
04:35:54 <int-e> oerjan: Okay, let me split that up into two questions. 1. Are there any users who inadvertently use a Typeable instance whose kind is not fully instantiated at runtime? 2. What will the [user-visible] type of typeRep (Proxy :: Proxy Proxy) be under the proposed solutions? I *hope* that the Kindable (or Typeable) constraint for the kind will show up in that type.
04:37:08 <oerjan> No instance for (Kindable Proxy) arising from a use of ‘typeRep’
04:37:08 <oerjan> The type variable ‘k0’ is ambiguous
04:40:24 <oerjan> istr there's an Any_K or something that's used when a kind isn't known
04:41:29 <oerjan> i deliberately didn't suggest any test cases that pick up a kind from something non-Typeable passed in
04:41:53 <oerjan> because i feel those "morally" shouldn't compile
04:42:25 <oerjan> and making them actually work would essentially require having no kind erasure
04:42:42 <oerjan> imo
04:44:23 <oerjan> i don't know whether anyone has mixed Typeable with code depending on kind polymorphism in an essential way.
04:44:25 * Lilax cries silently
04:44:38 * oerjan gives Lilax a lollipop
04:44:55 <Lilax> Thank
04:46:24 <naturalog> :)
04:49:52 -!- ProofTechnique has quit (Ping timeout: 245 seconds).
04:50:06 -!- naturalog has quit (Quit: leaving).
04:50:07 <int-e> oerjan: Hmm, I need to think about this some more.
04:50:54 <oerjan> int-e: what i can see happening is some polymorphic code with signature (Typeable a, Typeable b) => ... and then applying some polymorphic type constructor to an (a b) inside
04:51:26 <oerjan> that's the most likely case where the "solver" solution needs to decompose kinds
04:52:02 <int-e> oerjan: If one goes against your stated "moral" principle, just using Any_K will be insufficient, because it cannot distinguish kinds (forall k. k -> k) and (forall k1 k2. k1 -> k2) or ((forall k.k) -> (forall k.k)).
04:52:12 <oerjan> if you cannot actually deduce that a b's kind is Kindable, then you cannot make a Typeable instance for the polymorphic type constructor
04:53:08 <oerjan> um is Any_K a kind or a type again
04:54:05 <Lilax> haskell?
04:54:24 <Lilax> I'm still a noob :0
04:54:59 -!- nys has quit (Quit: quit).
04:57:00 -!- naturalog has joined.
04:57:40 <oerjan> i cannot remember where i found it
04:58:18 <oerjan> int-e: probably kinds tend to default to * anyway
05:00:15 <oerjan> int-e: anyway, the representation i made up today is meant to work about the way i understood goldfire's explanation of how the solver would work, except written in existing haskell.
05:01:35 <oerjan> and as i've mentioned, i believe the essential need to decompose kind representations comes about already when constructing Typeable (a b)
05:03:21 <int-e> oerjan: There is this interesting sentence on the wiki page: "Although it is impossible to create all necessary Typeable instances for poly-kinded constructors at the definition site (there's an infinite number), it is possible to create Typeable "instances" on demand at use sites."
05:03:49 <int-e> Oh well.
05:03:58 <Lilax> Mhmm
05:04:30 <oerjan> yes, that's the sentence that made me think they were only constructing kind-monomorphic instances, and led to me making those test examples
05:04:54 <oerjan> i think i've disproved that sentence now :P
05:05:20 <int-e> Yeah, I'll add a comment.
05:05:42 <oerjan> ooh
05:11:38 <Lilax> Oh mai
05:13:24 -!- ProofTechnique has joined.
05:24:07 -!- GeekDude has quit (Remote host closed the connection).
05:36:58 <oerjan> int-e: i don't think it's impossible to adjust my representation to be more clever about leaving out redundant kind info in TypeReps
05:46:01 <int-e> hmm, that took longer than expected.
05:46:16 <oerjan> what did?
05:46:24 <int-e> the comment :P
05:48:43 <int-e> but I hope I managed to express the concern that hiding evidence is bad.
05:52:09 <int-e> I should've used that phrase...
05:52:25 <oerjan> hm now i'm worrying about your second point too
05:52:33 <elliott> int-e: I suspect kinds default to *.
05:52:38 <elliott> I have no evidence, though.
05:52:44 <elliott> maybe Core will tell you
05:53:13 <int-e> elliott: I don't think any defaulting happens at all.
05:53:20 <oerjan> elliott: my tests with my implementation indicate that the kind stays ambiguous and the program fails to compile.
05:53:26 <int-e> The kinds are erased after all. Who cares if they're still polymorphic ;-)
05:53:29 <elliott> hmm, alright.
05:53:38 <elliott> int-e: that is basically like GHC's "Any" stuff then
05:53:40 <elliott> (just, implicitly)
05:54:24 <int-e> Except when they aren't erased, and that's what happens with oerjan's code.
05:54:30 <oerjan> int-e: for the first point, my idea was that all Kindable contexts have to come from a Typeable one, which must be explicit if it is now.
05:55:20 <elliott> I think kinds should be able to be instances before anything like this i done
05:55:23 <elliott> *is
05:55:29 <elliott> so that you can just use Typeable rather than adding a new class.
05:55:33 <int-e> oerjan: Oh, mumble. I wanted to mention that that function currently has type Proxy Proxy -> TypeRep
05:55:56 <int-e> oerjan: So for backward compatibility, it cannot take a Typeable context.
05:56:15 <oerjan> ooh
05:56:42 <oerjan> ic. i suspect this will be a problem for _all_ the suggested solutions.
05:59:47 <int-e> Ok, I clarified that.
05:59:49 <oerjan> int-e: if there is an _explicit_ type signature, then i think kinds default to *.
06:00:30 <oerjan> if there is _not_ an explicit type signature, then inferring a Typeable constraint, or defaulting to * if there is a monomorphism restriction involved, might be the best thing.
06:01:29 <oerjan> although i guess with my method the constraint would actually be Kindable. oh well.
06:02:22 <oerjan> i suspect in most cases that appear in practice, * will be what's intended if there is nothing to disambiguate.
06:05:12 <oerjan> <elliott> I think kinds should be able to be instances before anything like this i done <-- that's not _quite_ the same thing as types and kinds being able to be instances of the _same_ class. both would help here, of course.
06:05:49 <int-e> oerjan: Anyway, I never considered burying kindable evidence as a possible solution, so I always assumed that any solution that closes the Typeable hole would break *some* code.
06:05:54 <elliott> oerjan: right, that's what I mean.
06:05:57 <elliott> oerjan: get that done before doing all this.
06:06:04 <elliott> ''
06:06:05 <elliott> oops
06:06:20 <elliott> int-e: I think it's fine for code to pick up additional Typeable constraints, honestly
06:06:23 <oerjan> elliott: well this is meant to be a stopgap solution for 7.10, first.
06:06:31 <elliott> like, come on, BBP and everything ish appening
06:06:38 <elliott> oerjan: I guess this way doesn't break compatibility so it would be "okay"
06:06:47 <elliott> but please fix it at some point, thanks :p
06:08:35 <oerjan> int-e: well i always assumed there would be some _possible_ code that could break, but your typeRep (Proxy :: Proxy Proxy) example has convinced me it's more likely than i thought that it's actually out there.
06:09:01 -!- shikhin has joined.
06:10:04 <int-e> well, let's see what Richard (and perhaps SPJ) think about this
06:11:11 <oerjan> if we didn't worry about breaking backwards compatibility at _all_, then i'd go for making the kinds fully explicit instead of extracting things deeply from Typeable.
06:11:43 <int-e> oerjan: And this is why I suggested to push this to 7.12.
06:12:11 -!- shikhin_ has quit (Ping timeout: 245 seconds).
06:14:17 <oerjan> although i think your second issue can be mostly solved by default a bit more aggressively to *
06:14:20 <int-e> (I mean, I had vague ideas in my mind that suggested that any proper solution for plugging the Typeable whole would necessarily break compatibility, and a conviction (which I still have) that doing so after 2 RCs would be bad.)
06:14:26 <oerjan> *defaulting
06:14:49 <elliott> oerjan: that would be weird though
06:14:52 <int-e> oerjan: Yeah, (And elliott: I'm happy with extra Typeable constraints popping up for such code, too.)
06:14:56 <elliott> like stuff randomly gets monokinded
06:15:08 <elliott> and you fix it by adding a typeclass instance(??)
06:15:11 <elliott> er
06:15:13 <elliott> typeclass constraint
06:15:46 <oerjan> elliott: well it would still be _inferred_ with the typeclass instance. i mean defaulting to * in essentially the same cases type defaulting happens.
06:15:54 <elliott> ah
06:16:01 <elliott> okay, maybe that would work.
06:17:01 <int-e> Lilax: sorry, this is not supposed to be a Haskell channel. It's just that 3 of the people involved in discovering and exploring the ramifications of this particular bug happen to be here, and a few other Haskell enthusiasts.
06:17:27 <Lilax> wat
06:17:30 <int-e> This particular discussion will probably fade away in a week or three.
06:17:33 <Lilax> I said rhat
06:17:39 <Lilax> Like an hour ago
06:18:06 <int-e> Lilax: yes, and we're still going on about the same thing.
06:18:26 <elliott> this channel always talks about haskell though
06:19:26 <int-e> Oh sure, but I like to think that most of those discussions are more accessible than this. But perhaps I'm wrong. Lenses are scary, too.
06:20:06 <Lilax> ye
06:23:54 <oren> i have invented a new direction: doup which is sort of down or up depending on context.
06:24:18 <oerjan> it depends on the gravity of the situation
06:24:41 <oerjan> or levity, depending on context
06:26:01 <Lilax> What's the void inbetween dimensions called?
06:26:05 <oren> oerjan: it also allows Y and upside down Y nodes to have the same structure
06:26:05 <int-e> oren: sounds like "up" which means "down" on ${OPPOSITE_CONTINENT}.
06:26:20 <Lilax> lol
06:27:24 <oerjan> Lilax: that's not a scientific concept, so probably varies wildly between religion / crackpot / scifi writer / superhero series
06:27:39 <Lilax> no
06:27:42 <Lilax> NO!
06:27:59 <Lilax> Dimension 1 -> Dimension 2
06:28:11 <Lilax> what is the -> then
06:28:13 <oerjan> in science, that's just not how dimensions work.
06:28:16 <Lilax> A wormhole
06:28:25 <Lilax> sometimes oerjan
06:28:28 <oerjan> and they're _not_ the same thing as dimensions in comics
06:28:33 <Lilax> Shhh
06:28:35 <oren> dimension can mean all sorts of things
06:28:45 <Lilax> Ish okey
06:29:19 <oren> I like to use it to mean how many real numbers you need in order to specify something
06:29:22 -!- ProofTechnique has quit (Ping timeout: 240 seconds).
06:29:24 <oerjan> int-e: now i'm reminded of Overside
06:29:33 <oerjan> (from riceboy)
06:29:48 <Lilax> Uh I forget my though
06:29:51 <Lilax> thought
06:32:01 -!- oerjan has quit (Quit: Good night, anyway).
06:32:18 -!- ProofTechnique has joined.
06:34:58 -!- Adrop has joined.
06:36:10 -!- Adrop has left.
06:57:51 <Lilax> androirc gave me admin options so idk maybe its crap
06:59:13 <elliott> admin options?
07:30:31 <int-e> operator stuff? kick, ban, etc?
07:30:55 -!- ChanServ has set channel mode: +o elliott.
07:31:00 <elliott> oops
07:31:01 -!- elliott has set channel mode: -o elliott.
07:31:03 <elliott> that was meant to be
07:31:06 -!- ChanServ has set channel mode: +o Lilax.
07:31:12 <elliott> they're not redundant now, problem solved!
07:31:17 -!- ChanServ has set channel mode: -o Lilax.
07:32:30 -!- Patashu has joined.
08:00:50 <Lilax> what
08:00:57 <Lilax> why did you OP me lol
08:01:15 <elliott> so you could use admin commands :p
08:01:21 <Lilax> but yes admin options kick ban disband channel
08:01:39 <Lilax> but why would you give them to me
08:01:43 <elliott> those probably just won't do anything if you use them. hopefully.
08:01:51 <Lilax> I mean I am your friend but
08:02:05 <Lilax> ok
08:04:21 -!- ChanServ has set channel mode: +v Lilax.
08:04:25 <elliott> compromise!
08:04:33 <Lilax> ayyy lmao
08:09:24 <Lilax> The people gather in the streets
08:15:56 -!- hjulle has joined.
08:23:35 -!- adu has quit (Quit: adu).
08:24:25 -!- Tritonio has joined.
08:29:08 -!- hjulle has quit (Ping timeout: 246 seconds).
08:35:06 -!- Lilax has quit (Ping timeout: 245 seconds).
08:40:41 <b_jonas> fungot, why does libcurl have to be so type-unsafe?
08:40:59 <b_jonas> it's so old style
08:41:35 <b_jonas> fungot?
08:53:36 <int-e> fungot is on vacation because fizzie is moving between servers
08:55:36 <AndoDaan> When fungot is offlin, is it dead?
08:55:53 <int-e> It's not dead, it's resting.
08:55:54 <b_jonas> `8-ball When do you suppose fungot will be back?
08:55:55 <HackEgo> Better not tell you now.
08:56:19 <AndoDaan> It's pining for the fnords.
08:56:38 <int-e> pinning, eh?
08:56:48 <Jafet> If fizzie moves it to the UK, it will be
09:01:42 <Jafet> Hmm https://en.wikipedia.org/wiki/Category:Fjords_of_Finland
09:07:35 <int-e> Does pining have anything to do with pines?
09:09:40 -!- MDude has changed nick to MDream.
09:11:29 -!- FreeFull has quit (Ping timeout: 246 seconds).
09:14:07 <AndoDaan> int-e, it's physically impossible for my brain to think otherwise.
09:21:28 <fizzie> int-e: Technically, I'm not moving between servers, I'm moving the one server to another place.
09:45:51 * Taneb hello
09:47:01 -!- Patashu_ has joined.
09:47:01 -!- Patashu has quit (Disconnected by services).
09:53:45 -!- Patashu has joined.
09:54:14 <HackEgo> [wiki] [[Brainfuck-ng]] http://esolangs.org/w/index.php?diff=41843&oldid=41841 * Elboza * (+316)
09:54:39 <HackEgo> [wiki] [[Brainfuck-ng]] http://esolangs.org/w/index.php?diff=41844&oldid=41843 * Elboza * (+1)
09:55:12 <HackEgo> [wiki] [[Brainfuck-ng]] http://esolangs.org/w/index.php?diff=41845&oldid=41844 * Elboza * (+1)
09:56:07 <HackEgo> [wiki] [[Brainfuck-ng]] http://esolangs.org/w/index.php?diff=41846&oldid=41845 * Elboza * (+11)
09:56:39 -!- Patashu_ has quit (Ping timeout: 244 seconds).
10:03:36 -!- FreeFull has joined.
10:12:04 -!- AnotherTest has joined.
10:21:19 -!- Phantom_Hoover has joined.
10:24:50 <HackEgo> [wiki] [[Brainfuck-ng]] http://esolangs.org/w/index.php?diff=41847&oldid=41846 * Elboza * (+0)
10:35:23 <HackEgo> [wiki] [[Brainfuck-ng]] http://esolangs.org/w/index.php?diff=41848&oldid=41847 * Elboza * (-5)
10:47:44 -!- TodPunk has quit (Ping timeout: 246 seconds).
11:13:54 -!- Patashu has quit (Ping timeout: 252 seconds).
11:15:03 -!- Phantom_Hoover has quit (Ping timeout: 264 seconds).
11:24:32 -!- boily has joined.
11:47:44 -!- Taneb has quit (Ping timeout: 265 seconds).
11:49:54 -!- jameseb has quit (Ping timeout: 276 seconds).
11:56:42 -!- jameseb has joined.
11:56:42 -!- Taneb has joined.
11:59:33 <int-e> fizzie: fair enough
12:02:05 <boily> @ask Lilax back to Lilax, eh?
12:02:05 <lambdabot> Consider it noted.
12:02:14 -!- Tritonio has quit (Remote host closed the connection).
12:02:33 -!- Tritonio has joined.
12:12:03 -!- shikhin has quit (Ping timeout: 245 seconds).
12:14:17 -!- shikhin has joined.
12:20:32 <HackEgo> [wiki] [[Mice in a maze]] http://esolangs.org/w/index.php?diff=41849&oldid=41820 * TomPN * (+0) /* Hello World! */
12:22:49 -!- boily has quit (Quit: LAGOPEDE CHICKEN).
12:33:39 -!- FreeFull has quit (Ping timeout: 265 seconds).
12:37:18 -!- GeekDude has joined.
13:24:58 -!- ProofTechnique has quit (Ping timeout: 245 seconds).
13:25:20 -!- FreeFull has joined.
14:14:08 -!- ProofTechnique has joined.
14:19:07 -!- heroux has quit (Ping timeout: 256 seconds).
14:38:20 -!- ^v has quit (Read error: Connection reset by peer).
14:38:29 -!- Phantom_Hoover has joined.
14:38:47 -!- ^v has joined.
14:42:43 -!- ais523 has joined.
14:43:46 -!- Naprecks has joined.
14:54:17 -!- oerjan has joined.
14:54:47 -!- oren has quit (Ping timeout: 265 seconds).
14:55:32 -!- adu has joined.
15:04:34 -!- `^_^v has joined.
15:11:11 -!- oren has joined.
15:11:42 -!- SopaXorzTaker has joined.
15:14:33 -!- PinealGlandOptic has quit (Ping timeout: 264 seconds).
15:26:20 <HackEgo> [wiki] [[Brainfuck-ng]] http://esolangs.org/w/index.php?diff=41850&oldid=41848 * Ais523 * (-168) remove/adjust some things that were presumably accidentally copied from [[brainfuck]]
15:37:44 -!- shikhin has quit (Quit: leaving).
15:38:03 -!- shikhin has joined.
15:43:47 <b_jonas> fungot, are you back yet?
15:43:52 <mroman> No.
15:49:28 <mroman> we should un-invent brainfuck
15:49:33 -!- Frooxius has quit (Ping timeout: 245 seconds).
15:50:27 -!- SopaXorzTaker has quit (Read error: Connection reset by peer).
15:50:39 -!- SopaXorzTaker has joined.
15:53:38 <oerjan> the current darths & droids is seriously straining my suspension of disbelief.
15:54:11 <int-e> oerjan: unbelievable
15:54:29 <int-e> . o O ( I find your lack of faith disturbing )
15:55:59 <b_jonas> oerjan: I just don't understand it. I hope the explanation will continue in the next strip or the next few.
15:56:16 <b_jonas> with flashbacks.
15:57:11 <oerjan> int-e: i don't think goldfire got your point
15:57:34 <oerjan> alternatively, he envisions the solver as being more magical than i do
15:57:55 -!- SopaXorzTaker has quit (Ping timeout: 252 seconds).
15:59:37 <int-e> oerjan: Hmm, let me see...
16:00:07 <fizzie> b_jonas: It will probably still be maybe two weeks.
16:01:29 <oerjan> (i assume your point is that _currently_, that code gets inferred to a signature not containint Typeable (Proxy ...) at all)
16:01:40 <oerjan> *g
16:01:49 <b_jonas> fizzie: ok
16:01:50 <int-e> oerjan: I think this stuff is actually fairly easy on the type inference level. Any constraint that can't be solved immediately (and an unknown kind means that the Typeable constraint is not solvable) ends up being propagated upwards.
16:02:42 <oerjan> int-e: well i agree wthat it's easy, but also it's not backwards-compatible
16:02:46 <oerjan> *-w
16:02:56 <int-e> oerjan: At least my impression was that most of the complications our mock implementations ran into had to do with the open world assumption. When treating Typeable specially (and that is the plan), the compiler isn't bound by it.
16:03:14 <oerjan> um i don't see the difference, really
16:03:32 <oerjan> the type signature still has to change, either way.
16:03:44 <oerjan> otherwise, kinds no longer become subject to type erasure.
16:04:50 <oerjan> because a signature that doesn't mention that the kind needs to be Kindable _somehow_ implies that the function has an ABI where the kind _does_ get erased.
16:05:03 <oerjan> *, implies
16:06:25 <oerjan> maybe i should make a comment
16:07:16 <b_jonas> "kinds no longer become subject to type erasure" -- I don't know what that means but it sounds scary
16:07:54 <b_jonas> oh, you mean kind parameters inside types when they don't influence the resulting type, right?
16:08:04 <b_jonas> wasn't that what this typable stuff was about?
16:08:44 <b_jonas> or maybe not
16:08:48 <b_jonas> I don't know how it works
16:09:00 <oerjan> yes. but the attempt is to make this backwards compatible, and int-e's test case would seem to break that.
16:09:08 -!- adu has quit (Quit: adu).
16:11:44 -!- SopaXorzTaker has joined.
16:18:34 -!- Sprocklem has joined.
16:21:11 -!- Sprocklem has quit (Client Quit).
16:21:20 -!- Sprocklem has joined.
16:23:30 -!- oren has quit (Quit: Lost terminal).
16:28:09 <int-e> oerjan: Right, that was the point (as I just said on the ticket)
16:28:26 -!- MDream has changed nick to MDude.
16:31:26 -!- adu has joined.
16:33:52 <TieSoul> un-inventing brainfuck souds like a good idea
16:33:59 <TieSoul> there's too many damn derivatives
16:34:34 <TieSoul> but I have a feeling people would make derivatives of some other random esolang instead if brainfuck were un-invented
16:34:57 <TieSoul> and then we'd have to un-invent those
16:35:11 <TieSoul> and eventually we'd have no esolangs left
16:35:25 <J_Arcane> I should make another retro language one of these days.
16:35:49 <TieSoul> except maybe eodermdrome because nobody wants to try implementing eodermdrome :P
16:36:27 <b_jonas> TieSoul: why is implementing relevant? people invent languages they don't try to implement.
16:36:35 <b_jonas> J_Arcane: what's a "retro language" like?
16:36:40 <TieSoul> well
16:36:41 <TieSoul> true
16:36:56 <J_Arcane> b_jonas: like VIOLET. Or that COBOL-parody punchcard language.
16:36:58 <TieSoul> but only having unimplemented languages seems pointless
16:37:11 <J_Arcane> Something meant to feel like it could've been developed in the 1970s.
16:37:21 <b_jonas> I see
16:39:59 <Jafet> Eodermdrome has been implemented... multiple times, in fact
16:40:53 <TieSoul> yeah, I just learned about that
16:41:01 <TieSoul> and now what I said seems kind of stupi
16:41:03 <TieSoul> d
16:45:11 <Jafet> Look to the future--there is probably yet room for a good satire of ecmascript
16:47:02 <J_Arcane> http://fortytwo-as-a-service.herokuapp.com/
16:47:54 <J_Arcane> Jafet: Much as I'm starting to love it, ecmascript is it's own parody already: https://twitter.com/abt_programming/status/563318058996224000
16:48:10 <Jafet> Hence "good"
16:50:09 <int-e> oerjan: Btw, I'm not sure that some sort of Kindable information isn't required in general; I think comment 47 indicates that Richard sort of agrees, but hopes to cover that information in a TypeRep? Hmm :)
16:53:49 <oerjan> Jafet: ESMEscript hth
16:54:09 * oerjan hands out vomit bags
16:55:39 <J_Arcane> Enterprise-Grade JavaScript. ;)
16:56:12 <J_Arcane> Ahahahaha: https://github.com/ajlopez/CobolScript
16:56:44 <Jafet> Is that a parody or an enhancement?
16:57:08 <J_Arcane> It is apparently real software, transpiling COBOL to JS ...
16:57:10 <oerjan> int-e: so far, i've seen nothing to indicate my mock implementation will be that different from what they end up with in terms of actual information passed.
16:58:14 <oerjan> um that statement might need some careful interpretation
16:58:45 <oerjan> i'm saying, the might not use superclasses, but if so they'll end up passing the same information in a different way.
16:58:49 <oerjan> *+y
16:59:19 <Jafet> Oh, it actually uses COBOL as input, which makes it quite commercially oriented
16:59:30 <oerjan> a solver might be more clever about how it extracts things
16:59:57 <Jafet> (As in, if you do this properly someone would probably buy it.)
17:08:05 -!- bb010g has quit (Quit: Connection closed for inactivity).
17:12:30 <b_jonas> we need a computed come from statement in BANCStar
17:13:41 <int-e> oerjan: and another comment...
17:13:56 <int-e> oerjan: this one should be closer to your concerns about Kindable :)
17:17:37 <oerjan> g :: forall (k :: BOX) (a :: k) (b :: k). Kindable Proxy => Proxy a -> Proxy b -> PolyTypeable2.TypeRep
17:18:01 <oerjan> :t 's printing of kinds is so annoying
17:18:25 <int-e> oerjan: yeah, but simplified that will be what I wrote: g :: Typeable k => Proxy (a :: k) -> Proxy (b :: k) -> TypeRep
17:18:49 <int-e> oerjan: (simplified by getting rid of the Proxy-that-only-serves-to-make-the-class-parameter-have-kind-*)
17:19:07 <oerjan> yeah probably
17:19:23 <oerjan> that's the inferred type anyway
17:20:16 <b_jonas> int-e: what? no, you're getting it backwards
17:20:37 <int-e> b_jonas: are you sure?
17:20:48 <oerjan> oh hm i see what you're saying: it's not necessarily possible to infer a non-kind based type
17:21:00 <b_jonas> int-e: you need the proxy because a method in the cass isn't allowed to have a type that doesn't depend on the class arguments, such as Typerep, it has to depend on them, so you need at least a proxy
17:21:18 <b_jonas> int-e: minValue in enum should use such a proxy too
17:21:18 <oerjan> yeah, Kindable or the like is needed for sensible type inference
17:21:53 <b_jonas> if you wish, you could add a convenience function for the simple case when you already have a value of that type, but you shouldn't need a value, a proxy should be enough
17:22:13 <oerjan> b_jonas: um you need the proxy because classes cannot have arguments that are kinds.
17:22:45 <int-e> b_jonas: That's wrong. The class method could take a proxy, and in fact it does: Data.Typeable.Internal.typeRep# :: GHC.Prim.Proxy# a -> TypeRep
17:22:46 <b_jonas> oerjan: oh, you mean Kindable needs a proxy for that?
17:22:50 <oerjan> yes
17:22:56 <b_jonas> I thoguht you asked why Typable needs a proxy
17:22:59 <b_jonas> ok... dunno
17:23:08 <int-e> b_jonas: Sorry, but oerjan got this right.
17:23:35 <oerjan> there's a proposal on the Typeable ghc trac wiki page to change Typeable to use a phantom type instead.
17:23:50 <oerjan> unrelated to this bug
17:24:59 <b_jonas> ok. but I mean, how would you use Typeable on a type that isn't of kind * without such a proxy with a phantom type?
17:25:00 <int-e> b_jonas: *personally* I would prefer newtype Tagged a b = Tagged b, and typeRep# :: Tagged a TypeRep. And in fact that's pretty much what the TTypeRep idea accomplishes.
17:25:19 <int-e> b_jonas: So I disagree about the minValue; I want to eliminate the proxies instead.
17:25:39 <int-e> b_jonas: at least from the class methods. They are still useful for convenience functions.
17:25:47 <b_jonas> int-e: a constructor wrapper instead of a functions? sure, that would be better
17:25:48 -!- Koen_ has joined.
17:26:05 <int-e> oh wait a second
17:26:15 -!- Koen_ has quit (Read error: Connection reset by peer).
17:26:16 <b_jonas> waiting
17:26:24 <b_jonas> (and no, I don't really know what I'm talking about.)
17:26:34 -!- Koen_ has joined.
17:26:59 <int-e> b_jonas: I presume you mean minBound in Bounded?
17:27:15 <b_jonas> int-e: yes, those. whatever Bounded has
17:27:17 <b_jonas> not Enum
17:28:07 <b_jonas> you know, we in C++ have more easy to remember names for important stuff like this, namely numeric_limits<T>::lowest() and numeric_limits<T>::max()
17:28:21 <b_jonas> those don't take a dummy argument
17:28:29 <oerjan> int-e: i'm a little bit miffed that they didn't include Tagged in base when they absorbed Proxy.
17:28:44 <int-e> If so, minBound :: Bounded a => a is perfect. minBound :: Proxy a -> a would carry unnecessary runtime cost. However, there may be a case for defining a small convenience function outside the class, minBoundProxy :: Enum a => Proxy a -> a; minBoundProxy _ = minBound.
17:29:41 -!- gde33 has joined.
17:30:02 <int-e> (I don't see the point though, since I don't see how that would save any type signatures)
17:30:47 <b_jonas> yeah, it wouldn't
17:32:06 -!- oerjan has quit (Quit: Later).
17:33:50 <int-e> @tell oerjan yes, the omission of Tagged is sad, given that one can naturally write taggedToProxy :: Tagged a b -> Proxy a -> b and proxyToTagged :: (Proxy a -> b) -> Tagged a b.
17:33:50 <lambdabot> Consider it noted.
17:37:11 -!- huc has joined.
17:38:10 -!- huc has quit (Client Quit).
17:40:43 -!- nys has joined.
17:50:57 -!- skj3gg has joined.
17:53:12 -!- SopaXorzTaker has quit (Remote host closed the connection).
17:58:40 -!- skj3gg has quit (Quit: ZZZzzz…).
18:06:21 -!- skj3gg has joined.
18:09:20 -!- shikhin_ has joined.
18:09:33 -!- Lymia has quit (Ping timeout: 245 seconds).
18:10:35 <HackEgo> [wiki] [[Special:Log/newusers]] create * Mihip * New user account
18:13:01 -!- shikhin has quit (Ping timeout: 245 seconds).
18:14:38 -!- shikhin_ has changed nick to shikhin.
18:19:23 -!- skj3gg has quit (Quit: ZZZzzz…).
18:21:56 -!- oren has joined.
18:22:36 -!- skj3gg has joined.
18:23:52 <oren> Would it be possible for a language to incorporate neural networks in a central role
18:24:05 <J_Arcane> I don't see why not.
18:24:16 -!- AndoDaan has quit (Ping timeout: 245 seconds).
18:25:37 <oren> I am imagining a source file consisting of defining the network and the format of training data, and a "compilation" consisting of training the network.
18:26:13 <oren> But the network can also contain parts that are defined algorithmically, and not trained
18:28:33 <oren> The final executable would incorporate the trained network(s).
18:42:22 <Jafet> Just define the whole network by training data...
18:42:45 <Jafet> Naturally, the program input is the validation data.
18:44:13 <oren> Jafet: but formatting??? the input has to be defined as to which parts are ignored, how to segment it.
18:44:31 <HackEgo> [wiki] [[Prelude]] http://esolangs.org/w/index.php?diff=41851&oldid=13450 * 86.176.120.87 * (+86) /* External resources */
18:50:37 <Jafet> It should be enough just to set the number of layers, number of neurons, and size of each sample.
18:51:15 <Jafet> Then give enough data to reliably train a cat program. Hello world is left as an exercise.
18:52:14 -!- arjanb has joined.
18:52:24 <Jafet> (How would you produce an output without inputs?)
18:52:47 -!- heroux has joined.
18:59:43 -!- idris-bot has quit (Quit: Terminated).
19:00:00 -!- idris-bot has joined.
19:04:44 <oren> Jafet: like this:
19:05:36 <oren> INPUT FORMAT (IGNORE ALL, EOF)
19:06:26 <oren> NET INPUT: (ZEROS(N))
19:06:58 <oren> In other words, ignore all input, and feed the net N zeros
19:07:39 <oren> Then you train it to output 13 characters
19:08:13 <oren> (Assuming feed-forward network architecture)
19:10:44 <oren> Cat could be INPUT FORMAT((CHAR C)*,EOF) NET INPUT(C) NET TARGET(C)
19:11:35 <oren> Or maybe a more terse syntax
19:14:19 <Jafet> Alternatively you can use a recurrent network to get mutable state more easily.
19:15:33 <oren> Jafet: yeah. I haven't been able to implement reccurrent network properly yet tho. I'll have to wait until my NN course gets to them
19:30:49 -!- skj3gg has quit (Quit: ZZZzzz…).
19:35:26 -!- skj3gg has joined.
19:35:43 -!- shikhin has quit (Ping timeout: 250 seconds).
19:37:29 -!- shikhin has joined.
19:40:38 -!- nys has quit (Quit: quit).
20:01:48 -!- Patashu has joined.
20:02:44 -!- TodPunk has joined.
20:04:45 -!- Phantom_Hoover has quit (Ping timeout: 250 seconds).
20:07:38 -!- TodPunk has quit (Read error: Connection reset by peer).
20:07:57 -!- TodPunk has joined.
20:24:16 -!- Patashu has quit (Ping timeout: 245 seconds).
20:33:28 -!- _AndoDaan has joined.
20:34:54 <_AndoDaan> Okay, so brainfuck-ng isan interpreter, not a new language.
20:35:13 <b_jonas> um, it could be both?
20:35:58 <_AndoDaan> Is it different enough from bf?
20:36:17 -!- Tod-Autojoined has joined.
20:36:21 -!- bb010g has joined.
20:36:25 -!- TodPunk has quit (Ping timeout: 264 seconds).
20:38:09 <Koen_> I had an computer science theory class today
20:38:17 -!- _AndoDaan has changed nick to AndoDaan.
20:38:19 <Koen_> or whatever fancy name you call those classes in english
20:38:50 <Koen_> and we talked about Post problems, which are basically a string-rewriting thingy
20:38:55 <AndoDaan> Did you win it?
20:39:21 <Koen_> and the first example we had was one where we had a binary string, and it kept increasing
20:40:05 <AndoDaan> Bust beaver?
20:40:22 <AndoDaan> Busy, I mean.
20:40:49 <Koen_> 0000p 0001q 0001p 000p0 0001q etc
20:41:09 <Koen_> it wasn't obvious from the beginning that was what was happening
20:41:57 <HackEgo> [wiki] [[Brainfuck-ng]] http://esolangs.org/w/index.php?diff=41852&oldid=41850 * Rdebath * (-1) CnP error
20:42:14 <Koen_> so we had all those trandformations rules written down, that were actually kinda hard to read
20:42:22 <Koen_> and the teacher asked us the next string at every step
20:42:41 <Koen_> which is sloooow if you have to find the correct rule without knowing what to expect
20:43:17 <Koen_> and at some point I realized no one else knew what to expect so they had all been doing hard work
20:45:59 <Koen_> that class is fun but also somewhat disappointing as sometimes it sounds like we're reading a random page from esolangs wiki
20:46:22 <Koen_> it would be more fulfilling if I felt like we were building something
20:47:11 -!- ^v^v has joined.
20:47:31 -!- skj3gg has quit (Quit: ZZZzzz…).
20:47:49 -!- nycs has joined.
20:49:57 -!- `^_^v has quit (Ping timeout: 250 seconds).
20:49:57 <Koen_> I mean, math classes go like "we want to do fun stuff with probabilities, so let's build a whole measure theory for that"
20:50:23 -!- ^v has quit (Ping timeout: 245 seconds).
20:50:44 <Koen_> but the computerry classes go like "erm okay so this is an automat. and this is an automat hooked to a tape. and this is a string-rewriting thingy."
20:51:13 <b_jonas> Ugh, measure theory is ugly. I still don't understand the basics of the important proofs, despite that they're supposed to be nice.
20:51:35 -!- Tritonio has quit (Remote host closed the connection).
20:51:53 -!- Tritonio has joined.
20:54:33 -!- _AndoDaan has joined.
20:55:13 -!- FreeFull has quit (Ping timeout: 256 seconds).
20:55:18 <MDude> Whu do computer class have to do with restaraunts based on walls of vending machines?
20:55:22 -!- Sprocklem has quit (Ping timeout: 240 seconds).
20:55:23 -!- _AndoDaan_ has joined.
20:56:46 -!- AndChat-234416 has joined.
20:57:19 -!- AndoDaan has quit (Ping timeout: 245 seconds).
20:58:01 -!- AndChat-234416 has quit (Client Quit).
20:58:57 -!- _AndoDaan has quit (Ping timeout: 252 seconds).
20:59:41 -!- _AndoDaan_ has quit (Ping timeout: 252 seconds).
21:07:19 -!- skj3gg has joined.
21:18:18 <J_Arcane> "// false, null, undefined, NaN, 0 and "" are falsy; everything else is truthy. Note that 0 is falsy and "0" is truthy, even though 0 == "0"."
21:18:23 <J_Arcane> Hah hah.
21:18:53 <b_jonas> J_Arcane: is that about ecmascript?
21:19:18 <J_Arcane> Reading the learnxiny for JavaScript yeh.
21:22:15 -!- GeekDude has changed nick to GeekAfk.
21:23:21 -!- AndoDaan has joined.
21:34:09 -!- Lymia has joined.
21:37:49 <HackEgo> [wiki] [[Malbolge]] http://esolangs.org/w/index.php?diff=41853&oldid=41721 * 70.36.190.3 * (+13) /* Virtual machine description */ Specify initial register values
21:39:08 -!- ^v^v has quit (Ping timeout: 245 seconds).
21:43:54 -!- TieSoul_ has joined.
21:46:07 -!- TieSoul has quit (Ping timeout: 245 seconds).
21:47:04 -!- FreeFull has joined.
21:54:44 <J_Arcane> ... .JS dates use 0-based month field ... why?
21:58:46 <FreeFull> The question is why everything else uses 1-based month fields
21:59:34 <Melvar> I would presume that’s because they’re normally written in dates.
22:00:22 <Melvar> If you write down a date, the month is represented as a number 1-12.
22:00:46 <J_Arcane> Indeed.
22:00:51 <J_Arcane> Not to mention, why only Months?
22:01:07 <J_Arcane> Well, I say that, but days of the week are 0-indexed too I think.
22:09:56 -!- nycs has quit (Quit: This computer has gone to sleep).
22:12:57 -!- GeekAfk has changed nick to GeekDude.
22:15:48 -!- ProofTechnique has quit (Ping timeout: 245 seconds).
22:27:49 -!- skj3gg has quit (Quit: ZZZzzz…).
22:28:22 -!- `^_^v has joined.
22:32:17 -!- hjulle has joined.
22:41:38 -!- AndoDaan has quit (Quit: Going, going, gone.).
22:42:36 -!- oren has quit (Ping timeout: 245 seconds).
22:45:44 -!- Koen_ has quit (Quit: The struct held his beloved integer in his strong, protecting arms, his eyes like sapphire orbs staring into her own. "W-will you... Will you union me?").
22:54:31 -!- oren has joined.
22:59:57 -!- Lilax has joined.
23:00:18 <Lilax> > var foo = new object[]{ 1, 2, 3 }; int bar = foo[1];
23:00:20 <lambdabot> <hint>:1:9: parse error on input ‘=’
23:00:22 <Lilax> non
23:02:09 -!- ProofTechnique has joined.
23:02:29 <Lilax> "list foo = [1,2,3]; integer bar = llList2Int(list, 1);"
23:02:47 <Lilax> doing stuff
23:05:23 -!- Lymia has quit (Ping timeout: 245 seconds).
23:05:35 -!- `^_^v has quit (Quit: This computer has gone to sleep).
23:06:48 <Lilax> Mmm
23:06:51 <Lilax> parsing
23:06:56 -!- AnotherTest has quit (Ping timeout: 246 seconds).
23:08:43 -!- Lymia has joined.
23:10:23 <Lilax> loli
23:11:46 <Lilax> yay
23:14:37 -!- oerjan has joined.
23:20:30 <Lilax> hey oerjan
23:20:41 <oerjan> hilax
23:20:45 <Lilax> lol
23:20:52 <Lilax> bbl
23:21:00 -!- Lilax has changed nick to Lilax|away.
23:21:26 <oerjan> curses, goldfire bypassed int-e's Kindable trap
23:22:42 -!- AndoDaan has joined.
23:26:02 -!- Tritonio has quit (Remote host closed the connection).
23:26:49 -!- Phantom_Hoover has joined.
23:27:45 -!- adu has quit (Ping timeout: 264 seconds).
23:39:39 -!- hjulle has quit (Ping timeout: 264 seconds).
23:44:20 -!- ^v has joined.
23:49:05 -!- ^v^v has joined.
23:51:44 -!- ais523 has quit (Ping timeout: 246 seconds).
23:52:03 -!- ^v has quit (Ping timeout: 245 seconds).
23:57:10 <Lilax|away> trap?
23:57:34 * Sgeo wonders if the trick for monads in dynamically typed languages would work in F3
23:57:36 <Sgeo> F#
23:57:44 <Lilax|away> Razorsharpvaginas
23:57:47 <Lilax|away> Anyways
23:57:53 <Lilax|away> F#?
23:58:05 <Lilax|away> never heard of it
23:58:29 <oerjan> Lilax|away: trying to convince him that fixing the ghc bug requires creating something like a Kindable class.
23:58:57 <Lilax|away> XD
23:59:10 <Lilax|away> gnight anyways o/
23:59:37 -!- boily has joined.
←2015-02-04 2015-02-05 2015-02-06→ ↑2015 ↑all