Commit Graph

8 Commits

Author SHA1 Message Date
Andreas Reuleaux
62419f47ad set console width / adjust tests by using --consolewidth to make them work with the curses flag 2015-03-19 11:50:39 +00:00
Edwin Brady
43127b17a7 Move Fin, Vect and So from prelude to base
They can be imported from the modules Data.Fin, Data.Vect, and Data.So
respectively.

The general thinking here is that not every program is going to need
these, and they are often used especially by newcomers in place of
something more appropriate. Also, all of them are useful for teaching,
which means it is instructive for tutorials to introduce them and have
people implement them themselves.
2014-12-31 20:18:02 +00:00
Edwin Brady
b2017d2625 Pattern variables should be lifted to top level
...since pattern variables scope across the whole expression. If we
don't lift them, mysterious unification errors can happen for implicit
arguments.
2014-11-27 11:35:44 +00:00
Edwin Brady
8ed343ba6a Remove dodgy unification hack
Also need to recheck unification problems immediately after setting
injective arguments, or we get strange results for disambiguation.
Fixes #1372
2014-07-11 14:26:30 +01:00
Edwin Brady
e363c092a2 Better treatment of unbound implicits
Now uses the elaborator to generate any necessary extra bindings, using
the same machinery as pattern match elaboration. The end result is that
you no longer need 'using' in a lot of cases (it is still useful if you
want to give explicit types, of course). e.g. this now works as it
stands:

  data Elem : a -> Vect n a -> Type where
       Here : Elem x (x :: xs)
       There : Elem x xs -> Elem x (y :: xs)

  isElem : DecEq a => (x : a) -> (xs : _) -> Maybe (Elem x xs)

This should also reduce the number of weird "no such variable" errors
signfificantly. In particular, it fixes #1354
2014-07-08 02:40:37 +01:00
Edwin Brady
88aa6d13ea Support mixed induction/coinduction with Inf type
Update totality checker so that it checks for 'Delay LazyCodata' being
guarded by constructors/lambdas only, allowing mixed
inductive/coinductive definitions.
2014-03-22 17:46:14 +00:00
David Raymond Christiansen
5e0a9849b6 Remove the ability to reflect At and Elaborating
This is because they are primarily "plumbing" for tracking error
locations, so it's better for error reflection to work on their
payloads. Any reasonable implementation would have just copied what the
compiler does with them anyway.
2014-03-10 14:40:17 +01:00
Edwin Brady
1d2fc7f8e0 Categorise tests 2014-01-30 17:24:08 +00:00