compiler rules! • Allow library authors to specify rewrite rules to be applied during compilation. • Used for fusion and other optimisation techniques for data structure libraries. (text is very, very fast).
inference. • And that the only safe calls are ones with static values. • And that static values have a specific type. • And are processed (before our code) with runtime support functions.
and is sensitive to optimisation). • Make the error compile time. (But it needs to be typesafe to work. #lolwut) • Probably much better and easier to write a GHC plugin.