<!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" >-></span ><span class="" > </span ><span class="hs-identifier hs-type" >Int</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 ><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" >-></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" >-></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" >-></span ><span class="" > </span ><span class="hs-identifier hs-type" >Int</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 ><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" >-></span ><span class="" > </span ><span class="hs-identifier hs-type" >Int</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" >-></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 >