yeah. the rigid phase distinction means you can erase your types no matter how complex they are
Conversation
“erase” them? o_0
1
oh like infer them?
1
no! erase, literally. compiled haskell programs don't mention types at all
1
2
ah ok. and they don’t get inferred when run?
1
1
nope
1
2
that’s pretty cool…why do we want that tho? Go Fast, or because it somehow makes them safer, or another reason?
1
go faster! having types in your compiled program would just be overhead
2
2
it's funny tho because you can't run haskell without having type checked it (you need to fill in type class dictionaries *somehow*) but after type checking all the type information is pretty much discarded for execution
2
3
are type class dictionaries still around at runtime?
you know what maybe I should learn haskell
1
2
AFAIK they are still around, although GHC sometimes monomorphises them to avoid the vtable indirection.


