Build system: RTS objects now rebuilt when source is changed

Ignore-this: 76b414ba2f7934307f292e7573393d8e

darcs-hash:20121209153332-11156-87a8a7170fb54feecb5d0df6e47c355d70c132bc.gz
Build system: pass profiling flags to haskell compiler when profiling is enabled

Ignore-this: a8aeb7ddbf1ba38b03c96da38b91f389

darcs-hash:20130102231710-11156-b2576b41fd53519b0eb8b8bfc3843f7e83098462.gz
MonadLogic.hs: Added 'scanM' function

Ignore-this: 1d519710358b707a470802b133e0bafa

darcs-hash:20130103004534-11156-a7ca9000b28fb4b5af1f0fe27a3597f786f3760e.gz
Build.hs: Added useful code generation helper functions

Ignore-this: 14375c399e5f58a6f29d0f35b674785e

darcs-hash:20130103004609-11156-9572b5ca2919d561d7e0a71ba84da2a149f5e314.gz
Prototype implementation of new data type lowering

Ignore-this: 18523bde75f097933ea9021a508d454d
This implementation is more organized, and fairly closely follows the way
that data type lowering was formalized on paper.  The prototype has not been
integrated into the toolchain; lowering still uses the old method.
Before integrating, size parameters must be implemented.

darcs-hash:20130103004649-11156-7a018307bdad73adbb1ce455f1d4f916a61ab3bd.gz
Added size parameter information to type environments

Ignore-this: 605e3c1bbc05ce9907989ceef7d31752

darcs-hash:20130103195620-11156-681a8f7b2abf30e1ec28a14353bed6a6be2dba86.gz
Type.hs: Added some profiling annotations

Ignore-this: 7b60b1f671c77ca88e9abb6647cfd7f8

darcs-hash:20130103200007-11156-45ee9801e502d2430aed519c95370dc41f6d75b0.gz
Rename.hs: Adjusted strictness

Ignore-this: fe1931638ea358b1f9a8cdd076d1db69

darcs-hash:20130103200033-11156-93ee0bb457db715a78fb2d02334d477718b866e5.gz
ConSpecialization.hs: Added missing case

Ignore-this: 39e20222d09316d68911bdd40d51e19b

darcs-hash:20130103200101-11156-9c2f4c0b72f441745740636d22120e16b158488c.gz
Added constant literal terms to rewriter

Ignore-this: 1e87e3a1e021968caa425f6f9077ba67

darcs-hash:20130103215256-11156-4671961fc751c83144b116db7140ab80a0967ca8.gz
Reimplemented type inference

Ignore-this: c686bdc1e995721cd4a61eeddd43a515
The new implementation generates less dictionary code, fixes some bugs
related to generalization, computes representation dictionaries for all
expressions, and automatically translates core types to frontend types.
It is also significantly better organized than the old code.

darcs-hash:20130126220256-11156-1f787190004af35c9f7bd5f21406bdeff8a5dc34.gz
Allow explicit class constraints in source, and type inference makes join points monomorphic

Ignore-this: ee075d9971da2e71999dfb5c6be94b1e
It's now possible to explicitly annotate class constraints using @where()
decorators in Triolet source code.
Join points inserted by control flow analysis in the frontend are now
monomorphic.  They will be type-inferred, but not generalized.

darcs-hash:20130126220804-11156-ff8d07593548d28e6779c511707e27347bfb5474.gz
Renamed conversions between bare and boxed representations

Ignore-this: e35e45ed04b78426494ae86e88f9d626

darcs-hash:20130130014019-11156-e227fff0af3f816eb8d2f9dafb69f586a1b2df6f.gz
Changed contents of Eq dictionary to be boxed

Ignore-this: da4b1a5ab7e8721654876d4d4d64325d
The function members of Eq dictionaries now operate on boxed data, and the
type parameter of Eq is boxed.  Some internal arithmetic primops were renamed.

darcs-hash:20130131004446-11156-33a540277e55a706aeee71b9d0c65c3902ad413f.gz
Local type inference in Core parser

Ignore-this: 944d564139bef8e469418680ec8149f9
Type annotations on let-bound and case-bound variables are now optional
in the Core parser.  If omitted, these types are inferred.

As part of this change, the type checker is now decoupled from
the initialization of builtin core variables.  Type checking and evaluation
can now be used even before builtins have been initialized.
Variables that are needed for typechecking are part of the wired-in type
environment, or otherwise are passed explicitly to functions that rely
on them.

darcs-hash:20130131182829-11156-5e879cf8c1b4c1efbbc74d063e83da5a3ac4b6cd.gz
Changed core parser: removed type parameters from case alternatives

Ignore-this: 275b61c42ac43c975c93206c0fa8ddb5
Type parameters of case alternatives are now always inferred, and cannot be
written explicitly.

darcs-hash:20130201052820-11156-8a68a4c69f989f9786694d0de2817834d90755b9.gz
Added local type inference to core parser and changed Triolet functions to be fully boxed

Ignore-this: 860d8270ee537a560bd7ccca23669846
Functions that are defined in core and callable from Triolet are now fully boxed.
That is, all their parameters and returns are boxed.  This change was made to simplify
how the frontend inserts coercions.
The core parser also does type inference and type checking, and reports type errors with
accurate position information.

darcs-hash:20130205223417-11156-0c708b0dd646c3a84f95593eb6ecc0b99ace1db0.gz
Performance optimizations in substitution code

Ignore-this: 1be54f7d927f86710a51657ddc86d30
I reduced the polymorphism of substitution-related code to improve its run
time by enabling GHC to do better optimizations.  The compiler runs about 20% faster.

darcs-hash:20130205235900-11156-7dcff2e3791cde3c10e9e19a8526375c054bc65d.gz
In type inference, use variables instead of expressions for type class evidence

Ignore-this: dc5d20179f7b37fbfd7c327f606f771a

darcs-hash:20130207150600-11156-f8a06e9407c8faec59641d73fc7739827142984d.gz
Added missing dependence and removed debug output in build system

Ignore-this: 35dc547e4a70f23769750e4b622a4b63

darcs-hash:20130212223841-11156-4f31a1ae438565b0b0ed6bc89123df167d1d195b.gz