Squashed commit of the following:

commit 21c9ddef5f9daba0d0b757f0a3cd47997cce9970
Author: Lloyd <lloydmeta@gmail.com>
Date:   Wed May 29 18:05:11 2013 +0900

    Move tailrec to be more visible, remove useless println

commit de0ace9489054e14b93e2ee78b997483c1085145
Author: Lloyd <lloydmeta@gmail.com>
Date:   Wed May 29 18:02:50 2013 +0900

    Add tailrec check for RichRange and add more tests

commit 5231baa7da5a9ce419aa31bd8dcf6911063ed0dd
Author: Lloyd <lloydmeta@gmail.com>
Date:   Wed May 29 17:40:16 2013 +0900

    1. Tail end recursion for getting a list of nodes
    2. Handle compiler warnings