[Haskell-cafe] Sparse records/ADTs

AntC anthony_clayden at clear.net.nz
Thu Oct 25 01:10:43 CEST 2012

Jon Fairbairn <jon.fairbairn <at> cl.cam.ac.uk> writes:

> Is there a convenient way of handling a data structure with lots
> of fields of different types that may or may not be filled in?

Hi Jon, if your question had appeared in a database forum, the answer would 
be ...

Sounds like you need to do normal-form analysis:
- what are the functional dependencies between the fields?
- is your data structure something like a 'universal relation'?
- is the structure better expressed as several records?
  (vertically partitioned)

Relevant treatments could be "How to Handle missing information without using 
NULL"  http://www.dcs.warwick.ac.uk/~hugh/TTM/Missing-info-without-nulls.pdf

I appreciate that SQL's NULL is not the same as Haskell's Maybe/Nothing (and 
SQL's semantics for NULL are utterly horrible). Nevertheless, if you're 
concerned to avoid the wasted space of sparse records, it could be a helpful 
discipline to design data structures without needing Maybe's.


More information about the Haskell-Cafe mailing list