-
-Later
-- string manipulation
-- structs
- - const fields ... what does that mean? Assign once as initialization?
- Can be used for array size? What else?
- 'const' is wrong word.
- I want 'const' for record to be type-wide constants, like enum. I think
- These would become read-only. Maybe "init_only"
- - anonymous field - array or struct (or pointer to these)
- multiple anon struct are allowed if they don't conflict
- no - transparent fields! They still have a name, but you can
- look through it.
- - [] can apply to transparent array field
- - transparent struct field gets fields interpolated
-
- - How to give attributes? just say the word?
- struct foobar:
- x:content transparent
- size:number
-
+- init_only fields
+- const fields in structs: like const, but in 'type' namespace, not 'module'
+- 'borrowed' and 'owned' attributes for pointers. .free method
+- interfaces - list of methods that must be defined
+- standard interfaces to access operations: group, field, binary, logical
+- modules - exported names in versions, and import lists
+ on types, fields, constants, etc
+- foreach variable-list := make_generator() do
+ A generator has 'first', 'next' and 'finally' methods
+ 'first' and 'next' return the same type which is conditional ('?' works)
+ 'finally' returns some other type - possibly Tnone - which goes to
+ a set of case at end of loop
+
+- attributes for fields and local variables
+ transparent - names inside can be accessed directly
+
+ handled - accesses convert to function calls??
+ constant - compile time constant - not stored
+ stable - ??
+ add-only - ?? like append-only.
+ read-only - set early never changed?
+ mutable
+ owned - Can be borrowed and freed
+ borrowed - There is somewhere this is borrowed from
+ dependant - ???
+ pure - definitely not an error
+ endian(big,small,pdp)
+ attributes for whole struct
+ unsorted - fields appear as written
+ packed - like unsorted, but no gaps permitted.
+
+- lambda functions for passing as arg to function.
+ Are these always there to provide an interface for a value?
+ Do I want a syntax for functions that just provides a value
+ func (a:number; b:string):number = a+b[]
+
+- units for numbers
+- iso suffixes for number?