Except under quasiquotation. This is to prevent any arguments being
specialised to a more specific type than the function type suggests (one
place where typecase can arise).
Now storing VM in a pthread_key (in environments which support pthreads)
meaning that allocation doesn't need to be passed a VM pointer, and so
we can safely use the idris allocator from GMP (and indeed any C library
which wants to use it).
By popular request. Fixes#1706.
It's not the most efficient desugaring, merely translating the @s on the
left to lets on the right, so the case tree builder won't be aware of
it. Still, it provides the notation and it works nicely with showing
what is in scope and what is available in the prover and so on.
Fixes#111
Previously, if a module B imports a module A, then a module C imports B,
the public names in A would also be visible to C (i.e. B would
automatically reexport everything from A). This seems to be a bad
default.
This patch changes the default behaviour so that the only names exported
from a module are those defined in that module. If B imports A and wants
to reexport everything in A, then A should be imported with the "public"
modifier (i.e. "import public A").
Several changes have been made to the prelude, since several prelude
modules were taking advantage of the old broken behaviour.
This may cause lots of things to break. Sorry. The fix is typically just
to import the module you should have imported anyway :).
Add constructors to context immediately after elaborating, rather than
adding the whole data type at once, so that later constructors can use
them. Fixes#1757.
+ Removal of numbers package option. Listing styles must be set either globally using `\lstset{}` or per code or listings environment options.
+ Addition of a beamer style.
+ Inclusion of the `:pprint` LaTeX formatting commands. No more need to copy everything from the result of `:pprint`, just the code snippet.
+ command chars for fancy verbatim has been set globally.
+ Option to change spacing command, useful for cases where line spacing is changed via different commands. For example: memoir has `\SingleSpacing`, setspace has `\singlespacing`.
As far as I can tell, we can't replace ErrorT with ExceptT yet because
there's a missing MonadException instance in Haskeline. Also, the
dependencies we have set are causing a build failure on travis due to
the -Werror.
Proper fixes welcome! This is noted in issue #1780
Fixes#1684, and most likely a lot of other partial evaluation problems.
IBC version updated since the problem may show up in any library code
that's currently built.
If solved metavariables do nothing to a unification problem, there's no
point in trying it again - this can lead to a massive slowdown if
there's a lot of evaluation in the type. Partially addresses #1219.
Fixes#1716 on the way by tidying up type of updateProblems.
If the branch solves an implicit which makes the auto solvable, we need
to try to resolve it straight away so we know whether the branch is
valid or not. We need this especially when using 'try' to implement
implicit coercions.