~/talk

Designing Nullable Reference Types in F#

Talkat NDC London 2019 · 2019-01-30..02-01· [compilers-and-language-design]
links:none on file
slides:none on file

F# 5 adds nullable reference types aligned with C# 8 but preserves backwards compatibility by emitting warnings not errors and encoding nullability as metadata attributes. The compiler uses pattern-matching helpers, a new generics constraint for non-null, and attributes like NullableAttribute with bool[] to represent nested nullability to other compilers. Experiments on real code show many surprising warnings (files with dozens of breakages, projects with hundreds of warnings). Oddly, options emit null and the design wrestles between oblivious semantics vs assume-nonnull.

AI-written summary · about

  1. 0:00Introduction
  2. 2:42Knowability Assumptions
  3. 3:13Nothing
  4. 3:39Implicit
  5. 10:48Design Goals
  6. 17:05Pattern Matching
  7. 19:58Fsharp Rules
  8. 25:25Noble Value Types
  9. 26:18Type Relations
  10. 27:20Knowable
  11. 28:43Not Null
  12. 30:20Nominal Types
  13. 31:45No Attribute Types
  14. 32:05FSharp
  15. 32:25Nullable Reference Types
  16. 33:13Difficult Design Choice
  17. 34:03No Reference Exceptions
  18. 34:32Knowable Assumption
  19. 35:23Two Paths
  20. 36:47F Sharp
  21. 37:24Default Values
  22. 38:18ClineMutable
  23. 39:18OptionType
  24. 41:34Why is it important
  25. 43:51Links
  26. 46:53Interrupt
  27. 47:04ByRef
  28. 48:11Code Base
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.