Evan Czaplicki
eb96d7ad8d
Get rid of current canonicalization code
2013-07-29 11:53:45 +02:00
Evan Czaplicki
da346ea6a1
Show type errors in the order they appear in the source file
2013-07-27 00:53:34 +02:00
Evan Czaplicki
fd63aff70b
Correct the code that unifies records
2013-07-27 00:15:26 +02:00
Evan Czaplicki
576e979483
Simplify code to generate record constraints
2013-07-27 00:14:38 +02:00
Evan Czaplicki
ab41d0c0e8
Take out types that were listed as "builtin"
2013-07-26 21:19:08 +02:00
Evan Czaplicki
c1d5f86e82
Simplify type error messages
2013-07-26 21:18:44 +02:00
Evan Czaplicki
42065eb075
Generate fewer intermediate variables during record unification
2013-07-26 19:39:42 +02:00
Evan Czaplicki
ebcaad0004
Fix possibility of calling maximum
on empty lists
2013-07-26 19:39:12 +02:00
Evan Czaplicki
2a51470fc1
Implement unification for records
2013-07-26 19:04:43 +02:00
Evan Czaplicki
760ad905cf
Add record constructors, begin using lists to represent fields in record types to maintain ordering from the source program
2013-07-26 18:20:57 +02:00
Evan Czaplicki
2a5bee06fc
Include type aliases from dependencies
2013-07-26 17:35:48 +02:00
Evan Czaplicki
0f85a2fcfa
Resolve type aliases in instantiator
2013-07-26 15:08:04 +02:00
Evan Czaplicki
46631c3616
Remove dead code
2013-07-26 15:07:35 +02:00
Evan Czaplicki
6948858f78
Allow multiple different imports of the same module, clean up canonicalize
code
2013-07-26 12:56:36 +02:00
Evan Czaplicki
0681fbe583
Get rid of dead function and give instantiateTypeWithContext a shorter name
2013-07-26 12:22:15 +02:00
Evan Czaplicki
32a331b3b0
Load ADTs into the environment to fix constraint generation for patterns
2013-07-26 12:19:24 +02:00
Evan Czaplicki
2b2bc087e4
Minor cosmetic change
2013-07-26 11:40:44 +02:00
Evan Czaplicki
ff67c667a0
Get Matrix2D and Signal compiling
2013-07-26 00:33:59 +02:00
Evan Czaplicki
727d708289
Get libraries to compile
2013-07-26 00:19:21 +02:00
Evan Czaplicki
ec8687610f
Move type annotations out of Environment and into the Basics library
2013-07-26 00:06:52 +02:00
Evan Czaplicki
0db809ff4c
Switch formatting for language pragmas
2013-07-25 20:34:04 +02:00
Evan Czaplicki
9fe6c9a564
Change functions for creating type variables, distinguish names of different constraint type variables
2013-07-25 18:07:04 +02:00
Evan Czaplicki
642b1f7fcc
Properly handle constrained variables when converting from Src.Type to Type.Type
2013-07-25 17:36:52 +02:00
Evan Czaplicki
609cc3df96
Unify any constrained variables with the same super-type
2013-07-25 17:10:01 +02:00
Evan Czaplicki
a05c82f58b
Mess with whitespace
2013-07-25 17:09:23 +02:00
Evan Czaplicki
d059c362d9
Fix the type of String literals
2013-07-25 16:02:49 +02:00
Evan Czaplicki
b6144aeb07
Properly unify constrained variables, serious changes here!!!
...
I also rewrote merge1 and merge2 which are dangerous functions to touch.
2013-07-25 15:48:58 +02:00
Evan Czaplicki
856360bd94
Get rid of unused part of the type error message
2013-07-25 15:46:48 +02:00
Evan Czaplicki
4e7ef5f177
Add definitions for functions that act on numbers and comparables
...
This will get moved into Elm code eventually
2013-07-25 14:54:21 +02:00
Evan Czaplicki
d456cec5c8
Overload literal numbers without a decimal point to be either Ints or Floats
2013-07-25 01:25:17 +02:00
Evan Czaplicki
82ca695dca
Add support for "number" type which can be either an Int or Float
2013-07-25 01:24:16 +02:00
Evan Czaplicki
666d9f8ca3
Assume all variables with the "Native." prefix exist and have type "a"
2013-07-25 01:23:30 +02:00
Evan Czaplicki
8ffcf9e80e
Prettier printing for infix operator definitions
2013-07-23 15:43:21 +02:00
Evan Czaplicki
802be96e57
Fix issue in which patterns could become too general
2013-07-23 15:32:08 +02:00
Evan Czaplicki
175798f6d2
Fix type constraints for case-expressions
2013-07-23 14:59:53 +02:00
Evan Czaplicki
f37e05af5e
Fix type constraints for PData
...
Was generating functions based on free type variables, not on the kind
of the constructor.
2013-07-23 14:59:34 +02:00
Evan Czaplicki
d15d84deba
Get patterns to type-check with the value in the case expression
2013-07-22 15:10:48 +02:00
Evan Czaplicki
138e99cc81
Begin to canonicalize imported values and types
2013-07-22 14:42:45 +02:00
Evan Czaplicki
d9471f6c62
Add flexible variables for type annotated values
...
Without this, things are not generalized properly.
2013-07-22 14:41:12 +02:00
Evan Czaplicki
81522b306a
Make cross-module types aware of user-specified aliases
2013-07-22 00:23:26 +02:00
Evan Czaplicki
c140d690fc
First draft of cross-module type checking
...
Currently, all top-level types are imported. No alias resolution
happens so you need to use "import open M" atm.
2013-07-21 22:50:48 +02:00
Evan Czaplicki
22f7f8a43a
Create a serializable interface for a module's type information
...
Also add a flag to print out top-level types
2013-07-21 06:08:08 +02:00
Evan Czaplicki
23758290d9
Improve pretty printing for types
2013-07-19 19:17:51 +02:00
Evan Czaplicki
ca4502b70a
Save the current environment on CSaveEnv
2013-07-19 18:03:28 +02:00
Evan Czaplicki
b0f96a2eab
Switch from [Def t v] to (LExpr t v) for program representation
2013-07-19 18:02:24 +02:00
Evan Czaplicki
4dc68acd60
Stop creating types for ADT's, use Constant and Flexible in the right place
2013-07-19 18:01:26 +02:00
Evan Czaplicki
4c0f716aef
Change the representation of SolverState to have a "saved environment", recognize the "Save the Environment" variable
2013-07-19 17:50:16 +02:00
Evan Czaplicki
807076ad57
Add CSaveEnv, optimize CAnd, make it prettier
...
CSaveEnv is a special constraint that indicates that the current
environment should be saved for later use.
(/\) now optimizes away arguments that are already CTrue.
2013-07-19 17:48:41 +02:00
Evan Czaplicki
648cbd49dd
Use letters for arguments in adt constructors
2013-07-19 17:46:03 +02:00
Evan Czaplicki
45b43e8757
When creating a named var, allow it to be flexible.
2013-07-19 13:25:51 +02:00