These are chat archives for typelevel/general

10th
Feb 2018
Paolo G. Giarrusso
@Blaisorblade
Feb 10 00:56
On deletion for FP red-black tree there’s http://matt.might.net/articles/red-black-delete/, though it’s in Racket (a Scheme, hence a Lisp)
Fabio Labella
@SystemFw
Feb 10 00:59
ah, I've been trying to remember where I had seen that, it was indeed matt might's blog (which is a pretty nice blog overall)
btw at the bottom of the blog post a Haskell implementation is linked
Ghost
@ghost~540393fe163965c9bc2018ce
Feb 10 14:38
heads up @larsrh I am planning on proposing this to the Scala Center via a community representative (i.e. either you or Bill) https://github.com/fommil/advisoryboard/blob/verbal-descriptions/proposals/verbal-descriptions.md The last one went via typelevel so perhaps its Bill's turn. On the other hand, this is all about inclusivity and being welcoming so it may make more sense coming from typelevel.
several people have contributed, I should acknowledge their input in the cover note. Rui Batista may be willing to provide continuing user feedback if the project is accepted.
background is I got a bit spooked by an eye infection recently, that could deteriorate, and it got me looking into accessibility technologies and noticed how terrible it is. We can do better.
Luka Jacobowitz
@LukaJCB
Feb 10 14:53
I think that’s a really good idea
Ghost
@ghost~540393fe163965c9bc2018ce
Feb 10 14:54
thanks! It would put scala ahead of other languages.
Guillaume Martres
@smarter
Feb 10 14:56
This is a really cool idea
Might be implementable with a custom pretty-printer in the compiler
Ghost
@ghost~540393fe163965c9bc2018ce
Feb 10 14:58
@smarter I don't think so. It needs to be scala.meta to be able to access nesting. It's not just one output for a given input, it depends on how the user wants to render the data. Starting from the scala.meta JSON output, eg AST explorer style, is the ideal starting point (or just recalculate it on the fly).
it is good justification for a scala-native build of scala.meta ! :-D
although, personally I think nailgun will be fine.
Guillaume Martres
@smarter
Feb 10 14:59
I think that's being actively worked on: scalameta/scalameta#772
Ghost
@ghost~540393fe163965c9bc2018ce
Feb 10 14:59
(I wouldn't want the implementer burning through time fiddling with the boundaries of scala-native)
I know ;-)
Guillaume Martres
@smarter
Feb 10 15:00
the compiler pretty-printer works on typed trees, typed trees have symbols, symbols have owners, so you have the nesting information, unless I'm misunderstanding you?
and the scala.meta json output doesn't have semantic information by itself, does it? It'd have to be combined with semanticdb
Ghost
@ghost~540393fe163965c9bc2018ce
Feb 10 15:02
@smarter look at the "expand region" example and see. Also you don't have access to the compile for third party dependencies. So scala.meta from source is ideal.
plus your own code might not even compile
semantic information is not required
Guillaume Martres
@smarter
Feb 10 15:03
the presentation compiler can deal with code that doesn't compile
Ghost
@ghost~540393fe163965c9bc2018ce
Feb 10 15:03
you don't say :-P
Guillaume Martres
@smarter
Feb 10 15:04
what's the "expand region" example?
Ghost
@ghost~540393fe163965c9bc2018ce
Feb 10 15:04
oh, I may have dropped that... lemme see
basically "summarise this point" then "ok summarise me one layer out" then "ok another layer"
Guillaume Martres
@smarter
Feb 10 15:05
that sounds like the kind of thing an IDE should be able to do
Ghost
@ghost~540393fe163965c9bc2018ce
Feb 10 15:05
each time getting something that's generated fresh. I'm sure you could do this as a compiler plugin that operates on untyped trees but the workflow is not great and scala.meta
Guillaume Martres
@smarter
Feb 10 15:05
we could have custom LSP messages for this :)
why have it as a plugin and not directly integrated in the compiler?
Ghost
@ghost~540393fe163965c9bc2018ce
Feb 10 15:06
@smarter sure, the lsp could integrate this but I think you may be overengineering things. A CLI tool is all that is needed, then the IDE (which is Emacs for any blind developer) can just call it when needed.
scala.meta is perfect for this
Guillaume Martres
@smarter
Feb 10 15:07
can the scala.meta parser recover from parsing errors?
Ghost
@ghost~540393fe163965c9bc2018ce
Feb 10 15:07
also you have to have workflow to think about, why bake it into the compiler (which is owned by the build tool) when you could have a completely independent CLI tool that can be called on anything... including snippets of code from the chat room.
@smarter the code just needs to parse, not compile, for scalameta to work. that's all that's needed.
Guillaume Martres
@smarter
Feb 10 15:08
right, but when you're writing code, you're often in a state where it doesn't even parse
Ghost
@ghost~540393fe163965c9bc2018ce
Feb 10 15:08
independent of any build tool, just source in and descriptions out, is perfect for workflow. And you know I'm the first one to complain when something is a CLI tool instead of a plugin ;-)
Guillaume Martres
@smarter
Feb 10 15:08
the scalameta parser is similar to the scalac parser so I assume it can handle that
Ghost
@ghost~540393fe163965c9bc2018ce
Feb 10 15:09
@smarter that's fine. Today, blind developers are using verbatim screen readers. I'm sure they will still be using them even if this is available to them. This is an augment, not the primary output.
if "must parse" is the criteria, that's awesome.
Ghost
@ghost~540393fe163965c9bc2018ce
Feb 10 15:18
@smarter we should move this to scala/tooling-contrib to avoid spamming all these people with tooling convos :-D
Guillaume Martres
@smarter
Feb 10 15:19
at this point I'm out of arguments anyway :P
Ghost
@ghost~540393fe163965c9bc2018ce
Feb 10 15:20
you're at a disadvantage: full disclosure, I've already brainstormed it with Olaf ;-)
Guillaume Martres
@smarter
Feb 10 15:20
I think description of semantic information like inferred types would also be very useful, but I guess you can always use semanticdb for that
in any case, it's better to do something and experiment with it than endlessly debate about how to do it, so I'll get out of the way :)
Ghost
@ghost~540393fe163965c9bc2018ce
Feb 10 15:21
yeah, but that's going one step further that is needed. A sighted developer doesn't see that stuff either, right?
Guillaume Martres
@smarter
Feb 10 15:21
right, but they can hover over code something to see it
Ghost
@ghost~540393fe163965c9bc2018ce
Feb 10 15:21
but phase 2 could be adding the semanticdb to get more information than is in the text! :-D
so can a blind dev, with ensime ;-)
(can, and do)
Guillaume Martres
@smarter
Feb 10 15:23
I guess I'd have to learn more about the typical workflow of blind developers to understand this better
Ghost
@ghost~540393fe163965c9bc2018ce
Feb 10 15:23
best place to start is to read about emacsspeak
maybe even try it out
Ghost
@ghost~540393fe163965c9bc2018ce
Feb 10 15:29
Guillaume Martres
@smarter
Feb 10 15:33
what a great logo
Ghost
@ghost~540393fe163965c9bc2018ce
Feb 10 15:35
don't touch the dog while he's working!
Lars Hupel
@larsrh
Feb 10 16:33
@fommil happy to put this forward
Emily Pillmore
@emilypi
Feb 10 18:19
Can't wait to see it put forward - nice @fommil
especially the audio samples
Ghost
@ghost~540393fe163965c9bc2018ce
Feb 10 18:59
Yup, 450 is about right for a blind dev who's been doing it for a while.
That's screen reading... this would make that better.
Otto Chrons
@ochrons
Feb 10 19:00
yea, if you need ideas/opinions, I can intro you guys to Tuukka :)
Ghost
@ghost~540393fe163965c9bc2018ce
Feb 10 19:00
You can't get rid of basic screen reading, though. It'd be like insisting that all intellij devs must develop through a visual point & click editor
Oh, please forward the proposal for ideas!
Does he do Scala?
Otto Chrons
@ochrons
Feb 10 19:01
dunno, he's using IntelliJ IDEA though :)
Ghost
@ghost~540393fe163965c9bc2018ce
Feb 10 19:03
That's interesting because Rui said IntelliJ has terrible accessibility support.
Ghost
@ghost~540393fe163965c9bc2018ce
Feb 10 19:11
IntelliJ could use this proposal is that case.
Otto Chrons
@ochrons
Feb 10 19:17
sent him email (with @fommil in the CC)
Ghost
@ghost~540393fe163965c9bc2018ce
Feb 10 19:36
noice
Emily Pillmore
@emilypi
Feb 10 19:57
https://twitter.com/emi1ypi/status/962173787860029440 @fommil + the rest of ya (maybe @larsrh) - I would love to hear some FP success stories re: production code. We’ve personally had a few very good ones but I’d like to hear more for a potential blog post.
Lars Hupel
@larsrh
Feb 10 20:06
I think the best person to ask about this is Timothy Perrett
and well, CUFP in general, I suppose
Emily Pillmore
@emilypi
Feb 10 20:23
cool :100:
I’ll talk to him