<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
  ><link rel="stylesheet" type="text/css" href="style.css"
     /><script type="text/javascript" src="highlight.js"
    ></script
    ></head
  ><body
  ><pre
    ><span class="hs-pragma"
      >{-# LANGUAGE NamedFieldPuns #-}</span
      ><span class=""
      >
</span
      ><span class="hs-pragma"
      >{-# LANGUAGE RecordWildCards #-}</span
      ><span class=""
      >


</span
      ><span class="hs-keyword"
      >module</span
      ><span class=""
      > </span
      ><span class="hs-identifier"
      >Records</span
      ><span class=""
      > </span
      ><span class="hs-keyword"
      >where</span
      ><span class=""
      >


</span
      ><span class="hs-keyword"
      >data</span
      ><span class=""
      > </span
      ><a name="Point"
      ><a href="Records.html#Point"
	><span class="hs-identifier"
	  >Point</span
	  ></a
	></a
      ><span class=""
      > </span
      ><span class="hs-glyph"
      >=</span
      ><span class=""
      > </span
      ><a name="Point"
      ><a href="Records.html#Point"
	><span class="hs-identifier"
	  >Point</span
	  ></a
	></a
      ><span class=""
      >
    </span
      ><span class="hs-special"
      >{</span
      ><span class=""
      > </span
      ><a name="x"
      ><a href="Records.html#x"
	><span class="hs-identifier"
	  >x</span
	  ></a
	></a
      ><span class=""
      > </span
      ><span class="hs-glyph"
      >::</span
      ><span class=""
      > </span
      ><span class="hs-glyph"
      >!</span
      ><span class="hs-identifier hs-type"
      >Int</span
      ><span class=""
      >
    </span
      ><span class="hs-special"
      >,</span
      ><span class=""
      > </span
      ><a name="y"
      ><a href="Records.html#y"
	><span class="hs-identifier"
	  >y</span
	  ></a
	></a
      ><span class=""
      > </span
      ><span class="hs-glyph"
      >::</span
      ><span class=""
      > </span
      ><span class="hs-glyph"
      >!</span
      ><span class="hs-identifier hs-type"
      >Int</span
      ><span class=""
      >
    </span
      ><span class="hs-special"
      >}</span
      ><span class=""
      >


</span
      ><span class="hs-identifier"
      >point</span
      ><span class=""
      > </span
      ><span class="hs-glyph"
      >::</span
      ><span class=""
      > </span
      ><span class="hs-identifier hs-type"
      >Int</span
      ><span class=""
      > </span
      ><span class="hs-glyph"
      >-&gt;</span
      ><span class=""
      > </span
      ><span class="hs-identifier hs-type"
      >Int</span
      ><span class=""
      > </span
      ><span class="hs-glyph"
      >-&gt;</span
      ><span class=""
      > </span
      ><a href="Records.html#Point"
      ><span class="hs-identifier hs-type"
	>Point</span
	></a
      ><span class=""
      >
</span
      ><a name="point"
      ><a href="Records.html#point"
	><span class="hs-identifier"
	  >point</span
	  ></a
	></a
      ><span class=""
      > </span
      ><a name="local-0"
      ><a href="#local-0"
	><span class="hs-identifier"
	  >x</span
	  ></a
	></a
      ><span class=""
      > </span
      ><a name="local-0"
      ><a href="#local-0"
	><span class="hs-identifier"
	  >y</span
	  ></a
	></a
      ><span class=""
      > </span
      ><span class="hs-glyph"
      >=</span
      ><span class=""
      > </span
      ><a href="Records.html#Point"
      ><span class="hs-identifier hs-var"
	>Point</span
	></a
      ><span class=""
      > </span
      ><span class="hs-special"
      >{</span
      ><span class=""
      > </span
      ><a href="Records.html#x"
      ><span class="hs-identifier hs-var"
	>x</span
	></a
      ><span class=""
      > </span
      ><span class="hs-glyph"
      >=</span
      ><span class=""
      > </span
      ><a href="#local-0"
      ><span class="hs-identifier hs-var"
	>x</span
	></a
      ><span class="hs-special"
      >,</span
      ><span class=""
      > </span
      ><a href="Records.html#y"
      ><span class="hs-identifier hs-var"
	>y</span
	></a
      ><span class=""
      > </span
      ><span class="hs-glyph"
      >=</span
      ><span class=""
      > </span
      ><a href="#local-0"
      ><span class="hs-identifier hs-var"
	>y</span
	></a
      ><span class=""
      > </span
      ><span class="hs-special"
      >}</span
      ><span class=""
      >


</span
      ><span class="hs-identifier"
      >lengthSqr</span
      ><span class=""
      > </span
      ><span class="hs-glyph"
      >::</span
      ><span class=""
      > </span
      ><a href="Records.html#Point"
      ><span class="hs-identifier hs-type"
	>Point</span
	></a
      ><span class=""
      > </span
      ><span class="hs-glyph"
      >-&gt;</span
      ><span class=""
      > </span
      ><span class="hs-identifier hs-type"
      >Int</span
      ><span class=""
      >
</span
      ><a name="lengthSqr"
      ><a href="Records.html#lengthSqr"
	><span class="hs-identifier"
	  >lengthSqr</span
	  ></a
	></a
      ><span class=""
      > </span
      ><span class="hs-special"
      >(</span
      ><a href="Records.html#Point"
      ><span class="hs-identifier hs-var"
	>Point</span
	></a
      ><span class=""
      > </span
      ><span class="hs-special"
      >{</span
      ><span class=""
      > </span
      ><a href="Records.html#x"
      ><span class="hs-identifier hs-var"
	>x</span
	></a
      ><span class=""
      > </span
      ><span class="hs-glyph"
      >=</span
      ><span class=""
      > </span
      ><a name="local-0"
      ><a href="#local-0"
	><span class="hs-identifier"
	  >x</span
	  ></a
	></a
      ><span class="hs-special"
      >,</span
      ><span class=""
      > </span
      ><a href="Records.html#y"
      ><span class="hs-identifier hs-var"
	>y</span
	></a
      ><span class=""
      > </span
      ><span class="hs-glyph"
      >=</span
      ><span class=""
      > </span
      ><a name="local-0"
      ><a href="#local-0"
	><span class="hs-identifier"
	  >y</span
	  ></a
	></a
      ><span class=""
      > </span
      ><span class="hs-special"
      >}</span
      ><span class="hs-special"
      >)</span
      ><span class=""
      > </span
      ><span class="hs-glyph"
      >=</span
      ><span class=""
      > </span
      ><a href="#local-0"
      ><span class="hs-identifier hs-var"
	>x</span
	></a
      ><span class=""
      > </span
      ><span class="hs-operator hs-var"
      >*</span
      ><span class=""
      > </span
      ><a href="#local-0"
      ><span class="hs-identifier hs-var"
	>x</span
	></a
      ><span class=""
      > </span
      ><span class="hs-operator hs-var"
      >+</span
      ><span class=""
      > </span
      ><a href="#local-0"
      ><span class="hs-identifier hs-var"
	>y</span
	></a
      ><span class=""
      > </span
      ><span class="hs-operator hs-var"
      >*</span
      ><span class=""
      > </span
      ><a href="#local-0"
      ><span class="hs-identifier hs-var"
	>y</span
	></a
      ><span class=""
      >

</span
      ><span class="hs-identifier"
      >lengthSqr'</span
      ><span class=""
      > </span
      ><span class="hs-glyph"
      >::</span
      ><span class=""
      > </span
      ><a href="Records.html#Point"
      ><span class="hs-identifier hs-type"
	>Point</span
	></a
      ><span class=""
      > </span
      ><span class="hs-glyph"
      >-&gt;</span
      ><span class=""
      > </span
      ><span class="hs-identifier hs-type"
      >Int</span
      ><span class=""
      >
</span
      ><a name="lengthSqr%27"
      ><a href="Records.html#lengthSqr%27"
	><span class="hs-identifier"
	  >lengthSqr'</span
	  ></a
	></a
      ><span class=""
      > </span
      ><span class="hs-special"
      >(</span
      ><a href="Records.html#Point"
      ><span class="hs-identifier hs-var"
	>Point</span
	></a
      ><span class=""
      > </span
      ><span class="hs-special"
      >{</span
      ><span class=""
      > </span
      ><a href="Records.html#x"
      ><span class="hs-identifier hs-var"
	>x</span
	></a
      ><span class="hs-special"
      >,</span
      ><span class=""
      > </span
      ><a href="Records.html#y"
      ><span class="hs-identifier hs-var"
	>y</span
	></a
      ><span class=""
      > </span
      ><span class="hs-special"
      >}</span
      ><span class="hs-special"
      >)</span
      ><span class=""
      > </span
      ><span class="hs-glyph"
      >=</span
      ><span class=""
      > </span
      ><a href="#local-0"
      ><span class="hs-identifier hs-var"
	>y</span
	></a
      ><span class=""
      > </span
      ><span class="hs-operator hs-var"
      >*</span
      ><span class=""
      > </span
      ><a href="#local-0"
      ><span class="hs-identifier hs-var"
	>y</span
	></a
      ><span class=""
      > </span
      ><span class="hs-operator hs-var"
      >+</span
      ><span class=""
      > </span
      ><a href="#local-0"
      ><span class="hs-identifier hs-var"
	>x</span
	></a
      ><span class=""
      > </span
      ><span class="hs-operator hs-var"
      >*</span
      ><span class=""
      > </span
      ><a href="#local-0"
      ><span class="hs-identifier hs-var"
	>x</span
	></a
      ><span class=""
      >


</span
      ><span class="hs-identifier"
      >translateX</span
      ><span class="hs-special"
      >,</span
      ><span class=""
      > </span
      ><span class="hs-identifier"
      >translateY</span
      ><span class=""
      > </span
      ><span class="hs-glyph"
      >::</span
      ><span class=""
      > </span
      ><a href="Records.html#Point"
      ><span class="hs-identifier hs-type"
	>Point</span
	></a
      ><span class=""
      > </span
      ><span class="hs-glyph"
      >-&gt;</span
      ><span class=""
      > </span
      ><span class="hs-identifier hs-type"
      >Int</span
      ><span class=""
      > </span
      ><span class="hs-glyph"
      >-&gt;</span
      ><span class=""
      > </span
      ><a href="Records.html#Point"
      ><span class="hs-identifier hs-type"
	>Point</span
	></a
      ><span class=""
      >
</span
      ><a name="translateX"
      ><a href="Records.html#translateX"
	><span class="hs-identifier"
	  >translateX</span
	  ></a
	></a
      ><span class=""
      > </span
      ><a name="local-0"
      ><a href="#local-0"
	><span class="hs-identifier"
	  >p</span
	  ></a
	></a
      ><span class=""
      > </span
      ><a name="local-0"
      ><a href="#local-0"
	><span class="hs-identifier"
	  >d</span
	  ></a
	></a
      ><span class=""
      > </span
      ><span class="hs-glyph"
      >=</span
      ><span class=""
      > </span
      ><a href="#local-0"
      ><span class="hs-identifier hs-var"
	>p</span
	></a
      ><span class=""
      > </span
      ><span class="hs-special"
      >{</span
      ><span class=""
      > </span
      ><a href="Records.html#x"
      ><span class="hs-identifier hs-var"
	>x</span
	></a
      ><span class=""
      > </span
      ><span class="hs-glyph"
      >=</span
      ><span class=""
      > </span
      ><a href="Records.html#x"
      ><span class="hs-identifier hs-var"
	>x</span
	></a
      ><span class=""
      > </span
      ><a href="#local-0"
      ><span class="hs-identifier hs-var"
	>p</span
	></a
      ><span class=""
      > </span
      ><span class="hs-operator hs-var"
      >+</span
      ><span class=""
      > </span
      ><a href="#local-0"
      ><span class="hs-identifier hs-var"
	>d</span
	></a
      ><span class=""
      > </span
      ><span class="hs-special"
      >}</span
      ><span class=""
      >
</span
      ><a name="translateY"
      ><a href="Records.html#translateY"
	><span class="hs-identifier"
	  >translateY</span
	  ></a
	></a
      ><span class=""
      > </span
      ><a name="local-0"
      ><a href="#local-0"
	><span class="hs-identifier"
	  >p</span
	  ></a
	></a
      ><span class=""
      > </span
      ><a name="local-0"
      ><a href="#local-0"
	><span class="hs-identifier"
	  >d</span
	  ></a
	></a
      ><span class=""
      > </span
      ><span class="hs-glyph"
      >=</span
      ><span class=""
      > </span
      ><a href="#local-0"
      ><span class="hs-identifier hs-var"
	>p</span
	></a
      ><span class=""
      > </span
      ><span class="hs-special"
      >{</span
      ><span class=""
      > </span
      ><a href="Records.html#y"
      ><span class="hs-identifier hs-var"
	>y</span
	></a
      ><span class=""
      > </span
      ><span class="hs-glyph"
      >=</span
      ><span class=""
      > </span
      ><a href="Records.html#y"
      ><span class="hs-identifier hs-var"
	>y</span
	></a
      ><span class=""
      > </span
      ><a href="#local-0"
      ><span class="hs-identifier hs-var"
	>p</span
	></a
      ><span class=""
      > </span
      ><span class="hs-operator hs-var"
      >+</span
      ><span class=""
      > </span
      ><a href="#local-0"
      ><span class="hs-identifier hs-var"
	>d</span
	></a
      ><span class=""
      > </span
      ><span class="hs-special"
      >}</span
      ><span class=""
      >

</span
      ><span class="hs-identifier"
      >translate</span
      ><span class=""
      > </span
      ><span class="hs-glyph"
      >::</span
      ><span class=""
      > </span
      ><span class="hs-identifier hs-type"
      >Int</span
      ><span class=""
      > </span
      ><span class="hs-glyph"
      >-&gt;</span
      ><span class=""
      > </span
      ><span class="hs-identifier hs-type"
      >Int</span
      ><span class=""
      > </span
      ><span class="hs-glyph"
      >-&gt;</span
      ><span class=""
      > </span
      ><a href="Records.html#Point"
      ><span class="hs-identifier hs-type"
	>Point</span
	></a
      ><span class=""
      > </span
      ><span class="hs-glyph"
      >-&gt;</span
      ><span class=""
      > </span
      ><a href="Records.html#Point"
      ><span class="hs-identifier hs-type"
	>Point</span
	></a
      ><span class=""
      >
</span
      ><a name="translate"
      ><a href="Records.html#translate"
	><span class="hs-identifier"
	  >translate</span
	  ></a
	></a
      ><span class=""
      > </span
      ><a name="local-0"
      ><a href="#local-0"
	><span class="hs-identifier"
	  >x</span
	  ></a
	></a
      ><span class=""
      > </span
      ><a name="local-0"
      ><a href="#local-0"
	><span class="hs-identifier"
	  >y</span
	  ></a
	></a
      ><span class=""
      > </span
      ><a name="local-0"
      ><a href="#local-0"
	><span class="hs-identifier"
	  >p</span
	  ></a
	></a
      ><span class=""
      > </span
      ><span class="hs-glyph"
      >=</span
      ><span class=""
      >
    </span
      ><a href="#local-0"
      ><span class="hs-identifier hs-var"
	>aux</span
	></a
      ><span class=""
      > </span
      ><a href="#local-0"
      ><span class="hs-identifier hs-var"
	>p</span
	></a
      ><span class=""
      >
  </span
      ><span class="hs-keyword"
      >where</span
      ><span class=""
      >
    </span
      ><span class="hs-special"
      >(</span
      ><a name="local-0"
      ><a href="#local-0"
	><span class="hs-identifier"
	  >dx</span
	  ></a
	></a
      ><span class="hs-special"
      >,</span
      ><span class=""
      > </span
      ><a name="local-0"
      ><a href="#local-0"
	><span class="hs-identifier"
	  >dy</span
	  ></a
	></a
      ><span class="hs-special"
      >)</span
      ><span class=""
      > </span
      ><span class="hs-glyph"
      >=</span
      ><span class=""
      > </span
      ><span class="hs-special"
      >(</span
      ><a href="#local-0"
      ><span class="hs-identifier hs-var"
	>x</span
	></a
      ><span class="hs-special"
      >,</span
      ><span class=""
      > </span
      ><a href="#local-0"
      ><span class="hs-identifier hs-var"
	>y</span
	></a
      ><span class="hs-special"
      >)</span
      ><span class=""
      >
    </span
      ><a name="local-0"
      ><a href="#local-0"
	><span class="hs-identifier"
	  >aux</span
	  ></a
	></a
      ><span class=""
      > </span
      ><a href="Records.html#Point"
      ><span class="hs-identifier hs-var"
	>Point</span
	></a
      ><span class="hs-special"
      >{</span
      ><span class="hs-glyph"
      >..</span
      ><span class="hs-special"
      >}</span
      ><span class=""
      > </span
      ><span class="hs-glyph"
      >=</span
      ><span class=""
      > </span
      ><a href="#local-0"
      ><span class="hs-identifier hs-var"
	>p</span
	></a
      ><span class=""
      > </span
      ><span class="hs-special"
      >{</span
      ><span class=""
      > </span
      ><a href="Records.html#x"
      ><span class="hs-identifier hs-var"
	>x</span
	></a
      ><span class=""
      > </span
      ><span class="hs-glyph"
      >=</span
      ><span class=""
      > </span
      ><a href="#local-0"
      ><span class="hs-identifier hs-var"
	>x</span
	></a
      ><span class=""
      > </span
      ><span class="hs-operator hs-var"
      >+</span
      ><span class=""
      > </span
      ><a href="#local-0"
      ><span class="hs-identifier hs-var"
	>dx</span
	></a
      ><span class="hs-special"
      >,</span
      ><span class=""
      > </span
      ><a href="Records.html#y"
      ><span class="hs-identifier hs-var"
	>y</span
	></a
      ><span class=""
      > </span
      ><span class="hs-glyph"
      >=</span
      ><span class=""
      > </span
      ><a href="#local-0"
      ><span class="hs-identifier hs-var"
	>y</span
	></a
      ><span class=""
      > </span
      ><span class="hs-operator hs-var"
      >+</span
      ><span class=""
      > </span
      ><a href="#local-0"
      ><span class="hs-identifier hs-var"
	>dy</span
	></a
      ><span class=""
      > </span
      ><span class="hs-special"
      >}</span
      ><span class=""
      >
</span
      ></pre
    ></body
  ></html
>