~/talk

Describing Data...with free applicative functors (and more)

Talkat Scala World 2017 · 2017-09-16..09-19· [functional-programming]
slides:none on file

A Scala library called xenomorph describes data as values and uses free applicative structures plus GADTs, Monocle prisms, Argonaut decoders/encoders and fixed-point recursion (HFix/HFunctor) to derive serializers, decoders and ScalaCheck generators from one schema. It avoids macros, composes primitive sets via coproducts, annotates schemas with a higher-order fix to support JSON Schema metadata, and generates UIs at Pellucid Analytics from schemas. Implementations run acceptably in production; compile-time type ascriptions and incremental development are required.

AI-written summary · about

  1. 0:00Introduction
  2. 5:23Serialization and macros problem
  3. 8:39Data structure definition
  4. 12:18Schema concept and primitives
  5. 17:16Sequences and records with applicatives
  6. 21:31Free applicatives for records
  7. 28:21Free applicative for schemas
  8. 32:28Sum types with alternatives
  9. 37:41Serializing sum types
  10. 41:13Decoding and test generation
  11. 44:30Primitives with type classes
  12. 48:10Composing primitive sets
  13. 53:17From data to descriptions
  14. 55:12Annotated schemas
  15. 1:01:22H-Fix for recursive schemas
  16. 1:06:22Simplifying recursion with H-Fix
  17. 1:13:15Key takeaways
~/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.