- Lean and Functional Programming - Bryan Hunter
- A tour of the language landscape - Yan Cui
- Enterprise Tic-Tac-Toe -- A functional approach - Scott Wlaschin
- Learning from Haskell - Venkat Subramaniam
- Computation expression in context : a history of the otter king - Andrea Magnorsky
- Type-Driven Development - Mark Seemann
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// General hints on defining types with constraints or invariants | |
// | |
// Just as in C#, use a private constructor | |
// and expose "factory" methods that enforce the constraints | |
// | |
// In F#, only classes can have private constructors with public members. | |
// | |
// If you want to use the record and DU types, the whole type becomes | |
// private, which means that you also need to provide: | |
// * a constructor function ("create"). |
- The app that uses tailwind + external component library (CL) (but not 3rdparty, your company internal one, for example)
- The component library also uses tailwind
To be able to purge safely unused tailwind classes from the build (https://tailwindcss.com/docs/controlling-file-size)
The idea here is simple: we're going to purge css on the app side + whitelist classes that component library is using.