# Nushell core team meeting 2023-11-22
## Attendees
- Sophia
- Stefan
- Antoine
- Jakub
- Darren
- Storm
- Windsoilder
- Andres
## Agenda
- [x] Left over from last meeting
- [x] Secret project demo; Related discussion:
- [ ] new parser
- [ ] runtime debugger / profiler
- [x] spread operator from [#11006](https://github.com/nushell/nushell/pull/11006)
- seems ready to land
- [x] Hopes/plans for new parser integration?
- [x] case sensitive B for bytes in [#6807](https://github.com/nushell/nushell/issues/6807)
- [x] boolean switches and options in [#7260](https://github.com/nushell/nushell/issues/7260)
- [x] `is` operator? (out-of-the-blue PR: https://github.com/nushell/nushell/pull/11091)
- we have `describe -d` already
- [x] Well-written issue about types: https://github.com/nushell/nushell/issues/11108
- "Full" types (incl. enums, like Rust) vs. current "structural" types
- generics (we toyed with overloading before)
- [x] should command take pipeline inputs AND parameter? (related to [#11105](https://github.com/nushell/nushell/pull/11105))
- [ ] discontinue `std testing`
- [ ] `error make` -> `throw error` + `throw warning`
- [x] Developer documentation, Call to action
- [ ] Lessons from the survey for us
- [ ] Redirection improvement in [#10271](https://github.com/nushell/nushell/issues/10271)
- [ ] Banning certain words on discord
## Discussed Topics
### Inspector Kubouch presents an interactive debugger demo
### spread operator
ready to land for list, thanks to @ysthakur
### New nu-parser
- cooking in the core team
- new parser will have several parses
- light parsing (not making too many guesses)
- name binding (where variables/commands are defined and used)
- type inference and check -> final parse for ambiguous literals etc.
- `EngineState` and `StateDelta` will need some tweaking
- more keywords (how will they now be implemented in the engine - open)
### `--flag: bool` / can you override bare flags with a variable
Currently `--foo` != `--foo: bool`
The former can only be toggled dynamically in an if statement (problematic in), the latter **requires** a passed value
#### WindSoilder's comment on the issue thread:
https://github.com/nushell/nushell/issues/7260#issuecomment-1811354775
#### Possible idea, tight coupling to flag with `=`
```
def foo [--bar: bool, baz?] {}
foo --bar=$var
```
#### current state
Design remains unclear, iterate before boxing us into a new design
### `is` operator
not ready yet
- different syntax for types in signatures and this op
concern around "static" types vs runtime type information
- not boxing us in prematurely around the runtime info
- we want to support
### Type system wishlist in [#11108](https://github.com/nushell/nushell/issues/11108)
- nominal types (i.e. giving name to a particular record spec or true struct)
- sum types (i.e. enums with payload)
- type inference for end to end checking
- stability questions pre-1.0
- generics
Feedback to the issue author:
- Stefan
- break up
- we are tightening up the design for 1.0
- what needs to be designed before 1.0
### commands that take data both from the pipe and the input.
When does it become ambiguous?
```
[foo.txt, bar.txt] | cp baz
```
Case by case analysis, what is the meaning of the arguments and input is it absolutely equivalent
Counterpoint we now have a spread operator: `...$in`
- let's wait this out for `start`
#### Design thoughts raised
If we can replace implicit or flag heavy magic with compositional patterns
(e.g. `enumerate` instead of implcit args)