anchor.diff:          [getter; setter]
   
       let Cluster =
  -        let self = Type.New()
  -        ChainedClass "Cluster" self <| fun chained ->
  +        ChainedClassNew "Cluster" <| fun chained ->
               [
                   "nodes"      => ClusterNode?root ^-> !|ClusterNode
                   "links"      => (!|ClusterNode)?nodes ^-> !|Link.[ClusterNode]
  
positive.code:         ChainedClassNew "ChordLayout" <| fun chained ->
          [
              "matrix"  => getSetVal chained (!| !|Float)
              "padding" => getSetVal chained Float
              "sortGroups"    => getSetVal chained Comparator
              "sortSubGroups" => getSetVal chained Comparator
              "sortChords"    => getSetVal chained Comparator
              "chords" => O ^-> !|Link.[ChordNode]
              "groups" => O ^-> !|Link.[ChordNode]
          ]
  
      let ClusterNode =
  
negative.code:                 |> WithInline "'skewY(' + skewAngle + ')'"
          ]
          |>! addToClassList
  
      let Simulation =
          ChainedClassNew "Simulation" <| fun chained ->
          [
              "restart" => O ^-> TSelf
              "stop" => O ^-> TSelf
              "tick" => Int ^-> TSelf
              "nodes" => getSetVal chained !| Obj
              "alpha" => getSetVal chained Int
              "alphaMin" => getSetVal chained Int
              "alphaDecay" => getSetVal chained Int
              "alphaTarget" => getSetVal chained Int
              "velocityDecay" => getSetVal chained Int
              "force" => String ^-> getSetVal chained TSelf
              "find" => Int * Int * !? Int ^-> Node
              "randomSource" => getSetVal chained (O ^-> Float)
              "on" => getSetVal chained Listener
          ]
  
      let Center =
          ChainedClassNew "Center" <| fun chained ->
          [
              "x" => getSetVal chained Int
              "y" => getSetVal chained Int
              "strength" => getSetVal chained Float
          ]
  
      let Collide =
          ChainedClassNew "Collide" <| fun chained ->
          [
              "radius" => getSetVal chained Float
              "strength" => getSetVal chained Float
              "iterations" => getSetVal chained Int
          ]
      
      let ManyBody =
          ChainedClassNew "ManyBody" <| fun chained ->
          [
              "strength" => getSetVal chained Float
              "theta" => getSetVal chained Float
              "distance" => getSetVal chained Int
              "distanceMin" => getSetVal chained Int
              "distanceMax" => getSetVal chained Int
          ]   
  
      let ForceX =
          ChainedClassNew "X" <| fun chained ->
          [
              "strength" => getSetVal chained Float
              "x" => getSetVal chained Int
          ]
  
      let ForceY =
          ChainedClassNew "Y" <| fun chained ->
          [
              "strength" => getSetVal chained Float
              "y" => getSetVal chained Int
          ]
  
      let Radial =
          ChainedClassNew "Radial" <| fun chained ->
          [
              "strength" => getSetVal chained Float
              "radius" => getSetVal chained Int
              "x" => getSetVal chained Int 
              "y" => getSetVal chained Int 
          ]
  
      let Dsv =
          ChainedClassNew "Dsv" <| fun chained ->
          [
              "parse" => String * !? String ^-> !| Obj
              "parseRows" => String * !? String ^-> !| Obj
              "format" => !| Obj * !| String ^-> !| String
              "formatRows" => !| !| String ^-> String
              "formatRow" => !| String ^-> String
              "formatValue" => Obj ^-> String
          ]
  
      let Voronoy =
          Class "Voronoy"
          |+> Instance [
              "circumcenters" =? !| Float
              "vectors" =? !| Float
              "xmin" =? Int
              "ymin" =? Int
              "xmax" =? Int
              "ymax" =? Int
  
              "contains" => Int * Int * Int ^-> Bool
              "neighbors" => Int ^-> !| Int
              "render" => Obj ^-> O
              "renderBounds" => Obj ^-> O
              "renderCell" => Obj ^-> O
              "cellPolygons" => O ^-> !| !| Point
              "cellPolygon" => !| Point
              "update" => O ^-> O
          ]
  
      let Delaunay =
          Class "Delaunay"
          |+> Static [
              Constructor(!| Point)
          ]
          |+> Instance [
              "from" => !| Point * !? (Point ^-> Int) * !? (Point ^-> Int) ^-> TSelf
              "find" => Int * Int * !? Int ^-> Int
              "neighbors" => Point ^-> !| Point
              "renderer" => !? Obj ^-> O
              "renderHull" => !? Obj ^-> O
              "renderTriangle" => !| Int * !? Obj ^-> O
              "renderPoints" => !? Obj * !? Int ^-> O
              "hullPolygon" => O ^-> !| Point
              "trianglePolygon" => !| Int ^-> !| Point
              "update" => O ^-> O
              "voronoi" => !| Int ^-> Voronoi
              
              "points" =? !| Int
              "halfedges" =? !| Int
              "hull" =? !| Int
              "triangles" =? !| Int
              "inedges" =? !| Int
          ]
  
      let Contours =
          ChainedClassNew "Contours" <| fun chained ->
          [
              "contour" => !| Int + !| Float * Int + Float ^-> Obj
              "size" => getSetVal chained Int
              "smoothing" => getSetVal chained Bool
              "tresholds" => getSetVal chained (!| Int + !| Float)
          ]
  
      let ContourDensity =
          ChainedClassNew "ContourDensity" <| fun chained ->
          [
              "data" => !| Int + !| Float ^-> !| Obj
              "x" => getSetVal chained Int
              "y" => getSetVal chained Int
              "weight" => getSetVal chained Float
              "size" => getSetVal chained !| Int
              "cellSize" => getSetVal chained Int
              "treshold" => getSetVal chained (!| Int + !| Float)
              "bandWidth" => getSetVal chained Float
          ]
  
      let Color =
          ChainedClassNew "Color" <| fun chained ->
          [
              "opacity" =? Float
              "rgb" => O ^-> TSelf
              "copy" => !| Obj ^-> TSelf
              "brighter" => Float + Int ^-> TSelf
              "darker" => Float + Int ^-> TSelf
              "displayable" => O ^-> Bool
              "formatHex" => O ^-> String
              "formatHsl" => O ^-> String
              "formatRgb" => O ^-> String
              "toString" => O ^-> String
          ]
  
      let Adder =
          ChainedClassNew "Adder" <| fun chained ->
          [
              "add" => Int + Float ^-> TSelf
              "valueOf" => O ^-> Int + Float
          ]
  
      let D3 =
          Class "d3"
  