packages feed

ProxN (empty) → 0.0.1

raw patch · 128 files changed

+1102/−0 lines, 128 filesdep +basedep +mtlsetup-changedbinary-added

Dependencies added: base, mtl

Files

+ .git/COMMIT_EDITMSG view
@@ -0,0 +1,1 @@+-Math+Data
+ .git/HEAD view
@@ -0,0 +1,1 @@+ref: refs/heads/master
+ .git/ORIG_HEAD view
@@ -0,0 +1,1 @@+99aa7053731bd1edc38de046779e8c96964e8f33
+ .git/config view
@@ -0,0 +1,11 @@+[core]+	repositoryformatversion = 0+	filemode = true+	bare = false+	logallrefupdates = true+[remote "origin"]+	url = git@github.com:exFalso/ProxN.git+	fetch = +refs/heads/*:refs/remotes/origin/*+[branch "master"]+	remote = origin+	merge = refs/heads/master
+ .git/description view
@@ -0,0 +1,1 @@+Unnamed repository; edit this file 'description' to name the repository.
+ .git/hooks/applypatch-msg.sample view
@@ -0,0 +1,15 @@+#!/bin/sh+#+# An example hook script to check the commit log message taken by+# applypatch from an e-mail message.+#+# The hook should exit with non-zero status after issuing an+# appropriate message if it wants to stop the commit.  The hook is+# allowed to edit the commit message file.+#+# To enable this hook, rename this file to "applypatch-msg".++. git-sh-setup+test -x "$GIT_DIR/hooks/commit-msg" &&+	exec "$GIT_DIR/hooks/commit-msg" ${1+"$@"}+:
+ .git/hooks/commit-msg.sample view
@@ -0,0 +1,24 @@+#!/bin/sh+#+# An example hook script to check the commit log message.+# Called by "git commit" with one argument, the name of the file+# that has the commit message.  The hook should exit with non-zero+# status after issuing an appropriate message if it wants to stop the+# commit.  The hook is allowed to edit the commit message file.+#+# To enable this hook, rename this file to "commit-msg".++# Uncomment the below to add a Signed-off-by line to the message.+# Doing this in a hook is a bad idea in general, but the prepare-commit-msg+# hook is more suited to it.+#+# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')+# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"++# This example catches duplicate Signed-off-by lines.++test "" = "$(grep '^Signed-off-by: ' "$1" |+	 sort | uniq -c | sed -e '/^[ 	]*1[ 	]/d')" || {+	echo >&2 Duplicate Signed-off-by lines.+	exit 1+}
+ .git/hooks/post-update.sample view
@@ -0,0 +1,8 @@+#!/bin/sh+#+# An example hook script to prepare a packed repository for use over+# dumb transports.+#+# To enable this hook, rename this file to "post-update".++exec git update-server-info
+ .git/hooks/pre-applypatch.sample view
@@ -0,0 +1,14 @@+#!/bin/sh+#+# An example hook script to verify what is about to be committed+# by applypatch from an e-mail message.+#+# The hook should exit with non-zero status after issuing an+# appropriate message if it wants to stop the commit.+#+# To enable this hook, rename this file to "pre-applypatch".++. git-sh-setup+test -x "$GIT_DIR/hooks/pre-commit" &&+	exec "$GIT_DIR/hooks/pre-commit" ${1+"$@"}+:
+ .git/hooks/pre-commit.sample view
@@ -0,0 +1,50 @@+#!/bin/sh+#+# An example hook script to verify what is about to be committed.+# Called by "git commit" with no arguments.  The hook should+# exit with non-zero status after issuing an appropriate message if+# it wants to stop the commit.+#+# To enable this hook, rename this file to "pre-commit".++if git rev-parse --verify HEAD >/dev/null 2>&1+then+	against=HEAD+else+	# Initial commit: diff against an empty tree object+	against=4b825dc642cb6eb9a060e54bf8d69288fbee4904+fi++# If you want to allow non-ascii filenames set this variable to true.+allownonascii=$(git config hooks.allownonascii)++# Redirect output to stderr.+exec 1>&2++# Cross platform projects tend to avoid non-ascii filenames; prevent+# them from being added to the repository. We exploit the fact that the+# printable range starts at the space character and ends with tilde.+if [ "$allownonascii" != "true" ] &&+	# Note that the use of brackets around a tr range is ok here, (it's+	# even required, for portability to Solaris 10's /usr/bin/tr), since+	# the square bracket bytes happen to fall in the designated range.+	test $(git diff --cached --name-only --diff-filter=A -z $against |+	  LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0+then+	echo "Error: Attempt to add a non-ascii file name."+	echo+	echo "This can cause problems if you want to work"+	echo "with people on other platforms."+	echo+	echo "To be portable it is advisable to rename the file ..."+	echo+	echo "If you know what you are doing you can disable this"+	echo "check using:"+	echo+	echo "  git config hooks.allownonascii true"+	echo+	exit 1+fi++# If there are whitespace errors, print the offending file names and fail.+exec git diff-index --check --cached $against --
+ .git/hooks/pre-rebase.sample view
@@ -0,0 +1,169 @@+#!/bin/sh+#+# Copyright (c) 2006, 2008 Junio C Hamano+#+# The "pre-rebase" hook is run just before "git rebase" starts doing+# its job, and can prevent the command from running by exiting with+# non-zero status.+#+# The hook is called with the following parameters:+#+# $1 -- the upstream the series was forked from.+# $2 -- the branch being rebased (or empty when rebasing the current branch).+#+# This sample shows how to prevent topic branches that are already+# merged to 'next' branch from getting rebased, because allowing it+# would result in rebasing already published history.++publish=next+basebranch="$1"+if test "$#" = 2+then+	topic="refs/heads/$2"+else+	topic=`git symbolic-ref HEAD` ||+	exit 0 ;# we do not interrupt rebasing detached HEAD+fi++case "$topic" in+refs/heads/??/*)+	;;+*)+	exit 0 ;# we do not interrupt others.+	;;+esac++# Now we are dealing with a topic branch being rebased+# on top of master.  Is it OK to rebase it?++# Does the topic really exist?+git show-ref -q "$topic" || {+	echo >&2 "No such branch $topic"+	exit 1+}++# Is topic fully merged to master?+not_in_master=`git rev-list --pretty=oneline ^master "$topic"`+if test -z "$not_in_master"+then+	echo >&2 "$topic is fully merged to master; better remove it."+	exit 1 ;# we could allow it, but there is no point.+fi++# Is topic ever merged to next?  If so you should not be rebasing it.+only_next_1=`git rev-list ^master "^$topic" ${publish} | sort`+only_next_2=`git rev-list ^master           ${publish} | sort`+if test "$only_next_1" = "$only_next_2"+then+	not_in_topic=`git rev-list "^$topic" master`+	if test -z "$not_in_topic"+	then+		echo >&2 "$topic is already up-to-date with master"+		exit 1 ;# we could allow it, but there is no point.+	else+		exit 0+	fi+else+	not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"`+	/usr/bin/perl -e '+		my $topic = $ARGV[0];+		my $msg = "* $topic has commits already merged to public branch:\n";+		my (%not_in_next) = map {+			/^([0-9a-f]+) /;+			($1 => 1);+		} split(/\n/, $ARGV[1]);+		for my $elem (map {+				/^([0-9a-f]+) (.*)$/;+				[$1 => $2];+			} split(/\n/, $ARGV[2])) {+			if (!exists $not_in_next{$elem->[0]}) {+				if ($msg) {+					print STDERR $msg;+					undef $msg;+				}+				print STDERR " $elem->[1]\n";+			}+		}+	' "$topic" "$not_in_next" "$not_in_master"+	exit 1+fi++exit 0++################################################################++This sample hook safeguards topic branches that have been+published from being rewound.++The workflow assumed here is:++ * Once a topic branch forks from "master", "master" is never+   merged into it again (either directly or indirectly).++ * Once a topic branch is fully cooked and merged into "master",+   it is deleted.  If you need to build on top of it to correct+   earlier mistakes, a new topic branch is created by forking at+   the tip of the "master".  This is not strictly necessary, but+   it makes it easier to keep your history simple.++ * Whenever you need to test or publish your changes to topic+   branches, merge them into "next" branch.++The script, being an example, hardcodes the publish branch name+to be "next", but it is trivial to make it configurable via+$GIT_DIR/config mechanism.++With this workflow, you would want to know:++(1) ... if a topic branch has ever been merged to "next".  Young+    topic branches can have stupid mistakes you would rather+    clean up before publishing, and things that have not been+    merged into other branches can be easily rebased without+    affecting other people.  But once it is published, you would+    not want to rewind it.++(2) ... if a topic branch has been fully merged to "master".+    Then you can delete it.  More importantly, you should not+    build on top of it -- other people may already want to+    change things related to the topic as patches against your+    "master", so if you need further changes, it is better to+    fork the topic (perhaps with the same name) afresh from the+    tip of "master".++Let's look at this example:++		   o---o---o---o---o---o---o---o---o---o "next"+		  /       /           /           /+		 /   a---a---b A     /           /+		/   /               /           /+	       /   /   c---c---c---c B         /+	      /   /   /             \         /+	     /   /   /   b---b C     \       /+	    /   /   /   /             \     /+    ---o---o---o---o---o---o---o---o---o---o---o "master"+++A, B and C are topic branches.++ * A has one fix since it was merged up to "next".++ * B has finished.  It has been fully merged up to "master" and "next",+   and is ready to be deleted.++ * C has not merged to "next" at all.++We would want to allow C to be rebased, refuse A, and encourage+B to be deleted.++To compute (1):++	git rev-list ^master ^topic next+	git rev-list ^master        next++	if these match, topic has not merged in next at all.++To compute (2):++	git rev-list master..topic++	if this is empty, it is fully merged to "master".
+ .git/hooks/prepare-commit-msg.sample view
@@ -0,0 +1,36 @@+#!/bin/sh+#+# An example hook script to prepare the commit log message.+# Called by "git commit" with the name of the file that has the+# commit message, followed by the description of the commit+# message's source.  The hook's purpose is to edit the commit+# message file.  If the hook fails with a non-zero status,+# the commit is aborted.+#+# To enable this hook, rename this file to "prepare-commit-msg".++# This hook includes three examples.  The first comments out the+# "Conflicts:" part of a merge commit.+#+# The second includes the output of "git diff --name-status -r"+# into the message, just before the "git status" output.  It is+# commented because it doesn't cope with --amend or with squashed+# commits.+#+# The third example adds a Signed-off-by line to the message, that can+# still be edited.  This is rarely a good idea.++case "$2,$3" in+  merge,)+    /usr/bin/perl -i.bak -ne 's/^/# /, s/^# #/#/ if /^Conflicts/ .. /#/; print' "$1" ;;++# ,|template,)+#   /usr/bin/perl -i.bak -pe '+#      print "\n" . `git diff --cached --name-status -r`+#	 if /^#/ && $first++ == 0' "$1" ;;++  *) ;;+esac++# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')+# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
+ .git/hooks/update.sample view
@@ -0,0 +1,128 @@+#!/bin/sh+#+# An example hook script to blocks unannotated tags from entering.+# Called by "git receive-pack" with arguments: refname sha1-old sha1-new+#+# To enable this hook, rename this file to "update".+#+# Config+# ------+# hooks.allowunannotated+#   This boolean sets whether unannotated tags will be allowed into the+#   repository.  By default they won't be.+# hooks.allowdeletetag+#   This boolean sets whether deleting tags will be allowed in the+#   repository.  By default they won't be.+# hooks.allowmodifytag+#   This boolean sets whether a tag may be modified after creation. By default+#   it won't be.+# hooks.allowdeletebranch+#   This boolean sets whether deleting branches will be allowed in the+#   repository.  By default they won't be.+# hooks.denycreatebranch+#   This boolean sets whether remotely creating branches will be denied+#   in the repository.  By default this is allowed.+#++# --- Command line+refname="$1"+oldrev="$2"+newrev="$3"++# --- Safety check+if [ -z "$GIT_DIR" ]; then+	echo "Don't run this script from the command line." >&2+	echo " (if you want, you could supply GIT_DIR then run" >&2+	echo "  $0 <ref> <oldrev> <newrev>)" >&2+	exit 1+fi++if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then+	echo "Usage: $0 <ref> <oldrev> <newrev>" >&2+	exit 1+fi++# --- Config+allowunannotated=$(git config --bool hooks.allowunannotated)+allowdeletebranch=$(git config --bool hooks.allowdeletebranch)+denycreatebranch=$(git config --bool hooks.denycreatebranch)+allowdeletetag=$(git config --bool hooks.allowdeletetag)+allowmodifytag=$(git config --bool hooks.allowmodifytag)++# check for no description+projectdesc=$(sed -e '1q' "$GIT_DIR/description")+case "$projectdesc" in+"Unnamed repository"* | "")+	echo "*** Project description file hasn't been set" >&2+	exit 1+	;;+esac++# --- Check types+# if $newrev is 0000...0000, it's a commit to delete a ref.+zero="0000000000000000000000000000000000000000"+if [ "$newrev" = "$zero" ]; then+	newrev_type=delete+else+	newrev_type=$(git cat-file -t $newrev)+fi++case "$refname","$newrev_type" in+	refs/tags/*,commit)+		# un-annotated tag+		short_refname=${refname##refs/tags/}+		if [ "$allowunannotated" != "true" ]; then+			echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2+			echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2+			exit 1+		fi+		;;+	refs/tags/*,delete)+		# delete tag+		if [ "$allowdeletetag" != "true" ]; then+			echo "*** Deleting a tag is not allowed in this repository" >&2+			exit 1+		fi+		;;+	refs/tags/*,tag)+		# annotated tag+		if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1+		then+			echo "*** Tag '$refname' already exists." >&2+			echo "*** Modifying a tag is not allowed in this repository." >&2+			exit 1+		fi+		;;+	refs/heads/*,commit)+		# branch+		if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then+			echo "*** Creating a branch is not allowed in this repository" >&2+			exit 1+		fi+		;;+	refs/heads/*,delete)+		# delete branch+		if [ "$allowdeletebranch" != "true" ]; then+			echo "*** Deleting a branch is not allowed in this repository" >&2+			exit 1+		fi+		;;+	refs/remotes/*,commit)+		# tracking branch+		;;+	refs/remotes/*,delete)+		# delete tracking branch+		if [ "$allowdeletebranch" != "true" ]; then+			echo "*** Deleting a tracking branch is not allowed in this repository" >&2+			exit 1+		fi+		;;+	*)+		# Anything else (is there anything else?)+		echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2+		exit 1+		;;+esac++# --- Finished+exit 0
+ .git/index view

binary file changed (absent → 888 bytes)

+ .git/info/exclude view
@@ -0,0 +1,6 @@+# git ls-files --others --exclude-from=.git/info/exclude+# Lines that start with '#' are comments.+# For a project mostly in C, the following would be a good set of+# exclude patterns (uncomment them if you want to use them):+# *.[oa]+# *~
+ .git/logs/HEAD view
@@ -0,0 +1,7 @@+0000000000000000000000000000000000000000 99aa7053731bd1edc38de046779e8c96964e8f33 Ex Falso <0slemi0@gmail.com> 1327686767 +0000	commit (initial): gitignore+99aa7053731bd1edc38de046779e8c96964e8f33 a641bc6c77212e090f4a550220875c5169bc1f32 Ex Falso <0slemi0@gmail.com> 1327687092 +0000	commit: works+a641bc6c77212e090f4a550220875c5169bc1f32 b4aab4150265d809e9c0bcd437da8c76baf13058 Ex Falso <0slemi0@gmail.com> 1327708686 +0000	commit: cleaned up a bit+b4aab4150265d809e9c0bcd437da8c76baf13058 8dfda0fd31f3cd684948aa52d50595feea7c01f7 Ex Falso <0slemi0@gmail.com> 1327775249 +0000	commit: added nicer Pretty printing, removed UndecidableInstances+8dfda0fd31f3cd684948aa52d50595feea7c01f7 857c54c007917e49cf3ff111f0d6a93f248183f0 Ex Falso <0slemi0@gmail.com> 1327777658 +0000	commit: cabalised+857c54c007917e49cf3ff111f0d6a93f248183f0 d96c73c3864fa48a1d500d232d8949d5d5978746 Ex Falso <0slemi0@gmail.com> 1327777872 +0000	commit: trallala+d96c73c3864fa48a1d500d232d8949d5d5978746 a5de91949523b3162cf69f3365b5914deb6c7b01 Ex Falso <0slemi0@gmail.com> 1327782730 +0000	commit: -Math+Data
+ .git/logs/refs/heads/master view
@@ -0,0 +1,7 @@+0000000000000000000000000000000000000000 99aa7053731bd1edc38de046779e8c96964e8f33 Ex Falso <0slemi0@gmail.com> 1327686767 +0000	commit (initial): gitignore+99aa7053731bd1edc38de046779e8c96964e8f33 a641bc6c77212e090f4a550220875c5169bc1f32 Ex Falso <0slemi0@gmail.com> 1327687092 +0000	commit: works+a641bc6c77212e090f4a550220875c5169bc1f32 b4aab4150265d809e9c0bcd437da8c76baf13058 Ex Falso <0slemi0@gmail.com> 1327708686 +0000	commit: cleaned up a bit+b4aab4150265d809e9c0bcd437da8c76baf13058 8dfda0fd31f3cd684948aa52d50595feea7c01f7 Ex Falso <0slemi0@gmail.com> 1327775249 +0000	commit: added nicer Pretty printing, removed UndecidableInstances+8dfda0fd31f3cd684948aa52d50595feea7c01f7 857c54c007917e49cf3ff111f0d6a93f248183f0 Ex Falso <0slemi0@gmail.com> 1327777658 +0000	commit: cabalised+857c54c007917e49cf3ff111f0d6a93f248183f0 d96c73c3864fa48a1d500d232d8949d5d5978746 Ex Falso <0slemi0@gmail.com> 1327777872 +0000	commit: trallala+d96c73c3864fa48a1d500d232d8949d5d5978746 a5de91949523b3162cf69f3365b5914deb6c7b01 Ex Falso <0slemi0@gmail.com> 1327782730 +0000	commit: -Math+Data
+ .git/logs/refs/remotes/origin/master view
@@ -0,0 +1,5 @@+0000000000000000000000000000000000000000 99aa7053731bd1edc38de046779e8c96964e8f33 Ex Falso <0slemi0@gmail.com> 1327686779 +0000	update by push+99aa7053731bd1edc38de046779e8c96964e8f33 a641bc6c77212e090f4a550220875c5169bc1f32 Ex Falso <0slemi0@gmail.com> 1327687099 +0000	update by push+a641bc6c77212e090f4a550220875c5169bc1f32 b4aab4150265d809e9c0bcd437da8c76baf13058 Ex Falso <0slemi0@gmail.com> 1327708697 +0000	update by push+b4aab4150265d809e9c0bcd437da8c76baf13058 857c54c007917e49cf3ff111f0d6a93f248183f0 Ex Falso <0slemi0@gmail.com> 1327777669 +0000	update by push+857c54c007917e49cf3ff111f0d6a93f248183f0 d96c73c3864fa48a1d500d232d8949d5d5978746 Ex Falso <0slemi0@gmail.com> 1327777879 +0000	update by push
+ .git/objects/00/b10b39f0cc77308f54f0fbb2b028397aac6a10 view
@@ -0,0 +1,4 @@+xT]kÛ0ݳšD¦ŽÁ0ö–BX·0XBY×·ÂPcusd!+í²±ÿÞ«§Žãd&¶uϽ÷œ£+ßWõ=Š·oŠWÆçø<[Îogó˜%¯äoQ.œÝjq%Œ|”ê;ÎǓd]—›JàŠ[ž_›úגþ…µ[†xÏó4Á‘_A;Ò¾äõƞ¨0ËꟐOªêx¥O?„I"׺6ïkeM]å3­+¹âV>Š~hQ+^æ_/…ŽÝXn©¤+FÕpLwÏÌc¾‚îƹ;¾Dx:nŸw•…¾`‡‰ÙQ/ö÷ã03MÁ‡ú’À°÷ÌkÎðq£V¶6:öœnëOp0 M“d7˜L¢1΢0d°´ƒh¬é›ƒfT>lñ,sÁ‹‹—’ËÊU<¨CËS”59ȾeªLñnÞü¤•Ü«ÌFwj„IŠÜãw¤ÃÀu»ð.u™G˜vÜ}ãª^ñ+ìŽQ÷[%m¤Aª÷V\¨mIµI³Q-GÒv¸½{íÝãÙnÚ:ɱ1X[M¯SLɁJX0:”Zå´[Jq’õ’l됥7©œ¥1ggäÒªâMM…ŽÇ$Ä}G®é0Xçî’¦íè+é“Â1zA·ª¦hTIÎ
λݻ­nè«°cÓ+ìcӖÁ
þ¼ºXx	ÁehrôÒOHH8â@,ÓãZ¸õ“ó¿.}(´œ{͜1MIØ­­5ÏÜÈ
+ .git/objects/06/fd435aaf8a10558151c4be78128eb5788611c3 view

binary file changed (absent → 204 bytes)

+ .git/objects/07/e90904d0b1fdba9607654a71ca9a19ba89eafa view

binary file changed (absent → 77 bytes)

+ .git/objects/0d/557788667f248ca931e7028bc7ba397c87fcb1 view

binary file changed (absent → 386 bytes)

+ .git/objects/0f/32ae80b78ab303c463382b06b91fff13506053 view

binary file changed (absent → 84 bytes)

+ .git/objects/12/3e534b572f11b5e49b4af896ee0e25ba1262ec view

binary file changed (absent → 929 bytes)

+ .git/objects/19/c89282b62be0fc9fedb582157b41630bef329b view

binary file changed (absent → 47 bytes)

+ .git/objects/26/c273af232d38a327bf30c0ea9f8c6d4659da6c view

binary file changed (absent → 352 bytes)

+ .git/objects/29/b8366661b78592e9b944f9c27a2fd7a1defb2d view

binary file changed (absent → 1609 bytes)

+ .git/objects/2a/7fef7cbb1c9a8c7d4c9c77fab7dee5e6332de2 view

binary file changed (absent → 759 bytes)

+ .git/objects/37/e47c18313d1c919fcfe7ddd731b3f841dbe47b view

binary file changed (absent → 46 bytes)

+ .git/objects/39/8e74abe25c3c58fbc771798c5c1b7c27c58d24 view

binary file changed (absent → 83 bytes)

+ .git/objects/3c/588612900da0a6c88dc3f9c1c7b45d2e72a653 view

binary file changed (absent → 47 bytes)

+ .git/objects/42/3628620e0e687b7198d457b74588f4caa2afec view

binary file changed (absent → 55 bytes)

+ .git/objects/46/e67c4f953106736bc602cd65a2abce6d606cef view

binary file changed (absent → 852 bytes)

+ .git/objects/5a/d9178110928a7042ec30a847242040c926edd1 view

binary file changed (absent → 203 bytes)

+ .git/objects/5f/b1a0bc8779cc8740d5ef3ede513c645a6e8a3d view

binary file changed (absent → 89 bytes)

+ .git/objects/62/20fb07d9b4d91d13edfbb84e8ba7d02ed6dd92 view

binary file changed (absent → 148 bytes)

+ .git/objects/65/0a8fe94d7394d3715fbf93a7497a4486b05cbd view
@@ -0,0 +1,5 @@+x•’AoÛ8…÷¬_1è©Yé6@/Û-Ñ6YԒT\e‰nXb Ñ	òï÷‘q-°ØBä¼yóÍÛݞ¾~»ûöGæ_¦þ烧ÏíÍÝ__ïRbc753é£;%	;)>™i²³žlw›$Êvýì§~ò½©;:͖ú‘fwšZ¿ìû±™^èà¦aNé¹÷ä¦øß|2¸®?ômRj&KvzïmG“{ê;üCãñc!r<ºç~üI­»>ͱh°þï$!üýI]ÍäovZ×YN³Ç¾Í Ùìݓ…Þ™A!ï[›âE?ÓS™ë¦˜õ£# hM\ ó{'èxEãÍ	ÆìN€u1s¶p±ôÿ͜Þ-…ýε§ÁŽ>òëù‚]8ÜL44ÞN}sœ/ÜÏ*qe±øjٗK‹¢<<›ÁNÓûï×q±áeÊñ5Anšáá…ö6„tÙ±ÃWHNÁÓà<Òaù™:˜E+Ï*\Ãv5»ƒ9+¶‘0šm"†Ò>o+á_c6ÏHF1k¡IË¥Ù2Å	çJÉ{‘óœ;2kN™¬vJ¬Ö†Ö²È¹ÒÄÊ_K£Ä¢6RéäÓ¨ü/X¹#þ£R\k’ŠÄ¦*Ä ®Xi×)‰2+ê\”«” @¥4I!6Âà™‘ilúkÉ%m¸ÊÖPaQ³‹ý–”¡×Rª„QŔY]0EU­*©9…±r¡³‚‰
ÏoщßóҐ^³¢ø8e"·%WÁúõˆ´àT¶(xh„Æ;h*ž™0Íû)8Ø+ÒDW<8€¦véYSój<Â%ålÃV\Óçÿ ‚•dµâ›`t½ÐF˜ÚpZI™GΚ«{‘qý+È/©Ö<MrfXl	Â5Ü/j-"3Q®T]!ˬw*˜›¡4peFEF¸T» Dö)m×ß±áò•04B‘™ëg臌˜ä}F*ùª+^f<¸‘Ae+4¿Áªœ­‚d ¼e艀 o"\%ñxXðÅ"I,‰å÷ÐÈßcõZœc‚"]gë3îÛä_ÞÀØã
+ .git/objects/76/84b63d04b74e58f9f9205681a63eae283d36bb view
@@ -0,0 +1,3 @@+x’MKÃ@†=çW¼Ðƒ	´,¶P?/%+~\J)i2¥ÛlØlcEüïÎfc4©`÷”™yßg²’j…‹³ó“A³itÿ2½¿ÅS¢rJŸßszµˆW’Š>î$í^«ÌÐÞè
>=o«Ò$<jµ[aÞñ¶!Mž'¶¹ÒϚ(Œ¾o¯”DMÊöÑJ§y.EQò³œû`4‚oK¯e\Èúu—ú`<ñPŸµcIL` C+`§·bóVՍ3J†()±åcX
ÎK;3_8}.Ç"×JÇR"-·Rݒø¿f¿#ښ턂ʈӵIJæ5£xÍvDú+Û8òÝf®tœ%”0Œ•©Š5RQ’cRâöç̆2ø%F†ì]¦Þ†Ö)ü|§	þ0`¸ždAÁô“RE*¥+»ÎåîDZ„~µdʼ²ƒ=ŤÓÊþÒIw€„0!#Aœ¦:RæË–‘=?Fì­iÀ›8€Öt¿Ù†nō·öŒh!ý
+ .git/objects/82/e3a754b6a0fcb238b03c0e47d05219fbf9cf89 view

binary file changed (absent → 55 bytes)

+ .git/objects/83/4e1c743de59f4940c7533b3e3b7c848dbee19b view

binary file changed (absent → 818 bytes)

+ .git/objects/85/7c54c007917e49cf3ff111f0d6a93f248183f0 view

binary file changed (absent → 154 bytes)

+ .git/objects/85/c62c1e8f074244a50ba454157738eae96a0ae2 view

binary file changed (absent → 182 bytes)

+ .git/objects/8d/50d2c1e71e4d35746b2e246f4dbc2c6dbdc6ad view

binary file changed (absent → 870 bytes)

+ .git/objects/8d/fda0fd31f3cd684948aa52d50595feea7c01f7 view

binary file changed (absent → 193 bytes)

+ .git/objects/90/c82970b4a64430b234a38430ce6334d9fc5a20 view

binary file changed (absent → 89 bytes)

+ .git/objects/93/c52a9c1add5c6dc6497e866c19a4c779c96e90 view

binary file changed (absent → 264 bytes)

+ .git/objects/94/414d3c0c39187c9d654ea727bf9a8844077827 view

binary file changed (absent → 87 bytes)

+ .git/objects/99/aa7053731bd1edc38de046779e8c96964e8f33 view

binary file changed (absent → 125 bytes)

+ .git/objects/9a/aeda6a684e8d2bbaf610ece69dce0aa14cafb9 view

binary file changed (absent → 1656 bytes)

+ .git/objects/a3/d98a5a5638a76009521993f83ca7831f8daf79 view

binary file changed (absent → 1768 bytes)

+ .git/objects/a4/8da3430018abd5c0ccf471d5876843406589ef view

binary file changed (absent → 84 bytes)

+ .git/objects/a5/4dd0c4585cd807a1eea43857fbf3c020612315 view

binary file changed (absent → 408 bytes)

+ .git/objects/a5/de91949523b3162cf69f3365b5914deb6c7b01 view

binary file changed (absent → 159 bytes)

+ .git/objects/a6/41bc6c77212e090f4a550220875c5169bc1f32 view
@@ -0,0 +1,2 @@+x•ŽK+Â0@]ç³$éä7 âFï1M¦ZlŒ¤=¾½‚oùàÁKµ”¹Ã`ô®7%[KDÁ‘³„1M"“!?Zë³;“'dõâ&ÏDÌA;hÆl$'ŒY´õ!ÄDž¼•8!*~÷{mpù•—µÂQ¯‹”YŸo…çåj9Á!ø4
°×j³Û]—;õ©í±ªM™@¡
+ .git/objects/a7/e3ec3b8e91966177e7fc8282031439724012a3 view
@@ -0,0 +1,4 @@+xË+Â0Dݚ¯¸ +ܸºTÄ+-ºNbbinIRðóM»™9‹ÃŒt$aw:.êgÛTøÎÖX¡½¤Æ¬Jh¬vŸR¤!ec"œí!a×ÛýÒT/­¼‹Ð­÷35Ҍe÷̖ßNp^JëË^XëÍô]äžG+ƔÓÂg9ôùÐÀ–w6±?†3þ
+ .git/objects/a9/1990e597f74fb4530f1832879dcf34802c7ffb view

binary file changed (absent → 335 bytes)

+ .git/objects/ab/35f9ca0d521602a819057c6b5854cb02e10f77 view

binary file changed (absent → 263 bytes)

+ .git/objects/ab/db1d36582253483bd1cecd8131398539ffd675 view
@@ -0,0 +1,3 @@+x’KKÃ@…]çWpa6H\YT¨º©QP»‘irK¦™0™F‹øß½“©µ‰;‹ÀÜלóÝ̔žáìôäàspˆÉ(?Æ·xÌtEùÓª¢©0RÌÕ8|ÁBçKE¸¶ˆŒþHÛ¯\H»Â{A†‚@.*mìvɓ!J҉)eé¦áZ—ÖhªJÉLXÙð°ŠßÀpˆÐ•^+Q×(á®¯..¬Ï^²X.áP¢p}ØK§êÕ?gµJÐPëÊ/à4x‡ÝÌË«×çs,r®P+e¼·ÜVuGâÿšÃžhg¶ŠZ#^×ÞÖ¼&$ælGæ[ٍ£Ð3½2¢Ì+4°Œ•©Ê9rY[’gÒஉs¶ aƒa„˜½«¼Å»¡u„°ZBG,דªiÌ0+´®)Õ9µØÝã\î'Ghk$Sæ•ýÙã^Lz£¼á_(½tH›0ˆ<¿7©¶{XvŒÜù5ân›¼‰?p“5ݶ‰ƒÛrã­}çö&Â
+ .git/objects/af/33d1ad16cfb32309ba703dd720591faae18a75 view

binary file changed (absent → 34 bytes)

+ .git/objects/b0/a19fe6ac543d144ff54c62c3e255592fefc824 view

binary file changed (absent → 264 bytes)

+ .git/objects/b4/aab4150265d809e9c0bcd437da8c76baf13058 view

binary file changed (absent → 159 bytes)

+ .git/objects/b4/fc60fc8dd90d22930683fae609f7d3661ca571 view

binary file changed (absent → 839 bytes)

+ .git/objects/b6/aef187ba379602722f4a62cde5621c23634f1d view

binary file changed (absent → 379 bytes)

+ .git/objects/bb/4251f0ad31bd03b9479cc582162eeff7c7255e view

binary file changed (absent → 1601 bytes)

+ .git/objects/bd/8de172513662ff38c63599dcaf544606e17846 view

binary file changed (absent → 46 bytes)

+ .git/objects/be/d4499975954938cfeefa9196b446deea51df3a view

binary file changed (absent → 85 bytes)

+ .git/objects/c2/81c8ebc9cd4d512e6383de5d7201c3e0a59e8e view

binary file changed (absent → 147 bytes)

+ .git/objects/c9/0db81e7bf359e9f4d65993d39462e403a1c6d3 view

binary file changed (absent → 850 bytes)

+ .git/objects/d6/b9dc0d1415d869aeb957352de64c138d32e1b1 view

binary file changed (absent → 931 bytes)

+ .git/objects/d8/8c0a87ef2830d566e48dc3a32204feb57c3198 view

binary file changed (absent → 672 bytes)

+ .git/objects/d9/6a9d2f81e91ad399aae42719effb5a87550f29 view

binary file changed (absent → 29 bytes)

+ .git/objects/d9/6c73c3864fa48a1d500d232d8949d5d5978746 view
@@ -0,0 +1,4 @@+x•ŽÁ+B!E[ûÑñ©Ñ¦þc²±h†Ï ÏÏ_è,/çÂI­Öuhƒv7ºˆ.-&¡„ž;¸19Bç½
£ÞÜå5¦ï“£à#z¡˜²Í3܎6+lşñl]_¾úÊekú[‘ºÂùQy-‡ÔêI£5~¼Ñ{˜¨¹Îº!ÿþÔè\+V?D²@—
+ .git/objects/dc/f9fbfc7ff756f42ee7eac86f48e1edf4e3f327 view

binary file changed (absent → 349 bytes)

+ .git/objects/e0/2d6d61db4c1f442b4703825d9efe2a1c9d637e view

binary file changed (absent → 729 bytes)

+ .git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 view

binary file changed (absent → 15 bytes)

+ .git/objects/e6/ffd01a5f6d51978d3a00b7948159107f28d2e2 view

binary file changed (absent → 182 bytes)

+ .git/objects/e7/f93b04ffa5eddafe27e79bc5e5c01de8bfeb20 view

binary file changed (absent → 1613 bytes)

+ .git/objects/e8/0c4d1d8769cd6de088435182a6cb83cb43c021 view
@@ -0,0 +1,4 @@+xT]kÛ0ݳšD¦ŽÁ0ö–BØG,¡¬ë[a¨±ºŠ)²•vÙØï•,§Žãd&¶uϽ÷œ£+ß©êÅÛ7Å«?ãs|™-ç7³ùG̅–+ù[”Kñä¶F|V>Jýçã¿I²®ÊXp÷_Ùêגþ…s[†xÏó4Á‘_A;2¡äÕÆ¨Ô`–ꟐϺúx¥OŠ$‘kSY‡÷•v¶RùÌ%WÜÉGÑ-*ÍËü«à¥°Ã±kǕԍƒQõÓÝ3˜o »õîŽ/Ñ<·/¸Êš¾`‡‰ÙQ/ö÷ã03MÁ‡ú’ÀfïYМáÓF¯\e3tì9Ý6$žà<`@š&Én0™Dc¼E͐-ÀÒ¢v¶clšQy¿Åk°Ì/.^J.•¯xP‡–§(+r}Ï u™âݼþI+-¸W™nõ“yÀïH7×í»ÔydaÆsUµâ+ì–Q÷-]¤Aª÷V|¨mIM»Ñ-GÒv¸½{íýãÙnÚ:ɱ1X[ͬSLÉ%Ê÷5­€rÚ-¥Ç8Éf
I¶uÈқÔÞҘг3ri¥x]GSaâñ	ñߑ+:Î{gº¤i»ºŒ‹IÍ1zA·ª¦¨uIÎ
λݻ­®é«°cÓ+bӖÁþ¼¦X	Ë0ä襞<pāX¦Çµð#&ç](ú6Ph9÷šyc+š’f·+´Ö<oXÜØ
+ .git/objects/ea/026c3c3470364bb1c01a3d8712aeb4ceed35b8 view

binary file changed (absent → 840 bytes)

+ .git/objects/ed/84f27853725aa00bb2a896cba49bfc5b4686a0 view

binary file changed (absent → 291 bytes)

+ .git/objects/ee/c1eebf3349cf071fe2ae94229557093ca9c16c view

binary file changed (absent → 144 bytes)

+ .git/objects/f0/556be7f3e7351cbf07029cde18588c7fc146f7 view
@@ -0,0 +1,3 @@+xT]kÛ0ݳšD¦ŽÁe–BØG,!¬ë[a¨±º™)²•–lì¿ïʒ]ÅñÂBÀ²î=÷žståY? ¸~sýê÷ôŸëåÝbùK¡„á²ú%ʵx¶-ÞS=Uê;.§’dW—{)°1ÂÚëžyž&ˆYˆl$¤[ðfo‡XËñýOªj€IñüC‘$ÕNׯâ]­¬©e¾ÐZV[n«'1­jÅËü‹à¥0ã±[Ë-•T^P²Ç¼_³6ç+èiœ7ÓøÕÀ‡Ø·f¾/Ø)0;V=Döï§È4ëKýɱVs†{µµµÉÙs¾m<ÃyĀ4M’þ„1›cœE~jV`i”ÑX›ƒ&¬z<à5Xæ‚WW/%×ÒU<©CÛs”59Ⱦe¨T™âí¼ùI;]ò 2›Ü«	f)ò6¿'í§,îÂcê<0iÚqoËzË%Ø=£îwª²©>Úq¡®%iÔ&IÌ^uIÛéñµw/Œgý´EàЬ«¦w)æä€Œî\†Ç†v@˜îHi&YïP‘mYz«”³4@qqA.m%oš`*t¸~ !¡Ë`w:&MÇ
Ðßç¸ð¸Èä¯ÑKv§jŽF•ä܈à<î·º¥¯BÏfP¸Í;Nl7Çò+èbL`ÑJð.C“£7.ñŒäÀ?e\7¢íäü¯ÅІ+çA3gLASâO«@gÍ_ÿ?Ò!
+ .git/objects/f6/edc26af0f6b0d0c9dbda2d7da11d6f4009e4eb view
@@ -0,0 +1,4 @@+xM±+ƒ@DSßWLç$"–‚öéÛ4j–äà<sƒø÷Q³‰©vy¼™éÜØ!ÏòÓ0Þ_ŽPGb^´œ45g„5vó“")Õ»všÄE+1QÐWϸTh8Zÿ0Û+$X©£z}V±î”ÕZûËÿ{åwEßüfD+Îö-<$ÙM½Bþ
+ .git/refs/heads/master view
@@ -0,0 +1,1 @@+a5de91949523b3162cf69f3365b5914deb6c7b01
+ .git/refs/remotes/origin/master view
@@ -0,0 +1,1 @@+d96c73c3864fa48a1d500d232d8949d5d5978746
+ .gitignore view
@@ -0,0 +1,4 @@+*.hi+*.o+*.bak+bin/
+ LICENSE view
@@ -0,0 +1,30 @@+Copyright (c)2012, Andras Slemmer++All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++    * Redistributions of source code must retain the above copyright+      notice, this list of conditions and the following disclaimer.++    * Redistributions in binary form must reproduce the above+      copyright notice, this list of conditions and the following+      disclaimer in the documentation and/or other materials provided+      with the distribution.++    * Neither the name of Andras Slemmer nor the names of other+      contributors may be used to endorse or promote products derived+      from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ ProxN.cabal view
@@ -0,0 +1,71 @@+-- ProxN.cabal auto-generated by cabal init. For additional options,+-- see+-- http://www.haskell.org/cabal/release/cabal-latest/doc/users-guide/authors.html#pkg-descr.+-- The name of the package.+Name:                ProxN++-- The package version. See the Haskell package versioning policy+-- (http://www.haskell.org/haskellwiki/Package_versioning_policy) for+-- standards guiding when and how versions should be incremented.+Version:             0.0.1++-- A short (one-line) description of the package.+Synopsis: Proximity sets in N dimensions++-- A longer description of the package.+-- Description:         ++Homepage:            https://github.com/exFalso/ProxN++-- The license under which the package is released.+License:             BSD3++-- The file containing the license text.+License-file:        LICENSE++-- The package author(s).+Author:              Andras Slemmer++-- An email address to which users can send suggestions, bug reports,+-- and patches.+Maintainer:          0slemi0@gmail.com++-- A copyright notice.+-- Copyright:           ++Category:            Math++Build-type:          Simple++-- Extra files to be distributed with the package, such as examples or+-- a README.+-- Extra-source-files:  ++-- Constraint on the version of Cabal needed to build this package.+Cabal-version:       >=1.2+++Library+  Hs-Source-Dirs:+        src+  -- Modules exported by the library.+  Exposed-modules:+        Data.ProxN.Peano+        Data.ProxN.Pretty+        Data.ProxN.Proximity+        Data.ProxN.Show1+        Data.ProxN.Tree2N+        Data.ProxN.VecN+  +  -- Packages needed in order to build this package.+  Build-depends:+    base < 5,+    mtl++  Ghc-Options: -Wall+  -- Modules not exported by this package.+  -- Other-modules:       +  +  -- Extra tools (e.g. alex, hsc2hs, ...) needed to build the source.+  -- Build-tools:         +  
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain
+ core view

file too large to diff

+ dist/build/Data/ProxN/Peano.hi view

binary file changed (absent → 4555 bytes)

+ dist/build/Data/ProxN/Peano.o view

binary file changed (absent → 10680 bytes)

+ dist/build/Data/ProxN/Peano.p_hi view

binary file changed (absent → 4559 bytes)

+ dist/build/Data/ProxN/Peano.p_o view

binary file changed (absent → 18783 bytes)

+ dist/build/Data/ProxN/Pretty.hi view

binary file changed (absent → 20557 bytes)

+ dist/build/Data/ProxN/Pretty.o view

binary file changed (absent → 28304 bytes)

+ dist/build/Data/ProxN/Pretty.p_hi view

binary file changed (absent → 20561 bytes)

+ dist/build/Data/ProxN/Pretty.p_o view

binary file changed (absent → 55731 bytes)

+ dist/build/Data/ProxN/Proximity.hi view

binary file changed (absent → 1944 bytes)

+ dist/build/Data/ProxN/Proximity.o view

binary file changed (absent → 6712 bytes)

+ dist/build/Data/ProxN/Proximity.p_hi view

binary file changed (absent → 1948 bytes)

+ dist/build/Data/ProxN/Proximity.p_o view

binary file changed (absent → 13111 bytes)

+ dist/build/Data/ProxN/Show1.hi view

binary file changed (absent → 824 bytes)

+ dist/build/Data/ProxN/Show1.o view

binary file changed (absent → 1344 bytes)

+ dist/build/Data/ProxN/Show1.p_hi view

binary file changed (absent → 828 bytes)

+ dist/build/Data/ProxN/Show1.p_o view

binary file changed (absent → 3192 bytes)

+ dist/build/Data/ProxN/Tree2N.hi view

binary file changed (absent → 33203 bytes)

+ dist/build/Data/ProxN/Tree2N.o view

binary file changed (absent → 86864 bytes)

+ dist/build/Data/ProxN/Tree2N.p_hi view

binary file changed (absent → 33207 bytes)

+ dist/build/Data/ProxN/Tree2N.p_o view

binary file changed (absent → 166740 bytes)

+ dist/build/Data/ProxN/VecN.hi view

binary file changed (absent → 29445 bytes)

+ dist/build/Data/ProxN/VecN.o view

binary file changed (absent → 66688 bytes)

+ dist/build/Data/ProxN/VecN.p_hi view

binary file changed (absent → 29449 bytes)

+ dist/build/Data/ProxN/VecN.p_o view

binary file changed (absent → 122707 bytes)

+ dist/build/HSProxN-0.0.1.o view

binary file changed (absent → 168147 bytes)

+ dist/build/autogen/Paths_ProxN.hs view
@@ -0,0 +1,29 @@+module Paths_ProxN (+    version,+    getBinDir, getLibDir, getDataDir, getLibexecDir,+    getDataFileName+  ) where++import Data.Version (Version(..))+import System.Environment (getEnv)++version :: Version+version = Version {versionBranch = [0,0,1], versionTags = []}++bindir, libdir, datadir, libexecdir :: FilePath++bindir     = "/home/exfalso/.cabal/bin"+libdir     = "/home/exfalso/.cabal/lib/ProxN-0.0.1/ghc-7.2.2"+datadir    = "/home/exfalso/.cabal/share/ProxN-0.0.1"+libexecdir = "/home/exfalso/.cabal/libexec"++getBinDir, getLibDir, getDataDir, getLibexecDir :: IO FilePath+getBinDir = catch (getEnv "ProxN_bindir") (\_ -> return bindir)+getLibDir = catch (getEnv "ProxN_libdir") (\_ -> return libdir)+getDataDir = catch (getEnv "ProxN_datadir") (\_ -> return datadir)+getLibexecDir = catch (getEnv "ProxN_libexecdir") (\_ -> return libexecdir)++getDataFileName :: FilePath -> IO FilePath+getDataFileName name = do+  dir <- getDataDir+  return (dir ++ "/" ++ name)
+ dist/build/autogen/cabal_macros.h view
@@ -0,0 +1,16 @@+/* DO NOT EDIT: This file is automatically generated by Cabal */++/* package base-4.4.1.0 */+#define VERSION_base "4.4.1.0"+#define MIN_VERSION_base(major1,major2,minor) (\+  (major1) <  4 || \+  (major1) == 4 && (major2) <  4 || \+  (major1) == 4 && (major2) == 4 && (minor) <= 1)++/* package mtl-2.0.1.0 */+#define VERSION_mtl "2.0.1.0"+#define MIN_VERSION_mtl(major1,major2,minor) (\+  (major1) <  2 || \+  (major1) == 2 && (major2) <  0 || \+  (major1) == 2 && (major2) == 0 && (minor) <= 1)+
+ dist/build/libHSProxN-0.0.1.a view

binary file changed (absent → 236132 bytes)

+ dist/build/libHSProxN-0.0.1_p.a view

binary file changed (absent → 416394 bytes)

+ dist/package.conf.inplace view
@@ -0,0 +1,2 @@+[InstalledPackageInfo {installedPackageId = InstalledPackageId "ProxN-0.0.1-inplace", sourcePackageId = PackageIdentifier {pkgName = PackageName "ProxN", pkgVersion = Version {versionBranch = [0,0,1], versionTags = []}}, license = BSD3, copyright = "", maintainer = "0slemi0@gmail.com", author = "Andras Slemmer", stability = "", homepage = "https://github.com/exFalso/ProxN", pkgUrl = "", synopsis = "", description = "", category = "Math", exposed = True, exposedModules = ["Data.ProxN.Peano","Data.ProxN.Pretty","Data.ProxN.Proximity","Data.ProxN.Show1","Data.ProxN.Tree2N","Data.ProxN.VecN"], hiddenModules = [], trusted = True, importDirs = ["/data/home/pater/Programming/Haskell/ProxN/dist/build"], libraryDirs = ["/data/home/pater/Programming/Haskell/ProxN/dist/build"], hsLibraries = ["HSProxN-0.0.1"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "base-4.4.1.0-0b74da1b5cceb1549c5473c9b76bf860",InstalledPackageId "mtl-2.0.1.0-f81ce3282fa6adb03e0cd48bfcccec53"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/data/home/pater/Programming/Haskell/ProxN/dist/doc/html/ProxN/ProxN.haddock"], haddockHTMLs = ["/data/home/pater/Programming/Haskell/ProxN/dist/doc/html/ProxN"]}+]
+ dist/setup-config view
@@ -0,0 +1,2 @@+Saved package config for ProxN-0.0.1 written by Cabal-1.10.1.0 using ghc-7.0+LocalBuildInfo {configFlags = ConfigFlags {configPrograms = [], configProgramPaths = [], configProgramArgs = [], configHcFlavor = Flag GHC, configHcPath = NoFlag, configHcPkg = NoFlag, configVanillaLib = Flag True, configProfLib = Flag True, configSharedLib = Flag False, configProfExe = Flag True, configConfigureArgs = [], configOptimization = Flag NormalOptimisation, configProgPrefix = Flag "", configProgSuffix = Flag "", configInstallDirs = InstallDirs {prefix = Flag "/home/exfalso/.cabal", bindir = NoFlag, libdir = NoFlag, libsubdir = NoFlag, dynlibdir = NoFlag, libexecdir = NoFlag, progdir = NoFlag, includedir = NoFlag, datadir = NoFlag, datasubdir = NoFlag, docdir = NoFlag, mandir = NoFlag, htmldir = NoFlag, haddockdir = NoFlag}, configScratchDir = NoFlag, configExtraLibDirs = [], configExtraIncludeDirs = [], configDistPref = Flag "dist", configVerbosity = Flag Normal, configUserInstall = Flag True, configPackageDB = NoFlag, configGHCiLib = Flag True, configSplitObjs = Flag False, configStripExes = Flag True, configConstraints = [Dependency (PackageName "base") (ThisVersion (Version {versionBranch = [4,4,1,0], versionTags = []})),Dependency (PackageName "mtl") (ThisVersion (Version {versionBranch = [2,0,1,0], versionTags = []}))], configConfigurationsFlags = [], configTests = Flag False}, extraConfigArgs = [], installDirTemplates = InstallDirs {prefix = "/home/exfalso/.cabal", bindir = "$prefix/bin", libdir = "$prefix/lib", libsubdir = "$pkgid/$compiler", dynlibdir = "$libdir", libexecdir = "$prefix/libexec", progdir = "$libdir/hugs/programs", includedir = "$libdir/$libsubdir/include", datadir = "$prefix/share", datasubdir = "$pkgid", docdir = "$datadir/doc/$pkgid", mandir = "$datadir/man", htmldir = "$docdir/html", haddockdir = "$htmldir"}, compiler = Compiler {compilerId = CompilerId GHC (Version {versionBranch = [7,2,2], versionTags = []}), compilerLanguages = [(Haskell98,"-XHaskell98"),(Haskell2010,"-XHaskell2010")], compilerExtensions = [(UnknownExtension "Haskell98","-XHaskell98"),(UnknownExtension "Haskell2010","-XHaskell2010"),(UnknownExtension "SafeImports","-XSafeImports"),(UnknownExtension "Trustworthy","-XTrustworthy"),(UnknownExtension "Safe","-XSafe"),(CPP,"-XCPP"),(UnknownExtension "NoCPP","-XNoCPP"),(PostfixOperators,"-XPostfixOperators"),(UnknownExtension "NoPostfixOperators","-XNoPostfixOperators"),(TupleSections,"-XTupleSections"),(UnknownExtension "NoTupleSections","-XNoTupleSections"),(PatternGuards,"-XPatternGuards"),(UnknownExtension "NoPatternGuards","-XNoPatternGuards"),(UnicodeSyntax,"-XUnicodeSyntax"),(UnknownExtension "NoUnicodeSyntax","-XNoUnicodeSyntax"),(MagicHash,"-XMagicHash"),(UnknownExtension "NoMagicHash","-XNoMagicHash"),(PolymorphicComponents,"-XPolymorphicComponents"),(UnknownExtension "NoPolymorphicComponents","-XNoPolymorphicComponents"),(ExistentialQuantification,"-XExistentialQuantification"),(UnknownExtension "NoExistentialQuantification","-XNoExistentialQuantification"),(KindSignatures,"-XKindSignatures"),(UnknownExtension "NoKindSignatures","-XNoKindSignatures"),(EmptyDataDecls,"-XEmptyDataDecls"),(UnknownExtension "NoEmptyDataDecls","-XNoEmptyDataDecls"),(ParallelListComp,"-XParallelListComp"),(UnknownExtension "NoParallelListComp","-XNoParallelListComp"),(TransformListComp,"-XTransformListComp"),(UnknownExtension "NoTransformListComp","-XNoTransformListComp"),(UnknownExtension "MonadComprehensions","-XMonadComprehensions"),(UnknownExtension "NoMonadComprehensions","-XNoMonadComprehensions"),(ForeignFunctionInterface,"-XForeignFunctionInterface"),(UnknownExtension "NoForeignFunctionInterface","-XNoForeignFunctionInterface"),(UnliftedFFITypes,"-XUnliftedFFITypes"),(UnknownExtension "NoUnliftedFFITypes","-XNoUnliftedFFITypes"),(UnknownExtension "InterruptibleFFI","-XInterruptibleFFI"),(UnknownExtension "NoInterruptibleFFI","-XNoInterruptibleFFI"),(GHCForeignImportPrim,"-XGHCForeignImportPrim"),(UnknownExtension "NoGHCForeignImportPrim","-XNoGHCForeignImportPrim"),(LiberalTypeSynonyms,"-XLiberalTypeSynonyms"),(UnknownExtension "NoLiberalTypeSynonyms","-XNoLiberalTypeSynonyms"),(Rank2Types,"-XRank2Types"),(UnknownExtension "NoRank2Types","-XNoRank2Types"),(RankNTypes,"-XRankNTypes"),(UnknownExtension "NoRankNTypes","-XNoRankNTypes"),(ImpredicativeTypes,"-XImpredicativeTypes"),(UnknownExtension "NoImpredicativeTypes","-XNoImpredicativeTypes"),(TypeOperators,"-XTypeOperators"),(UnknownExtension "NoTypeOperators","-XNoTypeOperators"),(RecursiveDo,"-XRecursiveDo"),(UnknownExtension "NoRecursiveDo","-XNoRecursiveDo"),(DoRec,"-XDoRec"),(UnknownExtension "NoDoRec","-XNoDoRec"),(Arrows,"-XArrows"),(UnknownExtension "NoArrows","-XNoArrows"),(UnknownExtension "ParallelArrays","-XParallelArrays"),(UnknownExtension "NoParallelArrays","-XNoParallelArrays"),(TemplateHaskell,"-XTemplateHaskell"),(UnknownExtension "NoTemplateHaskell","-XNoTemplateHaskell"),(QuasiQuotes,"-XQuasiQuotes"),(UnknownExtension "NoQuasiQuotes","-XNoQuasiQuotes"),(NoImplicitPrelude,"-XNoImplicitPrelude"),(NoImplicitPrelude,"-XNoImplicitPrelude"),(RecordWildCards,"-XRecordWildCards"),(UnknownExtension "NoRecordWildCards","-XNoRecordWildCards"),(NamedFieldPuns,"-XNamedFieldPuns"),(UnknownExtension "NoNamedFieldPuns","-XNoNamedFieldPuns"),(RecordPuns,"-XRecordPuns"),(UnknownExtension "NoRecordPuns","-XNoRecordPuns"),(DisambiguateRecordFields,"-XDisambiguateRecordFields"),(UnknownExtension "NoDisambiguateRecordFields","-XNoDisambiguateRecordFields"),(OverloadedStrings,"-XOverloadedStrings"),(UnknownExtension "NoOverloadedStrings","-XNoOverloadedStrings"),(GADTs,"-XGADTs"),(UnknownExtension "NoGADTs","-XNoGADTs"),(UnknownExtension "GADTSyntax","-XGADTSyntax"),(UnknownExtension "NoGADTSyntax","-XNoGADTSyntax"),(ViewPatterns,"-XViewPatterns"),(UnknownExtension "NoViewPatterns","-XNoViewPatterns"),(TypeFamilies,"-XTypeFamilies"),(UnknownExtension "NoTypeFamilies","-XNoTypeFamilies"),(BangPatterns,"-XBangPatterns"),(UnknownExtension "NoBangPatterns","-XNoBangPatterns"),(NoMonomorphismRestriction,"-XNoMonomorphismRestriction"),(NoMonomorphismRestriction,"-XNoMonomorphismRestriction"),(NPlusKPatterns,"-XNPlusKPatterns"),(UnknownExtension "NoNPlusKPatterns","-XNoNPlusKPatterns"),(DoAndIfThenElse,"-XDoAndIfThenElse"),(UnknownExtension "NoDoAndIfThenElse","-XNoDoAndIfThenElse"),(RebindableSyntax,"-XRebindableSyntax"),(UnknownExtension "NoRebindableSyntax","-XNoRebindableSyntax"),(NoMonoPatBinds,"-XNoMonoPatBinds"),(NoMonoPatBinds,"-XNoMonoPatBinds"),(ExplicitForAll,"-XExplicitForAll"),(UnknownExtension "NoExplicitForAll","-XNoExplicitForAll"),(UnknownExtension "AlternativeLayoutRule","-XAlternativeLayoutRule"),(UnknownExtension "NoAlternativeLayoutRule","-XNoAlternativeLayoutRule"),(UnknownExtension "AlternativeLayoutRuleTransitional","-XAlternativeLayoutRuleTransitional"),(UnknownExtension "NoAlternativeLayoutRuleTransitional","-XNoAlternativeLayoutRuleTransitional"),(DatatypeContexts,"-XDatatypeContexts"),(UnknownExtension "NoDatatypeContexts","-XNoDatatypeContexts"),(UnknownExtension "NondecreasingIndentation","-XNondecreasingIndentation"),(UnknownExtension "NoNondecreasingIndentation","-XNoNondecreasingIndentation"),(UnknownExtension "RelaxedLayout","-XRelaxedLayout"),(UnknownExtension "NoRelaxedLayout","-XNoRelaxedLayout"),(MonoLocalBinds,"-XMonoLocalBinds"),(UnknownExtension "NoMonoLocalBinds","-XNoMonoLocalBinds"),(RelaxedPolyRec,"-XRelaxedPolyRec"),(UnknownExtension "NoRelaxedPolyRec","-XNoRelaxedPolyRec"),(ExtendedDefaultRules,"-XExtendedDefaultRules"),(UnknownExtension "NoExtendedDefaultRules","-XNoExtendedDefaultRules"),(ImplicitParams,"-XImplicitParams"),(UnknownExtension "NoImplicitParams","-XNoImplicitParams"),(ScopedTypeVariables,"-XScopedTypeVariables"),(UnknownExtension "NoScopedTypeVariables","-XNoScopedTypeVariables"),(PatternSignatures,"-XPatternSignatures"),(UnknownExtension "NoPatternSignatures","-XNoPatternSignatures"),(UnboxedTuples,"-XUnboxedTuples"),(UnknownExtension "NoUnboxedTuples","-XNoUnboxedTuples"),(StandaloneDeriving,"-XStandaloneDeriving"),(UnknownExtension "NoStandaloneDeriving","-XNoStandaloneDeriving"),(DeriveDataTypeable,"-XDeriveDataTypeable"),(UnknownExtension "NoDeriveDataTypeable","-XNoDeriveDataTypeable"),(DeriveFunctor,"-XDeriveFunctor"),(UnknownExtension "NoDeriveFunctor","-XNoDeriveFunctor"),(DeriveTraversable,"-XDeriveTraversable"),(UnknownExtension "NoDeriveTraversable","-XNoDeriveTraversable"),(DeriveFoldable,"-XDeriveFoldable"),(UnknownExtension "NoDeriveFoldable","-XNoDeriveFoldable"),(UnknownExtension "DeriveGeneric","-XDeriveGeneric"),(UnknownExtension "NoDeriveGeneric","-XNoDeriveGeneric"),(UnknownExtension "DefaultSignatures","-XDefaultSignatures"),(UnknownExtension "NoDefaultSignatures","-XNoDefaultSignatures"),(TypeSynonymInstances,"-XTypeSynonymInstances"),(UnknownExtension "NoTypeSynonymInstances","-XNoTypeSynonymInstances"),(FlexibleContexts,"-XFlexibleContexts"),(UnknownExtension "NoFlexibleContexts","-XNoFlexibleContexts"),(FlexibleInstances,"-XFlexibleInstances"),(UnknownExtension "NoFlexibleInstances","-XNoFlexibleInstances"),(ConstrainedClassMethods,"-XConstrainedClassMethods"),(UnknownExtension "NoConstrainedClassMethods","-XNoConstrainedClassMethods"),(MultiParamTypeClasses,"-XMultiParamTypeClasses"),(UnknownExtension "NoMultiParamTypeClasses","-XNoMultiParamTypeClasses"),(FunctionalDependencies,"-XFunctionalDependencies"),(UnknownExtension "NoFunctionalDependencies","-XNoFunctionalDependencies"),(GeneralizedNewtypeDeriving,"-XGeneralizedNewtypeDeriving"),(UnknownExtension "NoGeneralizedNewtypeDeriving","-XNoGeneralizedNewtypeDeriving"),(OverlappingInstances,"-XOverlappingInstances"),(UnknownExtension "NoOverlappingInstances","-XNoOverlappingInstances"),(UndecidableInstances,"-XUndecidableInstances"),(UnknownExtension "NoUndecidableInstances","-XNoUndecidableInstances"),(IncoherentInstances,"-XIncoherentInstances"),(UnknownExtension "NoIncoherentInstances","-XNoIncoherentInstances"),(PackageImports,"-XPackageImports"),(UnknownExtension "NoPackageImports","-XNoPackageImports")]}, buildDir = "dist/build", scratchDir = "dist/scratch", libraryConfig = Just (ComponentLocalBuildInfo {componentPackageDeps = [(InstalledPackageId "base-4.4.1.0-0b74da1b5cceb1549c5473c9b76bf860",PackageIdentifier {pkgName = PackageName "base", pkgVersion = Version {versionBranch = [4,4,1,0], versionTags = []}}),(InstalledPackageId "mtl-2.0.1.0-f81ce3282fa6adb03e0cd48bfcccec53",PackageIdentifier {pkgName = PackageName "mtl", pkgVersion = Version {versionBranch = [2,0,1,0], versionTags = []}})]}), executableConfigs = [], testSuiteConfigs = [], installedPkgs = PackageIndex (fromList [(InstalledPackageId "base-4.4.1.0-0b74da1b5cceb1549c5473c9b76bf860",InstalledPackageInfo {installedPackageId = InstalledPackageId "base-4.4.1.0-0b74da1b5cceb1549c5473c9b76bf860", sourcePackageId = PackageIdentifier {pkgName = PackageName "base", pkgVersion = Version {versionBranch = [4,4,1,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "This package contains the Prelude and its support libraries,\nand a large collection of useful libraries ranging from data\nstructures to parsing combinators and debugging utilities.", category = "", exposed = True, exposedModules = [ModuleName ["Foreign","Concurrent"],ModuleName ["GHC","Arr"],ModuleName ["GHC","Base"],ModuleName ["GHC","Classes"],ModuleName ["GHC","Conc"],ModuleName ["GHC","Conc","IO"],ModuleName ["GHC","Conc","Signal"],ModuleName ["GHC","Conc","Sync"],ModuleName ["GHC","ConsoleHandler"],ModuleName ["GHC","Constants"],ModuleName ["GHC","Desugar"],ModuleName ["GHC","Enum"],ModuleName ["GHC","Environment"],ModuleName ["GHC","Err"],ModuleName ["GHC","Exception"],ModuleName ["GHC","Exts"],ModuleName ["GHC","Fingerprint"],ModuleName ["GHC","Fingerprint","Type"],ModuleName ["GHC","Float"],ModuleName ["GHC","Float","ConversionUtils"],ModuleName ["GHC","Float","RealFracMethods"],ModuleName ["GHC","Foreign"],ModuleName ["GHC","ForeignPtr"],ModuleName ["GHC","Handle"],ModuleName ["GHC","IO"],ModuleName ["GHC","IO","Buffer"],ModuleName ["GHC","IO","BufferedIO"],ModuleName ["GHC","IO","Device"],ModuleName ["GHC","IO","Encoding"],ModuleName ["GHC","IO","Encoding","CodePage"],ModuleName ["GHC","IO","Encoding","Failure"],ModuleName ["GHC","IO","Encoding","Iconv"],ModuleName ["GHC","IO","Encoding","Latin1"],ModuleName ["GHC","IO","Encoding","Types"],ModuleName ["GHC","IO","Encoding","UTF16"],ModuleName ["GHC","IO","Encoding","UTF32"],ModuleName ["GHC","IO","Encoding","UTF8"],ModuleName ["GHC","IO","Exception"],ModuleName ["GHC","IO","FD"],ModuleName ["GHC","IO","Handle"],ModuleName ["GHC","IO","Handle","FD"],ModuleName ["GHC","IO","Handle","Internals"],ModuleName ["GHC","IO","Handle","Text"],ModuleName ["GHC","IO","Handle","Types"],ModuleName ["GHC","IO","IOMode"],ModuleName ["GHC","IOArray"],ModuleName ["GHC","IOBase"],ModuleName ["GHC","IORef"],ModuleName ["GHC","Int"],ModuleName ["GHC","List"],ModuleName ["GHC","MVar"],ModuleName ["GHC","Num"],ModuleName ["GHC","PArr"],ModuleName ["GHC","Pack"],ModuleName ["GHC","Ptr"],ModuleName ["GHC","Read"],ModuleName ["GHC","Real"],ModuleName ["GHC","ST"],ModuleName ["GHC","Show"],ModuleName ["GHC","Stable"],ModuleName ["GHC","Storable"],ModuleName ["GHC","STRef"],ModuleName ["GHC","TopHandler"],ModuleName ["GHC","Unicode"],ModuleName ["GHC","Weak"],ModuleName ["GHC","Word"],ModuleName ["System","Timeout"],ModuleName ["GHC","Event"],ModuleName ["Control","Applicative"],ModuleName ["Control","Arrow"],ModuleName ["Control","Category"],ModuleName ["Control","Concurrent"],ModuleName ["Control","Concurrent","Chan"],ModuleName ["Control","Concurrent","MVar"],ModuleName ["Control","Concurrent","QSem"],ModuleName ["Control","Concurrent","QSemN"],ModuleName ["Control","Concurrent","SampleVar"],ModuleName ["Control","Exception"],ModuleName ["Control","Exception","Base"],ModuleName ["Control","OldException"],ModuleName ["Control","Monad"],ModuleName ["Control","Monad","Fix"],ModuleName ["Control","Monad","Instances"],ModuleName ["Control","Monad","ST"],ModuleName ["Control","Monad","ST","Safe"],ModuleName ["Control","Monad","ST","Unsafe"],ModuleName ["Control","Monad","ST","Lazy"],ModuleName ["Control","Monad","ST","Lazy","Safe"],ModuleName ["Control","Monad","ST","Lazy","Unsafe"],ModuleName ["Control","Monad","ST","Strict"],ModuleName ["Control","Monad","Group"],ModuleName ["Control","Monad","Zip"],ModuleName ["Data","Bits"],ModuleName ["Data","Bool"],ModuleName ["Data","Char"],ModuleName ["Data","Complex"],ModuleName ["Data","Dynamic"],ModuleName ["Data","Either"],ModuleName ["Data","Eq"],ModuleName ["Data","Data"],ModuleName ["Data","Fixed"],ModuleName ["Data","Foldable"],ModuleName ["Data","Function"],ModuleName ["Data","Functor"],ModuleName ["Data","HashTable"],ModuleName ["Data","IORef"],ModuleName ["Data","Int"],ModuleName ["Data","Ix"],ModuleName ["Data","List"],ModuleName ["Data","Maybe"],ModuleName ["Data","Monoid"],ModuleName ["Data","Ord"],ModuleName ["Data","Ratio"],ModuleName ["Data","STRef"],ModuleName ["Data","STRef","Lazy"],ModuleName ["Data","STRef","Strict"],ModuleName ["Data","String"],ModuleName ["Data","Traversable"],ModuleName ["Data","Tuple"],ModuleName ["Data","Typeable"],ModuleName ["Data","Typeable","Internal"],ModuleName ["Data","Unique"],ModuleName ["Data","Version"],ModuleName ["Data","Word"],ModuleName ["Debug","Trace"],ModuleName ["Foreign"],ModuleName ["Foreign","C"],ModuleName ["Foreign","C","Error"],ModuleName ["Foreign","C","String"],ModuleName ["Foreign","C","Types"],ModuleName ["Foreign","ForeignPtr"],ModuleName ["Foreign","ForeignPtr","Safe"],ModuleName ["Foreign","ForeignPtr","Unsafe"],ModuleName ["Foreign","Marshal"],ModuleName ["Foreign","Marshal","Alloc"],ModuleName ["Foreign","Marshal","Array"],ModuleName ["Foreign","Marshal","Error"],ModuleName ["Foreign","Marshal","Pool"],ModuleName ["Foreign","Marshal","Safe"],ModuleName ["Foreign","Marshal","Utils"],ModuleName ["Foreign","Marshal","Unsafe"],ModuleName ["Foreign","Ptr"],ModuleName ["Foreign","Safe"],ModuleName ["Foreign","StablePtr"],ModuleName ["Foreign","Storable"],ModuleName ["Numeric"],ModuleName ["Prelude"],ModuleName ["System","Console","GetOpt"],ModuleName ["System","CPUTime"],ModuleName ["System","Environment"],ModuleName ["System","Exit"],ModuleName ["System","IO"],ModuleName ["System","IO","Error"],ModuleName ["System","IO","Unsafe"],ModuleName ["System","Info"],ModuleName ["System","Mem"],ModuleName ["System","Mem","StableName"],ModuleName ["System","Mem","Weak"],ModuleName ["System","Posix","Internals"],ModuleName ["System","Posix","Types"],ModuleName ["Text","ParserCombinators","ReadP"],ModuleName ["Text","ParserCombinators","ReadPrec"],ModuleName ["Text","Printf"],ModuleName ["Text","Read"],ModuleName ["Text","Read","Lex"],ModuleName ["Text","Show"],ModuleName ["Text","Show","Functions"],ModuleName ["Unsafe","Coerce"]], hiddenModules = [ModuleName ["GHC","Event","Array"],ModuleName ["GHC","Event","Clock"],ModuleName ["GHC","Event","Control"],ModuleName ["GHC","Event","EPoll"],ModuleName ["GHC","Event","IntMap"],ModuleName ["GHC","Event","Internal"],ModuleName ["GHC","Event","KQueue"],ModuleName ["GHC","Event","Manager"],ModuleName ["GHC","Event","PSQ"],ModuleName ["GHC","Event","Poll"],ModuleName ["GHC","Event","Thread"],ModuleName ["GHC","Event","Unique"],ModuleName ["Control","Monad","ST","Imp"],ModuleName ["Control","Monad","ST","Lazy","Imp"],ModuleName ["Foreign","ForeignPtr","Imp"]], importDirs = ["/usr/lib/ghc-7.2.2/base-4.4.1.0"], libraryDirs = ["/usr/lib/ghc-7.2.2/base-4.4.1.0"], hsLibraries = ["HSbase-4.4.1.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/usr/lib/ghc-7.2.2/base-4.4.1.0/include"], includes = ["HsBase.h"], depends = [InstalledPackageId "ghc-prim-0.2.0.0-14e0c022e5d4efa3a40ab5991f2b2a1b",InstalledPackageId "integer-gmp-0.3.0.0-2e2b0fd56be1a5f60c50913e615691d9",InstalledPackageId "builtin_rts"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/share/doc/ghc/html/libraries/base-4.4.1.0/base.haddock"], haddockHTMLs = ["/usr/share/doc/ghc/html/libraries/base-4.4.1.0"]}),(InstalledPackageId "builtin_ffi",InstalledPackageInfo {installedPackageId = InstalledPackageId "builtin_ffi", sourcePackageId = PackageIdentifier {pkgName = PackageName "ffi", pkgVersion = Version {versionBranch = [1,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "glasgow-haskell-users@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "", category = "", exposed = True, exposedModules = [], hiddenModules = [], importDirs = [], libraryDirs = ["/usr/lib/ghc-7.2.2"], hsLibraries = ["HSffi"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/usr/lib/ghc-7.2.2/include"], includes = [], depends = [], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = [], haddockHTMLs = []}),(InstalledPackageId "builtin_rts",InstalledPackageInfo {installedPackageId = InstalledPackageId "builtin_rts", sourcePackageId = PackageIdentifier {pkgName = PackageName "rts", pkgVersion = Version {versionBranch = [1,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "glasgow-haskell-users@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "", category = "", exposed = True, exposedModules = [], hiddenModules = [], importDirs = [], libraryDirs = ["/usr/lib/ghc-7.2.2"], hsLibraries = ["HSrts"], extraLibraries = ["m","rt","dl"], extraGHCiLibraries = [], includeDirs = ["/usr/lib/ghc-7.2.2/include"], includes = ["Stg.h"], depends = [InstalledPackageId "builtin_ffi"], hugsOptions = [], ccOptions = [], ldOptions = ["-u","ghczmprim_GHCziTypes_Izh_static_info","-u","ghczmprim_GHCziTypes_Czh_static_info","-u","ghczmprim_GHCziTypes_Fzh_static_info","-u","ghczmprim_GHCziTypes_Dzh_static_info","-u","base_GHCziPtr_Ptr_static_info","-u","base_GHCziWord_Wzh_static_info","-u","base_GHCziInt_I8zh_static_info","-u","base_GHCziInt_I16zh_static_info","-u","base_GHCziInt_I32zh_static_info","-u","base_GHCziInt_I64zh_static_info","-u","base_GHCziWord_W8zh_static_info","-u","base_GHCziWord_W16zh_static_info","-u","base_GHCziWord_W32zh_static_info","-u","base_GHCziWord_W64zh_static_info","-u","base_GHCziStable_StablePtr_static_info","-u","ghczmprim_GHCziTypes_Izh_con_info","-u","ghczmprim_GHCziTypes_Czh_con_info","-u","ghczmprim_GHCziTypes_Fzh_con_info","-u","ghczmprim_GHCziTypes_Dzh_con_info","-u","base_GHCziPtr_Ptr_con_info","-u","base_GHCziPtr_FunPtr_con_info","-u","base_GHCziStable_StablePtr_con_info","-u","ghczmprim_GHCziTypes_False_closure","-u","ghczmprim_GHCziTypes_True_closure","-u","base_GHCziPack_unpackCString_closure","-u","base_GHCziIOziException_stackOverflow_closure","-u","base_GHCziIOziException_heapOverflow_closure","-u","base_ControlziExceptionziBase_nonTermination_closure","-u","base_GHCziIOziException_blockedIndefinitelyOnMVar_closure","-u","base_GHCziIOziException_blockedIndefinitelyOnSTM_closure","-u","base_ControlziExceptionziBase_nestedAtomically_closure","-u","base_GHCziWeak_runFinalizzerBatch_closure","-u","base_GHCziTopHandler_runIO_closure","-u","base_GHCziTopHandler_runNonIO_closure","-u","base_GHCziConcziIO_ensureIOManagerIsRunning_closure","-u","base_GHCziConcziSync_runSparks_closure","-u","base_GHCziConcziSignal_runHandlers_closure"], frameworkDirs = [], frameworks = [], haddockInterfaces = [], haddockHTMLs = []}),(InstalledPackageId "ghc-prim-0.2.0.0-14e0c022e5d4efa3a40ab5991f2b2a1b",InstalledPackageInfo {installedPackageId = InstalledPackageId "ghc-prim-0.2.0.0-14e0c022e5d4efa3a40ab5991f2b2a1b", sourcePackageId = PackageIdentifier {pkgName = PackageName "ghc-prim", pkgVersion = Version {versionBranch = [0,2,0,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "GHC primitives.", category = "", exposed = True, exposedModules = [ModuleName ["GHC","Prim"],ModuleName ["GHC","Debug"],ModuleName ["GHC","Generics"],ModuleName ["GHC","Magic"],ModuleName ["GHC","Ordering"],ModuleName ["GHC","PrimopWrappers"],ModuleName ["GHC","IntWord32"],ModuleName ["GHC","IntWord64"],ModuleName ["GHC","Tuple"],ModuleName ["GHC","Types"],ModuleName ["GHC","Unit"],ModuleName ["GHC","CString"]], hiddenModules = [], importDirs = ["/usr/lib/ghc-7.2.2/ghc-prim-0.2.0.0"], libraryDirs = ["/usr/lib/ghc-7.2.2/ghc-prim-0.2.0.0"], hsLibraries = ["HSghc-prim-0.2.0.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "builtin_rts"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/ghc-prim.haddock"], haddockHTMLs = ["/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0"]}),(InstalledPackageId "integer-gmp-0.3.0.0-2e2b0fd56be1a5f60c50913e615691d9",InstalledPackageInfo {installedPackageId = InstalledPackageId "integer-gmp-0.3.0.0-2e2b0fd56be1a5f60c50913e615691d9", sourcePackageId = PackageIdentifier {pkgName = PackageName "integer-gmp", pkgVersion = Version {versionBranch = [0,3,0,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "This package contains an Integer library based on GMP.", category = "", exposed = True, exposedModules = [ModuleName ["GHC","Integer"],ModuleName ["GHC","Integer","GMP","Internals"],ModuleName ["GHC","Integer","Logarithms"],ModuleName ["GHC","Integer","Logarithms","Internals"]], hiddenModules = [ModuleName ["GHC","Integer","Type"]], importDirs = ["/usr/lib/ghc-7.2.2/integer-gmp-0.3.0.0"], libraryDirs = ["/usr/lib/ghc-7.2.2/integer-gmp-0.3.0.0"], hsLibraries = ["HSinteger-gmp-0.3.0.0"], extraLibraries = ["gmp"], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "ghc-prim-0.2.0.0-14e0c022e5d4efa3a40ab5991f2b2a1b"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/share/doc/ghc/html/libraries/integer-gmp-0.3.0.0/integer-gmp.haddock"], haddockHTMLs = ["/usr/share/doc/ghc/html/libraries/integer-gmp-0.3.0.0"]}),(InstalledPackageId "mtl-2.0.1.0-f81ce3282fa6adb03e0cd48bfcccec53",InstalledPackageInfo {installedPackageId = InstalledPackageId "mtl-2.0.1.0-f81ce3282fa6adb03e0cd48bfcccec53", sourcePackageId = PackageIdentifier {pkgName = PackageName "mtl", pkgVersion = Version {versionBranch = [2,0,1,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "Andy Gill", stability = "", homepage = "", pkgUrl = "", description = "Monad classes using functional dependencies, with instances\nfor various monad transformers, inspired by the paper\n/Functional Programming with Overloading and Higher-Order Polymorphism/,\nby Mark P Jones, in /Advanced School of Functional Programming/, 1995\n(<http://web.cecs.pdx.edu/~mpj/pubs/springschool.html>).", category = "Control", exposed = True, exposedModules = [ModuleName ["Control","Monad","Cont"],ModuleName ["Control","Monad","Cont","Class"],ModuleName ["Control","Monad","Error"],ModuleName ["Control","Monad","Error","Class"],ModuleName ["Control","Monad","Identity"],ModuleName ["Control","Monad","List"],ModuleName ["Control","Monad","RWS"],ModuleName ["Control","Monad","RWS","Class"],ModuleName ["Control","Monad","RWS","Lazy"],ModuleName ["Control","Monad","RWS","Strict"],ModuleName ["Control","Monad","Reader"],ModuleName ["Control","Monad","Reader","Class"],ModuleName ["Control","Monad","State"],ModuleName ["Control","Monad","State","Class"],ModuleName ["Control","Monad","State","Lazy"],ModuleName ["Control","Monad","State","Strict"],ModuleName ["Control","Monad","Trans"],ModuleName ["Control","Monad","Writer"],ModuleName ["Control","Monad","Writer","Class"],ModuleName ["Control","Monad","Writer","Lazy"],ModuleName ["Control","Monad","Writer","Strict"]], hiddenModules = [], importDirs = ["/home/exfalso/.cabal/lib/mtl-2.0.1.0/ghc-7.2.2"], libraryDirs = ["/home/exfalso/.cabal/lib/mtl-2.0.1.0/ghc-7.2.2"], hsLibraries = ["HSmtl-2.0.1.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "base-4.4.1.0-0b74da1b5cceb1549c5473c9b76bf860",InstalledPackageId "transformers-0.2.2.0-dedda34a47952e7f82f2724797f0b70f"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/exfalso/.cabal/share/doc/mtl-2.0.1.0/html/mtl.haddock"], haddockHTMLs = ["/home/exfalso/.cabal/share/doc/mtl-2.0.1.0/html"]}),(InstalledPackageId "transformers-0.2.2.0-dedda34a47952e7f82f2724797f0b70f",InstalledPackageInfo {installedPackageId = InstalledPackageId "transformers-0.2.2.0-dedda34a47952e7f82f2724797f0b70f", sourcePackageId = PackageIdentifier {pkgName = PackageName "transformers", pkgVersion = Version {versionBranch = [0,2,2,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "Ross Paterson <ross@soi.city.ac.uk>", author = "Andy Gill, Ross Paterson", stability = "", homepage = "", pkgUrl = "", description = "Haskell 98 part of a monad transformer library, inspired by the paper\n\\\"Functional Programming with Overloading and Higher-Order Polymorphism\\\",\nby Mark P Jones, in /Advanced School of Functional Programming/, 1995\n(<http://web.cecs.pdx.edu/~mpj/pubs/springschool.html>).\n\nThis part contains the monad transformer class, the concrete monad\ntransformers, operations and liftings.  It can be used on its own\nin Haskell 98 code, or with the monad classes in the @monads-fd@ or\n@monads-tf@ packages, which automatically lift operations introduced\nby monad transformers through other transformers.", category = "Control", exposed = True, exposedModules = [ModuleName ["Control","Monad","IO","Class"],ModuleName ["Control","Monad","Trans","Class"],ModuleName ["Control","Monad","Trans","Cont"],ModuleName ["Control","Monad","Trans","Error"],ModuleName ["Control","Monad","Trans","Identity"],ModuleName ["Control","Monad","Trans","List"],ModuleName ["Control","Monad","Trans","Maybe"],ModuleName ["Control","Monad","Trans","Reader"],ModuleName ["Control","Monad","Trans","RWS"],ModuleName ["Control","Monad","Trans","RWS","Lazy"],ModuleName ["Control","Monad","Trans","RWS","Strict"],ModuleName ["Control","Monad","Trans","State"],ModuleName ["Control","Monad","Trans","State","Lazy"],ModuleName ["Control","Monad","Trans","State","Strict"],ModuleName ["Control","Monad","Trans","Writer"],ModuleName ["Control","Monad","Trans","Writer","Lazy"],ModuleName ["Control","Monad","Trans","Writer","Strict"],ModuleName ["Data","Functor","Compose"],ModuleName ["Data","Functor","Constant"],ModuleName ["Data","Functor","Identity"],ModuleName ["Data","Functor","Product"]], hiddenModules = [], importDirs = ["/home/exfalso/.cabal/lib/transformers-0.2.2.0/ghc-7.2.2"], libraryDirs = ["/home/exfalso/.cabal/lib/transformers-0.2.2.0/ghc-7.2.2"], hsLibraries = ["HStransformers-0.2.2.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "base-4.4.1.0-0b74da1b5cceb1549c5473c9b76bf860"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/exfalso/.cabal/share/doc/transformers-0.2.2.0/html/transformers.haddock"], haddockHTMLs = ["/home/exfalso/.cabal/share/doc/transformers-0.2.2.0/html"]})]) (fromList [(PackageName "base",fromList [(Version {versionBranch = [4,4,1,0], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "base-4.4.1.0-0b74da1b5cceb1549c5473c9b76bf860", sourcePackageId = PackageIdentifier {pkgName = PackageName "base", pkgVersion = Version {versionBranch = [4,4,1,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "This package contains the Prelude and its support libraries,\nand a large collection of useful libraries ranging from data\nstructures to parsing combinators and debugging utilities.", category = "", exposed = True, exposedModules = [ModuleName ["Foreign","Concurrent"],ModuleName ["GHC","Arr"],ModuleName ["GHC","Base"],ModuleName ["GHC","Classes"],ModuleName ["GHC","Conc"],ModuleName ["GHC","Conc","IO"],ModuleName ["GHC","Conc","Signal"],ModuleName ["GHC","Conc","Sync"],ModuleName ["GHC","ConsoleHandler"],ModuleName ["GHC","Constants"],ModuleName ["GHC","Desugar"],ModuleName ["GHC","Enum"],ModuleName ["GHC","Environment"],ModuleName ["GHC","Err"],ModuleName ["GHC","Exception"],ModuleName ["GHC","Exts"],ModuleName ["GHC","Fingerprint"],ModuleName ["GHC","Fingerprint","Type"],ModuleName ["GHC","Float"],ModuleName ["GHC","Float","ConversionUtils"],ModuleName ["GHC","Float","RealFracMethods"],ModuleName ["GHC","Foreign"],ModuleName ["GHC","ForeignPtr"],ModuleName ["GHC","Handle"],ModuleName ["GHC","IO"],ModuleName ["GHC","IO","Buffer"],ModuleName ["GHC","IO","BufferedIO"],ModuleName ["GHC","IO","Device"],ModuleName ["GHC","IO","Encoding"],ModuleName ["GHC","IO","Encoding","CodePage"],ModuleName ["GHC","IO","Encoding","Failure"],ModuleName ["GHC","IO","Encoding","Iconv"],ModuleName ["GHC","IO","Encoding","Latin1"],ModuleName ["GHC","IO","Encoding","Types"],ModuleName ["GHC","IO","Encoding","UTF16"],ModuleName ["GHC","IO","Encoding","UTF32"],ModuleName ["GHC","IO","Encoding","UTF8"],ModuleName ["GHC","IO","Exception"],ModuleName ["GHC","IO","FD"],ModuleName ["GHC","IO","Handle"],ModuleName ["GHC","IO","Handle","FD"],ModuleName ["GHC","IO","Handle","Internals"],ModuleName ["GHC","IO","Handle","Text"],ModuleName ["GHC","IO","Handle","Types"],ModuleName ["GHC","IO","IOMode"],ModuleName ["GHC","IOArray"],ModuleName ["GHC","IOBase"],ModuleName ["GHC","IORef"],ModuleName ["GHC","Int"],ModuleName ["GHC","List"],ModuleName ["GHC","MVar"],ModuleName ["GHC","Num"],ModuleName ["GHC","PArr"],ModuleName ["GHC","Pack"],ModuleName ["GHC","Ptr"],ModuleName ["GHC","Read"],ModuleName ["GHC","Real"],ModuleName ["GHC","ST"],ModuleName ["GHC","Show"],ModuleName ["GHC","Stable"],ModuleName ["GHC","Storable"],ModuleName ["GHC","STRef"],ModuleName ["GHC","TopHandler"],ModuleName ["GHC","Unicode"],ModuleName ["GHC","Weak"],ModuleName ["GHC","Word"],ModuleName ["System","Timeout"],ModuleName ["GHC","Event"],ModuleName ["Control","Applicative"],ModuleName ["Control","Arrow"],ModuleName ["Control","Category"],ModuleName ["Control","Concurrent"],ModuleName ["Control","Concurrent","Chan"],ModuleName ["Control","Concurrent","MVar"],ModuleName ["Control","Concurrent","QSem"],ModuleName ["Control","Concurrent","QSemN"],ModuleName ["Control","Concurrent","SampleVar"],ModuleName ["Control","Exception"],ModuleName ["Control","Exception","Base"],ModuleName ["Control","OldException"],ModuleName ["Control","Monad"],ModuleName ["Control","Monad","Fix"],ModuleName ["Control","Monad","Instances"],ModuleName ["Control","Monad","ST"],ModuleName ["Control","Monad","ST","Safe"],ModuleName ["Control","Monad","ST","Unsafe"],ModuleName ["Control","Monad","ST","Lazy"],ModuleName ["Control","Monad","ST","Lazy","Safe"],ModuleName ["Control","Monad","ST","Lazy","Unsafe"],ModuleName ["Control","Monad","ST","Strict"],ModuleName ["Control","Monad","Group"],ModuleName ["Control","Monad","Zip"],ModuleName ["Data","Bits"],ModuleName ["Data","Bool"],ModuleName ["Data","Char"],ModuleName ["Data","Complex"],ModuleName ["Data","Dynamic"],ModuleName ["Data","Either"],ModuleName ["Data","Eq"],ModuleName ["Data","Data"],ModuleName ["Data","Fixed"],ModuleName ["Data","Foldable"],ModuleName ["Data","Function"],ModuleName ["Data","Functor"],ModuleName ["Data","HashTable"],ModuleName ["Data","IORef"],ModuleName ["Data","Int"],ModuleName ["Data","Ix"],ModuleName ["Data","List"],ModuleName ["Data","Maybe"],ModuleName ["Data","Monoid"],ModuleName ["Data","Ord"],ModuleName ["Data","Ratio"],ModuleName ["Data","STRef"],ModuleName ["Data","STRef","Lazy"],ModuleName ["Data","STRef","Strict"],ModuleName ["Data","String"],ModuleName ["Data","Traversable"],ModuleName ["Data","Tuple"],ModuleName ["Data","Typeable"],ModuleName ["Data","Typeable","Internal"],ModuleName ["Data","Unique"],ModuleName ["Data","Version"],ModuleName ["Data","Word"],ModuleName ["Debug","Trace"],ModuleName ["Foreign"],ModuleName ["Foreign","C"],ModuleName ["Foreign","C","Error"],ModuleName ["Foreign","C","String"],ModuleName ["Foreign","C","Types"],ModuleName ["Foreign","ForeignPtr"],ModuleName ["Foreign","ForeignPtr","Safe"],ModuleName ["Foreign","ForeignPtr","Unsafe"],ModuleName ["Foreign","Marshal"],ModuleName ["Foreign","Marshal","Alloc"],ModuleName ["Foreign","Marshal","Array"],ModuleName ["Foreign","Marshal","Error"],ModuleName ["Foreign","Marshal","Pool"],ModuleName ["Foreign","Marshal","Safe"],ModuleName ["Foreign","Marshal","Utils"],ModuleName ["Foreign","Marshal","Unsafe"],ModuleName ["Foreign","Ptr"],ModuleName ["Foreign","Safe"],ModuleName ["Foreign","StablePtr"],ModuleName ["Foreign","Storable"],ModuleName ["Numeric"],ModuleName ["Prelude"],ModuleName ["System","Console","GetOpt"],ModuleName ["System","CPUTime"],ModuleName ["System","Environment"],ModuleName ["System","Exit"],ModuleName ["System","IO"],ModuleName ["System","IO","Error"],ModuleName ["System","IO","Unsafe"],ModuleName ["System","Info"],ModuleName ["System","Mem"],ModuleName ["System","Mem","StableName"],ModuleName ["System","Mem","Weak"],ModuleName ["System","Posix","Internals"],ModuleName ["System","Posix","Types"],ModuleName ["Text","ParserCombinators","ReadP"],ModuleName ["Text","ParserCombinators","ReadPrec"],ModuleName ["Text","Printf"],ModuleName ["Text","Read"],ModuleName ["Text","Read","Lex"],ModuleName ["Text","Show"],ModuleName ["Text","Show","Functions"],ModuleName ["Unsafe","Coerce"]], hiddenModules = [ModuleName ["GHC","Event","Array"],ModuleName ["GHC","Event","Clock"],ModuleName ["GHC","Event","Control"],ModuleName ["GHC","Event","EPoll"],ModuleName ["GHC","Event","IntMap"],ModuleName ["GHC","Event","Internal"],ModuleName ["GHC","Event","KQueue"],ModuleName ["GHC","Event","Manager"],ModuleName ["GHC","Event","PSQ"],ModuleName ["GHC","Event","Poll"],ModuleName ["GHC","Event","Thread"],ModuleName ["GHC","Event","Unique"],ModuleName ["Control","Monad","ST","Imp"],ModuleName ["Control","Monad","ST","Lazy","Imp"],ModuleName ["Foreign","ForeignPtr","Imp"]], importDirs = ["/usr/lib/ghc-7.2.2/base-4.4.1.0"], libraryDirs = ["/usr/lib/ghc-7.2.2/base-4.4.1.0"], hsLibraries = ["HSbase-4.4.1.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/usr/lib/ghc-7.2.2/base-4.4.1.0/include"], includes = ["HsBase.h"], depends = [InstalledPackageId "ghc-prim-0.2.0.0-14e0c022e5d4efa3a40ab5991f2b2a1b",InstalledPackageId "integer-gmp-0.3.0.0-2e2b0fd56be1a5f60c50913e615691d9",InstalledPackageId "builtin_rts"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/share/doc/ghc/html/libraries/base-4.4.1.0/base.haddock"], haddockHTMLs = ["/usr/share/doc/ghc/html/libraries/base-4.4.1.0"]}])]),(PackageName "ffi",fromList [(Version {versionBranch = [1,0], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "builtin_ffi", sourcePackageId = PackageIdentifier {pkgName = PackageName "ffi", pkgVersion = Version {versionBranch = [1,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "glasgow-haskell-users@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "", category = "", exposed = True, exposedModules = [], hiddenModules = [], importDirs = [], libraryDirs = ["/usr/lib/ghc-7.2.2"], hsLibraries = ["HSffi"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/usr/lib/ghc-7.2.2/include"], includes = [], depends = [], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = [], haddockHTMLs = []}])]),(PackageName "ghc-prim",fromList [(Version {versionBranch = [0,2,0,0], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "ghc-prim-0.2.0.0-14e0c022e5d4efa3a40ab5991f2b2a1b", sourcePackageId = PackageIdentifier {pkgName = PackageName "ghc-prim", pkgVersion = Version {versionBranch = [0,2,0,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "GHC primitives.", category = "", exposed = True, exposedModules = [ModuleName ["GHC","Prim"],ModuleName ["GHC","Debug"],ModuleName ["GHC","Generics"],ModuleName ["GHC","Magic"],ModuleName ["GHC","Ordering"],ModuleName ["GHC","PrimopWrappers"],ModuleName ["GHC","IntWord32"],ModuleName ["GHC","IntWord64"],ModuleName ["GHC","Tuple"],ModuleName ["GHC","Types"],ModuleName ["GHC","Unit"],ModuleName ["GHC","CString"]], hiddenModules = [], importDirs = ["/usr/lib/ghc-7.2.2/ghc-prim-0.2.0.0"], libraryDirs = ["/usr/lib/ghc-7.2.2/ghc-prim-0.2.0.0"], hsLibraries = ["HSghc-prim-0.2.0.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "builtin_rts"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/ghc-prim.haddock"], haddockHTMLs = ["/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0"]}])]),(PackageName "integer-gmp",fromList [(Version {versionBranch = [0,3,0,0], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "integer-gmp-0.3.0.0-2e2b0fd56be1a5f60c50913e615691d9", sourcePackageId = PackageIdentifier {pkgName = PackageName "integer-gmp", pkgVersion = Version {versionBranch = [0,3,0,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "This package contains an Integer library based on GMP.", category = "", exposed = True, exposedModules = [ModuleName ["GHC","Integer"],ModuleName ["GHC","Integer","GMP","Internals"],ModuleName ["GHC","Integer","Logarithms"],ModuleName ["GHC","Integer","Logarithms","Internals"]], hiddenModules = [ModuleName ["GHC","Integer","Type"]], importDirs = ["/usr/lib/ghc-7.2.2/integer-gmp-0.3.0.0"], libraryDirs = ["/usr/lib/ghc-7.2.2/integer-gmp-0.3.0.0"], hsLibraries = ["HSinteger-gmp-0.3.0.0"], extraLibraries = ["gmp"], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "ghc-prim-0.2.0.0-14e0c022e5d4efa3a40ab5991f2b2a1b"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/share/doc/ghc/html/libraries/integer-gmp-0.3.0.0/integer-gmp.haddock"], haddockHTMLs = ["/usr/share/doc/ghc/html/libraries/integer-gmp-0.3.0.0"]}])]),(PackageName "mtl",fromList [(Version {versionBranch = [2,0,1,0], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "mtl-2.0.1.0-f81ce3282fa6adb03e0cd48bfcccec53", sourcePackageId = PackageIdentifier {pkgName = PackageName "mtl", pkgVersion = Version {versionBranch = [2,0,1,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "Andy Gill", stability = "", homepage = "", pkgUrl = "", description = "Monad classes using functional dependencies, with instances\nfor various monad transformers, inspired by the paper\n/Functional Programming with Overloading and Higher-Order Polymorphism/,\nby Mark P Jones, in /Advanced School of Functional Programming/, 1995\n(<http://web.cecs.pdx.edu/~mpj/pubs/springschool.html>).", category = "Control", exposed = True, exposedModules = [ModuleName ["Control","Monad","Cont"],ModuleName ["Control","Monad","Cont","Class"],ModuleName ["Control","Monad","Error"],ModuleName ["Control","Monad","Error","Class"],ModuleName ["Control","Monad","Identity"],ModuleName ["Control","Monad","List"],ModuleName ["Control","Monad","RWS"],ModuleName ["Control","Monad","RWS","Class"],ModuleName ["Control","Monad","RWS","Lazy"],ModuleName ["Control","Monad","RWS","Strict"],ModuleName ["Control","Monad","Reader"],ModuleName ["Control","Monad","Reader","Class"],ModuleName ["Control","Monad","State"],ModuleName ["Control","Monad","State","Class"],ModuleName ["Control","Monad","State","Lazy"],ModuleName ["Control","Monad","State","Strict"],ModuleName ["Control","Monad","Trans"],ModuleName ["Control","Monad","Writer"],ModuleName ["Control","Monad","Writer","Class"],ModuleName ["Control","Monad","Writer","Lazy"],ModuleName ["Control","Monad","Writer","Strict"]], hiddenModules = [], importDirs = ["/home/exfalso/.cabal/lib/mtl-2.0.1.0/ghc-7.2.2"], libraryDirs = ["/home/exfalso/.cabal/lib/mtl-2.0.1.0/ghc-7.2.2"], hsLibraries = ["HSmtl-2.0.1.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "base-4.4.1.0-0b74da1b5cceb1549c5473c9b76bf860",InstalledPackageId "transformers-0.2.2.0-dedda34a47952e7f82f2724797f0b70f"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/exfalso/.cabal/share/doc/mtl-2.0.1.0/html/mtl.haddock"], haddockHTMLs = ["/home/exfalso/.cabal/share/doc/mtl-2.0.1.0/html"]}])]),(PackageName "rts",fromList [(Version {versionBranch = [1,0], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "builtin_rts", sourcePackageId = PackageIdentifier {pkgName = PackageName "rts", pkgVersion = Version {versionBranch = [1,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "glasgow-haskell-users@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "", category = "", exposed = True, exposedModules = [], hiddenModules = [], importDirs = [], libraryDirs = ["/usr/lib/ghc-7.2.2"], hsLibraries = ["HSrts"], extraLibraries = ["m","rt","dl"], extraGHCiLibraries = [], includeDirs = ["/usr/lib/ghc-7.2.2/include"], includes = ["Stg.h"], depends = [InstalledPackageId "builtin_ffi"], hugsOptions = [], ccOptions = [], ldOptions = ["-u","ghczmprim_GHCziTypes_Izh_static_info","-u","ghczmprim_GHCziTypes_Czh_static_info","-u","ghczmprim_GHCziTypes_Fzh_static_info","-u","ghczmprim_GHCziTypes_Dzh_static_info","-u","base_GHCziPtr_Ptr_static_info","-u","base_GHCziWord_Wzh_static_info","-u","base_GHCziInt_I8zh_static_info","-u","base_GHCziInt_I16zh_static_info","-u","base_GHCziInt_I32zh_static_info","-u","base_GHCziInt_I64zh_static_info","-u","base_GHCziWord_W8zh_static_info","-u","base_GHCziWord_W16zh_static_info","-u","base_GHCziWord_W32zh_static_info","-u","base_GHCziWord_W64zh_static_info","-u","base_GHCziStable_StablePtr_static_info","-u","ghczmprim_GHCziTypes_Izh_con_info","-u","ghczmprim_GHCziTypes_Czh_con_info","-u","ghczmprim_GHCziTypes_Fzh_con_info","-u","ghczmprim_GHCziTypes_Dzh_con_info","-u","base_GHCziPtr_Ptr_con_info","-u","base_GHCziPtr_FunPtr_con_info","-u","base_GHCziStable_StablePtr_con_info","-u","ghczmprim_GHCziTypes_False_closure","-u","ghczmprim_GHCziTypes_True_closure","-u","base_GHCziPack_unpackCString_closure","-u","base_GHCziIOziException_stackOverflow_closure","-u","base_GHCziIOziException_heapOverflow_closure","-u","base_ControlziExceptionziBase_nonTermination_closure","-u","base_GHCziIOziException_blockedIndefinitelyOnMVar_closure","-u","base_GHCziIOziException_blockedIndefinitelyOnSTM_closure","-u","base_ControlziExceptionziBase_nestedAtomically_closure","-u","base_GHCziWeak_runFinalizzerBatch_closure","-u","base_GHCziTopHandler_runIO_closure","-u","base_GHCziTopHandler_runNonIO_closure","-u","base_GHCziConcziIO_ensureIOManagerIsRunning_closure","-u","base_GHCziConcziSync_runSparks_closure","-u","base_GHCziConcziSignal_runHandlers_closure"], frameworkDirs = [], frameworks = [], haddockInterfaces = [], haddockHTMLs = []}])]),(PackageName "transformers",fromList [(Version {versionBranch = [0,2,2,0], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "transformers-0.2.2.0-dedda34a47952e7f82f2724797f0b70f", sourcePackageId = PackageIdentifier {pkgName = PackageName "transformers", pkgVersion = Version {versionBranch = [0,2,2,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "Ross Paterson <ross@soi.city.ac.uk>", author = "Andy Gill, Ross Paterson", stability = "", homepage = "", pkgUrl = "", description = "Haskell 98 part of a monad transformer library, inspired by the paper\n\\\"Functional Programming with Overloading and Higher-Order Polymorphism\\\",\nby Mark P Jones, in /Advanced School of Functional Programming/, 1995\n(<http://web.cecs.pdx.edu/~mpj/pubs/springschool.html>).\n\nThis part contains the monad transformer class, the concrete monad\ntransformers, operations and liftings.  It can be used on its own\nin Haskell 98 code, or with the monad classes in the @monads-fd@ or\n@monads-tf@ packages, which automatically lift operations introduced\nby monad transformers through other transformers.", category = "Control", exposed = True, exposedModules = [ModuleName ["Control","Monad","IO","Class"],ModuleName ["Control","Monad","Trans","Class"],ModuleName ["Control","Monad","Trans","Cont"],ModuleName ["Control","Monad","Trans","Error"],ModuleName ["Control","Monad","Trans","Identity"],ModuleName ["Control","Monad","Trans","List"],ModuleName ["Control","Monad","Trans","Maybe"],ModuleName ["Control","Monad","Trans","Reader"],ModuleName ["Control","Monad","Trans","RWS"],ModuleName ["Control","Monad","Trans","RWS","Lazy"],ModuleName ["Control","Monad","Trans","RWS","Strict"],ModuleName ["Control","Monad","Trans","State"],ModuleName ["Control","Monad","Trans","State","Lazy"],ModuleName ["Control","Monad","Trans","State","Strict"],ModuleName ["Control","Monad","Trans","Writer"],ModuleName ["Control","Monad","Trans","Writer","Lazy"],ModuleName ["Control","Monad","Trans","Writer","Strict"],ModuleName ["Data","Functor","Compose"],ModuleName ["Data","Functor","Constant"],ModuleName ["Data","Functor","Identity"],ModuleName ["Data","Functor","Product"]], hiddenModules = [], importDirs = ["/home/exfalso/.cabal/lib/transformers-0.2.2.0/ghc-7.2.2"], libraryDirs = ["/home/exfalso/.cabal/lib/transformers-0.2.2.0/ghc-7.2.2"], hsLibraries = ["HStransformers-0.2.2.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "base-4.4.1.0-0b74da1b5cceb1549c5473c9b76bf860"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/exfalso/.cabal/share/doc/transformers-0.2.2.0/html/transformers.haddock"], haddockHTMLs = ["/home/exfalso/.cabal/share/doc/transformers-0.2.2.0/html"]}])])]), pkgDescrFile = Just "./ProxN.cabal", localPkgDescr = PackageDescription {package = PackageIdentifier {pkgName = PackageName "ProxN", pkgVersion = Version {versionBranch = [0,0,1], versionTags = []}}, license = BSD3, licenseFile = "LICENSE", copyright = "", maintainer = "0slemi0@gmail.com", author = "Andras Slemmer", stability = "", testedWith = [], homepage = "https://github.com/exFalso/ProxN", pkgUrl = "", bugReports = "", sourceRepos = [], synopsis = "Proximity sets in N dimensions", description = "", category = "Math", customFieldsPD = [], buildDepends = [Dependency (PackageName "base") (IntersectVersionRanges (EarlierVersion (Version {versionBranch = [5], versionTags = []})) (ThisVersion (Version {versionBranch = [4,4,1,0], versionTags = []}))),Dependency (PackageName "mtl") (IntersectVersionRanges AnyVersion (ThisVersion (Version {versionBranch = [2,0,1,0], versionTags = []})))], specVersionRaw = Right (UnionVersionRanges (ThisVersion (Version {versionBranch = [1,2], versionTags = []})) (LaterVersion (Version {versionBranch = [1,2], versionTags = []}))), buildType = Just Simple, library = Just (Library {exposedModules = [ModuleName ["Data","ProxN","Peano"],ModuleName ["Data","ProxN","Pretty"],ModuleName ["Data","ProxN","Proximity"],ModuleName ["Data","ProxN","Show1"],ModuleName ["Data","ProxN","Tree2N"],ModuleName ["Data","ProxN","VecN"]], libExposed = True, libBuildInfo = BuildInfo {buildable = True, buildTools = [], cppOptions = [], ccOptions = [], ldOptions = [], pkgconfigDepends = [], frameworks = [], cSources = [], hsSourceDirs = ["src"], otherModules = [], defaultLanguage = Nothing, otherLanguages = [], defaultExtensions = [], otherExtensions = [], oldExtensions = [], extraLibs = [], extraLibDirs = [], includeDirs = [], includes = [], installIncludes = [], options = [(GHC,["-Wall"])], ghcProfOptions = [], ghcSharedOptions = [], customFieldsBI = [], targetBuildDepends = [Dependency (PackageName "base") (IntersectVersionRanges (EarlierVersion (Version {versionBranch = [5], versionTags = []})) (ThisVersion (Version {versionBranch = [4,4,1,0], versionTags = []}))),Dependency (PackageName "mtl") (IntersectVersionRanges AnyVersion (ThisVersion (Version {versionBranch = [2,0,1,0], versionTags = []})))]}}), executables = [], testSuites = [], dataFiles = [], dataDir = "", extraSrcFiles = [], extraTmpFiles = []}, withPrograms = [("alex",ConfiguredProgram {programId = "alex", programVersion = Just (Version {versionBranch = [2,3,5], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/alex"}}),("ar",ConfiguredProgram {programId = "ar", programVersion = Nothing, programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/ar"}}),("gcc",ConfiguredProgram {programId = "gcc", programVersion = Just (Version {versionBranch = [4,6,2], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/gcc"}}),("ghc",ConfiguredProgram {programId = "ghc", programVersion = Just (Version {versionBranch = [7,2,2], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/ghc"}}),("ghc-pkg",ConfiguredProgram {programId = "ghc-pkg", programVersion = Just (Version {versionBranch = [7,2,2], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/ghc-pkg"}}),("haddock",ConfiguredProgram {programId = "haddock", programVersion = Just (Version {versionBranch = [2,9,4], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/haddock"}}),("happy",ConfiguredProgram {programId = "happy", programVersion = Just (Version {versionBranch = [1,18,6], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/happy"}}),("hsc2hs",ConfiguredProgram {programId = "hsc2hs", programVersion = Just (Version {versionBranch = [0,67], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/hsc2hs"}}),("ld",ConfiguredProgram {programId = "ld", programVersion = Nothing, programDefaultArgs = ["-x"], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/ld"}}),("pkg-config",ConfiguredProgram {programId = "pkg-config", programVersion = Just (Version {versionBranch = [0,26], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/pkg-config"}}),("ranlib",ConfiguredProgram {programId = "ranlib", programVersion = Nothing, programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/ranlib"}}),("strip",ConfiguredProgram {programId = "strip", programVersion = Nothing, programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/strip"}}),("tar",ConfiguredProgram {programId = "tar", programVersion = Nothing, programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/bin/tar"}})], withPackageDB = [GlobalPackageDB,UserPackageDB], withVanillaLib = True, withProfLib = True, withSharedLib = False, withProfExe = True, withOptimization = NormalOptimisation, withGHCiLib = True, splitObjs = False, stripExes = True, progPrefix = "", progSuffix = ""}
+ example/Example.hs view
@@ -0,0 +1,62 @@+module Main where++import Math.ProxN.VecN as Vec+import Math.ProxN.Tree2N as Tree+import Math.ProxN.Peano+import Math.ProxN.Pretty+import Math.ProxN.Proximity++import System.Random+import Control.Applicative+import Control.Monad.Random(runRandT, RandT, getRandomR)+import Control.Monad.IO.Class+import Control.Monad+import Data.Maybe++-- number of points+_NUM :: Int+_NUM = 2000++-- range of one coordinate+_RANGE :: (Double, Double)+_RANGE = (0, 100)++-- r^2+_TOLERANCE2 :: Double+_TOLERANCE2 = 500.0++-- dimension+type Dim = Five+++------------+++randomList :: Int -> IO [Double]+randomList n = withStdGen (replicateM n (getRandomR _RANGE))++withStdGen :: (MonadIO m) => RandT StdGen m a -> m a+withStdGen r = do+  gen <- liftIO getStdGen+  (a, nextGen) <- runRandT r gen+  liftIO $ setStdGen nextGen+  return a++-- generates a random vector, then 20 random vector-trees of _NUM vectors and calculates the proximity sets of the vector+main :: IO ()+main = do+  let peano = undefined :: Dim+  ranVec <- fromJust . Vec.fromList <$> randomList (fromPeano peano)+  mapM_ putStrLn+    [ "Dimension: " ++ show (fromPeano peano)+    , "Number of points: " ++ show _NUM+    , "Random Vector: " ++ prettySimp (ranVec :: VecN Dim Double)+    , "Tolerance^2: " ++ show _TOLERANCE2+    , "Depth lower bound: " ++ show (logarithm peano (fromIntegral _NUM))+    ]+  replicateM_ 20 $ do+    let vecM = Vec.fromList <$> randomList (fromPeano peano)+    tr <- Tree.fromList <$> replicateM _NUM (fromJust <$> vecM)+    putStrLn $ "Depth: " ++ show (depth tr)+    putStrLn $ "Vecs in proximity: "+      ++ show ((prox _TOLERANCE2 ranVec tr))
+ src/Data/ProxN/Peano.hs view
@@ -0,0 +1,34 @@+{-# LANGUAGE ScopedTypeVariables, EmptyDataDecls #-}++module Data.ProxN.Peano where++data Zero+data Succ n++type One = Succ Zero+type Two = Succ One+type Three = Succ Two+type Four = Succ Three+type Five = Succ Four+type Six = Succ Five+type Seven = Succ Six+type Eight = Succ Seven+type Nine = Succ Eight+type Ten = Succ Nine++class Peano p where+  fromPeano :: p -> Int++instance Peano Zero where+  fromPeano _ = 0++instance (Peano p) => Peano (Succ p) where+  fromPeano _ = 1 + (fromPeano (undefined :: p))++class (Peano p) => Logarithm p where+  logarithm :: p -> Double -> Double+  logarithm _ a = log a / log (fromIntegral (fromPeano (undefined :: p)))++instance Logarithm Zero++instance (Peano a) => Logarithm (Succ a)
+ src/Data/ProxN/Pretty.hs view
@@ -0,0 +1,53 @@+{-# LANGUAGE GeneralizedNewtypeDeriving #-}++module Data.ProxN.Pretty( Pretty(..)+                        , Pretty1(..)+                        , prettyPut+                        , prettyNl+                        , prettyIndent+                        ) where++import Control.Applicative+import Control.Monad.Reader+import Control.Monad.State++newtype PrettyM a = PrettyM (StateT (String -> String)+                             (Reader ((String -> String),+                                      (String -> String))) a)+                  deriving (Monad, Functor, Applicative,+                            MonadReader ((String -> String), (String -> String)))++prettyPut :: String -> PrettyM ()+prettyPut str = PrettyM . modify $ (. (str ++))++prettyNl :: PrettyM ()+prettyNl = do+  (_, ind) <- ask+  PrettyM . modify $ (. (('\n' :) . ind))++prettyIndent :: PrettyM a -> PrettyM a+prettyIndent pr = do+  local (\(indUnit, ind) -> (indUnit, indUnit . ind)) $ pr++runPrettyM :: (String -> String) -> PrettyM a -> (a, String)+runPrettyM indUnit (PrettyM pm) =+  let (ret, fs) = runReader (runStateT pm id) (indUnit, id) in+  (ret, fs "")++class Pretty p where+  prettyPrint :: p -> PrettyM ()+  +  pretty :: (String -> String) -> p -> String+  pretty indUnit = snd . runPrettyM indUnit . prettyPrint+  +  prettySimp :: p -> String+  prettySimp = pretty (' ' :)++class Pretty1 p1 where+  prettyPrint1 :: (Pretty p) => p1 p -> PrettyM ()+  +  pretty1 :: (Pretty p) => (String -> String) -> p1 p -> String+  pretty1 indUnit = snd . runPrettyM indUnit . prettyPrint1+  +  prettySimp1 :: (Pretty p) => p1 p -> String+  prettySimp1 = pretty1 (' ' :)
+ src/Data/ProxN/Proximity.hs view
@@ -0,0 +1,26 @@+{-# LANGUAGE ScopedTypeVariables #-}++module Data.ProxN.Proximity where++import Data.ProxN.Tree2N+import Data.ProxN.VecN++import Control.Applicative++prox :: (VecNClass n, Tree2NClass n) =>+        Double -> VecN n Double -> VecTree n Double -> [VecN n Double]+prox tol2 vec tree = proximity tol2 vec tree []++proximity :: forall n. (VecNClass n, Tree2NClass n) =>+             Double -> VecN n Double -> VecTree n Double -> ([VecN n Double] -> [VecN n Double])+proximity _ _ Tree2NLeaf = id+proximity tol2 vec (Tree2NBranch v t) =+  if distance2 vec v < tol2+  then (v :) . foldTree proximity' (pure (.)) t+  else proximity tol2 vec (chooseNode vec v t)+  where+    proximity' :: VecTree n Double -> ([VecN n Double] -> [VecN n Double])+    proximity' Tree2NLeaf = id+    proximity' (Tree2NBranch v2 t2) = addOrNot . foldTree proximity' (pure (.)) t2+      where+        addOrNot = if distance2 vec v2 < tol2 then (v2 :) else id
+ src/Data/ProxN/Show1.hs view
@@ -0,0 +1,4 @@+module Data.ProxN.Show1 where++class Show1 v where+  show1 :: (Show a) => v a -> String
+ src/Data/ProxN/Tree2N.hs view
@@ -0,0 +1,172 @@+{-# LANGUAGE ScopedTypeVariables, FlexibleInstances, MultiParamTypeClasses, FlexibleContexts, TypeFamilies, BangPatterns #-}++{-# OPTIONS_GHC -funbox-strict-fields #-}++module Data.ProxN.Tree2N ( Tree2N(..)+                         , Tree2NClass(..)+                         , Treed(..)+                         , VecTree+                         , fold2NTree+                         , Data.ProxN.Tree2N.fromList+                         , depth+                         , size+                         , tree0+                         , tree1+                         , tree2+                         , tree3 ) where++import Data.ProxN.VecN+import Data.ProxN.Pretty+import Data.ProxN.Show1++import Data.Functor+import Control.Applicative++import qualified Data.ProxN.Peano as P++  -- Tree with branching factor 2^N+data Tree2N n a = Tree2NBranch !a !(Treed n (Tree2N n a))+                | Tree2NLeaf++instance (Tree2NClass n) => Functor (Tree2N n) where+  fmap _ Tree2NLeaf = Tree2NLeaf+  fmap f (Tree2NBranch a t) = Tree2NBranch (f a) (fmap (fmap f) t)++instance (Tree2NClass n) => Applicative (Tree2N n) where+  pure a = Tree2NBranch a (pure Tree2NLeaf)+  Tree2NLeaf <*> _ = Tree2NLeaf+  _ <*> Tree2NLeaf = Tree2NLeaf+  (Tree2NBranch f tf) <*> (Tree2NBranch a ta) = Tree2NBranch (f a) (fmap (<*>) tf <*> ta)++instance (Show a, Tree2NClass n) => Show (Tree2N n a) where+  show Tree2NLeaf = "Tree2NLeaf"+  show (Tree2NBranch a t) = "Tree2NBranch " ++ show a ++ " " ++ show1 t++instance (Tree2NClass n) => Pretty1 (Tree2N n) where+  prettyPrint1 Tree2NLeaf = prettyPut "_" >> prettyNl+  prettyPrint1 (Tree2NBranch a tr) = do+    prettyPrint a+    prettyNl+    prettyIndent (prettyPrint1 tr)++instance (Tree2NClass n, Pretty a) => Pretty (Tree2N n a) where+  prettyPrint = prettyPrint1++instance Functor (Treed P.Zero) where+  fmap f (TreeNil a) = TreeNil (f a)++instance (Functor (Treed n)) => Functor (Treed (P.Succ n)) where+  fmap f (t1 :/\: t2) = fmap f t1 :/\: fmap f t2++instance Applicative (Treed P.Zero) where+  pure = TreeNil+  (TreeNil f) <*> (TreeNil a) = TreeNil (f a)++instance (Applicative (Treed n)) => Applicative (Treed (P.Succ n)) where+  pure a = pure a :/\: pure a+  (f1 :/\: f2) <*> (a :/\: b) = (f1 <*> a) :/\: (f2 <*> b)++instance Show1 (Treed P.Zero) where+  show1 (TreeNil a) = show a++instance (Show1 (Treed n)) => Show1 (Treed (P.Succ n)) where+  show1 (t1 :/\: t2) = "(" ++ show1 t1 ++ " :/\\: " ++ show1 t2 ++ ")"++instance Pretty1 (Treed P.Zero) where+  prettyPrint1 (TreeNil a) = prettyPrint a++instance (Pretty1 (Treed n)) => Pretty1 (Treed (P.Succ n)) where+  prettyPrint1 (t1 :/\: t2) = do+    prettyPut "(" >> prettyNl+    prettyIndent $ do+      prettyPrint1 t1+      prettyNl+      prettyPrint1 t2+    prettyNl+    prettyPut ")" >> prettyNl++insertNode :: (Ord a, Tree2NClass n) =>+              VecN n a -> VecTree n a -> VecTree n a+insertNode v Tree2NLeaf = Tree2NBranch v (pure Tree2NLeaf)+insertNode v1 (Tree2NBranch v2 r) = Tree2NBranch v2 $ swapNode (insertNode v1) v1 v2 r++class (Functor (Treed n), Applicative (Treed n),+       Show1 (Treed n), Pretty1 (Treed n)) => Tree2NClass n where+  data Treed n :: * -> *+  swapNode :: (Ord a) => (b -> b) -> VecN n a -> VecN n a -> Treed n b -> Treed n b+  foldTree :: (a -> b) -> VecN n (b -> b -> b) -> Treed n a -> b+  chooseNode :: (Ord a) => VecN n a -> VecN n a -> Treed n b -> b++instance Tree2NClass P.Zero where+  data Treed P.Zero a = TreeNil a+  swapNode f VecNil VecNil (TreeNil !b) = TreeNil (f b)+  foldTree f VecNil (TreeNil !a) = f a+  chooseNode VecNil VecNil (TreeNil !b) = b++instance (Tree2NClass n) => Tree2NClass (P.Succ n) where+  data Treed (P.Succ n) a = Treed n a :/\: Treed n a+  swapNode f (!a1 :<: (!v1)) (!a2 :<: (!v2)) (!t1 :/\: (!t2)) =+    if a1 < a2 then swap t1 :/\: t2 else t1 :/\: swap t2+    where swap = swapNode f v1 v2+  foldTree f (g :<: v) (t1 :/\: t2) = g (foldTree f v t1) (foldTree f v t2)+  chooseNode (!a1 :<: (!v1)) (!a2 :<: (!v2)) (!t1 :/\: (!t2)) =+    if a1 < a2 then choose t1 else choose t2+    where choose = chooseNode v1 v2++fromList :: (Ord a, Tree2NClass n) =>+            [VecN n a] -> VecTree n a+fromList = foldl (flip insertNode) Tree2NLeaf++tree0 :: Tree2N P.Zero Int+tree0 = Tree2NLeaf++tree1 :: Tree2N P.One Int+tree1 = Tree2NBranch 0+        (TreeNil Tree2NLeaf :/\: TreeNil Tree2NLeaf)++tree2 :: Tree2N P.Two Int+tree2 = Tree2NBranch 0+        (+          (TreeNil Tree2NLeaf :/\:+           TreeNil Tree2NLeaf+          ) :/\:+          (TreeNil Tree2NLeaf :/\:+           TreeNil Tree2NLeaf+          )+        )++tree3 :: Tree2N P.Three Int+tree3 = Tree2NBranch 0+        (+          (+            (TreeNil Tree2NLeaf :/\:+             TreeNil Tree2NLeaf+            ) :/\:+            (TreeNil Tree2NLeaf :/\:+             TreeNil Tree2NLeaf+            )+          ) :/\:+          (+            (TreeNil Tree2NLeaf :/\:+             TreeNil Tree2NLeaf+            ) :/\:+            (TreeNil Tree2NLeaf :/\:+             TreeNil Tree2NLeaf+            )+          )+        )+++type VecTree n a = Tree2N n (VecN n a)++fold2NTree :: (Tree2NClass n) =>+              b -> VecN n (b -> b -> b) -> (a -> b -> b) -> Tree2N n a -> b+fold2NTree b _ _ Tree2NLeaf = b+fold2NTree b fs g (Tree2NBranch a t) =+  g a . foldTree id fs . fmap (fold2NTree b fs g) $ t++depth :: (Tree2NClass n, VecNClass n) => Tree2N n a -> Int+depth = fold2NTree 0 (pure max) (const succ)++size :: (Tree2NClass n, VecNClass n) => Tree2N n a -> Int+size = fold2NTree 0 (pure (+)) (const succ)
+ src/Data/ProxN/VecN.hs view
@@ -0,0 +1,73 @@+{-# LANGUAGE FlexibleContexts, TypeFamilies, MultiParamTypeClasses, FunctionalDependencies, FlexibleInstances, GADTs, UndecidableInstances #-}++module Data.ProxN.VecN ( VecNClass(..)+                       , VecN(..)+                       ) where++import Data.ProxN.Pretty++import Control.Applicative+import Control.Monad(liftM2)+import Data.Functor+import Data.Foldable+import Data.Monoid++import qualified Data.ProxN.Peano as P++--data VecNil a = VecNil+--data VecTCons v a = !a :<: !(v a)++instance Show (VecN P.Zero a) where+  show = const "[]"++instance (Show a, Show (VecN n a)) => Show (VecN (P.Succ n) a) where+  show (a :<: v) = "[" ++ show a ++ "]" ++ show v++instance Functor (VecN P.Zero) where+  fmap _ VecNil = VecNil++instance (Functor (VecN n)) => Functor (VecN (P.Succ n)) where+  fmap f (a :<: v) = f a :<: fmap f v++instance Foldable (VecN P.Zero) where+  foldMap _ VecNil = mempty++instance (Foldable (VecN n)) => Foldable (VecN (P.Succ n)) where+  foldMap f (a :<: v) = f a `mappend` foldMap f v++instance Applicative (VecN P.Zero) where+  pure _ = VecNil+  (<*>) _ _ = VecNil++instance (Applicative (VecN n)) => Applicative (VecN (P.Succ n)) where+  pure a = a :<: pure a+  (f :<: v1) <*> (a :<: v2) = f a :<: (v1 <*> v2)++instance (Show a) => Pretty (VecN P.Zero a) where+  prettyPrint = prettyPut . show++instance (Show a, Show (VecN n a)) => Pretty (VecN (P.Succ n) a) where+  prettyPrint = prettyPut . show++class ( P.Peano n+      , Applicative (VecN n)+      , Functor (VecN n)) => VecNClass n where+  data VecN n :: * -> *+  distance2 :: (Num a) => VecN n a -> VecN n a -> a  +  vecCartProd :: VecN n [a] -> [VecN n a]+  fromList :: [a] -> Maybe (VecN n a)++instance (VecNClass r) => VecNClass (P.Succ r) where+  data VecN (P.Succ r) a = !a :<: !(VecN r a)+  distance2 (a :<: v1) (b :<: v2) = (a - b) ^ (2 :: Int) + distance2 v1 v2+  vecCartProd (as :<: vs) = liftM2 (:<:) as (vecCartProd vs)+                        -- [ a :<: v | a <- as+                        --           , v <- vecCartProd vs ]+  fromList [] = Nothing+  fromList (a : as) = (a :<:) <$> fromList as++instance VecNClass P.Zero where+  data VecN P.Zero a = VecNil+  distance2 _ _ = 0+  vecCartProd VecNil = [VecNil]+  fromList _ = Just VecNil