ec changed the topic of #elliottcable to: a ๐ฏ๐๐ ๐๐ ๐ฏ๐๐๐๐๐๐๐๐๐ ๐ฏ๐๐๐๐๐๐ slash sอฬuออpออeฬฬบrฬผฬฆiฬผฬoฬฬฌrฬฬ cฬอแปฅฬงอแธทฬกอลฃอฬ || #ELLIOTTCABLE is not about ELLIOTTCABLE
alexgordon has joined #elliottcable
<alexgordon>
ec: yo
<ec>
yo yo
<ec>
I'm writing the second-most-horrible code that I've ever written
<alexgordon>
oh hey you exist
<alexgordon>
wow
<alexgordon>
that's saying something
<ec>
like look at this fucking type error lol
<ec>
Signature mismatch: Modules do not match: functor (This : AType) (Next : CBAO) -> sig type a = Next.b type b = Next.next type next = This.t val call : '_a -> '_b -> '_c -> '_d end is not included in functor (This : AType) (Next : CBAO) -> CBAO At position functor (This) -> <here> Modules do not match: functor (Next : CBAO) -> sig type a = Next.b type b = Next.next type next = This.t val call : '_a -> '_b -> '_c -> '_d end is
<ec>
not included in functor (Next : CBAO) -> CBAO At position functor (This) -> functor (Next) -> <here> Modules do not match: sig type a = Next.b type b = Next.next type next = This.t val call : '_a -> '_b -> '_c -> '_d end is not included in CBAO At position functor (This) -> functor (Next) -> <here> Values do not match: val call : '_a -> '_b -> '_c -> '_d is not included in val call : (f:a -> b -> next) -> a -> b -> next File
<ec>
"/", line 10, characters 3-56: Expected declaration File "/", line 22, characters 10-14: Actual declaration
<alexgordon>
you forget I used to use C++
<alexgordon>
that is NOTHING
<ec>
not in terms of length
<jfhbrook>
that's a little wild yeah
<alexgordon>
it's not bad until it fills the screen
<alexgordon>
btw I finally kicked the C++ habit a few years ago
<alexgordon>
well 2017 actually
<jfhbrook>
I feel like type error reporting has a problem where it doesn't use the type aliases
<alexgordon>
I'm almost 2 years clean!
<ec>
basically I'm trying to write a recursive functor to โฆ hide the type of argument N to an N+1-ary function, such that I can then write a function that can wrap such an N+1-ary function with a side effect upon completion, while being agnostic to currying?
<jfhbrook>
so like if simple_thing = some[crazy[aggregated], thing, etc[etc, etc]] whatever
<alexgordon>
mmm curry
<jfhbrook>
it'd be nice to see simple_thing instead of what's on the right
<alexgordon>
so today I realised that they changed the curry powder I usually use, took out half the ingredients! that's why my curries taste like shit. so I have to find a new curry powder now
<ec>
jfhbrook: in OCaml?
<jfhbrook>
I've seen that a lot in scala
<jfhbrook>
but I think it's a more general issue
<alexgordon>
is this reason?
<alexgordon>
or ocaml?
<alexgordon>
looks like ocaml
<ec>
the complexity of the type-error here isn't due to unrolling of abstract types; the actual error is genuinely that complicated
<ec>
alexgordon: same thing. ocaml, yes
<alexgordon>
oh yeah double semicolons
<alexgordon>
must be ocaml
<alexgordon>
crazy frencies
<ec>
double semicolons are to make sure Merlin is giving me helpful error-messages in real time as I fuck around with the syntax on those last few lines
<ec>
they're not necessary/useful outside of what I just copy-pasted lol
<jfhbrook>
that's fair
<alexgordon>
no but it's an iconic part of ocaml's syntax is what I mean
<alexgordon>
who is merlin?
<ec>
but, basically: `AppliesTo` produces a type (well a module-language type? not a type-language type? OCaml is weird???.) for a function _that doesn't care what the type of its return-value is_
<ec>
er no that's a terrible description
<ec>
anyway I have no idea what I'm doing please stop me before I embarrass myself??
<alexgordon>
does micah ever come in here?
<ec>
no, but I'm having dinner with him in like an hour
<alexgordon>
I miss micah; also, the russian
<ec>
he's active in his own channel
<alexgordon>
he has his own channel?
<ec>
which literally has 10 times as many members as we do here, now /=
<ec>
I miss the good ol' days
<ec>
and micah's mostly active in Sig's discord apparently
<ec>
but that's music-focused, not so much about rockets 'n math, unfortunately. or so I'm told.
<alexgordon>
hey well tell him to /invite me if he dares
<ec>
don't really have a chat-home right now, I wish
<alexgordon>
did you say micah works at google now or something?
<ec>
OCaml and Reason discords, more than anything else. but still only maybe once a week do I speak up.
<ec>
yep!
<ec>
move 2 chicago and hang w/ us
<ec>
:3
<alexgordon>
oh you in chicago
<alexgordon>
I assumed bay area
<alexgordon>
google has an office in chicago?
<ec>
ep
<ec>
yep
<ec>
lol bay area not even once
<ec>
you'd have to pay me around 2.5x what i'm making right now to get me to work/live in the bay area
<alexgordon>
I will move if america gets a sane president and reforms the H1B program haha
<alexgordon>
_this is never going to happen_
<ec>
yep.
<ec>
jfhbrook: speaking of type aliases
<ec>
OCaml does well in simplistic cases; but it's really struggling with the recursive functors I'm writing right now
<alexgordon>
ec: did you ever finish your degree?
<ec>
`This expression has type int -> string -> unit but an expression was expected of type Z.a -> Z.ret Type int is not compatible with type Z.a = AppliesTo(Y)(Base(X)).a`
<ec>
yeah no fucking shit, ocamlc, tell me what `AppliesTo(Y)(Base(X)).a` concretely resolves to
* alexgordon
realises how much I've missed in the last couple of years
<ec>
alexgordon: failed out hard
<ec>
for the N'th time in my life
<alexgordon>
well it doesn't matter, failure is success to programmers
<ec>
no shit jesus
<ec>
got a great job shortly thereafter
<ec>
but am very bad at it, predictably
<alexgordon>
literally the highest paid job where you don't need a degree, except for maybe sportsperson hahah
<ec>
sportsperson lol
<alexgordon>
yeah tennis player
<jfhbrook>
hah
<ec>
fuck me
<ec>
it boutta be straight-terrifying cold out here
<jfhbrook>
this is the only place I can think of to ask this - anyone know how I can get a quick practical feel for haskell? not to be good at it but enough to be dangerous say
<jfhbrook>
I'm realizing that making xmonad exit gracefully requires writing haskell
<jfhbrook>
the existing exit command just calls io (exitWith ExitSuccess)
<jfhbrook>
so if I want graceful shutdowns/logouts I have to figure out how to uh, make one of those that sigints open windows waits n seconds then force quits /then/ shuts down
<ec>
jfhbrook: just switch to d3 trolllol
<jfhbrook>
I love diablo 3!
<jfhbrook>
I know xmonad is like
<jfhbrook>
not what the cool kids use these days
<jfhbrook>
but it sparks joy
<jfhbrook>
I find it strangely intuitive
<jfhbrook>
it makes *sense*
<ec>
i havenโt used it
<jfhbrook>
just a few tiny things to tweak
<ec>
i used awesomewm back when i used linux on the desktop
<jfhbrook>
yeah I haven't used linux on the desktop since 2013 buuuuut
<jfhbrook>
I got sick of not having a hacking computer and my macbook was expensive and breaking all the time
<jfhbrook>
so I got a dell and am putting arch on it instead
<jfhbrook>
I'm part way done - it boots, it's usable, but a lot of work ahead of me
<jfhbrook>
sound only works through headphones, the video card is, long story short, using more power than it needs to, I haven't made sleep/hibernate work yet
<jfhbrook>
and lots and lots of glue, like this graceful shutdown thing
<ec>
ouch
<ec>
thatโs so much time
<ec>
i canโt imagine spending any more time in my life on โฆ making my goddamn machine work
<ec>
i have so little (no???) time as it is โฆ
<jfhbrook>
well two things
<jfhbrook>
well maybe not two things
<jfhbrook>
uh but I have a windows desktop that works *great* and a work laptop that's foolproof
<jfhbrook>
so this is just for hacking, specifically, and also a project itself
<jfhbrook>
like doing all this stuff is a fun thing to work on, or will be once I get the dumb hardware stuff out of the way
alexgordon has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzzโฆ]
_whitelogger has joined #elliottcable
alexgordon has joined #elliottcable
alexgordon has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzzโฆ]