Build a code minifier Pick a programming language.

In that language, write a function or program that takes as input a string of working code (in the same language).

It should return/output a minified version of the input code.  The output should be functionally equivalent to the input.

Answers should contain both


The code that does the minifying (should be readable/non-golfed)
The resulting output after passing your code (that is, the code that does the minifying) in to itself


The shortest output wins.

Edit: notes explaining the minification methods you used are appreciated.

Edit: obviously, minification methods could vary from language to language, but a good-faith attempt at writing a minifier for this challenge would most likely perform actions such as 


Removing unnecessary whitespace
Removing unnecessary newlines
Removing comments
Shortening variable names
Brainfuck

I always had in mind to do this, so here we go:

&gt;&gt;&gt;,
[
[-&gt;+&gt;+&lt;&lt;]             copy input

&lt;&lt;&lt;+++++++++++++      fill cell with 13 for subtraction
[-&gt;+&gt;+&gt;+&lt;&lt;&lt;]          and duplicate some times

&gt;&gt;&gt;[-&gt;---&lt;]           sub 39
&gt;----                 43

[                     plus
-
[                     comma
-
[                     minus
-
[                     dot

&lt;&lt;[-&gt;&gt;-&lt;&lt;]&gt;&gt;-         60

[                     less than
--
[                     greater than

&lt;&lt;&lt;[-&gt;&gt;&gt;--&lt;&lt;&lt;]&gt;&gt;&gt;     86
---                   91

[                     open square bracket
--
[                     closing square bracket

&gt;[-]                  remove copy

]]]]]]]]

&gt;[.[-]&gt;]              the copy has not been removed; print

&lt;&lt;[-]&lt;&lt;&lt;[-]&gt;[-]&gt;      clean up

,]


Compresses itself to (144 characters):

&gt;&gt;&gt;,[[-&gt;+&gt;+&lt;&lt;]&lt;&lt;&lt;+++++++++++++[-&gt;+&gt;+&gt;+&lt;&lt;&lt;]&gt;&gt;&gt;[-&gt;---&lt;]&gt;----[-[-[-[&lt;&lt;[-&gt;&gt;-
&lt;&lt;]&gt;&gt;-[--[&lt;&lt;&lt;[-&gt;&gt;&gt;--&lt;&lt;&lt;]&gt;&gt;&gt;---[--[&gt;[-]]]]]]]]]&gt;[.[-]&gt;]&lt;&lt;[-]&lt;&lt;&lt;[-]&gt;[-]&gt;,]


The size of the compressing could probably still reduced a bit. The compression alogorithm itself is near perfect, it's hard to do any more than removing non-+-[]&lt;&gt;,..