Commit Graph

970 Commits

Author SHA1 Message Date
Giuseppe Lomurno
581c95dc96 Minor fixes, additional docs and rebase 2021-04-19 16:02:52 +01:00
Giuseppe Lomurno
c084d285db Add some documentation about PosMap 2021-04-19 16:02:52 +01:00
Giuseppe Lomurno
a53150d90b More precise record field FCs 2021-04-19 16:02:52 +01:00
Giuseppe Lomurno
7fa6dc5f48 Added insertion to interval map and usage in TypeAt command 2021-04-19 16:02:52 +01:00
Giuseppe Lomurno
76697e7f85 New interval map data structure for FC search in metadata 2021-04-19 16:02:52 +01:00
Jan de Muijnck-Hughes
0c64225521 Report time taken to check totality. 2021-04-19 10:30:36 +01:00
Guillaume ALLAIS
f6f2f5f5c6 [ fix #962 ] solve defaults on LHS even in case 2021-04-16 18:12:40 +01:00
Guillaume ALLAIS
9f5cacf31e [ fix ] debugging printing 2021-04-16 18:12:40 +01:00
Jan de Muijnck-Hughes
b68fa077af Added some light formatting to presentation of times for the compiler. 2021-04-16 15:11:16 +01:00
G. Allais
5946442dc2
[ new ] idris2 --init (#1299) 2021-04-15 14:08:50 +01:00
Niklas Larsson
299a31de5b
Merge pull request #1296 from melted/windows_ci_test
add tests to Windows CI
2021-04-12 20:07:17 +02:00
Niklas Larsson
b32a2593ff Node fixes
Don't assume that errno exists. There might never have been an error.

Quote executable path to handle path with spaces.
2021-04-12 16:43:54 +02:00
Denis Buzdalov
2287a7ff35 [ refactoring ] Some equivalent changes, mostly code styling nicened 2021-04-12 15:21:33 +01:00
Sören Tempel
c725b11c89 Flush standard out after writing prompt to it
On Unix-like operating systems stdio.h is usually line-buffered. As
putStr uses fputs(3) from stdio.h internally, output will be written to
standard out after a newline character is written to the buffer. Since
the prompt does not contain a newline, it will only be written to
standard output after the user presses return. I encountered this issue
on Alpine Linux which uses musl libc (instead of glibc). However, I
believe this issue is likely also reproducible with glibc. This commit
fixes this issue by flushing standard output after writing the prompt to
it. Surprisingly, `src/Idris/IDEMode/REPL.idr` already does this
correctly, `src/Idris/REPL.idr` does not though.
2021-04-09 15:17:00 +01:00
claymager
b207c0c718
Multiple build commands (#1287) 2021-04-09 13:09:24 +01:00
G. Allais
b7bdd0a99f
Various improvements (#1286) 2021-04-09 13:02:37 +01:00
Niklas Larsson
9ffc346ebb
Use file extensions when looking for exes on windows (#1268)
Co-authored-by: G. Allais <guillaume.allais@ens-lyon.org>
2021-04-08 21:11:34 +01:00
John Mager
c4efa0d29f Ignore some REPL options in package commands 2021-04-07 20:45:18 +01:00
Ohad Kammar
b65907f770
Support Multi-declarations (#1280) 2021-04-07 12:21:17 +01:00
Kamiλ Shakirov
2ac4bea220
[ install ] Check if 'realpath' exists for Chez and Racket backends (#1210) 2021-04-06 15:42:04 +01:00
Edwin Brady
12f40f538f Use correct multiplicity in scope of lets
The scope should be checked at the same multiplicity as the enclosing
expression.
2021-04-04 18:10:34 +01:00
Edwin Brady
922074b0aa Add heuristic for when to normalise metavars
If they're big, they take a long time to instantiate, and if they
consist of a lot of functions, chances are that normalising them will
make them much smaller. This significantly improves type checking
performance for some programs with lots of type level computation going
on.

The threshold is set with %nf_metavar_threshold, but the default value
of 50 is probably fine. Set it to 0 to always normalise metavar
solutions, or something higher than 1000 to essentially never do it.
It's roughly a count of nodes in the typechecked syntax tree under the
first function application.
2021-04-04 15:56:15 +01:00
Niklas Larsson
0314ff66ef Fix escaping in C backend
Use unicode escapes. Insert trailing doublequotes to terminate
(otherwise hexchars will be considered part of escape)
2021-04-02 22:35:17 +02:00
Niklas Larsson
e49916cea9 Fixes from trying to compile idris with the refc backend
* fix doublequoting in constArray
* substitute tildes in names
* Add negate functions
* Add string comparisons

Several things remain, notably missing _argList functions.
2021-04-02 15:02:40 +02:00
Guillaume ALLAIS
99b87c8156 [ fix #1248 ] Bring qualified names back for data & record types 2021-03-31 23:17:53 +01:00
Atomotron
a1e7221c32
[ fix #1200 ] Switch scheme backend to flonum functions (#1203)
Co-authored-by: Guillaume ALLAIS <guillaume.allais@ens-lyon.org>
2021-03-31 23:17:41 +01:00
Zoe Stafford
f255026d1b
[ fix #1220 ] Update arity of constuctors to reflect erased args (#1225) 2021-03-29 15:08:06 +01:00
G. Allais
238eb62da6
[ fix #1230 ] Better error messages for out-of-scope identifiers (#1233) 2021-03-29 10:45:48 +01:00
Guillaume ALLAIS
2df49ebdd4 [ fix #1224 ] moduleIdent must be capitalised 2021-03-25 15:59:46 +00:00
Guillaume ALLAIS
00929deed6 [ cosmetic ] nicer error messages for uncaught exceptions 2021-03-25 15:59:46 +00:00
Guillaume ALLAIS
dad1954a39 [ debug ] for read attempts 2021-03-25 15:59:46 +00:00
Denis Buzdalov
8abd60535b [ fix ] Ability for data types to be operators was restored 2021-03-25 14:16:47 +00:00
G. Allais
97fb5d7b94
[ fix #893 ] proof gadget for with clauses (#1222) 2021-03-25 10:02:06 +00:00
G. Allais
21f2913527
[ fix #710 ] Enforce assumptions about capitalised idents (#1207)
Given we keep getting tripped up by this, here we go:

* Namespaces
* Data names
* Record names
* Data constructor names (except for operators)
* Record constructor names (except for operators)
* Interface constructor names (except for operators)
2021-03-22 13:22:52 +00:00
Andy Lok
da92f9d676
Cleanup List1 (#1091) 2021-03-17 14:07:52 +00:00
G. Allais
f959987a51
[ fix #834 ] Fix implicitsAs for local definitions (#1199) 2021-03-17 10:54:25 +00:00
G. Allais
8f71aae705
[ fix #1193 ] Fine tune REPL's typesearch (#1196) 2021-03-17 10:54:09 +00:00
André Videla
405c266b5e
[ refactor ] Multiline error report (#1155) 2021-03-16 14:10:45 +00:00
Stefan Höck
591797ebaf
[ new ] Support overloaded floating point literals (#1177) 2021-03-16 14:08:50 +00:00
Matúš Tejiščák
f4a790ded4
Identify prefix and postfix record projections (#1183)
`.proj` and `proj` are identically defined but separate functions.
This patch fixes it by defining `.proj` only once, and adding `proj = (.proj)`
for every projection.
2021-03-15 13:40:13 +00:00
Raoul Hidalgo Charman
3e85e23638
Namespace checks for resugaring (#1161)
This avoids resugaring to the wrong type when there are user defined
symbols which conflicts with builtins such as Pair.

Changed the test linear002 which was relying on this behaviour for a
user defined Unit.

Fixes #634.
2021-03-15 13:34:54 +00:00
Michael Messer
d08c0c78b3
Change :doc to use PTerm instead of Name (#1178) 2021-03-12 09:46:46 +00:00
Edwin Brady
17cdc7fa88
Merge pull request #1171 from edwinb/fix1163
Correct multiplicities when checking Pi binders
2021-03-09 18:36:08 +00:00
Edwin Brady
04a0f5001f Correct multiplicities when checking Pi binders
We've always just used 0, which isn't correct if the function is going
to be used in a runtime pattern match. Now calculate correctly so that
we're explicit about which type level variables are used at runtime.

This might cause some programs to fail to compile, if they use functions
that calculate Pi types. The solution is to make those functions
explicitly 0 multiplicity. If that doesn't work, you may have been
accidentally trying to use compile-time only data at run time!

Fixes #1163
2021-03-09 17:23:05 +00:00
Ruslan Feizerahmanov
50c60185a7
[ auto ] Ignore hidden names in Core.Context.getSearchData (#1143)
Co-authored-by: Guillaume ALLAIS <guillaume.allais@ens-lyon.org>
2021-03-09 14:13:29 +00:00
Ruslan Feizerakhmanov
0ef8f08594 Revert #878 (the test stays put) 2021-03-09 11:26:56 +00:00
Andy Lok
2ed2f93004
Fix multiline string literals not properly merged (#1158) 2021-03-08 11:28:19 +00:00
Stefan Höck
8d4321eb9a
Add Data.Bits to base (#1033) 2021-03-04 20:59:56 +00:00
Stefan Höck
4c7d0db4bc
[ fix #1148 ] Support hyphenated package names (#1151) 2021-03-04 19:09:15 +00:00
Edwin Brady
6887a5f95f Record local hints in delayed elaborators
We might not have set up search problems yet when delaying an
elaborator, so we need to know what the local hints were at the point of
delay.
2021-03-03 13:49:32 +00:00
Edwin Brady
a00fc25109
Merge pull request #1146 from edwinb/fix1140
Check current holes only at end of elaboration
2021-03-01 20:51:46 +00:00
Edwin Brady
b782f82667 A bit of tidying
`when` is better than if ... else pure ()
2021-03-01 19:55:16 +00:00
Edwin Brady
58fe629d13 Add missing case in ProcessIdr 2021-03-01 19:29:14 +00:00
Edwin Brady
1d965627c9 Check current holes only at end of elaboration
Fixes #1140 - when checking holes were solved, we checked all of them,
but there may still be some open if there's a local definition.
2021-03-01 19:11:15 +00:00
G. Allais
cee7e38894
[ new ] Proof search from 'Applications of Applicative Proof Search' (#1093) 2021-03-01 08:29:43 +00:00
Edwin Brady
ebbc123b85 Add IDRIS2_PACKAGE_PATH environment variable
This tells Idris where to look for packages in addition to the default
places (under $PREFIX and ./depends/). This should allow package
managers a bit more flexibility.
2021-02-28 14:06:10 +00:00
Edwin Brady
3a6aa27ba4
Fix package parser error message
Thanks to @andylokandy for spotting!

Co-authored-by: Andy Lok <andylokandy@hotmail.com>
2021-02-28 12:56:11 +00:00
Edwin Brady
4726c32d94 Add --ignore-missing-ipkg flag
When bootstrapping, we're building things without packages being
available, so we can't expect to find them when looking for
dependencies. So, we find them another way, with an environment
variable. This flag is to tell Idris not to worry about missing
dependencies in this situation.

We also need to update the bootstrapping code, to deal with the new
version number format and new flag in the ipkg files for the libraries.
I think it's still safe to build from the previous version though - lets
see if CI agrees!
2021-02-27 19:39:47 +00:00
Edwin Brady
37cc095f7a Merge github.com:idris-lang/Idris2 into versions 2021-02-27 18:00:18 +00:00
Edwin Brady
1d8166b1b2 Version number constraints in 'depends' field
Now reporting an error if we can't find a package that satisfies the
constraints. The version number field can still be a string (as it used
to be) but will give a deprecation warning - and the old style version
string wasn't used anyway.

Version constraints can have an upper and/or lower bound, which can be
inclusive or not.
2021-02-27 17:58:52 +00:00
Edwin Brady
1052c41a3c Use version number field in ipkg
Packages are now installed in a directory with their version number.
On adding a package directory, we now look in a local 'depends'
directory first (to allow packages to be installed locally to another
project) before the global install directory.
Dependencies can have version bounds (details yet to be implemented) and
we pick the package with the highest version number that matches.
2021-02-27 14:15:19 +00:00
André Videla
aa27ccbdb6
Merge pull request #1097 from andylokandy/multiline
Implement multi-line string
2021-02-26 21:50:54 +00:00
Andy Lok
75b41bc8b7 Remove FIXME
Signed-off-by: Andy Lok <andylokandy@hotmail.com>
2021-02-27 02:42:42 +08:00
G. Allais
59de5f1326
[ fix #762 ] Different case tree building strategy (#1125) 2021-02-26 09:33:07 +00:00
Andy Lok
7630aaea5b address comment 2021-02-25 22:12:21 +08:00
Z-snails
f334a050b7
Lazy annotations (#1113) 2021-02-25 13:44:06 +00:00
Andy Lok
01c5011653 improve error report 2021-02-25 20:14:26 +08:00
Andy Lok
5fed5c2b7a Merge branch 'master' of https://github.com/idris-lang/Idris2 into multiline 2021-02-25 19:52:42 +08:00
Andy Lok
8c23f5944b address comment 2021-02-25 18:43:42 +08:00
G. Allais
fcd834c423
[ fix #110 ] Check the LHS' head is not shadowed (#1121) 2021-02-25 08:51:27 +00:00
Guillaume ALLAIS
da88b80481 [ fix #794 ] missing cases in recoverable 2021-02-24 20:25:04 +00:00
G. Allais
d2eeb7ce86
[ fix #758 ] desugar non-binding sequencing in do blocks to (>>) (#1095) 2021-02-24 11:07:16 +00:00
Guillaume ALLAIS
9be15e7e61 [ re #1106 ] Give more details about directory-related failures 2021-02-23 13:52:20 +00:00
Guillaume ALLAIS
00067e8151 [ fix #637 ] force indentation after a with 2021-02-23 10:52:22 +00:00
G. Allais
c10c1d65a5
[ fix #1022 ] detect more impossible cases (#1108) 2021-02-23 10:51:38 +00:00
Andy Lok
626cfa8e19 Add comment 2021-02-23 02:16:31 +08:00
Andy Lok
2358ac0f73 Fix StrError12 test 2021-02-23 02:10:57 +08:00
G. Allais
30d402ed7f
[ fix #899 ] Be careful when generating an impossible LHS (#1081) 2021-02-22 09:53:30 +00:00
Andy Lok
2813a68c52 Fix self-host 2021-02-21 03:28:23 +08:00
Andy Lok
07eb6fda47 Allow hashtag escape for multi-line string 2021-02-21 03:11:01 +08:00
Andy Lok
22a769e6b5 Implement multiline string 2021-02-20 18:05:26 +08:00
Guillaume ALLAIS
7ccc47712e [ re #1087 ] Better error messages in the REPL
(as well as in type signatures now that I know how to do that)
2021-02-19 12:34:19 +00:00
Andy Lok
26464357c1
Implement interpolated string (#1056) 2021-02-18 13:07:22 +00:00
Johann Rudloff
d86944fca2 Extract findDataFile code from readDataFile and export it 2021-02-16 19:16:07 +00:00
Kamil Shakirov
357e2a4cf6 Use double quotes to display the current working directory 2021-02-16 19:13:52 +00:00
Guillaume ALLAIS
c2532acfd8 [ fix #1035 ] Not an internal error 2021-02-16 17:04:02 +00:00
Guillaume ALLAIS
e9f4dc5252 [ cleanup ] parser long lines 2021-02-16 17:04:02 +00:00
Stefan Hoeck
7401961425
[ new ] Bitwise XOR for Bits64 and Integer (#1026) 2021-02-16 15:14:56 +00:00
Dong Tsing-hsuen
447110c686 Fix typo in FC.idr.
Change "beeen" to "been".
2021-02-15 17:32:05 +00:00
Andy Lok
ed7ee4a57b Show more codes in error report 2021-02-15 10:35:46 +00:00
G. Allais
301324b9b3 [ fix #1043 ] throw error if compileExpr failed (#1052)
Also adding a CI target testing the gambit backend.
2021-02-15 10:35:46 +00:00
Z-snails
5384560009 [ new ] support record projections in refc backend (#1054) 2021-02-15 10:35:46 +00:00
André Videla
0705ba55c5 Refactor getFirstMatch function from tokeniser 2021-02-14 00:02:36 +00:00
Andy Lok
5cd7642991 Small improve
Signed-off-by: Andy Lok <andylokandy@hotmail.com>
2021-02-12 14:01:12 +08:00
Andy Lok
4cd8cb5e75 Remove unused util 2021-02-12 13:20:07 +08:00
Andy Lok
99687976f4 Improve parse error report
Signed-off-by: Andy Lok <andylokandy@hotmail.com>
2021-02-12 01:16:40 +08:00
Andy Lok
232c686e25 Improve doc 2021-02-10 23:52:00 +08:00
Andy Lok
b04ebe8cf1 Let lexer recognise grouping
Signed-off-by: Andy Lok <andylokandy@hotmail.com>
2021-02-10 23:33:25 +08:00
Andy Lok
b0dadebb22 Merge branch 'master' of https://github.com/idris-lang/Idris2 into lexer 2021-02-10 19:44:05 +08:00
Andy Lok
bec2e303ae Flattern Tokenizer
Signed-off-by: Andy Lok <andylokandy@hotmail.com>
2021-02-10 19:43:09 +08:00
Ohad Kammar
891b2d667a
[ fix ] All the REPL commands should be in CommandTable (#1036)
Co-authored-by: Ohad Kammar <ohad.kammar@ed.ac.uk>
2021-02-08 17:25:49 +00:00
stefan-hoeck
116672e447 fix 1039 2021-02-08 15:47:23 +00:00
stefan-hoeck
1104776430 fix 1037 2021-02-08 15:47:23 +00:00
Andy Lok
88ad6c2f73 Don't use too many let 2 2021-02-07 01:42:20 +08:00
Andy Lok
fdb0d97039 Don't use too may let
Signed-off-by: Andy Lok <andylokandy@hotmail.com>
2021-02-07 01:30:05 +08:00
Andy Lok
9b1349525e Refactor source lexer
Signed-off-by: Andy Lok <andylokandy@hotmail.com>
2021-02-07 00:51:58 +08:00
Andy Lok
366c426942 remove reject 2021-02-06 17:11:39 +08:00
Wen Kokke
bd683938bf
Overhaul of concurrency primitives (#968)
Co-authored-by: Guillaume ALLAIS <guillaume.allais@ens-lyon.org>
2021-02-05 16:16:20 +00:00
GustavoMF31
7f495999bd
Make :typeat a useful command (#998)
Co-authored-by: Guillaume ALLAIS <guillaume.allais@ens-lyon.org>
2021-02-05 16:15:40 +00:00
Andy Lok
898fb4edd4 Improve stop reason position
Signed-off-by: Andy Lok <andylokandy@hotmail.com>
2021-02-05 18:13:45 +08:00
Andy Lok
404fe5fd19 lexer: add a language-composable tokenizer 2021-02-05 17:21:21 +08:00
Guillaume ALLAIS
5720d1c691 [ fix #1023 ] Hexadecimal literals can be pretty big 2021-02-04 13:22:55 +00:00
G. Allais
d709082fc7
[ fix #835 ] Keep names of implicit variables in with clauses (#1017) 2021-02-03 16:16:11 +00:00
Andy Lok
4ceccaf00c Support raw string
Add wrap on file end

use rust-style raw string syntax

use swift style syntax raw string

Update src/Parser/Support.idr

Co-authored-by: André Videla <andre.videla@gmail.com>

Escape line wrap

Resolve conflict
2021-02-02 19:37:53 +08:00
Denis Buzdalov
d076bcd649 Double closing brace was made to not be treated specially. 2021-02-02 11:27:34 +00:00
Edwin Brady
f2da5b4a46 Local hints shouldn't be accessible globally
We can't just assume that a hint added in an empty environment is a
global hint, because a top level definition might still have no local
variables.
2021-01-30 13:30:44 +00:00
Michael Messer
05c9029b35
Fix REPL execExp and fix "it" (#908) 2021-01-27 23:14:41 +00:00
Peter O'Hanley
f3642c3b59 Add missing Bits64->Int cast
Looks like it was just missing. The Int->Bits64 and Integer->Bits64
cases are identical, so casting back can also be identical.
2021-01-27 18:34:32 +00:00
Kamiλ Shakirov
140879f7b9
[ new ] Zippable interface (#990) 2021-01-27 18:23:08 +00:00
Giuseppe Lomurno
4e2f0a58e9 Internalized contrib libraries and removed dependency 2021-01-21 14:56:53 +01:00
Johann Rudloff
043336ba5c [ fix #959 ] ES Codegen: Add casts from integer types to double
A new test is included to verify the cases mentioned in the original
issue.
2021-01-21 12:28:40 +00:00
Stefan Hoeck
fb08004041
removed trailing whitespace (#955) 2021-01-21 11:33:03 +00:00
Nicolas A. Schmidt
61761f4c27
Don't add implicits after non-given explicits. (#918) 2021-01-20 19:13:07 +00:00
G. Allais
47d345f67a
[ fix #954 ] Allow RF names for interface methods (#956) 2021-01-19 20:50:47 +00:00
Stiopa Koltsov
2eb8f4149c idris2 --help now prints env variables used by the compiler
Until yesterday I did not know Idris2 accesses environment variables.
Mentioning them in `--help` would educate other users.

Not all descriptions make sense, I tried my best to guess them.

Output is: [link](https://gist.github.com/stepancheg/7d1dff344a0dd35b9d07fb4a417ecb32).
2021-01-18 10:40:47 +00:00
Edwin Brady
efae2682bd
Merge pull request #896 from Russoul/toString-iterators
Add withIteratorString
2021-01-16 15:47:45 +00:00
Guillaume Allais
fb77a3e043 [ lint ] remove trailing whitespace 2021-01-16 14:26:55 +00:00
Edwin Brady
fec03ea598
Merge pull request #902 from mattpolzin/scratch-work-search-repl
Interactive & REPL :search feature
2021-01-16 14:11:41 +00:00
Stiopa Koltsov
b76c9d91e0 Remove trailing whitespaces and add trailing newlines 2021-01-16 10:00:03 +00:00
GustavoMF31
fea21d88c5
Apply small refactors all around (#898) 2021-01-15 18:52:29 +00:00
André Videla
bea840418a
Merge pull request #823 from andylokandy/path
Changes to System.Path

- Rename `startWith` to `isBaseOf`
- Rename `stripPrefix` to `dropBase`
- Add `dropExtension`
- Add `splitPath`
2021-01-14 22:09:04 +00:00
Andy Lok
4f8bd22b35 Use present tense in doc for Path 2021-01-14 05:26:42 +08:00
Andy Lok
f1d6d4d6f4 Use dot syntax to avoid path argument 2021-01-14 05:05:59 +08:00
Edwin Brady
3621c5d1bd
Merge pull request #879 from edwinb/no-linearity-subtyping
Remove linearity subtyping
2021-01-12 12:33:26 +00:00
Edwin Brady
fe602caa2c
Merge pull request #765 from ShinKage/ide-mode
IDEMode syntax option and fixed output
2021-01-12 10:39:44 +00:00
Mathew Polzin
ef366033e7
Apply suggestions from code review
Co-authored-by: André Videla <andre.videla@gmail.com>
2021-01-05 20:26:18 -08:00
Michael Messer
a1f3424ab8 Remove lamdaRequire 2021-01-05 16:30:11 +00:00
Mathew Polzin
6d82bf2f5d rename again, move arrows to more common place for functions in this file. 2021-01-03 13:04:59 -08:00
Mathew Polzin
762a5470be ditch unused variables, show full namespaced name of found search results that don't have docs 2021-01-03 13:02:27 -08:00
Mathew Polzin
2295ea73ca remove logging 2021-01-03 11:59:56 -08:00
Mathew Polzin
b9bd65a497 undo unneeded export 2021-01-03 11:53:20 -08:00
Mathew Polzin
0b0c9b33a4 rename proof search to type search 2021-01-03 11:43:58 -08:00
Mathew Polzin
34bfb159f2 remove unneeded stuff, rename a function. 2021-01-03 11:27:19 -08:00
Mathew Polzin
ab05d941c2 clean code up with catch 2021-01-03 10:31:24 -08:00
Mathew Polzin
72736ed292 Merge branch 'master' into scratch-work-search-repl 2021-01-03 10:15:18 -08:00
russoul
79d0cd1ba6 Add withIteratorString 2020-12-31 20:36:07 +03:00
Michael Messer
709b97c2d7
Add it to REPL (#887)
Co-authored-by: Michael Messer <michaelmesser@users.noreply.github.com>
2020-12-29 23:52:03 +00:00
Edwin Brady
cc6530026d Merge github.com:idris-lang/Idris2 into no-linearity-subtyping 2020-12-29 21:37:56 +00:00
Edwin Brady
d67a6fd444
Merge pull request #740 from Russoul/name-at
Add NameAt to Ide mode
2020-12-29 21:04:49 +00:00
Michael Messer
9a20564bb4 Add :! to REPL
Runs shell command
2020-12-29 19:19:43 +00:00
Edwin Brady
0f714f68e0 Compatibility fixes
For compatibility with previous library verions, so that we can build
with 0.2.1(+patches) as well as bootstrapping.
2020-12-29 16:36:12 +00:00
Edwin Brady
ad632d825d Remove linearity subtyping
It's disappointing to have to do this, but I think necessary because
various issue reports have shown it to be unsound (at least as far as
inference goes) and, at the very least, confusing. This patch brings us
back to the basic rules of QTT.

On the one hand, this makes the 1 multiplicity less useful, because it
means we can't flag arguments as being used exactly once which would be
useful for optimisation purposes as well as precision in the type. On
the other hand, it removes some complexity (and a hack) from
unification, and has the advantage of being correct! Also, I still
consider the 1 multiplicity an experiment.

We can still do interesting things like protocol state tracking, which
is my primary motivation at least.

Ideally, if the 1 multiplicity is going to be more generall useful,
we'll need some kind of way of doing multiplicity polymorphism in the
future. I don't think subtyping is the way (I've pretty much always come
to regret adding some form of subtyping).

Fixes #73 (and maybe some others).
2020-12-27 19:58:35 +00:00
Edwin Brady
7e8ef1f10e
Merge pull request #878 from edwinb/localhint
Treat local hints differently in auto search
2020-12-27 14:18:06 +00:00
Edwin Brady
69f3c23cbb Treat local hints differently in auto search
Local hints need to reduce (just like global hints do) so we expand
their definition to the lifted name before applying them.
We're identifying the global hints by knowing that the binder name is a
nested function name. This is a bit of hack, and it'd probably be better
to record that information in the binder instead, but that's a more
substantial change than I want to do right now.
2020-12-27 13:41:48 +00:00
Michael Messer
7dc84696a3
If the width terminal is zero make it Unbounded (#870) 2020-12-23 16:55:36 +00:00
Edwin Brady
c1f58d963f
Merge branch 'master' into interfaces 2020-12-14 13:34:31 +00:00
Edwin Brady
252292451f Add local hints (basic version)
This gives us the ability to define and use implementations locally, in
where clauses/local let bindings, as well as flag local definitions as
hints.
It's not yet quite equivalent to global hints, however, since it translated
the hint to a local let binding, which doesn't reduce, so if something
relies on the reduction behaviour of the hint, it won't work. This
refinement is coming later
2020-12-14 13:25:50 +00:00
Mathew Polzin
a7e0df1300 Merge branch 'master' into scratch-work-search-repl 2020-12-13 17:05:54 -08:00
Mathew Polzin
e16ad58d6e allow unification over holes in saarch and branch defs at start of process to restore at the end. 2020-12-13 17:03:35 -08:00
G. Allais
3f6b99e979
[ fix #657 ] RigCount for interface parameters (#808) 2020-12-11 11:58:26 +00:00
Guillaume ALLAIS
4356d377c5 [ refactor ] parser for lambda & lambdacase 2020-12-10 18:01:14 +00:00
Guillaume ALLAIS
4025896572 [ fix #833, #677 ] bound variables start with a lowercase letter 2020-12-10 18:01:14 +00:00
Guillaume ALLAIS
0a685f8d2c [ debug ] remove max from log
Users should be allowed to de-escalate the level of detail they're
getting.
2020-12-10 14:27:02 +00:00
Mathew Polzin
8206945efb got a number of things matching using unify, but still not totally happy with the result. might need to reivest in just dropping implicits and comparing on local names. 2020-12-08 20:47:52 -08:00
Guillaume ALLAIS
5de647cc3f [ refactor ] use difference list for efficient append 2020-12-08 13:07:53 +00:00
Guillaume ALLAIS
0675e58cca [ error ] crash rather than generating garbage 2020-12-08 13:07:53 +00:00
Guillaume ALLAIS
89daa5c1f6 [ cleanup ] existing list function & needlessly effectfule ones 2020-12-08 13:07:53 +00:00
Guillaume ALLAIS
3c0ff432bd [ cleanup ] redundant parens, language keyword 2020-12-08 13:07:53 +00:00
Guillaume ALLAIS
243ed5df2c [ cleanup ] remove trailing "pure ()" 2020-12-08 13:07:53 +00:00
Guillaume ALLAIS
39f26e7ed6 [ minor ] avoid repetition 2020-12-08 13:07:53 +00:00
Guillaume ALLAIS
f8c248dc7a [ refactor ] introduce Core.update 2020-12-08 13:07:53 +00:00
Guillaume ALLAIS
e5c6dfac5b [ refactor ] remove toString, natMinus
* toString is an inefficient fastPack
* natMinus is an inefficient minus (we have already checked isLTE)
2020-12-08 13:07:53 +00:00
Guillaume ALLAIS
98674fc40a [ cleanup ] use pattern-matching binds in monadic code 2020-12-08 13:07:53 +00:00
Mathew Polzin
1ed79cd7ed got it finding some things by type. can't deal with out-of-order implicits yet. 2020-12-07 19:12:43 -08:00
Jan de Muijnck-Hughes
3a6e779acf Extended Literate support to include LaTeX. 2020-12-07 14:54:35 +00:00
Jan de Muijnck-Hughes
9c5198cde3 Fixed docs and improved Literate mode.
+ Expanded the documentation on how to use literate modes.
+ Added invisible code blocks in Markdown using specially tagged comment blocks: `<!-- idris -->`.
+ Fixed OrgMode specificaton to recognise comment blocks properly.
2020-12-07 14:54:35 +00:00
Nicolas A. Schmidt
ef6cbcf658
Auto-implicit __con now added before implicits. (#659) 2020-12-07 11:41:47 +00:00
Denis Buzdalov
b3542d66fc
Have lambda-case available everywhere lambda is (#819) 2020-12-07 11:34:48 +00:00
Guillaume ALLAIS
d30e984137 [ debug ] Give the option to log off 2020-12-07 11:33:37 +00:00
David Smith
c6abab438c
export a function to parse ipkg files (#822) 2020-12-07 10:53:01 +00:00
Andy Lok
9f72a514f1 Rename startWith to isBaseOf 2020-12-07 15:26:00 +08:00
Andy Lok
5578761bdb Improve splitPath 2020-12-07 05:19:53 +08:00
Andy Lok
d3a74e0199 Update document 2020-12-07 04:27:54 +08:00
Andy Lok
f5e0853264 Refactor Utils.Path 2020-12-07 04:16:28 +08:00
Edwin Brady
22a534f400 Elaborate implementations in the right environment
This involves a small extension to IPragma, because to properly
elaborate names in a local scope we need to know which names are defined
in that scope so that they get applied to the environment when needed.

This means we can now define implementations of interfaces locally (but
there's still some work to do, because we don't yet have a way of
applying locally defined hints in auto search. It's coming soon!)
2020-12-05 20:53:03 +00:00
Edwin Brady
bfea7d785a
Merge pull request #766 from mokshasoft/gambit-cg
Gambit cg
2020-12-04 15:51:22 +00:00
Edwin Brady
778d6026e5
Merge pull request #607 from Russoul/record-init
New syntax for named applications and "record" updates
2020-12-04 11:35:05 +00:00
Fabián Heredia Montiel
57a8ef4609
Implement Futures as a Parallelism Primitive (#753)
Co-authored-by: Christian Rasmussen <christian.rasmussen@me.com>
2020-12-04 10:58:26 +00:00
Mathew Polzin
9bbbe927f0 just putzing around still but I managed to get some looking up to work just by filtering the list of all global defs. 2020-12-03 23:15:59 -08:00
Mathew Polzin
35a50480f4 Merge branch 'master' into scratch-work-search-repl 2020-12-03 17:34:19 -08:00
russoul
46519237cd Merge 2020-12-03 15:28:20 +03:00
Edwin Brady
b244d26cd1
Merge pull request #731 from rbarreiro/issue_596
adds mutual recursion optimisation to the javascript backend
2020-12-03 11:48:44 +00:00
Guillaume ALLAIS
e9126aafd8 [ doc ] :browse made aware of namespace nesting 2020-12-02 20:38:32 +00:00
Andor Penzes
a5a5d89d0c Resolves #804
Introduces parenthesis around parts of let expressions and closes
parenthesis for the case expression.
2020-11-29 22:30:48 +00:00
G. Allais
502f544d73
[ fix #775 ] integerToNat is not, in fact, id (#799) 2020-11-27 18:48:19 +00:00
Guillaume ALLAIS
c3082d8465 [ re #524 ] Debug + positivity check 2020-11-27 09:29:44 +00:00
Rui Barreiro
910711afe9
prim void to js codegen (#782)
Co-authored-by: Guillaume ALLAIS <guillaume.allais@ens-lyon.org>
2020-11-26 16:50:08 +00:00
Yu Zhang
08a35d694c
Improving error messages (#786)
Co-authored-by: Guillaume ALLAIS <guillaume.allais@ens-lyon.org>
2020-11-26 11:35:55 +00:00
Denis Buzdalov
60c8695a6d Editor was made run apostrophe-containing modules from REPL normally. 2020-11-26 11:17:36 +00:00
Denis Buzdalov
9990b5ad29 Namespaces were shadowed in all standard codegens.
This allows, for exmaple, to have apostrophes in module names.
Test was added only for chez, however this should be viable for all
targets with `:exec` implemented.
2020-11-26 11:17:36 +00:00
russoul
5c21dd4976 Merge branch 'master' of https://github.com/idris-lang/Idris2 into name-at 2020-11-20 13:57:46 +03:00
Guillaume ALLAIS
22bfa90971 [ fix ] recoverability criteria
If the "can't convert" error arises from a mismatch between a type
constructor and a primitive value, it is not recoverable.
2020-11-11 19:10:34 +00:00
Guillaume ALLAIS
ec6c70c6e1 [ log ] for coverage, impossible & empty check 2020-11-11 19:10:34 +00:00
Tim Engler
72af040e7e Fixes Issue #74. The problem is that if the function is defined in a sub
module, then the current namespace (accessed by calling getNS) differs
from the function namespace, therefore it is not considered visible by
TTImp.Elab.App.checkVisibleNS
2020-11-11 10:28:51 +00:00
Giuseppe Lomurno
5d2e740450 Typo in Idris/IDEMode/Commands.idr 2020-11-01 02:12:59 +01:00
Jonas Claesson
9f9abc8025 Gambit: add GAMBIT_GSC_BACKEND env configuration
Gambit after version v4.9.3 supports the -cc option, which configures
the compiler backend Gambit will use to build the binary. Currently to
get this functionality Gambit needs to be built from source, since it is
not yet available in a released version.
2020-10-31 10:19:55 +01:00
Jonas Claesson
e4d892490d Add option to compile to C on Gambit CG
Use the '--codegen gambit --directive C' compilation flags.
2020-10-31 09:14:15 +01:00
Giuseppe Lomurno
b0b8330cd9 New IDEMode syntax option and fixed output 2020-10-31 03:51:19 +01:00
russoul
c8875c0f9d Do a tiny renaming 2020-10-26 18:54:11 +03:00
Christian Rasmussen
66fe57f340 Run tests chez029 and node022 via code generator 2020-10-24 12:34:04 +01:00
Kamil Shakirov
0b36a5fe3b [refc] Remove 'schemeCall' as it is not used anymore 2020-10-21 16:57:05 +06:00
Edwin Brady
ccdfc363e3
Merge pull request #739 from edwinb/refcount-c
Experimental C backend with reference counting
2020-10-21 11:12:28 +01:00
Guillaume ALLAIS
14d0141ca2 [ fix #735 ] Make sure type constructors are fully applied 2020-10-16 14:44:11 +01:00
Mathew Polzin
1acace5d1e not working, but exploratory. 2020-10-13 21:53:14 -07:00
Giuseppe Lomurno
37c4fd5771 Flush stdout in IDE mode first message 2020-10-14 03:32:54 +02:00
russoul
3ad87e97f1 Adjust to the removal of ad-hoc postfix projections, Bump up ttc version 2020-10-12 17:55:47 +03:00
russoul
fd90141ed9 Merge branch 'master' of https://github.com/idris-lang/Idris2 into master 2020-10-12 17:36:45 +03:00
russoul
3cb30516e3 Adjust to the removal of ad-hoc postfix projections 2020-10-12 16:12:39 +03:00
russoul
e7f81df453 Add NameAt to Ide mode 2020-10-12 15:03:51 +03:00
MarcelineVQ
50faacf69c remove some redundancy, make tiny style changes 2020-10-11 22:18:51 -07:00
Edwin Brady
97e5f04c34 Add believe_me and crash primitives to refc 2020-10-11 18:51:45 +01:00
Edwin Brady
3007b5a99d Generate an executable via CC
This builds a .o from the generated C, and statically links with the
libidris2_support library. It doesn't yet dynamically link with any
additional libraries.
2020-10-11 18:35:51 +01:00
Edwin Brady
2a39a6461a Merge github.com:idris-lang/Idris2 into refcount-c 2020-10-11 15:12:18 +01:00
Edwin Brady
a76a1322eb Initial merge of reference counting C back end
Written by Volkmar Frinken (@vfrinken). This is intended as a
lightweight (i.e. minimal dependencies) code generator that can be
ported to multiple platforms, especially those with memory constraints.

It shouldn't be expected to be anywhere near as fast as the Scheme back
end, for lots of reasons. The main goal is portability.
2020-10-11 15:05:00 +01:00
Matus Tejiscak
f64163de1f Merge branch 'unscheme' into master 2020-10-11 08:20:01 +02:00
Matus Tejiscak
668762e693 Merge branch 'revert-projections' into master 2020-10-11 08:12:00 +02:00
Rui Barreiro
30a190e0a2 re added replaceNamesExp 2020-10-05 15:11:22 +01:00
Rui Barreiro
44151ecbae Merge branch 'master' of github.com:idris-lang/Idris2 into issue_596 2020-10-05 14:47:17 +01:00
Rui Barreiro
a5b2247f28 mutual tail recursion 2020-10-05 14:39:38 +01:00
russoul
939de39a57 Rename stuff a bit 2020-10-03 19:44:12 +03:00
G. Allais
5e85446e9c
[ fix #724 ] Typo in the magic string (#726) 2020-10-03 14:39:13 +01:00
russoul
5061b9f84d Make logging lazy (logC) 2020-10-03 14:17:45 +03:00
russoul
273b71c632 Clean up
Fix #725
2020-10-03 14:01:42 +03:00
russoul
98bfff4a27 Merge branch 'master' of https://github.com/idris-lang/Idris2 into master 2020-10-03 11:51:48 +03:00
russoul
d49bf75eac Clean up 2020-10-03 11:50:38 +03:00
G. Allais
4a61146ba0
[ fix #705 ] Normalise primitives in mkPat (#718)
[ log ] prettier log for pats & clauses
[ re #650 ] Even lazier
[ fix #705 ] normalise primitives in mkPat
[ refactor ] introduce getPrimitiveNames
2020-10-02 12:22:57 +01:00
russoul
a667aae797 Fix another DPair parsing regression 2020-10-02 11:22:48 +01:00
MarcelineVQ
1619206d24 add specifier check for cli compilation
Missed a case which is covered now by checking for exceptions where
postOptions is used

add *> <* to Core
2020-10-01 14:12:31 +01:00
russoul
cf956ec09d Remove whitespace 2020-10-01 12:49:59 +03:00
russoul
b57b28a64e Implement new application syntax
Add syntax for bind-all-explicits

Add new record update syntax

Remove PInstance
2020-10-01 12:43:43 +03:00
Rodrigo B. de Oliveira
a7cf1143b6 Make NmLet names unique in Compiler.ES.Imperative
Since the imperative form has no nesting of scopes.

Fixes #643
2020-09-30 13:43:59 +01:00
Ruslan Feizerahmanov
1d99a28176
Add Bifunctor interface (#701) 2020-09-30 10:51:07 +01:00
russoul
af62955e07 Merge branch 'master' of https://github.com/idris-lang/Idris2 into master 2020-09-29 12:58:28 +03:00
Niklas Larsson
5bbbfaf225
Merge pull request #709 from melted/unix_lib
Put the appdir first in LD_LIBRARY_PATH
2020-09-28 21:54:25 +02:00
Niklas Larsson
d5393b93bd Put the appdir first in LD_LIBRARY_PATH
So that we prefer the local support lib before others in the path.
2020-09-28 21:02:48 +02:00
MarcelineVQ
3f105cdc0f revert binary character literal
this wasn't doing anything anyway as it's first handled while
escaping in src/Parser/Support.idr and ends up clashing with \b
2020-09-28 13:25:03 +01:00
G. Allais
3df1f9c476
[ fix #63 ] interleaving let binders and local declarations (#691) 2020-09-28 13:15:22 +01:00
Guillaume ALLAIS
416b9578e5 [ fix #37 ] Use filename if we already know it 2020-09-24 15:56:23 +01:00
Guillaume ALLAIS
0d08c0b81b [ log ] for desugaring of idioms 2020-09-24 15:27:40 +01:00
MarcelineVQ
961a28ee64 fix idiom brackets to account for IAlternative
Things like (,) () aren't straightforward IVar's but are IAlternative's
which present options about how the term should resolve. [| |] was not
accounting for this.
2020-09-24 15:27:40 +01:00
Guillaume Allais
6d8bd62795 [ cleanup ] we only need one ifThenElse 2020-09-23 22:20:45 +01:00
Christian Rasmussen
091465525b Remove FArgList 2020-09-23 18:33:19 +01:00
G. Allais
d105dd11a7
[ breaking ] remove List1 related ambiguities (#690) 2020-09-22 15:07:40 +01:00
Jan de Muijnck-Hughes
8adfefa4e5
Added some logging information to the totality checker. (#679) 2020-09-22 12:44:13 +01:00
Christian Rasmussen
9add729ca3 Add Data.String.Iterator implementation for JavaScript 2020-09-20 17:44:19 +02:00
Matus Tejiscak
d26a9c55bf Tune Data.String.Iterator. 2020-09-20 10:02:18 +02:00
Matus Tejiscak
f73fa55075 Unpack strings into a lazy list. 2020-09-19 22:48:45 +02:00
G. Allais
8d09ec9c93
[ new ] comma-separated interface parameters (#682) 2020-09-19 15:29:23 +01:00
G. Allais
3008c48f77
Adding a whole bunch of tuple sections (#680) 2020-09-19 14:51:57 +01:00
Matus Tejiscak
f3984fff46 Remove more redundancy. 2020-09-19 14:57:45 +02:00
Matus Tejiscak
63c3ebf124 Remove ambiguities. 2020-09-19 14:46:12 +02:00
Matus Tejiscak
2c7c603f02 Update the idris2 source. 2020-09-19 14:26:34 +02:00
Matus Tejiscak
5360adcc23 String-related stdlib tweaks. 2020-09-19 14:22:54 +02:00
Guillaume ALLAIS
09f418f250 [ admin ] removing useless import 2020-09-16 15:45:16 +01:00
Guillaume ALLAIS
2bb95e59ef [ re #660 ] eta-contract parameter candidates 2020-09-16 15:45:16 +01:00
Guillaume ALLAIS
88c4b4d02f [ new ] mapTermM and mapTerm 2020-09-16 15:45:16 +01:00
Guillaume ALLAIS
1152aa3cdd [ re #660 ] inline lets when detecting parameters 2020-09-16 15:45:16 +01:00
Guillaume ALLAIS
644495f097 [ debug ] logging for datatype parameters 2020-09-16 15:45:16 +01:00
Guillaume ALLAIS
364ff73a1f [ refactor ] split up Core.Context
`Core.Context` is 2k+ LoC and contains a *lot* of different thins.
Rather than moving the `log` functions above of `addData` to be able
to add logging there, fork them off to independent files to make the
whole thing more readable.
2020-09-16 15:45:16 +01:00
Giuseppe Lomurno
98e54cea2f Missing runElab decl check 2020-09-16 12:06:38 +01:00
Chetan Taralekar
3c24bc5ed5
Fix ide mode repl not converting escaped characters (#665) 2020-09-16 10:55:44 +01:00
MarcelineVQ
19bad79847 change runState's to take state first to allow easier use 2020-09-15 09:23:41 +01:00
MarcelineVQ
5c76053cf3 change StateT, swap result parameters
Nipping this historical artifact in the bud before it roots. It's often
useful to be able to `map` directly to the result of a StateT computation
and due to how Functor works this is made harder when the tuple is
(a,state) vs (state,a)
2020-09-15 09:23:41 +01:00
Guillaume ALLAIS
65e194e9bb [ re #660 ] Positivity checking for empty types 2020-09-14 18:37:47 +01:00
MarcelineVQ
5673d188f3 add nicer errors for bad specifiers 2020-09-13 10:10:53 +01:00
MarcelineVQ
5acb306bf9 add ability to target scheme flavor in foreign specifiers
There's some missing flexibility in how foreign specifiers can be used with
scheme that is addressed here with minimal changes to how scheme specifiers
are read. This opens up uses for users that they otherwise would have had
to modify the compiler's support files to accomplish.
2020-09-13 10:10:53 +01:00
Matus Tejiscak
e491e2969e Re-introduce %prefix_record_projections. 2020-09-10 20:18:51 +02:00
Matus Tejiscak
aebe3c19d9 Revert postfix dotted application. 2020-09-10 19:00:48 +02:00
Ohad Kammar
cdd0d07877 [minor] Remove whitespace 2020-09-10 08:08:59 +01:00
Ohad Kammar
2ece0e438f Refactor dynamic rebinding of default totality requirement
Dynamic rebind now reinstates default if an error is raised

(following @gallais 's code review)
2020-09-10 08:08:59 +01:00
Ohad Kammar
b2a9ba651c Bugfix 654: forgot to update GenerateDef
When synthesizing clauses, allow synthesised clauses to be
partial.

It's an arbitrary choice, the other choice can be the default
option. But if the place in which we're synthesising has a non-default
choice, then we're synthesising under the wrong option too.
2020-09-10 08:08:59 +01:00
Ohad Kammar
2f5ae26f36 Fix typo 2020-09-10 08:08:59 +01:00
Ohad Kammar
0600a9ba11 Fix bug #654
Auxiliary functions introduced in elaboration (e.g., through case splits and with clauses) now
have the same totality annotation as the function they're defined in.

Moved auxiliary function `findSetTotal` into `Context.idr` since it's
now used by `ProcessDef.idr` too.

Added a totality requirement argument to `checkClause` so that the
with-clause case could propagate it to the functions it generates in
elaboration.

Sandwhich the rhs elaboration in pattern matches with code that sets
the global, default, totality requirement to the current one, and
restores the previous default afterwards. It's a bit of a hacky way to
do it, but I don't think we have a better alternative with the current
design.
2020-09-10 08:08:59 +01:00
G. Allais
1963ac8786
[ fix #650 ] Lazier match in NPrimVal vs. ConCase (#655) 2020-09-09 17:17:07 +01:00
G. Allais
a0c0974676
[ debug ] pretty printer for case trees (#652) 2020-09-09 16:22:22 +01:00
russoul
9565f6cf8b Fix DPair parsing 2020-09-05 11:08:44 +01:00
G. Allais
937aa8fc43
[ refactor ] introducing Namespace (#638)
Until now namespaces were stored as (reversed) lists of strings.
It led to:

* confusing code where we work on the underlying representation of
  namespaces rather than say what we mean (using `isSuffixOf` to mean
  `isParentOf`)

* potentially introducing errors by not respecting the invariant cf.
  bug report #616 (but also name generation in the scheme backend
  although that did not lead to bugs as it was self-consistent AFAICT)

* ad-hoc code to circumvent overlapping interface implementation when
  showing / pretty-printing namespaces

This PR introduces a `Namespace` newtype containing a list of strings.
Nested namespaces are still stored in reverse order but the exposed
interface aims to support programming by saying what we mean
(`isParentOf`, `isApproximationOf`, `X <.> Y` computes to `X.Y`, etc.)
irrespective of the underlying representation.
2020-09-05 09:41:31 +01:00
Guillaume ALLAIS
529944267b Revert "[ refactor ] Introducing Namespace and ModuleIdent (#631)"
This reverts commit 481dc431e7.
2020-09-04 09:16:06 +01:00
G. Allais
481dc431e7
[ refactor ] Introducing Namespace and ModuleIdent (#631)
Until now namespaces were stored as (reversed) lists of strings.
It led to:

* confusing code where we work on the representation rather than say
  what we mean (e.g. using `isSuffixOf` to mean `isParentOf`)

* potentially introducing errors by not respecting the invariant cf.
  bug report #616 (but also name generation in the scheme backend
  although that did not lead to bugs as it was self-consistent AFAICT)

* ad-hoc code to circumvent overlapping interface implementations when
  showing / pretty-printing namespaces

This introduces a Namespace newtype containing non-empty lists of
strings. Nested namespaces are still stored in reverse order but the
exposed interface aims to support programming by saying what we mean
(`isParentOf`, `isApproximationOf`, `X <.> Y` computes to `X.Y`, etc.)
irrespective of the underlying representation.
2020-09-02 20:05:33 +01:00
MarcelineVQ
3e4e33110b add semigroup/monoid instances for Unit/()
quite useful to have for more complex libraries and types
2020-09-02 08:42:00 +01:00
russoul
a6d767f8fa Remove unused 2020-09-01 15:46:17 +03:00
russoul
8338b7adbc Tweaks 2020-09-01 14:32:24 +03:00
russoul
52e4a059de Remove unused def 2020-09-01 14:17:39 +03:00
russoul
87a58d30d0 Tweak record error, update expected output 2020-09-01 13:46:06 +03:00
russoul
cb1a5f663c Implement #553 V2 2020-09-01 13:31:59 +03:00
russoul
406f9f5099 Space 2020-09-01 13:31:22 +03:00
russoul
0dfd59d695 Add typedriven resolution, make code a bit prettier 2020-09-01 13:31:22 +03:00
russoul
f50034a050 Spaces 2020-09-01 13:31:22 +03:00
russoul
0e7ba90e9f Remove Kleisli composition (not used anymore) 2020-09-01 13:31:22 +03:00
russoul
ef00018329 Remove redundant import 2020-09-01 13:31:22 +03:00