id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc,os,architecture,failure,difficulty,testcase,blockedby,blocking,related
2859,Reduce coercion terms to normal form,simonpj,,"Sometimes coercion terms in a Core program grow absurdly big, and can readily be simplified to be much more compact.  Example:
  *  #2627
  *  #2440
Big coercion terms have no runtime impact, but they may make compilation slower.

I speculate that it should be possible to use transformations such as those Max suggests in his comment on #2440, as a confluent, terminating rewriting system that makes coercion terms smaller, or, better still, rewrites them to a normal form.  Then we can use ""smart constructors"" for coercion terms, so that they are always kept in normal form.

Identity coercions occur a lot, but are not so easy to recognise.  I've also wondered about having some special representation for the identity.

This ticket is to remind us to look for such a rewrite system.  Max, perhaps?",bug,closed,low,7.0.1,Compiler,6.10.1,fixed,,batterseapower@… chak@… tom.schrijvers@…,Unknown/Multiple,Unknown/Multiple,Compile-time performance bug,Unknown,,,,
