Holger Dal Mogensen
Holger Dal Mogensen
For Prelude, the page itself only goes from ~160kB to ~170kB, but because each page needs to load all the other ones it ends up loading ~7MB. That happens asynchronously...
I worry about over-complicating it, as it hurts the compiler. I would suggest trying out the simple solution first, and then looking at what actually needs improving before making it...
This would really benefit from some sort of type-holes
   
I can see that it's desugared into an unchecked cast. Should this check be done for all unchecked casts, or should I kill this desugaring?
Actually, it looks like this check is already being done, judging from the code. Or maybe I'm looking at the wrong `Unsafe`?
Hmm weird... Why doesn't ```scala case Expr.UncheckedCast(exp, _, declaredEff, _, _, loc) => declaredEff match { case Some(eff) => (eff, exp.eff) match { case (Type.Pure, Type.Pure) => visitExp(exp, env0, rc)...
There are, but they are ignored
Its removed in `TypeReconstruction.scala`: https://github.com/flix/flix/blob/6ee00b9d0974415889069542ee2577334215b892/main/src/ca/uwaterloo/flix/language/phase/TypeReconstruction.scala#L373-L387 Should I kill it? All tests pass without it, except one library test that's actually using a redundant unsafe.
With this it gives an error like ``` >> Redundant effect cast. The expression is already pure. 68 | def charRoundTrip01(): Bool = unsafe unbox(box('a')) == 'a' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ redundant cast....