react-book.melange.re/intro/#ocalm#soundcomplete#strong#typesystem#typeinference#algebraiceffects#algebraicdatatypes#GADT#patternmatching#immutanbility - pragmatic and optional laziness