Update of base values

Update of algebraic data

The structure of algebraic data can be modified with the (#=) operator. This replaces the constructor at a particular node with a new one.

We'll use a simple point type as an example. In this definition, x and y are field names and are local to the Point type. This is different from Haskell, where all field names become functions in the top level scope.

data Point
= Point { x :: Float; y :: Float; }

We'll also define an instance of the Show type-class, so we can print out the result.