Idris2/libs/base/Data
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
..
Bool Add some algebra implementations 2020-07-17 08:25:20 -05:00
Fin [ fix #657 ] RigCount for interface parameters (#808) 2020-12-11 11:58:26 +00:00
IOArray Add experimental support for linear arrays 2020-06-12 14:08:00 +01:00
List Some functions, mostly for lazy lists (#854) 2020-12-18 10:33:56 +00:00
Nat [ fix #657 ] RigCount for interface parameters (#808) 2020-12-11 11:58:26 +00:00
Primitives Add libraries 2020-05-18 14:00:08 +01:00
Vect Port Idris 1's Data.Vect.Quantifiers 2020-08-31 12:34:13 +01:00
Bool.idr Function mapping Not (x=True) to x=False was added for Bools (#322) 2020-06-19 11:13:13 +01:00
Buffer.idr Merge pull request #408 from melted/buffer_api 2020-07-21 10:43:17 +02:00
DPair.idr A port of Subset and Exists from Idris1. 2020-07-04 11:03:14 +01:00
Either.idr Add Bifunctor interface (#701) 2020-09-30 10:51:07 +01:00
Fin.idr An alternative (Fin-based) indexing function was added for lists. 2020-12-04 19:09:05 +00:00
Fuel.idr add Data.Fuel 2020-06-02 17:20:42 +02:00
Fun.idr Port Decidable.Order from Idris1 (#543) 2020-08-18 22:26:56 +01:00
IOArray.idr Back to HasIO, remove MonadIO 2020-06-21 19:21:22 +01:00
IORef.idr Remove linearity subtyping 2020-12-27 19:58:35 +00:00
List1.idr Remove linearity subtyping 2020-12-27 19:58:35 +00:00
List.idr Add List, LazyList and Stream unfolds and some LazyList's functions 2020-12-18 22:54:03 +00:00
Maybe.idr Simplify Maybe 2020-07-07 10:48:23 +01:00
Morphisms.idr Export (~>) publicly. 2020-07-20 15:55:24 +01:00
Nat.idr Division theorem (#695) 2020-10-06 13:09:02 +01:00
Ref.idr [ fix #657 ] RigCount for interface parameters (#808) 2020-12-11 11:58:26 +00:00
Rel.idr [contrib] Add misc libraries to contrib (#667) 2020-09-14 16:22:46 +01:00
So.idr various stdlib updates 2020-06-11 23:14:11 +02:00
Stream.idr Add List, LazyList and Stream unfolds and some LazyList's functions 2020-12-18 22:54:03 +00:00
Strings.idr Add javascript FFI for fastUnpack (#816) 2020-12-06 09:54:58 +00:00
These.idr Add Bifunctor interface (#701) 2020-09-30 10:51:07 +01:00
Vect.idr Remove linearity subtyping 2020-12-27 19:58:35 +00:00