![](https://ccweb.imgix.net/https%3A%2F%2Fwww.classcentral.com%2Fimages%2Ficon-black-friday.png?auto=format&ixlib=php-4.1.0&s=fe56b83c82babb2f8fce47a2aed2f85d)
Overview
![](https://ccweb.imgix.net/https%3A%2F%2Fwww.classcentral.com%2Fimages%2Ficon-black-friday.png?auto=format&ixlib=php-4.1.0&s=fe56b83c82babb2f8fce47a2aed2f85d)
This course teaches how to use Scala 3 features for constraint typing with Boolean algebra to specify constraints on data types in a composable way. The learning outcomes include understanding the limitations of primitive types, implementing compile-time enforced constraints, and embracing literal types. The course covers topics such as refinement types, singleton constraint typing, and the transition from a black box to a white box paradigm. The intended audience for this course is software engineers interested in enhancing their ability to design correct programs using advanced programming techniques in Scala.
Syllabus
Intro
Programming without constraints
Compile time enforced constraints?
Refinement example: underconstrained
"Traditional" Refinement System Insight
Singleton Constraint Typing: Test
First Implement the Computation
Implement Compile Time Verification
Black Box to White Box Paradigm Shift
Embracing Literal Types
Data Type with Internal Structure (w/ error)
Summarizing the Key Ideas
Taught by
Scala Days Conferences