~/talk

Implementing Modern Types in C#

Talkat DevConf 2023 · 2023-11-08..11-10· [dotnet, functional-programming]
slides:none on file

Demos show concrete conversions of Purescript ideas into C#: ADT-style state (lockbox) is emulated with records and inheritance, shapes and painting cost use externally applied behaviors, and primitives get wrapped into newtype wrappers so values carry meaning at compile time with no runtime cost. Result/option libraries exist but are result/option types and widely incompatible across ecosystems. C# lacks exhaustive pattern matching, forcing underscore fallbacks; builds of full Purescript domains demand lots of RAM (example: ~16 GB) and some emulations compile but lose compiler guarantees.

AI-written summary · about

  1. 0:00Introduction and speaker background
  2. 6:30The problem with null in C#
  3. 13:37C# enums and their flaws
  4. 20:01Avoiding primitive obsession
  5. 28:52Domain modeling with ADTs
  6. 39:49Flexibility and the expression problem
  7. 48:17Type classes and advanced type safety
  8. 52:26Closing thoughts and Q&A
~/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.