I notice when declaring a type alias in the REPL, a line break causes a statement to succeed:
this works:
scala> type a
| 3 == 3
defined type alias a
res32: Boolean = true
This does not:
scala> type a 3 == 3 ^
error: `=`, `>:`, or `<:` expected
It's legal to have an abstract type as shown.
The REPL is in a special parsing mode where it knows if the current line is a complete syntax production or if more input is required, so that's why it goes to a second line, even though technically it should just accept
type a.The REPL doesn't import the abstract typedef into the current expression because it knows it is abstract.
The type maybe not be very useful, but it is a thing: