Starting with inventory:
0000007111-1f02dd9a3a9afb406c82c249498e7902e64864337c85772619ae9eb1f369c4e5
[TAG ebnohophova
John Meacham <john@repetae.net>**20060321040437] 
hash: 0000004210-c4761cf997c7b78bc3c47cc6335d8ace93f81907372e89cf8cc9ca8545e04c2e
[implement floating outward
John Meacham <john@repetae.net>**20060322020231] 
hash: 0000006112-97bdf3cd900709a4c49bc2ea1fbd22c358bad358353cd81d0bce741eec382fa0
[before floating outward, let-bind all values
John Meacham <john@repetae.net>**20060322023435] 
hash: 0000001497-b09370c08965534e98bad3e2472aa05049a619aa638ba229a1fe176ee6910916
[don't rename values to be floated outward, unless they reach the very top level.
John Meacham <john@repetae.net>**20060322042850] 
hash: 0000002416-9a8523ec6d62e5cf4951faa60f3c8b4fb923cfdc5eecdf5a39db7ea83ea96e27
[add initial optimization pass that performs type analysis and floating
John Meacham <john@repetae.net>**20060322042925] 
hash: 0000004183-b13fca665f2467a5addf3aa878a60cc0280f0e36757d90ddfc86877f99227570
[don't let-bound unboxed values
John Meacham <john@repetae.net>**20060322044331] 
hash: 0000000488-55e708d2ac903d232b049ee91b1d60b439691a255277dc5f75da7087ca11dadf
[perform substitution of existing variables initially
John Meacham <john@repetae.net>**20060322044341] 
hash: 0000000577-3977960eb688830f42f4417d82886fe0b1f81195fe10fffe57546eb6464bbe9a
[don't print type analysis stats automatically
John Meacham <john@repetae.net>**20060322223528] 
hash: 0000000347-e375cb82e8c54bdcf856e6199a500666ed4d0c382c461961b98443d54de96990
[clean up messages during intial optimization pass, perform a lot more typechecks on lint
John Meacham <john@repetae.net>**20060322223612] 
hash: 0000003384-c3169970e283b247ab6477204bfdd1c931a301dcd63de7896e5497b5579c8b5a
[don't rename variables or hide unfree binders when -de-verbose is used
John Meacham <john@repetae.net>**20060322224922] 
hash: 0000000757-7cd8b4ea8190d5ef2dc7d67d5056d953f2aad24076e629ea901042372214a1c0
[move eta expansion 
John Meacham <john@repetae.net>**20060322232559] 
hash: 0000000225-0fef8f7856669375fce5c69bb1227bc4b0923fcfae930dd01b58c298e48f8a97
[when floating inward, seperate dupable binds from undupable ones. perform floating inward pass right after floating outward to get rid of spurious bindings, make sure all names floated to the top level are unique.
John Meacham <john@repetae.net>**20060322234301] 
hash: 0000003928-6379918cd4af46ff963bf60c5277108eb6a040c9f036750ba6d80b5d75893be2
[add a flag telling whether the universe is closed and a record of transformation passes to the program structure
John Meacham <john@repetae.net>**20060323002137] 
hash: 0000000478-88b7736e9d19021d5bc64b1712076a71e924701fa74f7f9f4c86f21658ddd1a1
[create a program transformer that takes care of typechecking and printing appropriate error messages
John Meacham <john@repetae.net>**20060323005913] 
hash: 0000007127-a33f8c1c6a19564eada97b061ff6faf163d0c41e0d510704898dcfed8c4e40eb
[make unboxed tuples have unknown slot types
John Meacham <john@repetae.net>**20060323015524] 
hash: 0000000432-4c68f036edf2086f9b07df4481fe1913eef95ecfe7589b7acfb1904bf7c5094a
[check that constructor arguments match and allow 'Unknown' types to match anything.
John Meacham <john@repetae.net>**20060323022136] 
hash: 0000000761-bcde7907ae9014b63852fb503db46022809c71a2f633786711455d72b1574bbe
[make eta expansion use transformProgram routine
John Meacham <john@repetae.net>**20060323022217] 
hash: 0000000622-15cd9da353a0b45d3b21d086fadedd54d27f1e8744f6f7e61fef8d2e3b4cb212
[catch exceptions thrown by optimizing routines
John Meacham <john@repetae.net>**20060323023949] 
hash: 0000000465-4849aec6ccf3d739a379d28ae52ee027456cf899e6ff27b598664503fe0dd463
[make the newHole primitive return an IOResult to avoid putting something unboxed in a tuple, seperate out initial primitive processing from optimization. make sure no names are shadowed when expanding initial primitives. clean up E.PrimOpt
John Meacham <john@repetae.net>**20060323032647] 
hash: 0000003685-33c999237950c4f8847e8e4a18514439c2c7682999cab276b6547067399ec9cc
[make sure we don't rebind any existing lambda variables when eta expanding. perform occurance analysis after eta expansion.
John Meacham <john@repetae.net>**20060323044404] 
hash: 0000000757-f48a13752aa26a25d2f7b68e32f74f9588e4962127222cbd543644130007ac4b
[don't iterate atomizeAps as it is idempotent, perform full eta analysis when processing initial ho file
John Meacham <john@repetae.net>**20060323044415] 
hash: 0000001029-c58f761de0c4972aadb17d1c2b76d1583293124a75d6df6deb6d9a1fb06e511e
[make allShadow use negative variable names to not conflict with existing ones. annotate type errors with more information.
John Meacham <john@repetae.net>**20060323050450] 
hash: 0000001128-687ffa7d0c785ecf65c24b92db1d8128b76ac997f0f518c93d931f707ce997b6
[clean up E.Subst a little
John Meacham <john@repetae.net>**20060323051836] 
hash: 0000000482-14359bee924db992352c7984477920e91c8a37c4463154f8821eefcdaeb92744
[clean ups
John Meacham <john@repetae.net>**20060331053640] 
hash: 0000001017-e5aa4ef08d57e9f92bc03d84aee2d558fffefb0f4c38b2efa073a23e233996fc
