aboutsummaryrefslogtreecommitdiff
path: root/notes/generics.txt
blob: d963a04beaf4bb03ce82809637a42a5363d299de (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

Maybe allow both types and values?

    param type T
    param long len


How should generic types work with type qualifiers,
in particular with the `shared` type qualifier?

Maybe it should be declared which functions allow
or require or don't support `shared`?
(Dito for the type itself)

Generic code can only touch references, not access the objects themselves.

`shared` should be fine?
No qualfier sould also be fine? (Because non-var can be shared).
I think the problem would be `var` without shared.

Related:
Maybe there should be a `keep` keyword after all?
Passing a non-shared non-var object to a function, and then being able to
(if there's no other references) use it as var, could be useful.

(The alternative is of course to copy the objects).