packages feed

Ketchup (empty) → 0.1.0

raw patch · 77 files changed

+912/−0 lines, 77 filesdep +basedep +bytestringdep +containerssetup-changedbinary-added

Dependencies added: base, bytestring, containers, network

Files

+ .git/COMMIT_EDITMSG view
@@ -0,0 +1,1 @@+Removed some oleg sauce
+ .git/FETCH_HEAD view
+ .git/HEAD view
@@ -0,0 +1,1 @@+ref: refs/heads/master
+ .git/config view
@@ -0,0 +1,11 @@+[core]+	repositoryformatversion = 0+	filemode = true+	bare = false+	logallrefupdates = true+[remote "origin"]+	url = git@github.com:Hamcha/ketchup.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,49 @@+#!/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 --bool 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+	cat <<\EOF+Error: Attempt to add a non-ASCII file name.++This can cause problems if you want to work with people on other platforms.++To be portable it is advisable to rename the file.++If you know what you are doing you can disable this check using:++  git config hooks.allownonascii true+EOF+	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-push.sample view
@@ -0,0 +1,54 @@+#!/bin/sh++# An example hook script to verify what is about to be pushed.  Called by "git+# push" after it has checked the remote status, but before anything has been+# pushed.  If this script exits with a non-zero status nothing will be pushed.+#+# This hook is called with the following parameters:+#+# $1 -- Name of the remote to which the push is being done+# $2 -- URL to which the push is being done+#+# If pushing without using a named remote those arguments will be equal.+#+# Information about the commits which are being pushed is supplied as lines to+# the standard input in the form:+#+#   <local ref> <local sha1> <remote ref> <remote sha1>+#+# This sample shows how to prevent push of commits where the log message starts+# with "WIP" (work in progress).++remote="$1"+url="$2"++z40=0000000000000000000000000000000000000000++IFS=' '+while read local_ref local_sha remote_ref remote_sha+do+	if [ "$local_sha" = $z40 ]+	then+		# Handle delete+		:+	else+		if [ "$remote_sha" = $z40 ]+		then+			# New branch, examine all commits+			range="$local_sha"+		else+			# Update to existing branch, examine new commits+			range="$remote_sha..$local_sha"+		fi++		# Check for WIP commit+		commit=`git rev-list -n 1 --grep '^WIP' "$range"`+		if [ -n "$commit" ]+		then+			echo "Found WIP commit in $local_ref, not pushing"+			exit 1+		fi+	fi+done++exit 0
+ .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/local/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/local/bin/perl -i.bak -ne 's/^/# /, s/^# #/#/ if /^Conflicts/ .. /#/; print' "$1" ;;++# ,|template,)+#   /usr/local/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 → 512 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 c1ef5202b4e0351ba9c95229c0edf7dfbfb9bb33 Hamcha <zikyky@gmail.com> 1400868061 +0200	commit (initial): Base commit (most code from httpd)+c1ef5202b4e0351ba9c95229c0edf7dfbfb9bb33 b197449e22aa6e00dcbb765294c13b957ad35207 Hamcha <zikyky@gmail.com> 1400868225 +0200	commit: Took some useless stuff out+b197449e22aa6e00dcbb765294c13b957ad35207 622888f76a4bd37398710e1590463719c2129297 Hamcha <zikyky@gmail.com> 1400868258 +0200	commit: .gitignore to avoid commiting binaries or object files+622888f76a4bd37398710e1590463719c2129297 d752cbde2090cf51b382e0060e0d13a90ef9dfa8 Hamcha <zikyky@gmail.com> 1400871180 +0200	commit: Basic routing should work+d752cbde2090cf51b382e0060e0d13a90ef9dfa8 708b4d9119f776f28cc85a2a0f58b4bf1c1e7b43 Hamcha <zikyky@gmail.com> 1400871591 +0200	commit: Added types+708b4d9119f776f28cc85a2a0f58b4bf1c1e7b43 722f61d1774f7fbd456a5ab611c54408e61f2cc6 Hamcha <zikyky@gmail.com> 1400872235 +0200	commit: Replaced incorrect 400 errors with 404 ones+722f61d1774f7fbd456a5ab611c54408e61f2cc6 1093f2858a4572a7a141c96f251f273da4d55c89 Hamcha <zikyky@gmail.com> 1400884141 +0200	commit: Removed some oleg sauce
+ .git/logs/refs/heads/master view
@@ -0,0 +1,7 @@+0000000000000000000000000000000000000000 c1ef5202b4e0351ba9c95229c0edf7dfbfb9bb33 Hamcha <zikyky@gmail.com> 1400868061 +0200	commit (initial): Base commit (most code from httpd)+c1ef5202b4e0351ba9c95229c0edf7dfbfb9bb33 b197449e22aa6e00dcbb765294c13b957ad35207 Hamcha <zikyky@gmail.com> 1400868225 +0200	commit: Took some useless stuff out+b197449e22aa6e00dcbb765294c13b957ad35207 622888f76a4bd37398710e1590463719c2129297 Hamcha <zikyky@gmail.com> 1400868258 +0200	commit: .gitignore to avoid commiting binaries or object files+622888f76a4bd37398710e1590463719c2129297 d752cbde2090cf51b382e0060e0d13a90ef9dfa8 Hamcha <zikyky@gmail.com> 1400871180 +0200	commit: Basic routing should work+d752cbde2090cf51b382e0060e0d13a90ef9dfa8 708b4d9119f776f28cc85a2a0f58b4bf1c1e7b43 Hamcha <zikyky@gmail.com> 1400871591 +0200	commit: Added types+708b4d9119f776f28cc85a2a0f58b4bf1c1e7b43 722f61d1774f7fbd456a5ab611c54408e61f2cc6 Hamcha <zikyky@gmail.com> 1400872235 +0200	commit: Replaced incorrect 400 errors with 404 ones+722f61d1774f7fbd456a5ab611c54408e61f2cc6 1093f2858a4572a7a141c96f251f273da4d55c89 Hamcha <zikyky@gmail.com> 1400884141 +0200	commit: Removed some oleg sauce
+ .git/logs/refs/remotes/origin/master view
@@ -0,0 +1,6 @@+0000000000000000000000000000000000000000 c1ef5202b4e0351ba9c95229c0edf7dfbfb9bb33 Hamcha <zikyky@gmail.com> 1400868072 +0200	update by push+c1ef5202b4e0351ba9c95229c0edf7dfbfb9bb33 622888f76a4bd37398710e1590463719c2129297 Hamcha <zikyky@gmail.com> 1400868261 +0200	update by push+622888f76a4bd37398710e1590463719c2129297 d752cbde2090cf51b382e0060e0d13a90ef9dfa8 Hamcha <zikyky@gmail.com> 1400871184 +0200	update by push+d752cbde2090cf51b382e0060e0d13a90ef9dfa8 708b4d9119f776f28cc85a2a0f58b4bf1c1e7b43 Hamcha <zikyky@gmail.com> 1400871595 +0200	update by push+708b4d9119f776f28cc85a2a0f58b4bf1c1e7b43 722f61d1774f7fbd456a5ab611c54408e61f2cc6 Hamcha <zikyky@gmail.com> 1400872238 +0200	update by push+722f61d1774f7fbd456a5ab611c54408e61f2cc6 1093f2858a4572a7a141c96f251f273da4d55c89 Hamcha <zikyky@gmail.com> 1400884145 +0200	update by push
+ .git/objects/02/ffa07f6990f74dafd8c9ce6d8fa39b0976d598 view

binary file changed (absent → 34 bytes)

+ .git/objects/10/93f2858a4572a7a141c96f251f273da4d55c89 view

binary file changed (absent → 167 bytes)

+ .git/objects/11/c683f96aaed8fc5cad03cb58c5d1a5cec5f501 view

binary file changed (absent → 1791 bytes)

+ .git/objects/23/8fd86cd3c476d75eec0d7ae736adb96dd1cc60 view

binary file changed (absent → 1770 bytes)

+ .git/objects/24/e1f1b0b0f51b252eebca5b168a4e17b4700a4c view

binary file changed (absent → 115 bytes)

+ .git/objects/2c/b647573d63d84667f629ea1e26e53bd3f16e44 view

binary file changed (absent → 116 bytes)

+ .git/objects/32/4d07aa12666c2f03139f626361d1a810c45bc1 view
@@ -0,0 +1,1 @@+xÅRÁn1͉˜:—»í¡AÑ	Ò(¨)4"ôPEž²«zmÇ7 (ÿÞ1¹¥×ø`Ù~3OïÍóJÛ\|ÎOž{§ð}4»ù9º¹†Ñk+ª{ò•Ù8í½´[íVmUÔSYx*Ñcz¬jg=Ác”ºú]¡‚¯’d¼#lºA¿U6•.áÓW^×-ÒºŒ®?!rê?øÜFb‘IJ)b}¥Qàñœô²ð”m·o@£æèôn_ò)ÏááL\YCh¨·Ø9]x„[ÊJªµXv–Lœ5­&†ƒët<Ì?YKâæbÍ\臿lL"⑫!SG¯» Šl5,²C™X6¼1OôUjJV6‘Þ×Iùq8©€uof²F0¼±EÆÐQù<ûÁ¶Ã6¶§#2³Tr@ÀˆkvµA45‰’ß§}míŸè@Ā^’Ksðœ.z.ÙR^+j‚ît¯ûIe—ûF֚æÖá©òoMß4…ºâÌd±¸q.`ò†Ïÿ°mé
+ .git/objects/36/d1bfaedb400023ee2b6ced7d3847183c454838 view
@@ -0,0 +1,2 @@+x¥TÁn›@í‰xr"$›¶RUU–¨”¸MR5vªÄU–³.(K–%¶[÷ß;€—‚kÔHå`Ïî̼y3oà^È{¼~óê틟Ã\ŸM/¿ž]~ÄÍWB²€wZEÉ÷'Ã_¶e[±rÁñ™ëe˜§Þ­Ì5¹mˁ"“Û–‹uȶũT9Ñ*â>0Í¼ó­æ¨7™z–aÜ<aiáŸÔ~ԏ¡p¥uñO¹^KõP)©a4ÂÜ7êàÜÉå×¾ÇÕlöå–?æ<+ÎÄ+j7Ã[·ÈùtÇu݅m•¬è¦°Š5\拺%MTíkûÈxL¥¾y òš4GÊ^2wï0iƒbFºÀÉUd<.œµ¤\øp2B$ë ä)R¦XœÏ3ÐR“®ë(ã5ó?†_©_ýføåڔ¼HÖ@i`‡çs)mYž+ÍãT0ÍáW<hX8ŏ(ýéKuФAÇiiTÁûM,xšÈ
¶•¯¸ÜaßǶ°Û™Êi‰ÍíRa>ö’\lD»´6šêY+t셜KØýQß`Pè_ 3mÖÍùT6KE¤ÑÙ/z®ø™ž	¿é7“+Æ¿×÷óÿÇÚ×PÇ´™x+%ãëˆÖí«Hh®à$RÃ3óò@»è6Tœ>/üé9+Ö¡vãôzƒ^ÏmªØ-
}4‹Jq7­”®½§×©‰ÿŸ*ý¡X™,
+ .git/objects/45/3bd93c26a9e271a06ba2646d2fed80284a3d7e view

binary file changed (absent → 122 bytes)

+ .git/objects/45/fa42399476a801f23b96599909ab8939757cd4 view

binary file changed (absent → 156 bytes)

+ .git/objects/56/2c5d11641eeb9f7ae77cd0d177fd8c947ed1e9 view

binary file changed (absent → 116 bytes)

+ .git/objects/58/4b0ea086479c87718b10715c5375a4715e6965 view

binary file changed (absent → 156 bytes)

+ .git/objects/5c/ad4e38d5d9795fd867fe17bdc34c18ac26dfc6 view

binary file changed (absent → 116 bytes)

+ .git/objects/62/2888f76a4bd37398710e1590463719c2129297 view
@@ -0,0 +1,2 @@+x•ŽMJ1F]絆êt~AĥרTjzʙt$…ñô6x·ï}<î­éë×§9D€ÏR}
¸HäÂB޳çàmMÁ§Õ‘Í™ù¤!û„²äè\k‰‚ V.%óìxYKö‘êê-FC_óÒ¼SãÁˏ^×ÇÛÖHo'î퇘B²>Á3ZDsÐ#mÊ¿$sÚtê¶÷!0;Ðw×+OºoPt§¡r‡#¥—á	g½ÉÝü|7Q,
+ .git/objects/63/3f2583dc912547dc4bbb06de8bd1a7c275fcf2 view

binary file changed (absent → 1874 bytes)

+ .git/objects/66/5fba0e7ceccafda2b2a4e92e342ff2cbfe8247 view
@@ -0,0 +1,2 @@+x+)JMU041c040031QÐKÏ,ÉLÏË/Je`ú¿ >sÂwßõ7NžËí_<›³ìê PðN-IÎ(-`˜¼Æò¡EóÃÕ%óËz+¹³EHÚBÍñMÌNMËÌIeh|oz}ž³³»Èª¥%·øW~—˃ªI­HÌ-ÈIÕË(f0òe_%”–£Ï,<?)9ñâ+#ÑÍ:
+ .git/objects/69/367db2a6835d21762b09eec97395dd0f1d503e view

binary file changed (absent → 1759 bytes)

+ .git/objects/70/8b4d9119f776f28cc85a2a0f58b4bf1c1e7b43 view
@@ -0,0 +1,2 @@+x•ÎM+Â0@a×9Åì™ü5ѝט&[jl©qQOo¯àöÁ/͵Ž
ŒÆC[EÀùÂÎX":ލ‹±=užˆ¸d)ø²S¯òjƒ7©Ïb0¯{ v(˜µeB)”Gş6Ì+ܹ¦áü§mÚ®Êãó”æzícО4Ñ ª½îkMþBꖳdhÛ"oõÌP@Ú
+ .git/objects/72/2f61d1774f7fbd456a5ab611c54408e61f2cc6 view

binary file changed (absent → 181 bytes)

+ .git/objects/81/ef35d79e1603434714aaa57410da0fa9f71e6e view

binary file changed (absent → 82 bytes)

+ .git/objects/85/2ae7db61bff45b972b9a21023e162f5003d74d view
@@ -0,0 +1,1 @@+x…±jÃ0†;ü?dIi	H!vK†–v¡³b"m9'¹¥”¾{%7„vª¶Ó}Ü}ÿ[Ärµºù3<mŸw‡íî/oÄ­Wšô>²ëO3ñUeÑy=¶„GŠyˆ®
e1G¢º²XàÝS]7xŽ8ªuƑƽŠJV‘~&BTÿc²¶Šo3\_a\ß43˜»°TC‹¼[d1˜±o¢ó=ŒçɰKQ’¢‹2þƒ¥”“SŠœë5ªßšâîO}¡600e‘U¦ÌécƒZ2¥ËJÍZjöëué\¹okßsð
+ .git/objects/8a/4e26e09c96d9bd95bbefa4c2cde4fbf8087382 view
@@ -0,0 +1,1 @@+xKÊÉOR0·`HÌɱRH­HÌ-ÈIååâå‚2­x¹8Ó3’a2zÅ ÉäœÔÄ<TQ®‚–^¾‚–>˜ÔËÈ332Ißå
+ .git/objects/93/ac39e13883ec31ab749f768d790b6b14a0193d view

binary file changed (absent → 116 bytes)

+ .git/objects/a4/52888e3b29d25f2f4b06e3f1cae1ddba210add view
@@ -0,0 +1,1 @@+xEÐAKÃ0`σþ‡ì¢²vUAv¨…UeŠÎƒ”ÒæÓ²¤K¿¨Cüï&ÛԜBÞäɛÔÊÔpv~rðávz7{žÎ®áþ­2\ x"+õ[Ãø;Dƒ•N!,¸ÔðѢŰ(W±ÿã©i]—̉:ñ—¯WòU¢€+N<)6„;xE€Z®…×[-Àâ.@˜hصxÄNm¶ÙišByÈ.&Ô/7²QÉ?iÜÒJ±ê¨ò@ßÝû‚Øw
ÓßÀóEÒÝp‚’e§Ðæ/ƅ»öä‹fuÎFÎªËÆuž÷›XµS}âge8²ýžð/¡6(é=_.€3˜¤“vÏû}«q1
+ .git/objects/b1/97449e22aa6e00dcbb765294c13b957ad35207 view
@@ -0,0 +1,3 @@+x•ÎM+Â0@a×9Åì™N~ڀˆKà&ÉDK‘&]èéõ+n|ðb-eî@äv}cuH^Grì…ÆÑ&g\¢,iBšë4Šzñ*Ïql	)Am‡À>zKä#JÊcÊ!‚ÖŠ·~¯+\¸Ä;Ãñ3/ïå}¾ž‡XË	ƒ8¹‰ÈÂ	Qýêo­Ë_H]k] Õ"°5yHkÐú–3Ô­«/THg
+ .git/objects/b6/3279c85b76f94cc28de65c1a8c2f65c1814e7e view

binary file changed (absent → 156 bytes)

+ .git/objects/c1/ef5202b4e0351ba9c95229c0edf7dfbfb9bb33 view
@@ -0,0 +1,2 @@+x•ŽA+Â0E]ç³T™1i’‚ˆ¸òcšÚR‡H;.êé
x—ïÃã¿TDFŠÍF眡·lŠÎg—{fËÔ¶!4xGJb²žÉІß:”n,i`8}ÆiÖËCx|R‘3CŒ>¢'ØãÑÔµ^iþK2W^2üTØJY´BW;ç"0¨¾ºù„¢;U
+ .git/objects/c6/56325a56d86c044bb5136b9e8dafa421c4f758 view

binary file changed (absent → 557 bytes)

+ .git/objects/cf/ed5d601e7c6661a4c95c652d865834a2960cc4 view
@@ -0,0 +1,1 @@+x+)JMU041c040031QÐKÏ,ÉLÏË/Je`ú¿ >sÂwßõ7NžËí_<›³ìê PðN-IÎ(-`xûîý„½¦+%՜Oû_ýöC\~í¨9¾‰Ù©i™9©ïM¯ÏcvvYµ´DàÿÊïryP5©‰¹9©zÅK‚:ú¬5/Åë{³=þxêáÝ]Š\w“]>¿
+ .git/objects/d7/52cbde2090cf51b382e0060e0d13a90ef9dfa8 view
@@ -0,0 +1,1 @@+x•ÎMjÃ0@á®uŠÙÊh¬èB	Yõãñ(Ž¢¢È”ôôõº}ðÁ“Vk@äÞFWïOyfÔ *Âyaš‰&ÒÉQÎ$sÖH.˜oîúà‰bŒ9xvó2…)Å`Qí)¡óS°IÈR¢ïcm¾¸ÊÊpþ-Ûk{]n•ËýCZýël#Â;¢9ê±6ô_È\ùYzÛGyÜ๶ý¾ÀOë›ù:©F¤
+ .git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 view

binary file changed (absent → 15 bytes)

+ .git/objects/e8/7a4422a7db2bee721ce1a88d5286ca1570d36a view

binary file changed (absent → 560 bytes)

+ .git/objects/ed/eeef90bd35a9192643cb4fd5f6e108171fadb4 view

binary file changed (absent → 116 bytes)

+ .git/objects/f3/073c846e4efaa3a1997750b01c078c36a14718 view

binary file changed (absent → 122 bytes)

+ .git/objects/fb/f8eefabf8c61b21569f198ed873cc8558acd68 view
@@ -0,0 +1,3 @@+x¥SMOÜ0í9RþÃӂ´‰ié©BÊҖJe[	Zõ€8ìm,9qðìÒíg’¬Ó
%R¥úŒ<ožß¼±o”¾ÁÑÑÛ7¯~îáüäËÙ÷“³øz/ŒÒŒ~錬ZìþŽ£8ª4÷Jà³p·¥o²í¥ã(¡PÄQЇR+âHV6wž)¹”‚ã=s,;];ѓfEÉÌ;0‹b+¼`M›_y+Høä\ÃÛã:¸º%«9i5âÎëÃŠšŸ2~±Ýèó¡01ǃM1.Œ£–qƒŠQÏH¼‘2E²$b“wbkÞFãZì£a†Uöåº@­yö ­´ÿ	òÞÙþkŸñw#éty£àDÕ(æòž˜ú'²ù!]‰[]‘BÒßY¸ªé‚¼[{p@®°îsíæ+ä9Öm<^9¾O»hƒ«"«½RX`­®É¦LÙ´ÈJÁ8Ñ÷üx8úé„I#Ò¡¹œŽµ’ó×ó¶ç^_è™øwóÁ¹ÖÏíÀ^2t‘-®Î%
}K©œ0Hj퐅&3ЍHw\7‚¸ÿÛè3ß§ÝLf³ƒÙ,ݵ~ÚϤȓÝDV£’©ÛG—z—ÿ?­} ¹Cn
+ .git/refs/heads/master view
@@ -0,0 +1,1 @@+1093f2858a4572a7a141c96f251f273da4d55c89
+ .git/refs/remotes/origin/master view
@@ -0,0 +1,1 @@+1093f2858a4572a7a141c96f251f273da4d55c89
+ .gitignore view
@@ -0,0 +1,3 @@+*.hi
+*.o
+example
+ Ketchup.cabal view
@@ -0,0 +1,29 @@+Name:           Ketchup
+Version:        0.1.0
+Cabal-Version:  >= 1.6
+Build-Type:     Simple
+License:        MIT
+License-File:   LICENSE
+Author:         Alessandro Gatti
+Maintainer:     zikyky@gmail.com
+Homepage:       https://github.com/Hamcha/Ketchup
+Category:       Web, Ketchup
+Synopsis:       A super small web framework for those who don't like big and fancy codebases
+
+Library
+  Exposed-Modules:
+    Ketchup.Httpd,
+    Ketchup.Routing
+
+  Other-Modules:
+    Ketchup.Utils
+
+  Build-Depends:
+    base          ==4.*,
+    containers    >=0.2 && <0.6,
+    network        <2.5,
+    bytestring    >=0.9 && <0.11
+
+Source-Repository head
+  type:       git
+  location:   git://github.com/Hamcha/Ketchup.git
+ Ketchup/Httpd.hs view
@@ -0,0 +1,138 @@+{-# LANGUAGE OverloadedStrings #-}
+
+module Ketchup.Httpd
+( HTTPRequest
+, method, uri, httpver, headers
+, statusMsg
+, sendReply
+, listenHTTP
+, sendBadRequest
+, sendNotFound
+) where
+
+import           Control.Concurrent (forkIO)
+import qualified Data.ByteString as B
+import qualified Data.ByteString.Char8 as C
+import qualified Data.Map as Map
+import qualified Data.List as List
+import           Network
+import qualified Network.Socket as NS
+import           Network.Socket.ByteString
+import           Ketchup.Utils
+import           System.IO
+
+-- HTTP Request type
+data HTTPRequest = HTTPRequest { method  :: B.ByteString
+                               , uri     :: B.ByteString
+                               , httpver :: B.ByteString
+                               , headers :: Map.Map B.ByteString [B.ByteString]
+                               } deriving (Show)
+
+-- Returns status message from status id
+statusMsg :: Int -> B.ByteString
+statusMsg stat
+    -- 200 Success
+    | stat == 200 = "200 OK"
+    | stat == 201 = "201 Created"
+    | stat == 204 = "204 No Content"
+    -- 400 Client Errors
+    | stat == 400 = "400 Bad Request"
+    | stat == 403 = "403 Forbidden"
+    | stat == 404 = "404 Not Found"
+    | stat == 405 = "405 Method Not Allowed"
+    | stat == 410 = "410 Gone"
+    -- 500 Server Errors
+    | stat == 500 = "500 Internal Server Error"
+    | stat == 501 = "501 Not Implemented"
+    | stat == 502 = "502 Bad Gateway"
+    | stat == 503 = "503 Service Unavailable"
+    | otherwise   = "500 Internal Server Error"
+
+sendBadRequest :: Socket -> IO ()
+sendBadRequest client = do
+    sendReply client 400 [("Content-Type",["text/plain"])] "400 Bad Request!\n"
+
+sendNotFound :: Socket -> IO ()
+sendNotFound client = do
+    sendReply client 404 [("Content-Type",["text/plain"])] "404 Not Found!\n"
+
+-- Sends HTTP reply
+sendReply :: Socket -> Int -> [(B.ByteString, [B.ByteString])] -> B.ByteString -> IO ()
+sendReply client status headers body = do
+    sendAll client reply
+    where
+    reply = B.concat ["HTTP/1.1 ", statusMsg status,"\r\n\
+        \Server: Ketchup\r\n\
+        \Content-Length: ", C.pack $ show $ C.length body, "\r\n\
+        \Connection: close\r\n",heads,"\r\n",body]
+    -- Turn ("a", ["b", "c"]) headers into "a: b,c"
+    heads = B.concat $ map (\x -> B.concat [fst x, ": ", B.concat $ List.intersperse "," $ snd x, "\r\n"]) headers
+
+-- Parses header lines
+parseRequestLine :: B.ByteString -> (B.ByteString, [B.ByteString])
+parseRequestLine line =
+    (property, values)
+    where
+    property = head items
+    values = C.split ',' $ (trim . last) items
+    items = C.split ':' line
+
+-- Gets all request lines
+getRequest :: Socket -> IO [B.ByteString]
+getRequest client = do
+    content <- recv client 1024
+    return $ C.lines content
+
+-- Parses requests
+parseRequest :: [B.ByteString] -> HTTPRequest
+parseRequest reqlines =
+    HTTPRequest { method=met, uri=ur, httpver=ver, headers=heads }
+    where
+    [met, ur, ver] = (C.words . head) reqlines -- First line is METHOD URI VERSION
+    heads = Map.fromList $ map parseRequestLine $ tail reqlines
+
+-- Handles each client request
+handleRequest :: Socket -> (Socket -> HTTPRequest -> IO ()) -> IO ()
+handleRequest client cback = do
+    reqlines <- getRequest client
+    case length reqlines of
+        0 -> sendBadRequest client
+        _ -> cback client $ parseRequest reqlines
+    sClose client
+
+-- Acceptor
+acceptAll :: Socket -> (Socket -> HTTPRequest -> IO ()) -> IO ()
+acceptAll sock cback = do
+    (client, _) <- NS.accept sock
+    handleRequest client cback
+    acceptAll sock cback
+
+-- Creates Acceptor pools
+createAcceptorPool :: Socket -> Int -> (Socket -> HTTPRequest -> IO ()) -> IO ()
+createAcceptorPool sock max cback =
+    case max of
+        0 -> acceptAll sock cback
+        x -> do
+            forkIO $ acceptAll sock cback
+            createAcceptorPool sock (x-1) cback
+
+-- Gets host from hostname string
+getHostaddr :: String -> IO NS.HostAddress
+getHostaddr "*"  = return NS.iNADDR_ANY
+getHostaddr host = NS.inet_addr host
+
+-- Listens for incoming HTTP request
+listenHTTP :: String -> PortNumber -> (Socket -> HTTPRequest -> IO ()) -> IO ()
+listenHTTP hostname port cback = withSocketsDo $ do
+    -- Get hostname
+    host <- getHostaddr hostname
+    let addr = NS.SockAddrInet port host
+    -- Prepare Socket
+    sock <- NS.socket NS.AF_INET NS.Stream 0
+    NS.setSocketOption sock NS.ReuseAddr 1
+    NS.setSocketOption sock NS.NoDelay 1
+    -- Bind socket to address and listen
+    NS.bindSocket sock addr
+    NS.listen sock 128
+    createAcceptorPool sock 128 cback
+    sClose sock
+ Ketchup/Routing.hs view
@@ -0,0 +1,40 @@+{-# LANGUAGE OverloadedStrings #-}
+
+module Ketchup.Routing
+( route
+) where
+
+import qualified Data.ByteString.Char8 as C
+import qualified Data.Map as M
+import           Ketchup.Httpd
+import           Network
+
+route :: [(C.ByteString, (Socket -> HTTPRequest -> (M.Map C.ByteString C.ByteString) -> IO ()))]
+         -> (Socket -> HTTPRequest -> IO ())
+route []         handle request = sendNotFound handle
+route (r:routes) handle request
+    | match (uri request) (fst r) = (snd r) handle request $ params (uri request) (fst r)
+    | otherwise                   = route routes handle request
+
+match :: C.ByteString -> C.ByteString -> Bool
+match url template =
+    and $ zipWith compare urlparts tmpparts
+    where
+    compare x y
+        | x == y                  = True
+        | or [C.null y, C.null x] = False
+        | C.head y == ':'         = True
+        | otherwise               = False
+    urlparts = C.split '/' url
+    tmpparts = C.split '/' template
+
+params :: C.ByteString -> C.ByteString -> M.Map C.ByteString C.ByteString
+params url template =
+    M.fromList $ filter (not . C.null . fst) $ zipWith retrieve urlparts tmpparts
+    where
+    retrieve x y
+        | or [C.null y, C.null x] = ("","")
+        | C.head y == ':'         = (C.tail y, x)
+        | otherwise               = ("","")
+    urlparts = C.split '/' url
+    tmpparts = C.split '/' template
+ Ketchup/Utils.hs view
@@ -0,0 +1,14 @@+{-# LANGUAGE OverloadedStrings #-}
+
+module Ketchup.Utils
+( trim
+) where
+
+import qualified Data.ByteString as B
+import qualified Data.ByteString.Char8 as C
+import           Data.Char (isSpace)
+
+-- Util function for trimming whitespace from headers
+trim :: B.ByteString -> B.ByteString
+trim = f . f
+    where f = C.reverse . C.dropWhile isSpace
+ LICENSE view
@@ -0,0 +1,21 @@+The MIT License (MIT)
+
+Copyright (c) 2014 Alessandro Gatti
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+ Makefile view
@@ -0,0 +1,8 @@+all: example
+
+example:
+	ghc example.hs
+
+clean:
+	rm -rf ./example
+	rm -rf *.o */*.o *.hi */*.hi
+ Setup.hs view
@@ -0,0 +1,4 @@+import Ketchup.Httpd
+import Ketchup.Routing
+
+main = defaultMain
+ dist/build/HSKetchup-0.1.0.o view

binary file changed (absent → 113905 bytes)

+ dist/build/Ketchup/Httpd.hi view

binary file changed (absent → 19699 bytes)

+ dist/build/Ketchup/Httpd.o view

binary file changed (absent → 109960 bytes)

+ dist/build/Ketchup/Routing.hi view

binary file changed (absent → 1951 bytes)

+ dist/build/Ketchup/Routing.o view

binary file changed (absent → 19432 bytes)

+ dist/build/Ketchup/Utils.hi view

binary file changed (absent → 2359 bytes)

+ dist/build/Ketchup/Utils.o view

binary file changed (absent → 4424 bytes)

+ dist/build/autogen/Paths_Ketchup.hs view
@@ -0,0 +1,34 @@+module Paths_Ketchup (+    version,+    getBinDir, getLibDir, getDataDir, getLibexecDir,+    getDataFileName+  ) where++import qualified Control.Exception as Exception+import Data.Version (Version(..))+import System.Environment (getEnv)+import Prelude++catchIO :: IO a -> (Exception.IOException -> IO a) -> IO a+catchIO = Exception.catch+++version :: Version+version = Version {versionBranch = [0,1,0], versionTags = []}+bindir, libdir, datadir, libexecdir :: FilePath++bindir     = "/root/.cabal/bin"+libdir     = "/root/.cabal/lib/Ketchup-0.1.0/ghc-7.6.3"+datadir    = "/root/.cabal/share/Ketchup-0.1.0"+libexecdir = "/root/.cabal/libexec"++getBinDir, getLibDir, getDataDir, getLibexecDir :: IO FilePath+getBinDir = catchIO (getEnv "Ketchup_bindir") (\_ -> return bindir)+getLibDir = catchIO (getEnv "Ketchup_libdir") (\_ -> return libdir)+getDataDir = catchIO (getEnv "Ketchup_datadir") (\_ -> return datadir)+getLibexecDir = catchIO (getEnv "Ketchup_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,30 @@+/* DO NOT EDIT: This file is automatically generated by Cabal */++/* package base-4.6.0.1 */+#define VERSION_base "4.6.0.1"+#define MIN_VERSION_base(major1,major2,minor) (\+  (major1) <  4 || \+  (major1) == 4 && (major2) <  6 || \+  (major1) == 4 && (major2) == 6 && (minor) <= 0)++/* package bytestring-0.10.0.2 */+#define VERSION_bytestring "0.10.0.2"+#define MIN_VERSION_bytestring(major1,major2,minor) (\+  (major1) <  0 || \+  (major1) == 0 && (major2) <  10 || \+  (major1) == 0 && (major2) == 10 && (minor) <= 0)++/* package containers-0.5.0.0 */+#define VERSION_containers "0.5.0.0"+#define MIN_VERSION_containers(major1,major2,minor) (\+  (major1) <  0 || \+  (major1) == 0 && (major2) <  5 || \+  (major1) == 0 && (major2) == 5 && (minor) <= 0)++/* package network-2.4.1.2 */+#define VERSION_network "2.4.1.2"+#define MIN_VERSION_network(major1,major2,minor) (\+  (major1) <  2 || \+  (major1) == 2 && (major2) <  4 || \+  (major1) == 2 && (major2) == 4 && (minor) <= 1)+
+ dist/build/libHSKetchup-0.1.0.a view

binary file changed (absent → 148044 bytes)

+ dist/package.conf.inplace view
@@ -0,0 +1,2 @@+[InstalledPackageInfo {installedPackageId = InstalledPackageId "Ketchup-0.1.0-inplace", sourcePackageId = PackageIdentifier {pkgName = PackageName "Ketchup", pkgVersion = Version {versionBranch = [0,1,0], versionTags = []}}, license = MIT, copyright = "", maintainer = "zikyky@gmail.com", author = "Alessandro Gatti", stability = "", homepage = "https://github.com/Hamcha/Ketchup", pkgUrl = "", synopsis = "A super small web framework for those who don't like big and fancy codebases", description = "", category = "Web, Ketchup", exposed = True, exposedModules = ["Ketchup.Httpd","Ketchup.Routing"], hiddenModules = ["Ketchup.Utils"], trusted = False, importDirs = ["/root/ketchup/dist/build"], libraryDirs = ["/root/ketchup/dist/build"], hsLibraries = ["HSKetchup-0.1.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "base-4.6.0.1-f7bdc8987bd5928e0ee6e8cc8b246a88",InstalledPackageId "bytestring-0.10.0.2-59abd9894532f476aabac207680aae43",InstalledPackageId "containers-0.5.0.0-ab1dae9a94cd3cc84e7b2805636ebfa2",InstalledPackageId "network-2.4.1.2-5be4ce21effbb1a11c3b90006afd63d9"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/root/ketchup/dist/doc/html/Ketchup/Ketchup.haddock"], haddockHTMLs = ["/root/ketchup/dist/doc/html/Ketchup"]}+]
+ dist/setup-config view
@@ -0,0 +1,2 @@+Saved package config for Ketchup-0.1.0 written by Cabal-1.16.0 using ghc-7.6+LocalBuildInfo {configFlags = ConfigFlags {configPrograms = [], configProgramPaths = [], configProgramArgs = [], configHcFlavor = Flag GHC, configHcPath = NoFlag, configHcPkg = NoFlag, configVanillaLib = Flag True, configProfLib = Flag False, configSharedLib = Flag False, configDynExe = Flag False, configProfExe = Flag False, configConfigureArgs = [], configOptimization = Flag NormalOptimisation, configProgPrefix = Flag "", configProgSuffix = Flag "", configInstallDirs = InstallDirs {prefix = Flag "/root/.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, configPackageDBs = [], configGHCiLib = Flag True, configSplitObjs = Flag False, configStripExes = Flag True, configConstraints = [Dependency (PackageName "network") (ThisVersion (Version {versionBranch = [2,4,1,2], versionTags = []})),Dependency (PackageName "containers") (ThisVersion (Version {versionBranch = [0,5,0,0], versionTags = []})),Dependency (PackageName "bytestring") (ThisVersion (Version {versionBranch = [0,10,0,2], versionTags = []})),Dependency (PackageName "base") (ThisVersion (Version {versionBranch = [4,6,0,1], versionTags = []}))], configConfigurationsFlags = [], configTests = Flag False, configBenchmarks = Flag False, configLibCoverage = Flag False}, extraConfigArgs = [], installDirTemplates = InstallDirs {prefix = "/root/.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,6,3], versionTags = []}), compilerLanguages = [(Haskell98,"-XHaskell98"),(Haskell2010,"-XHaskell2010")], compilerExtensions = [(UnknownExtension "Haskell98","-XHaskell98"),(UnknownExtension "Haskell2010","-XHaskell2010"),(UnknownExtension "Unsafe","-XUnsafe"),(EnableExtension Trustworthy,"-XTrustworthy"),(EnableExtension Safe,"-XSafe"),(EnableExtension CPP,"-XCPP"),(DisableExtension CPP,"-XNoCPP"),(EnableExtension PostfixOperators,"-XPostfixOperators"),(DisableExtension PostfixOperators,"-XNoPostfixOperators"),(EnableExtension TupleSections,"-XTupleSections"),(DisableExtension TupleSections,"-XNoTupleSections"),(EnableExtension PatternGuards,"-XPatternGuards"),(DisableExtension PatternGuards,"-XNoPatternGuards"),(EnableExtension UnicodeSyntax,"-XUnicodeSyntax"),(DisableExtension UnicodeSyntax,"-XNoUnicodeSyntax"),(EnableExtension MagicHash,"-XMagicHash"),(DisableExtension MagicHash,"-XNoMagicHash"),(EnableExtension PolymorphicComponents,"-XPolymorphicComponents"),(DisableExtension PolymorphicComponents,"-XNoPolymorphicComponents"),(EnableExtension ExistentialQuantification,"-XExistentialQuantification"),(DisableExtension ExistentialQuantification,"-XNoExistentialQuantification"),(EnableExtension KindSignatures,"-XKindSignatures"),(DisableExtension KindSignatures,"-XNoKindSignatures"),(EnableExtension EmptyDataDecls,"-XEmptyDataDecls"),(DisableExtension EmptyDataDecls,"-XNoEmptyDataDecls"),(EnableExtension ParallelListComp,"-XParallelListComp"),(DisableExtension ParallelListComp,"-XNoParallelListComp"),(EnableExtension TransformListComp,"-XTransformListComp"),(DisableExtension TransformListComp,"-XNoTransformListComp"),(UnknownExtension "MonadComprehensions","-XMonadComprehensions"),(UnknownExtension "NoMonadComprehensions","-XNoMonadComprehensions"),(EnableExtension ForeignFunctionInterface,"-XForeignFunctionInterface"),(DisableExtension ForeignFunctionInterface,"-XNoForeignFunctionInterface"),(EnableExtension UnliftedFFITypes,"-XUnliftedFFITypes"),(DisableExtension UnliftedFFITypes,"-XNoUnliftedFFITypes"),(UnknownExtension "InterruptibleFFI","-XInterruptibleFFI"),(UnknownExtension "NoInterruptibleFFI","-XNoInterruptibleFFI"),(UnknownExtension "CApiFFI","-XCApiFFI"),(UnknownExtension "NoCApiFFI","-XNoCApiFFI"),(EnableExtension GHCForeignImportPrim,"-XGHCForeignImportPrim"),(DisableExtension GHCForeignImportPrim,"-XNoGHCForeignImportPrim"),(EnableExtension LiberalTypeSynonyms,"-XLiberalTypeSynonyms"),(DisableExtension LiberalTypeSynonyms,"-XNoLiberalTypeSynonyms"),(EnableExtension Rank2Types,"-XRank2Types"),(DisableExtension Rank2Types,"-XNoRank2Types"),(EnableExtension RankNTypes,"-XRankNTypes"),(DisableExtension RankNTypes,"-XNoRankNTypes"),(EnableExtension ImpredicativeTypes,"-XImpredicativeTypes"),(DisableExtension ImpredicativeTypes,"-XNoImpredicativeTypes"),(EnableExtension TypeOperators,"-XTypeOperators"),(DisableExtension TypeOperators,"-XNoTypeOperators"),(UnknownExtension "ExplicitNamespaces","-XExplicitNamespaces"),(UnknownExtension "NoExplicitNamespaces","-XNoExplicitNamespaces"),(EnableExtension RecursiveDo,"-XRecursiveDo"),(DisableExtension RecursiveDo,"-XNoRecursiveDo"),(EnableExtension DoRec,"-XDoRec"),(DisableExtension DoRec,"-XNoDoRec"),(EnableExtension Arrows,"-XArrows"),(DisableExtension Arrows,"-XNoArrows"),(UnknownExtension "ParallelArrays","-XParallelArrays"),(UnknownExtension "NoParallelArrays","-XNoParallelArrays"),(EnableExtension TemplateHaskell,"-XTemplateHaskell"),(DisableExtension TemplateHaskell,"-XNoTemplateHaskell"),(EnableExtension QuasiQuotes,"-XQuasiQuotes"),(DisableExtension QuasiQuotes,"-XNoQuasiQuotes"),(EnableExtension ImplicitPrelude,"-XImplicitPrelude"),(DisableExtension ImplicitPrelude,"-XNoImplicitPrelude"),(EnableExtension RecordWildCards,"-XRecordWildCards"),(DisableExtension RecordWildCards,"-XNoRecordWildCards"),(EnableExtension NamedFieldPuns,"-XNamedFieldPuns"),(DisableExtension NamedFieldPuns,"-XNoNamedFieldPuns"),(EnableExtension RecordPuns,"-XRecordPuns"),(DisableExtension RecordPuns,"-XNoRecordPuns"),(EnableExtension DisambiguateRecordFields,"-XDisambiguateRecordFields"),(DisableExtension DisambiguateRecordFields,"-XNoDisambiguateRecordFields"),(EnableExtension OverloadedStrings,"-XOverloadedStrings"),(DisableExtension OverloadedStrings,"-XNoOverloadedStrings"),(EnableExtension GADTs,"-XGADTs"),(DisableExtension GADTs,"-XNoGADTs"),(EnableExtension GADTSyntax,"-XGADTSyntax"),(DisableExtension GADTSyntax,"-XNoGADTSyntax"),(EnableExtension ViewPatterns,"-XViewPatterns"),(DisableExtension ViewPatterns,"-XNoViewPatterns"),(EnableExtension TypeFamilies,"-XTypeFamilies"),(DisableExtension TypeFamilies,"-XNoTypeFamilies"),(EnableExtension BangPatterns,"-XBangPatterns"),(DisableExtension BangPatterns,"-XNoBangPatterns"),(EnableExtension MonomorphismRestriction,"-XMonomorphismRestriction"),(DisableExtension MonomorphismRestriction,"-XNoMonomorphismRestriction"),(EnableExtension NPlusKPatterns,"-XNPlusKPatterns"),(DisableExtension NPlusKPatterns,"-XNoNPlusKPatterns"),(EnableExtension DoAndIfThenElse,"-XDoAndIfThenElse"),(DisableExtension DoAndIfThenElse,"-XNoDoAndIfThenElse"),(EnableExtension RebindableSyntax,"-XRebindableSyntax"),(DisableExtension RebindableSyntax,"-XNoRebindableSyntax"),(EnableExtension ConstraintKinds,"-XConstraintKinds"),(DisableExtension ConstraintKinds,"-XNoConstraintKinds"),(UnknownExtension "PolyKinds","-XPolyKinds"),(UnknownExtension "NoPolyKinds","-XNoPolyKinds"),(UnknownExtension "DataKinds","-XDataKinds"),(UnknownExtension "NoDataKinds","-XNoDataKinds"),(UnknownExtension "InstanceSigs","-XInstanceSigs"),(UnknownExtension "NoInstanceSigs","-XNoInstanceSigs"),(EnableExtension MonoPatBinds,"-XMonoPatBinds"),(DisableExtension MonoPatBinds,"-XNoMonoPatBinds"),(EnableExtension ExplicitForAll,"-XExplicitForAll"),(DisableExtension ExplicitForAll,"-XNoExplicitForAll"),(UnknownExtension "AlternativeLayoutRule","-XAlternativeLayoutRule"),(UnknownExtension "NoAlternativeLayoutRule","-XNoAlternativeLayoutRule"),(UnknownExtension "AlternativeLayoutRuleTransitional","-XAlternativeLayoutRuleTransitional"),(UnknownExtension "NoAlternativeLayoutRuleTransitional","-XNoAlternativeLayoutRuleTransitional"),(EnableExtension DatatypeContexts,"-XDatatypeContexts"),(DisableExtension DatatypeContexts,"-XNoDatatypeContexts"),(EnableExtension NondecreasingIndentation,"-XNondecreasingIndentation"),(DisableExtension NondecreasingIndentation,"-XNoNondecreasingIndentation"),(UnknownExtension "RelaxedLayout","-XRelaxedLayout"),(UnknownExtension "NoRelaxedLayout","-XNoRelaxedLayout"),(UnknownExtension "TraditionalRecordSyntax","-XTraditionalRecordSyntax"),(UnknownExtension "NoTraditionalRecordSyntax","-XNoTraditionalRecordSyntax"),(UnknownExtension "LambdaCase","-XLambdaCase"),(UnknownExtension "NoLambdaCase","-XNoLambdaCase"),(UnknownExtension "MultiWayIf","-XMultiWayIf"),(UnknownExtension "NoMultiWayIf","-XNoMultiWayIf"),(EnableExtension MonoLocalBinds,"-XMonoLocalBinds"),(DisableExtension MonoLocalBinds,"-XNoMonoLocalBinds"),(EnableExtension RelaxedPolyRec,"-XRelaxedPolyRec"),(DisableExtension RelaxedPolyRec,"-XNoRelaxedPolyRec"),(EnableExtension ExtendedDefaultRules,"-XExtendedDefaultRules"),(DisableExtension ExtendedDefaultRules,"-XNoExtendedDefaultRules"),(EnableExtension ImplicitParams,"-XImplicitParams"),(DisableExtension ImplicitParams,"-XNoImplicitParams"),(EnableExtension ScopedTypeVariables,"-XScopedTypeVariables"),(DisableExtension ScopedTypeVariables,"-XNoScopedTypeVariables"),(EnableExtension PatternSignatures,"-XPatternSignatures"),(DisableExtension PatternSignatures,"-XNoPatternSignatures"),(EnableExtension UnboxedTuples,"-XUnboxedTuples"),(DisableExtension UnboxedTuples,"-XNoUnboxedTuples"),(EnableExtension StandaloneDeriving,"-XStandaloneDeriving"),(DisableExtension StandaloneDeriving,"-XNoStandaloneDeriving"),(EnableExtension DeriveDataTypeable,"-XDeriveDataTypeable"),(DisableExtension DeriveDataTypeable,"-XNoDeriveDataTypeable"),(EnableExtension DeriveFunctor,"-XDeriveFunctor"),(DisableExtension DeriveFunctor,"-XNoDeriveFunctor"),(EnableExtension DeriveTraversable,"-XDeriveTraversable"),(DisableExtension DeriveTraversable,"-XNoDeriveTraversable"),(EnableExtension DeriveFoldable,"-XDeriveFoldable"),(DisableExtension DeriveFoldable,"-XNoDeriveFoldable"),(UnknownExtension "DeriveGeneric","-XDeriveGeneric"),(UnknownExtension "NoDeriveGeneric","-XNoDeriveGeneric"),(UnknownExtension "DefaultSignatures","-XDefaultSignatures"),(UnknownExtension "NoDefaultSignatures","-XNoDefaultSignatures"),(EnableExtension TypeSynonymInstances,"-XTypeSynonymInstances"),(DisableExtension TypeSynonymInstances,"-XNoTypeSynonymInstances"),(EnableExtension FlexibleContexts,"-XFlexibleContexts"),(DisableExtension FlexibleContexts,"-XNoFlexibleContexts"),(EnableExtension FlexibleInstances,"-XFlexibleInstances"),(DisableExtension FlexibleInstances,"-XNoFlexibleInstances"),(EnableExtension ConstrainedClassMethods,"-XConstrainedClassMethods"),(DisableExtension ConstrainedClassMethods,"-XNoConstrainedClassMethods"),(EnableExtension MultiParamTypeClasses,"-XMultiParamTypeClasses"),(DisableExtension MultiParamTypeClasses,"-XNoMultiParamTypeClasses"),(EnableExtension FunctionalDependencies,"-XFunctionalDependencies"),(DisableExtension FunctionalDependencies,"-XNoFunctionalDependencies"),(EnableExtension GeneralizedNewtypeDeriving,"-XGeneralizedNewtypeDeriving"),(DisableExtension GeneralizedNewtypeDeriving,"-XNoGeneralizedNewtypeDeriving"),(EnableExtension OverlappingInstances,"-XOverlappingInstances"),(DisableExtension OverlappingInstances,"-XNoOverlappingInstances"),(EnableExtension UndecidableInstances,"-XUndecidableInstances"),(DisableExtension UndecidableInstances,"-XNoUndecidableInstances"),(EnableExtension IncoherentInstances,"-XIncoherentInstances"),(DisableExtension IncoherentInstances,"-XNoIncoherentInstances"),(EnableExtension PackageImports,"-XPackageImports"),(DisableExtension PackageImports,"-XNoPackageImports")]}, buildDir = "dist/build", scratchDir = "dist/scratch", libraryConfig = Just (ComponentLocalBuildInfo {componentPackageDeps = [(InstalledPackageId "base-4.6.0.1-f7bdc8987bd5928e0ee6e8cc8b246a88",PackageIdentifier {pkgName = PackageName "base", pkgVersion = Version {versionBranch = [4,6,0,1], versionTags = []}}),(InstalledPackageId "bytestring-0.10.0.2-59abd9894532f476aabac207680aae43",PackageIdentifier {pkgName = PackageName "bytestring", pkgVersion = Version {versionBranch = [0,10,0,2], versionTags = []}}),(InstalledPackageId "containers-0.5.0.0-ab1dae9a94cd3cc84e7b2805636ebfa2",PackageIdentifier {pkgName = PackageName "containers", pkgVersion = Version {versionBranch = [0,5,0,0], versionTags = []}}),(InstalledPackageId "network-2.4.1.2-5be4ce21effbb1a11c3b90006afd63d9",PackageIdentifier {pkgName = PackageName "network", pkgVersion = Version {versionBranch = [2,4,1,2], versionTags = []}})]}), executableConfigs = [], compBuildOrder = [CLibName], testSuiteConfigs = [], benchmarkConfigs = [], installedPkgs = PackageIndex (fromList [(InstalledPackageId "array-0.4.0.1-3b78425c10ff2dad7acf7e8c8ae014c3",InstalledPackageInfo {installedPackageId = InstalledPackageId "array-0.4.0.1-3b78425c10ff2dad7acf7e8c8ae014c3", sourcePackageId = PackageIdentifier {pkgName = PackageName "array", pkgVersion = Version {versionBranch = [0,4,0,1], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", synopsis = "Mutable and immutable arrays", description = "This package defines the classes @IArray@ of immutable arrays and\n@MArray@ of arrays mutable within appropriate monads, as well as\nsome instances of these classes.", category = "Data Structures", exposed = True, exposedModules = [ModuleName ["Data","Array","Base"],ModuleName ["Data","Array","IArray"],ModuleName ["Data","Array","IO"],ModuleName ["Data","Array","IO","Safe"],ModuleName ["Data","Array","IO","Internals"],ModuleName ["Data","Array","MArray"],ModuleName ["Data","Array","MArray","Safe"],ModuleName ["Data","Array","ST"],ModuleName ["Data","Array","ST","Safe"],ModuleName ["Data","Array","Storable"],ModuleName ["Data","Array","Storable","Safe"],ModuleName ["Data","Array","Storable","Internals"],ModuleName ["Data","Array","Unboxed"],ModuleName ["Data","Array","Unsafe"],ModuleName ["Data","Array"]], hiddenModules = [], trusted = False, importDirs = ["/usr/local/lib/ghc-7.6.3/array-0.4.0.1"], libraryDirs = ["/usr/local/lib/ghc-7.6.3/array-0.4.0.1"], hsLibraries = ["HSarray-0.4.0.1"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "base-4.6.0.1-f7bdc8987bd5928e0ee6e8cc8b246a88"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/array-0.4.0.1/array.haddock"], haddockHTMLs = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/array-0.4.0.1"]}),(InstalledPackageId "base-4.6.0.1-f7bdc8987bd5928e0ee6e8cc8b246a88",InstalledPackageInfo {installedPackageId = InstalledPackageId "base-4.6.0.1-f7bdc8987bd5928e0ee6e8cc8b246a88", sourcePackageId = PackageIdentifier {pkgName = PackageName "base", pkgVersion = Version {versionBranch = [4,6,0,1], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", synopsis = "Basic libraries", 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","Char"],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","Generics"],ModuleName ["GHC","GHCi"],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","IP"],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","Stack"],ModuleName ["GHC","Stats"],ModuleName ["GHC","Show"],ModuleName ["GHC","Stable"],ModuleName ["GHC","Storable"],ModuleName ["GHC","STRef"],ModuleName ["GHC","TypeLits"],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","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","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"],ModuleName ["System","Environment","ExecutablePath"]], trusted = False, importDirs = ["/usr/local/lib/ghc-7.6.3/base-4.6.0.1"], libraryDirs = ["/usr/local/lib/ghc-7.6.3/base-4.6.0.1"], hsLibraries = ["HSbase-4.6.0.1"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/usr/local/lib/ghc-7.6.3/base-4.6.0.1/include"], includes = ["HsBase.h"], depends = [InstalledPackageId "ghc-prim-0.3.0.0-d5221a8c8a269b66ab9a07bdc23317dd",InstalledPackageId "integer-gmp-0.5.0.0-2f15426f5b53fe4c6490832f9b20d8d7",InstalledPackageId "builtin_rts"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/base-4.6.0.1/base.haddock"], haddockHTMLs = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/base-4.6.0.1"]}),(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 = "", synopsis = "", description = "", category = "", exposed = True, exposedModules = [], hiddenModules = [], trusted = False, importDirs = [], libraryDirs = ["/usr/local/lib/ghc-7.6.3"], hsLibraries = ["HSrts"], extraLibraries = ["m","ffi"], extraGHCiLibraries = [], includeDirs = ["/usr/local/lib/ghc-7.6.3/include"], includes = ["Stg.h"], depends = [], 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","ghczmprim_GHCziTypes_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_flushStdHandles_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","-L/usr/local/lib"], frameworkDirs = [], frameworks = [], haddockInterfaces = [], haddockHTMLs = []}),(InstalledPackageId "bytestring-0.10.0.2-59abd9894532f476aabac207680aae43",InstalledPackageInfo {installedPackageId = InstalledPackageId "bytestring-0.10.0.2-59abd9894532f476aabac207680aae43", sourcePackageId = PackageIdentifier {pkgName = PackageName "bytestring", pkgVersion = Version {versionBranch = [0,10,0,2], versionTags = []}}, license = BSD3, copyright = "Copyright (c) Don Stewart          2005-2009,\n(c) Duncan Coutts        2006-2012,\n(c) David Roundy         2003-2005,\n(c) Jasper Van der Jeugt 2010,\n(c) Simon Meier          2010-2011.", maintainer = "Don Stewart <dons00@gmail.com>,\nDuncan Coutts <duncan@community.haskell.org>", author = "Don Stewart,\nDuncan Coutts", stability = "", homepage = "", pkgUrl = "", synopsis = "Fast, compact, strict and lazy byte strings with a list interface", description = "An efficient compact, immutable byte string type (both strict and lazy)\nsuitable for binary or 8-bit character data.\n\nThe 'ByteString' type represents sequences of bytes or 8-bit characters.\nIt is suitable for high performance use, both in terms of large data\nquantities, or high speed requirements. The 'ByteStrin'g functions follow\nthe same style as Haskell\\'s ordinary lists, so it is easy to convert code\nfrom using 'String' to 'ByteString'.\n\nTwo 'ByteString' variants are provided:\n\n* Strict 'ByteString's keep the string as a single large array. This\nmakes them convenient for passing data between C and Haskell.\n\n* Lazy 'ByteString's use a lazy list of strict chunks which makes it\nsuitable for I\\/O streaming tasks.\n\nThe @Char8@ modules provide a character-based view of the same\nunderlying 'ByteString' types. This makes it convenient to handle mixed\nbinary and 8-bit character content (which is common in many file formats\nand network protocols).\n\nThe 'Builder' module provides an efficient way to build up 'ByteString's\nin an ad-hoc way by repeated concatenation. This is ideal for fast\nserialisation or pretty printing.\n\n'ByteString's are not designed for Unicode. For Unicode strings you should\nuse the 'Text' type from the @text@ package.\n\nThese modules are intended to be imported qualified, to avoid name clashes\nwith \"Prelude\" functions, e.g.\n\n> import qualified Data.ByteString as BS", category = "Data", exposed = True, exposedModules = [ModuleName ["Data","ByteString"],ModuleName ["Data","ByteString","Char8"],ModuleName ["Data","ByteString","Unsafe"],ModuleName ["Data","ByteString","Internal"],ModuleName ["Data","ByteString","Lazy"],ModuleName ["Data","ByteString","Lazy","Char8"],ModuleName ["Data","ByteString","Lazy","Internal"],ModuleName ["Data","ByteString","Lazy","Builder"],ModuleName ["Data","ByteString","Lazy","Builder","Extras"],ModuleName ["Data","ByteString","Lazy","Builder","ASCII"]], hiddenModules = [ModuleName ["Data","ByteString","Lazy","Builder","Internal"],ModuleName ["Data","ByteString","Lazy","Builder","BasicEncoding"],ModuleName ["Data","ByteString","Lazy","Builder","BasicEncoding","Extras"],ModuleName ["Data","ByteString","Lazy","Builder","BasicEncoding","Internal"],ModuleName ["Data","ByteString","Lazy","Builder","BasicEncoding","Binary"],ModuleName ["Data","ByteString","Lazy","Builder","BasicEncoding","ASCII"],ModuleName ["Data","ByteString","Lazy","Builder","BasicEncoding","Internal","Floating"],ModuleName ["Data","ByteString","Lazy","Builder","BasicEncoding","Internal","UncheckedShifts"],ModuleName ["Data","ByteString","Lazy","Builder","BasicEncoding","Internal","Base16"]], trusted = False, importDirs = ["/usr/local/lib/ghc-7.6.3/bytestring-0.10.0.2"], libraryDirs = ["/usr/local/lib/ghc-7.6.3/bytestring-0.10.0.2"], hsLibraries = ["HSbytestring-0.10.0.2"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/usr/local/lib/ghc-7.6.3/bytestring-0.10.0.2/include"], includes = ["fpstring.h"], depends = [InstalledPackageId "base-4.6.0.1-f7bdc8987bd5928e0ee6e8cc8b246a88",InstalledPackageId "deepseq-1.3.0.1-5cc4cd89bdc2e8f6db1833d95ec36926",InstalledPackageId "ghc-prim-0.3.0.0-d5221a8c8a269b66ab9a07bdc23317dd"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/bytestring-0.10.0.2/bytestring.haddock"], haddockHTMLs = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/bytestring-0.10.0.2"]}),(InstalledPackageId "containers-0.5.0.0-ab1dae9a94cd3cc84e7b2805636ebfa2",InstalledPackageInfo {installedPackageId = InstalledPackageId "containers-0.5.0.0-ab1dae9a94cd3cc84e7b2805636ebfa2", sourcePackageId = PackageIdentifier {pkgName = PackageName "containers", pkgVersion = Version {versionBranch = [0,5,0,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "fox@ucw.cz", author = "", stability = "", homepage = "", pkgUrl = "", synopsis = "Assorted concrete container types", description = "This package contains efficient general-purpose implementations\nof various basic immutable container types.  The declared cost of\neach operation is either worst-case or amortized, but remains\nvalid even if structures are shared.", category = "Data Structures", exposed = True, exposedModules = [ModuleName ["Data","Graph"],ModuleName ["Data","Sequence"],ModuleName ["Data","Tree"],ModuleName ["Data","IntMap"],ModuleName ["Data","IntMap","Lazy"],ModuleName ["Data","IntMap","Strict"],ModuleName ["Data","IntSet"],ModuleName ["Data","Map"],ModuleName ["Data","Map","Lazy"],ModuleName ["Data","Map","Strict"],ModuleName ["Data","Set"]], hiddenModules = [ModuleName ["Data","IntMap","Base"],ModuleName ["Data","IntSet","Base"],ModuleName ["Data","Map","Base"],ModuleName ["Data","Set","Base"],ModuleName ["Data","StrictPair"]], trusted = False, importDirs = ["/usr/local/lib/ghc-7.6.3/containers-0.5.0.0"], libraryDirs = ["/usr/local/lib/ghc-7.6.3/containers-0.5.0.0"], hsLibraries = ["HScontainers-0.5.0.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "array-0.4.0.1-3b78425c10ff2dad7acf7e8c8ae014c3",InstalledPackageId "base-4.6.0.1-f7bdc8987bd5928e0ee6e8cc8b246a88",InstalledPackageId "deepseq-1.3.0.1-5cc4cd89bdc2e8f6db1833d95ec36926",InstalledPackageId "ghc-prim-0.3.0.0-d5221a8c8a269b66ab9a07bdc23317dd"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/containers-0.5.0.0/containers.haddock"], haddockHTMLs = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/containers-0.5.0.0"]}),(InstalledPackageId "deepseq-1.3.0.1-5cc4cd89bdc2e8f6db1833d95ec36926",InstalledPackageInfo {installedPackageId = InstalledPackageId "deepseq-1.3.0.1-5cc4cd89bdc2e8f6db1833d95ec36926", sourcePackageId = PackageIdentifier {pkgName = PackageName "deepseq", pkgVersion = Version {versionBranch = [1,3,0,1], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", synopsis = "Deep evaluation of data structures", description = "This package provides methods for fully evaluating data structures\n(\\\"deep evaluation\\\"). Deep evaluation is often used for adding\nstrictness to a program, e.g. in order to force pending exceptions,\nremove space leaks, or force lazy I/O to happen. It is also useful\nin parallel programs, to ensure pending work does not migrate to the\nwrong thread.\n\nThe primary use of this package is via the 'deepseq' function, a\n\\\"deep\\\" version of 'seq'. It is implemented on top of an 'NFData'\ntypeclass (\\\"Normal Form Data\\\", data structures with no unevaluated\ncomponents) which defines strategies for fully evaluating different\ndata types.\n", category = "Control", exposed = True, exposedModules = [ModuleName ["Control","DeepSeq"]], hiddenModules = [], trusted = False, importDirs = ["/usr/local/lib/ghc-7.6.3/deepseq-1.3.0.1"], libraryDirs = ["/usr/local/lib/ghc-7.6.3/deepseq-1.3.0.1"], hsLibraries = ["HSdeepseq-1.3.0.1"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "array-0.4.0.1-3b78425c10ff2dad7acf7e8c8ae014c3",InstalledPackageId "base-4.6.0.1-f7bdc8987bd5928e0ee6e8cc8b246a88"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/deepseq-1.3.0.1/deepseq.haddock"], haddockHTMLs = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/deepseq-1.3.0.1"]}),(InstalledPackageId "ghc-prim-0.3.0.0-d5221a8c8a269b66ab9a07bdc23317dd",InstalledPackageInfo {installedPackageId = InstalledPackageId "ghc-prim-0.3.0.0-d5221a8c8a269b66ab9a07bdc23317dd", sourcePackageId = PackageIdentifier {pkgName = PackageName "ghc-prim", pkgVersion = Version {versionBranch = [0,3,0,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", synopsis = "GHC primitives", description = "GHC primitives.", category = "", exposed = True, exposedModules = [ModuleName ["GHC","Prim"],ModuleName ["GHC","Classes"],ModuleName ["GHC","CString"],ModuleName ["GHC","Debug"],ModuleName ["GHC","Magic"],ModuleName ["GHC","PrimopWrappers"],ModuleName ["GHC","IntWord64"],ModuleName ["GHC","Tuple"],ModuleName ["GHC","Types"]], hiddenModules = [], trusted = False, importDirs = ["/usr/local/lib/ghc-7.6.3/ghc-prim-0.3.0.0"], libraryDirs = ["/usr/local/lib/ghc-7.6.3/ghc-prim-0.3.0.0"], hsLibraries = ["HSghc-prim-0.3.0.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "builtin_rts"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/ghc-prim-0.3.0.0/ghc-prim.haddock"], haddockHTMLs = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/ghc-prim-0.3.0.0"]}),(InstalledPackageId "integer-gmp-0.5.0.0-2f15426f5b53fe4c6490832f9b20d8d7",InstalledPackageInfo {installedPackageId = InstalledPackageId "integer-gmp-0.5.0.0-2f15426f5b53fe4c6490832f9b20d8d7", sourcePackageId = PackageIdentifier {pkgName = PackageName "integer-gmp", pkgVersion = Version {versionBranch = [0,5,0,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", synopsis = "Integer library based on GMP", 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","GMP","Prim"],ModuleName ["GHC","Integer","Logarithms"],ModuleName ["GHC","Integer","Logarithms","Internals"]], hiddenModules = [ModuleName ["GHC","Integer","Type"]], trusted = False, importDirs = ["/usr/local/lib/ghc-7.6.3/integer-gmp-0.5.0.0"], libraryDirs = ["/usr/local/lib/ghc-7.6.3/integer-gmp-0.5.0.0","/usr/local/lib"], hsLibraries = ["HSinteger-gmp-0.5.0.0"], extraLibraries = ["gmp"], extraGHCiLibraries = [], includeDirs = ["/usr/local/include"], includes = [], depends = [InstalledPackageId "ghc-prim-0.3.0.0-d5221a8c8a269b66ab9a07bdc23317dd"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/integer-gmp-0.5.0.0/integer-gmp.haddock"], haddockHTMLs = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/integer-gmp-0.5.0.0"]}),(InstalledPackageId "mtl-2.1.2-94c72af955e94b8d7b2f359dadd0cb62",InstalledPackageInfo {installedPackageId = InstalledPackageId "mtl-2.1.2-94c72af955e94b8d7b2f359dadd0cb62", sourcePackageId = PackageIdentifier {pkgName = PackageName "mtl", pkgVersion = Version {versionBranch = [2,1,2], versionTags = []}}, license = BSD3, copyright = "", maintainer = "Edward Kmett <ekmett@gmail.com>", author = "Andy Gill", stability = "", homepage = "http://github.com/ekmett/mtl", pkgUrl = "", synopsis = "Monad classes, using functional dependencies", 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 = [], trusted = False, importDirs = ["/usr/local/lib/cabal/ghc-7.6.3/mtl-2.1.2"], libraryDirs = ["/usr/local/lib/cabal/ghc-7.6.3/mtl-2.1.2","/usr/local/lib"], hsLibraries = ["HSmtl-2.1.2"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/usr/local/include"], includes = [], depends = [InstalledPackageId "base-4.6.0.1-f7bdc8987bd5928e0ee6e8cc8b246a88",InstalledPackageId "transformers-0.3.0.0-ff2bb6ac67241ebb987351a3db564af0"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/local/share/doc/cabal/ghc-7.6.3/mtl-2.1.2/html/mtl.haddock"], haddockHTMLs = ["/usr/local/share/doc/cabal/ghc-7.6.3/mtl-2.1.2/html"]}),(InstalledPackageId "network-2.4.1.2-5be4ce21effbb1a11c3b90006afd63d9",InstalledPackageInfo {installedPackageId = InstalledPackageId "network-2.4.1.2-5be4ce21effbb1a11c3b90006afd63d9", sourcePackageId = PackageIdentifier {pkgName = PackageName "network", pkgVersion = Version {versionBranch = [2,4,1,2], versionTags = []}}, license = BSD3, copyright = "", maintainer = "Johan Tibell <johan.tibell@gmail.com>", author = "", stability = "", homepage = "https://github.com/haskell/network", pkgUrl = "", synopsis = "Low-level networking interface", description = "Low-level networking interface", category = "Network", exposed = True, exposedModules = [ModuleName ["Network"],ModuleName ["Network","BSD"],ModuleName ["Network","Socket"],ModuleName ["Network","Socket","ByteString"],ModuleName ["Network","Socket","ByteString","Lazy"],ModuleName ["Network","Socket","Internal"],ModuleName ["Network","URI"]], hiddenModules = [ModuleName ["Network","Socket","ByteString","IOVec"],ModuleName ["Network","Socket","ByteString","MsgHdr"],ModuleName ["Network","Socket","ByteString","Internal"],ModuleName ["Network","Socket","Types"]], trusted = False, importDirs = ["/usr/local/lib/cabal/ghc-7.6.3/network-2.4.1.2"], libraryDirs = ["/usr/local/lib/cabal/ghc-7.6.3/network-2.4.1.2","/usr/local/lib"], hsLibraries = ["HSnetwork-2.4.1.2"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/usr/local/include","/usr/local/lib/cabal/ghc-7.6.3/network-2.4.1.2/include"], includes = ["HsNet.h"], depends = [InstalledPackageId "base-4.6.0.1-f7bdc8987bd5928e0ee6e8cc8b246a88",InstalledPackageId "bytestring-0.10.0.2-59abd9894532f476aabac207680aae43",InstalledPackageId "parsec-3.1.3-7d16ef6a60127910ee03cf1d43ace489",InstalledPackageId "unix-2.6.0.1-0331dd8b9407cabaa0b542d86de016a7"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/local/share/doc/cabal/ghc-7.6.3/network-2.4.1.2/html/network.haddock"], haddockHTMLs = ["/usr/local/share/doc/cabal/ghc-7.6.3/network-2.4.1.2/html"]}),(InstalledPackageId "old-locale-1.0.0.5-6729cb9d9cc62d150655de8fc5401b91",InstalledPackageInfo {installedPackageId = InstalledPackageId "old-locale-1.0.0.5-6729cb9d9cc62d150655de8fc5401b91", sourcePackageId = PackageIdentifier {pkgName = PackageName "old-locale", pkgVersion = Version {versionBranch = [1,0,0,5], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", synopsis = "locale library", description = "This package provides the ability to adapt to\nlocale conventions such as date and time formats.", category = "System", exposed = True, exposedModules = [ModuleName ["System","Locale"]], hiddenModules = [], trusted = False, importDirs = ["/usr/local/lib/ghc-7.6.3/old-locale-1.0.0.5"], libraryDirs = ["/usr/local/lib/ghc-7.6.3/old-locale-1.0.0.5"], hsLibraries = ["HSold-locale-1.0.0.5"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "base-4.6.0.1-f7bdc8987bd5928e0ee6e8cc8b246a88"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/old-locale-1.0.0.5/old-locale.haddock"], haddockHTMLs = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/old-locale-1.0.0.5"]}),(InstalledPackageId "parsec-3.1.3-7d16ef6a60127910ee03cf1d43ace489",InstalledPackageInfo {installedPackageId = InstalledPackageId "parsec-3.1.3-7d16ef6a60127910ee03cf1d43ace489", sourcePackageId = PackageIdentifier {pkgName = PackageName "parsec", pkgVersion = Version {versionBranch = [3,1,3], versionTags = []}}, license = BSD3, copyright = "", maintainer = "Antoine Latter <aslatter@gmail.com>", author = "Daan Leijen <daan@microsoft.com>, Paolo Martini <paolo@nemail.it>", stability = "", homepage = "http://www.cs.uu.nl/~daan/parsec.html", pkgUrl = "", synopsis = "Monadic parser combinators", description = "Parsec is designed from scratch as an industrial-strength parser\nlibrary.  It is simple, safe, well documented (on the package\nhomepage), has extensive libraries and good error messages,\nand is also fast.  It is defined as a monad transformer that can be\nstacked on arbitrary monads, and it is also parametric in the\ninput stream type.", category = "Parsing", exposed = True, exposedModules = [ModuleName ["Text","Parsec"],ModuleName ["Text","Parsec","String"],ModuleName ["Text","Parsec","ByteString"],ModuleName ["Text","Parsec","ByteString","Lazy"],ModuleName ["Text","Parsec","Text"],ModuleName ["Text","Parsec","Text","Lazy"],ModuleName ["Text","Parsec","Pos"],ModuleName ["Text","Parsec","Error"],ModuleName ["Text","Parsec","Prim"],ModuleName ["Text","Parsec","Char"],ModuleName ["Text","Parsec","Combinator"],ModuleName ["Text","Parsec","Token"],ModuleName ["Text","Parsec","Expr"],ModuleName ["Text","Parsec","Language"],ModuleName ["Text","Parsec","Perm"],ModuleName ["Text","ParserCombinators","Parsec"],ModuleName ["Text","ParserCombinators","Parsec","Char"],ModuleName ["Text","ParserCombinators","Parsec","Combinator"],ModuleName ["Text","ParserCombinators","Parsec","Error"],ModuleName ["Text","ParserCombinators","Parsec","Expr"],ModuleName ["Text","ParserCombinators","Parsec","Language"],ModuleName ["Text","ParserCombinators","Parsec","Perm"],ModuleName ["Text","ParserCombinators","Parsec","Pos"],ModuleName ["Text","ParserCombinators","Parsec","Prim"],ModuleName ["Text","ParserCombinators","Parsec","Token"]], hiddenModules = [], trusted = False, importDirs = ["/usr/local/lib/cabal/ghc-7.6.3/parsec-3.1.3"], libraryDirs = ["/usr/local/lib/cabal/ghc-7.6.3/parsec-3.1.3","/usr/local/lib"], hsLibraries = ["HSparsec-3.1.3"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/usr/local/include"], includes = [], depends = [InstalledPackageId "base-4.6.0.1-f7bdc8987bd5928e0ee6e8cc8b246a88",InstalledPackageId "bytestring-0.10.0.2-59abd9894532f476aabac207680aae43",InstalledPackageId "mtl-2.1.2-94c72af955e94b8d7b2f359dadd0cb62",InstalledPackageId "text-0.11.3.1-b49365bcfaf3954e4484c36c86c98126"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/local/share/doc/cabal/ghc-7.6.3/parsec-3.1.3/html/parsec.haddock"], haddockHTMLs = ["/usr/local/share/doc/cabal/ghc-7.6.3/parsec-3.1.3/html"]}),(InstalledPackageId "text-0.11.3.1-b49365bcfaf3954e4484c36c86c98126",InstalledPackageInfo {installedPackageId = InstalledPackageId "text-0.11.3.1-b49365bcfaf3954e4484c36c86c98126", sourcePackageId = PackageIdentifier {pkgName = PackageName "text", pkgVersion = Version {versionBranch = [0,11,3,1], versionTags = []}}, license = BSD3, copyright = "2009-2011 Bryan O'Sullivan, 2008-2009 Tom Harper", maintainer = "Bryan O'Sullivan <bos@serpentine.com>", author = "Bryan O'Sullivan <bos@serpentine.com>", stability = "", homepage = "https://github.com/bos/text", pkgUrl = "", synopsis = "An efficient packed Unicode text type.", description = "\nAn efficient packed, immutable Unicode text type (both strict and\nlazy), with a powerful loop fusion optimization framework.\n\nThe 'Text' type represents Unicode character strings, in a time and\nspace-efficient manner. This package provides text processing\ncapabilities that are optimized for performance critical use, both\nin terms of large data quantities and high speed.\n\nThe 'Text' type provides character-encoding, type-safe case\nconversion via whole-string case conversion functions. It also\nprovides a range of functions for converting 'Text' values to and from\n'ByteStrings', using several standard encodings.\n\nEfficient locale-sensitive support for text IO is also supported.\n\nThese modules are intended to be imported qualified, to avoid name\nclashes with Prelude functions, e.g.\n\n> import qualified Data.Text as T\n\nTo use an extended and very rich family of functions for working\nwith Unicode text (including normalization, regular expressions,\nnon-standard encodings, text breaking, and locales), see\nthe @text-icu@ package:\n<http://hackage.haskell.org/package/text-icu>\n\n&#8212;&#8212; RELEASE NOTES &#8212;&#8212;\n\nChanges in 0.11.2.0:\n\n* String literals are now converted directly from the format in\nwhich GHC stores them into 'Text', without an intermediate\ntransformation through 'String', and without inlining of\nconversion code at each site where a string literal is declared.\n", category = "Data, Text", exposed = True, exposedModules = [ModuleName ["Data","Text"],ModuleName ["Data","Text","Array"],ModuleName ["Data","Text","Encoding"],ModuleName ["Data","Text","Encoding","Error"],ModuleName ["Data","Text","Foreign"],ModuleName ["Data","Text","IO"],ModuleName ["Data","Text","Internal"],ModuleName ["Data","Text","Lazy"],ModuleName ["Data","Text","Lazy","Builder"],ModuleName ["Data","Text","Lazy","Builder","Int"],ModuleName ["Data","Text","Lazy","Builder","RealFloat"],ModuleName ["Data","Text","Lazy","Encoding"],ModuleName ["Data","Text","Lazy","IO"],ModuleName ["Data","Text","Lazy","Internal"],ModuleName ["Data","Text","Lazy","Read"],ModuleName ["Data","Text","Read"],ModuleName ["Data","Text","Unsafe"]], hiddenModules = [ModuleName ["Data","Text","Encoding","Fusion"],ModuleName ["Data","Text","Encoding","Fusion","Common"],ModuleName ["Data","Text","Encoding","Utf16"],ModuleName ["Data","Text","Encoding","Utf32"],ModuleName ["Data","Text","Encoding","Utf8"],ModuleName ["Data","Text","Fusion"],ModuleName ["Data","Text","Fusion","CaseMapping"],ModuleName ["Data","Text","Fusion","Common"],ModuleName ["Data","Text","Fusion","Internal"],ModuleName ["Data","Text","Fusion","Size"],ModuleName ["Data","Text","IO","Internal"],ModuleName ["Data","Text","Lazy","Builder","Functions"],ModuleName ["Data","Text","Lazy","Builder","Int","Digits"],ModuleName ["Data","Text","Lazy","Builder","Internal"],ModuleName ["Data","Text","Lazy","Builder","RealFloat","Functions"],ModuleName ["Data","Text","Lazy","Encoding","Fusion"],ModuleName ["Data","Text","Lazy","Fusion"],ModuleName ["Data","Text","Lazy","Search"],ModuleName ["Data","Text","Private"],ModuleName ["Data","Text","Search"],ModuleName ["Data","Text","Unsafe","Base"],ModuleName ["Data","Text","UnsafeChar"],ModuleName ["Data","Text","UnsafeShift"],ModuleName ["Data","Text","Util"]], trusted = False, importDirs = ["/usr/local/lib/cabal/ghc-7.6.3/text-0.11.3.1"], libraryDirs = ["/usr/local/lib/cabal/ghc-7.6.3/text-0.11.3.1","/usr/local/lib"], hsLibraries = ["HStext-0.11.3.1"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/usr/local/include"], includes = [], depends = [InstalledPackageId "array-0.4.0.1-3b78425c10ff2dad7acf7e8c8ae014c3",InstalledPackageId "base-4.6.0.1-f7bdc8987bd5928e0ee6e8cc8b246a88",InstalledPackageId "bytestring-0.10.0.2-59abd9894532f476aabac207680aae43",InstalledPackageId "deepseq-1.3.0.1-5cc4cd89bdc2e8f6db1833d95ec36926",InstalledPackageId "ghc-prim-0.3.0.0-d5221a8c8a269b66ab9a07bdc23317dd",InstalledPackageId "integer-gmp-0.5.0.0-2f15426f5b53fe4c6490832f9b20d8d7"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/local/share/doc/cabal/ghc-7.6.3/text-0.11.3.1/html/text.haddock"], haddockHTMLs = ["/usr/local/share/doc/cabal/ghc-7.6.3/text-0.11.3.1/html"]}),(InstalledPackageId "time-1.4.0.1-10dc4804a19dc0000fab79908f1a9f50",InstalledPackageInfo {installedPackageId = InstalledPackageId "time-1.4.0.1-10dc4804a19dc0000fab79908f1a9f50", sourcePackageId = PackageIdentifier {pkgName = PackageName "time", pkgVersion = Version {versionBranch = [1,4,0,1], versionTags = []}}, license = BSD3, copyright = "", maintainer = "<ashley@semantic.org>", author = "Ashley Yakeley", stability = "stable", homepage = "http://semantic.org/TimeLib/", pkgUrl = "", synopsis = "A time library", description = "A time library", category = "System", exposed = True, exposedModules = [ModuleName ["Data","Time","Calendar"],ModuleName ["Data","Time","Calendar","MonthDay"],ModuleName ["Data","Time","Calendar","OrdinalDate"],ModuleName ["Data","Time","Calendar","WeekDate"],ModuleName ["Data","Time","Calendar","Julian"],ModuleName ["Data","Time","Calendar","Easter"],ModuleName ["Data","Time","Clock"],ModuleName ["Data","Time","Clock","POSIX"],ModuleName ["Data","Time","Clock","TAI"],ModuleName ["Data","Time","LocalTime"],ModuleName ["Data","Time","Format"],ModuleName ["Data","Time"]], hiddenModules = [ModuleName ["Data","Time","Calendar","Private"],ModuleName ["Data","Time","Calendar","Days"],ModuleName ["Data","Time","Calendar","Gregorian"],ModuleName ["Data","Time","Calendar","JulianYearDay"],ModuleName ["Data","Time","Clock","Scale"],ModuleName ["Data","Time","Clock","UTC"],ModuleName ["Data","Time","Clock","CTimeval"],ModuleName ["Data","Time","Clock","UTCDiff"],ModuleName ["Data","Time","LocalTime","TimeZone"],ModuleName ["Data","Time","LocalTime","TimeOfDay"],ModuleName ["Data","Time","LocalTime","LocalTime"],ModuleName ["Data","Time","Format","Parse"]], trusted = False, importDirs = ["/usr/local/lib/ghc-7.6.3/time-1.4.0.1"], libraryDirs = ["/usr/local/lib/ghc-7.6.3/time-1.4.0.1"], hsLibraries = ["HStime-1.4.0.1"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/usr/local/lib/ghc-7.6.3/time-1.4.0.1/include"], includes = [], depends = [InstalledPackageId "base-4.6.0.1-f7bdc8987bd5928e0ee6e8cc8b246a88",InstalledPackageId "deepseq-1.3.0.1-5cc4cd89bdc2e8f6db1833d95ec36926",InstalledPackageId "old-locale-1.0.0.5-6729cb9d9cc62d150655de8fc5401b91"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/time-1.4.0.1/time.haddock"], haddockHTMLs = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/time-1.4.0.1"]}),(InstalledPackageId "transformers-0.3.0.0-ff2bb6ac67241ebb987351a3db564af0",InstalledPackageInfo {installedPackageId = InstalledPackageId "transformers-0.3.0.0-ff2bb6ac67241ebb987351a3db564af0", sourcePackageId = PackageIdentifier {pkgName = PackageName "transformers", pkgVersion = Version {versionBranch = [0,3,0,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "Ross Paterson <ross@soi.city.ac.uk>", author = "Andy Gill, Ross Paterson", stability = "", homepage = "", pkgUrl = "", synopsis = "Concrete functor and monad transformers", description = "A portable library of functor and monad transformers, inspired by\nthe paper \\\"Functional Programming with Overloading and Higher-Order\nPolymorphism\\\", by Mark P Jones,\nin /Advanced School of Functional Programming/, 1995\n(<http://web.cecs.pdx.edu/~mpj/pubs/springschool.html>).\n\nThis package contains:\n\n* the monad transformer class (in \"Control.Monad.Trans.Class\")\n\n* concrete functor and monad transformers, each with associated\noperations and functions to lift operations associated with other\ntransformers.\n\nIt can be used on its own in portable Haskell code, or with the monad\nclasses in the @mtl@ or @monads-tf@ packages, which automatically\nlift operations introduced by monad transformers through other\ntransformers.", category = "Control", exposed = True, exposedModules = [ModuleName ["Control","Applicative","Backwards"],ModuleName ["Control","Applicative","Lift"],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"],ModuleName ["Data","Functor","Reverse"]], hiddenModules = [], trusted = False, importDirs = ["/usr/local/lib/cabal/ghc-7.6.3/transformers-0.3.0.0"], libraryDirs = ["/usr/local/lib/cabal/ghc-7.6.3/transformers-0.3.0.0","/usr/local/lib"], hsLibraries = ["HStransformers-0.3.0.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/usr/local/include"], includes = [], depends = [InstalledPackageId "base-4.6.0.1-f7bdc8987bd5928e0ee6e8cc8b246a88"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/local/share/doc/cabal/ghc-7.6.3/transformers-0.3.0.0/html/transformers.haddock"], haddockHTMLs = ["/usr/local/share/doc/cabal/ghc-7.6.3/transformers-0.3.0.0/html"]}),(InstalledPackageId "unix-2.6.0.1-0331dd8b9407cabaa0b542d86de016a7",InstalledPackageInfo {installedPackageId = InstalledPackageId "unix-2.6.0.1-0331dd8b9407cabaa0b542d86de016a7", sourcePackageId = PackageIdentifier {pkgName = PackageName "unix", pkgVersion = Version {versionBranch = [2,6,0,1], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", synopsis = "POSIX functionality", description = "This package gives you access to the set of operating system\nservices standardised by POSIX 1003.1b (or the IEEE Portable\nOperating System Interface for Computing Environments -\nIEEE Std. 1003.1).\n\nThe package is not supported under Windows (except under Cygwin).", category = "System", exposed = True, exposedModules = [ModuleName ["System","Posix"],ModuleName ["System","Posix","ByteString"],ModuleName ["System","Posix","Error"],ModuleName ["System","Posix","Resource"],ModuleName ["System","Posix","Time"],ModuleName ["System","Posix","Unistd"],ModuleName ["System","Posix","User"],ModuleName ["System","Posix","Signals"],ModuleName ["System","Posix","Signals","Exts"],ModuleName ["System","Posix","Semaphore"],ModuleName ["System","Posix","SharedMem"],ModuleName ["System","Posix","ByteString","FilePath"],ModuleName ["System","Posix","Directory"],ModuleName ["System","Posix","Directory","ByteString"],ModuleName ["System","Posix","DynamicLinker","Module"],ModuleName ["System","Posix","DynamicLinker","Module","ByteString"],ModuleName ["System","Posix","DynamicLinker","Prim"],ModuleName ["System","Posix","DynamicLinker","ByteString"],ModuleName ["System","Posix","DynamicLinker"],ModuleName ["System","Posix","Files"],ModuleName ["System","Posix","Files","ByteString"],ModuleName ["System","Posix","IO"],ModuleName ["System","Posix","IO","ByteString"],ModuleName ["System","Posix","Env"],ModuleName ["System","Posix","Env","ByteString"],ModuleName ["System","Posix","Process"],ModuleName ["System","Posix","Process","Internals"],ModuleName ["System","Posix","Process","ByteString"],ModuleName ["System","Posix","Temp"],ModuleName ["System","Posix","Temp","ByteString"],ModuleName ["System","Posix","Terminal"],ModuleName ["System","Posix","Terminal","ByteString"]], hiddenModules = [ModuleName ["System","Posix","Directory","Common"],ModuleName ["System","Posix","DynamicLinker","Common"],ModuleName ["System","Posix","Files","Common"],ModuleName ["System","Posix","IO","Common"],ModuleName ["System","Posix","Process","Common"],ModuleName ["System","Posix","Terminal","Common"]], trusted = False, importDirs = ["/usr/local/lib/ghc-7.6.3/unix-2.6.0.1"], libraryDirs = ["/usr/local/lib/ghc-7.6.3/unix-2.6.0.1"], hsLibraries = ["HSunix-2.6.0.1"], extraLibraries = ["rt","util"], extraGHCiLibraries = [], includeDirs = ["/usr/local/lib/ghc-7.6.3/unix-2.6.0.1/include"], includes = ["HsUnix.h","execvpe.h"], depends = [InstalledPackageId "base-4.6.0.1-f7bdc8987bd5928e0ee6e8cc8b246a88",InstalledPackageId "bytestring-0.10.0.2-59abd9894532f476aabac207680aae43",InstalledPackageId "time-1.4.0.1-10dc4804a19dc0000fab79908f1a9f50"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/unix-2.6.0.1/unix.haddock"], haddockHTMLs = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/unix-2.6.0.1"]})]) (fromList [(PackageName "array",fromList [(Version {versionBranch = [0,4,0,1], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "array-0.4.0.1-3b78425c10ff2dad7acf7e8c8ae014c3", sourcePackageId = PackageIdentifier {pkgName = PackageName "array", pkgVersion = Version {versionBranch = [0,4,0,1], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", synopsis = "Mutable and immutable arrays", description = "This package defines the classes @IArray@ of immutable arrays and\n@MArray@ of arrays mutable within appropriate monads, as well as\nsome instances of these classes.", category = "Data Structures", exposed = True, exposedModules = [ModuleName ["Data","Array","Base"],ModuleName ["Data","Array","IArray"],ModuleName ["Data","Array","IO"],ModuleName ["Data","Array","IO","Safe"],ModuleName ["Data","Array","IO","Internals"],ModuleName ["Data","Array","MArray"],ModuleName ["Data","Array","MArray","Safe"],ModuleName ["Data","Array","ST"],ModuleName ["Data","Array","ST","Safe"],ModuleName ["Data","Array","Storable"],ModuleName ["Data","Array","Storable","Safe"],ModuleName ["Data","Array","Storable","Internals"],ModuleName ["Data","Array","Unboxed"],ModuleName ["Data","Array","Unsafe"],ModuleName ["Data","Array"]], hiddenModules = [], trusted = False, importDirs = ["/usr/local/lib/ghc-7.6.3/array-0.4.0.1"], libraryDirs = ["/usr/local/lib/ghc-7.6.3/array-0.4.0.1"], hsLibraries = ["HSarray-0.4.0.1"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "base-4.6.0.1-f7bdc8987bd5928e0ee6e8cc8b246a88"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/array-0.4.0.1/array.haddock"], haddockHTMLs = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/array-0.4.0.1"]}])]),(PackageName "base",fromList [(Version {versionBranch = [4,6,0,1], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "base-4.6.0.1-f7bdc8987bd5928e0ee6e8cc8b246a88", sourcePackageId = PackageIdentifier {pkgName = PackageName "base", pkgVersion = Version {versionBranch = [4,6,0,1], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", synopsis = "Basic libraries", 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","Char"],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","Generics"],ModuleName ["GHC","GHCi"],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","IP"],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","Stack"],ModuleName ["GHC","Stats"],ModuleName ["GHC","Show"],ModuleName ["GHC","Stable"],ModuleName ["GHC","Storable"],ModuleName ["GHC","STRef"],ModuleName ["GHC","TypeLits"],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","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","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"],ModuleName ["System","Environment","ExecutablePath"]], trusted = False, importDirs = ["/usr/local/lib/ghc-7.6.3/base-4.6.0.1"], libraryDirs = ["/usr/local/lib/ghc-7.6.3/base-4.6.0.1"], hsLibraries = ["HSbase-4.6.0.1"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/usr/local/lib/ghc-7.6.3/base-4.6.0.1/include"], includes = ["HsBase.h"], depends = [InstalledPackageId "ghc-prim-0.3.0.0-d5221a8c8a269b66ab9a07bdc23317dd",InstalledPackageId "integer-gmp-0.5.0.0-2f15426f5b53fe4c6490832f9b20d8d7",InstalledPackageId "builtin_rts"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/base-4.6.0.1/base.haddock"], haddockHTMLs = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/base-4.6.0.1"]}])]),(PackageName "bytestring",fromList [(Version {versionBranch = [0,10,0,2], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "bytestring-0.10.0.2-59abd9894532f476aabac207680aae43", sourcePackageId = PackageIdentifier {pkgName = PackageName "bytestring", pkgVersion = Version {versionBranch = [0,10,0,2], versionTags = []}}, license = BSD3, copyright = "Copyright (c) Don Stewart          2005-2009,\n(c) Duncan Coutts        2006-2012,\n(c) David Roundy         2003-2005,\n(c) Jasper Van der Jeugt 2010,\n(c) Simon Meier          2010-2011.", maintainer = "Don Stewart <dons00@gmail.com>,\nDuncan Coutts <duncan@community.haskell.org>", author = "Don Stewart,\nDuncan Coutts", stability = "", homepage = "", pkgUrl = "", synopsis = "Fast, compact, strict and lazy byte strings with a list interface", description = "An efficient compact, immutable byte string type (both strict and lazy)\nsuitable for binary or 8-bit character data.\n\nThe 'ByteString' type represents sequences of bytes or 8-bit characters.\nIt is suitable for high performance use, both in terms of large data\nquantities, or high speed requirements. The 'ByteStrin'g functions follow\nthe same style as Haskell\\'s ordinary lists, so it is easy to convert code\nfrom using 'String' to 'ByteString'.\n\nTwo 'ByteString' variants are provided:\n\n* Strict 'ByteString's keep the string as a single large array. This\nmakes them convenient for passing data between C and Haskell.\n\n* Lazy 'ByteString's use a lazy list of strict chunks which makes it\nsuitable for I\\/O streaming tasks.\n\nThe @Char8@ modules provide a character-based view of the same\nunderlying 'ByteString' types. This makes it convenient to handle mixed\nbinary and 8-bit character content (which is common in many file formats\nand network protocols).\n\nThe 'Builder' module provides an efficient way to build up 'ByteString's\nin an ad-hoc way by repeated concatenation. This is ideal for fast\nserialisation or pretty printing.\n\n'ByteString's are not designed for Unicode. For Unicode strings you should\nuse the 'Text' type from the @text@ package.\n\nThese modules are intended to be imported qualified, to avoid name clashes\nwith \"Prelude\" functions, e.g.\n\n> import qualified Data.ByteString as BS", category = "Data", exposed = True, exposedModules = [ModuleName ["Data","ByteString"],ModuleName ["Data","ByteString","Char8"],ModuleName ["Data","ByteString","Unsafe"],ModuleName ["Data","ByteString","Internal"],ModuleName ["Data","ByteString","Lazy"],ModuleName ["Data","ByteString","Lazy","Char8"],ModuleName ["Data","ByteString","Lazy","Internal"],ModuleName ["Data","ByteString","Lazy","Builder"],ModuleName ["Data","ByteString","Lazy","Builder","Extras"],ModuleName ["Data","ByteString","Lazy","Builder","ASCII"]], hiddenModules = [ModuleName ["Data","ByteString","Lazy","Builder","Internal"],ModuleName ["Data","ByteString","Lazy","Builder","BasicEncoding"],ModuleName ["Data","ByteString","Lazy","Builder","BasicEncoding","Extras"],ModuleName ["Data","ByteString","Lazy","Builder","BasicEncoding","Internal"],ModuleName ["Data","ByteString","Lazy","Builder","BasicEncoding","Binary"],ModuleName ["Data","ByteString","Lazy","Builder","BasicEncoding","ASCII"],ModuleName ["Data","ByteString","Lazy","Builder","BasicEncoding","Internal","Floating"],ModuleName ["Data","ByteString","Lazy","Builder","BasicEncoding","Internal","UncheckedShifts"],ModuleName ["Data","ByteString","Lazy","Builder","BasicEncoding","Internal","Base16"]], trusted = False, importDirs = ["/usr/local/lib/ghc-7.6.3/bytestring-0.10.0.2"], libraryDirs = ["/usr/local/lib/ghc-7.6.3/bytestring-0.10.0.2"], hsLibraries = ["HSbytestring-0.10.0.2"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/usr/local/lib/ghc-7.6.3/bytestring-0.10.0.2/include"], includes = ["fpstring.h"], depends = [InstalledPackageId "base-4.6.0.1-f7bdc8987bd5928e0ee6e8cc8b246a88",InstalledPackageId "deepseq-1.3.0.1-5cc4cd89bdc2e8f6db1833d95ec36926",InstalledPackageId "ghc-prim-0.3.0.0-d5221a8c8a269b66ab9a07bdc23317dd"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/bytestring-0.10.0.2/bytestring.haddock"], haddockHTMLs = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/bytestring-0.10.0.2"]}])]),(PackageName "containers",fromList [(Version {versionBranch = [0,5,0,0], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "containers-0.5.0.0-ab1dae9a94cd3cc84e7b2805636ebfa2", sourcePackageId = PackageIdentifier {pkgName = PackageName "containers", pkgVersion = Version {versionBranch = [0,5,0,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "fox@ucw.cz", author = "", stability = "", homepage = "", pkgUrl = "", synopsis = "Assorted concrete container types", description = "This package contains efficient general-purpose implementations\nof various basic immutable container types.  The declared cost of\neach operation is either worst-case or amortized, but remains\nvalid even if structures are shared.", category = "Data Structures", exposed = True, exposedModules = [ModuleName ["Data","Graph"],ModuleName ["Data","Sequence"],ModuleName ["Data","Tree"],ModuleName ["Data","IntMap"],ModuleName ["Data","IntMap","Lazy"],ModuleName ["Data","IntMap","Strict"],ModuleName ["Data","IntSet"],ModuleName ["Data","Map"],ModuleName ["Data","Map","Lazy"],ModuleName ["Data","Map","Strict"],ModuleName ["Data","Set"]], hiddenModules = [ModuleName ["Data","IntMap","Base"],ModuleName ["Data","IntSet","Base"],ModuleName ["Data","Map","Base"],ModuleName ["Data","Set","Base"],ModuleName ["Data","StrictPair"]], trusted = False, importDirs = ["/usr/local/lib/ghc-7.6.3/containers-0.5.0.0"], libraryDirs = ["/usr/local/lib/ghc-7.6.3/containers-0.5.0.0"], hsLibraries = ["HScontainers-0.5.0.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "array-0.4.0.1-3b78425c10ff2dad7acf7e8c8ae014c3",InstalledPackageId "base-4.6.0.1-f7bdc8987bd5928e0ee6e8cc8b246a88",InstalledPackageId "deepseq-1.3.0.1-5cc4cd89bdc2e8f6db1833d95ec36926",InstalledPackageId "ghc-prim-0.3.0.0-d5221a8c8a269b66ab9a07bdc23317dd"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/containers-0.5.0.0/containers.haddock"], haddockHTMLs = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/containers-0.5.0.0"]}])]),(PackageName "deepseq",fromList [(Version {versionBranch = [1,3,0,1], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "deepseq-1.3.0.1-5cc4cd89bdc2e8f6db1833d95ec36926", sourcePackageId = PackageIdentifier {pkgName = PackageName "deepseq", pkgVersion = Version {versionBranch = [1,3,0,1], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", synopsis = "Deep evaluation of data structures", description = "This package provides methods for fully evaluating data structures\n(\\\"deep evaluation\\\"). Deep evaluation is often used for adding\nstrictness to a program, e.g. in order to force pending exceptions,\nremove space leaks, or force lazy I/O to happen. It is also useful\nin parallel programs, to ensure pending work does not migrate to the\nwrong thread.\n\nThe primary use of this package is via the 'deepseq' function, a\n\\\"deep\\\" version of 'seq'. It is implemented on top of an 'NFData'\ntypeclass (\\\"Normal Form Data\\\", data structures with no unevaluated\ncomponents) which defines strategies for fully evaluating different\ndata types.\n", category = "Control", exposed = True, exposedModules = [ModuleName ["Control","DeepSeq"]], hiddenModules = [], trusted = False, importDirs = ["/usr/local/lib/ghc-7.6.3/deepseq-1.3.0.1"], libraryDirs = ["/usr/local/lib/ghc-7.6.3/deepseq-1.3.0.1"], hsLibraries = ["HSdeepseq-1.3.0.1"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "array-0.4.0.1-3b78425c10ff2dad7acf7e8c8ae014c3",InstalledPackageId "base-4.6.0.1-f7bdc8987bd5928e0ee6e8cc8b246a88"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/deepseq-1.3.0.1/deepseq.haddock"], haddockHTMLs = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/deepseq-1.3.0.1"]}])]),(PackageName "ghc-prim",fromList [(Version {versionBranch = [0,3,0,0], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "ghc-prim-0.3.0.0-d5221a8c8a269b66ab9a07bdc23317dd", sourcePackageId = PackageIdentifier {pkgName = PackageName "ghc-prim", pkgVersion = Version {versionBranch = [0,3,0,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", synopsis = "GHC primitives", description = "GHC primitives.", category = "", exposed = True, exposedModules = [ModuleName ["GHC","Prim"],ModuleName ["GHC","Classes"],ModuleName ["GHC","CString"],ModuleName ["GHC","Debug"],ModuleName ["GHC","Magic"],ModuleName ["GHC","PrimopWrappers"],ModuleName ["GHC","IntWord64"],ModuleName ["GHC","Tuple"],ModuleName ["GHC","Types"]], hiddenModules = [], trusted = False, importDirs = ["/usr/local/lib/ghc-7.6.3/ghc-prim-0.3.0.0"], libraryDirs = ["/usr/local/lib/ghc-7.6.3/ghc-prim-0.3.0.0"], hsLibraries = ["HSghc-prim-0.3.0.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "builtin_rts"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/ghc-prim-0.3.0.0/ghc-prim.haddock"], haddockHTMLs = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/ghc-prim-0.3.0.0"]}])]),(PackageName "integer-gmp",fromList [(Version {versionBranch = [0,5,0,0], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "integer-gmp-0.5.0.0-2f15426f5b53fe4c6490832f9b20d8d7", sourcePackageId = PackageIdentifier {pkgName = PackageName "integer-gmp", pkgVersion = Version {versionBranch = [0,5,0,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", synopsis = "Integer library based on GMP", 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","GMP","Prim"],ModuleName ["GHC","Integer","Logarithms"],ModuleName ["GHC","Integer","Logarithms","Internals"]], hiddenModules = [ModuleName ["GHC","Integer","Type"]], trusted = False, importDirs = ["/usr/local/lib/ghc-7.6.3/integer-gmp-0.5.0.0"], libraryDirs = ["/usr/local/lib/ghc-7.6.3/integer-gmp-0.5.0.0","/usr/local/lib"], hsLibraries = ["HSinteger-gmp-0.5.0.0"], extraLibraries = ["gmp"], extraGHCiLibraries = [], includeDirs = ["/usr/local/include"], includes = [], depends = [InstalledPackageId "ghc-prim-0.3.0.0-d5221a8c8a269b66ab9a07bdc23317dd"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/integer-gmp-0.5.0.0/integer-gmp.haddock"], haddockHTMLs = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/integer-gmp-0.5.0.0"]}])]),(PackageName "mtl",fromList [(Version {versionBranch = [2,1,2], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "mtl-2.1.2-94c72af955e94b8d7b2f359dadd0cb62", sourcePackageId = PackageIdentifier {pkgName = PackageName "mtl", pkgVersion = Version {versionBranch = [2,1,2], versionTags = []}}, license = BSD3, copyright = "", maintainer = "Edward Kmett <ekmett@gmail.com>", author = "Andy Gill", stability = "", homepage = "http://github.com/ekmett/mtl", pkgUrl = "", synopsis = "Monad classes, using functional dependencies", 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 = [], trusted = False, importDirs = ["/usr/local/lib/cabal/ghc-7.6.3/mtl-2.1.2"], libraryDirs = ["/usr/local/lib/cabal/ghc-7.6.3/mtl-2.1.2","/usr/local/lib"], hsLibraries = ["HSmtl-2.1.2"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/usr/local/include"], includes = [], depends = [InstalledPackageId "base-4.6.0.1-f7bdc8987bd5928e0ee6e8cc8b246a88",InstalledPackageId "transformers-0.3.0.0-ff2bb6ac67241ebb987351a3db564af0"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/local/share/doc/cabal/ghc-7.6.3/mtl-2.1.2/html/mtl.haddock"], haddockHTMLs = ["/usr/local/share/doc/cabal/ghc-7.6.3/mtl-2.1.2/html"]}])]),(PackageName "network",fromList [(Version {versionBranch = [2,4,1,2], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "network-2.4.1.2-5be4ce21effbb1a11c3b90006afd63d9", sourcePackageId = PackageIdentifier {pkgName = PackageName "network", pkgVersion = Version {versionBranch = [2,4,1,2], versionTags = []}}, license = BSD3, copyright = "", maintainer = "Johan Tibell <johan.tibell@gmail.com>", author = "", stability = "", homepage = "https://github.com/haskell/network", pkgUrl = "", synopsis = "Low-level networking interface", description = "Low-level networking interface", category = "Network", exposed = True, exposedModules = [ModuleName ["Network"],ModuleName ["Network","BSD"],ModuleName ["Network","Socket"],ModuleName ["Network","Socket","ByteString"],ModuleName ["Network","Socket","ByteString","Lazy"],ModuleName ["Network","Socket","Internal"],ModuleName ["Network","URI"]], hiddenModules = [ModuleName ["Network","Socket","ByteString","IOVec"],ModuleName ["Network","Socket","ByteString","MsgHdr"],ModuleName ["Network","Socket","ByteString","Internal"],ModuleName ["Network","Socket","Types"]], trusted = False, importDirs = ["/usr/local/lib/cabal/ghc-7.6.3/network-2.4.1.2"], libraryDirs = ["/usr/local/lib/cabal/ghc-7.6.3/network-2.4.1.2","/usr/local/lib"], hsLibraries = ["HSnetwork-2.4.1.2"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/usr/local/include","/usr/local/lib/cabal/ghc-7.6.3/network-2.4.1.2/include"], includes = ["HsNet.h"], depends = [InstalledPackageId "base-4.6.0.1-f7bdc8987bd5928e0ee6e8cc8b246a88",InstalledPackageId "bytestring-0.10.0.2-59abd9894532f476aabac207680aae43",InstalledPackageId "parsec-3.1.3-7d16ef6a60127910ee03cf1d43ace489",InstalledPackageId "unix-2.6.0.1-0331dd8b9407cabaa0b542d86de016a7"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/local/share/doc/cabal/ghc-7.6.3/network-2.4.1.2/html/network.haddock"], haddockHTMLs = ["/usr/local/share/doc/cabal/ghc-7.6.3/network-2.4.1.2/html"]}])]),(PackageName "old-locale",fromList [(Version {versionBranch = [1,0,0,5], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "old-locale-1.0.0.5-6729cb9d9cc62d150655de8fc5401b91", sourcePackageId = PackageIdentifier {pkgName = PackageName "old-locale", pkgVersion = Version {versionBranch = [1,0,0,5], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", synopsis = "locale library", description = "This package provides the ability to adapt to\nlocale conventions such as date and time formats.", category = "System", exposed = True, exposedModules = [ModuleName ["System","Locale"]], hiddenModules = [], trusted = False, importDirs = ["/usr/local/lib/ghc-7.6.3/old-locale-1.0.0.5"], libraryDirs = ["/usr/local/lib/ghc-7.6.3/old-locale-1.0.0.5"], hsLibraries = ["HSold-locale-1.0.0.5"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "base-4.6.0.1-f7bdc8987bd5928e0ee6e8cc8b246a88"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/old-locale-1.0.0.5/old-locale.haddock"], haddockHTMLs = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/old-locale-1.0.0.5"]}])]),(PackageName "parsec",fromList [(Version {versionBranch = [3,1,3], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "parsec-3.1.3-7d16ef6a60127910ee03cf1d43ace489", sourcePackageId = PackageIdentifier {pkgName = PackageName "parsec", pkgVersion = Version {versionBranch = [3,1,3], versionTags = []}}, license = BSD3, copyright = "", maintainer = "Antoine Latter <aslatter@gmail.com>", author = "Daan Leijen <daan@microsoft.com>, Paolo Martini <paolo@nemail.it>", stability = "", homepage = "http://www.cs.uu.nl/~daan/parsec.html", pkgUrl = "", synopsis = "Monadic parser combinators", description = "Parsec is designed from scratch as an industrial-strength parser\nlibrary.  It is simple, safe, well documented (on the package\nhomepage), has extensive libraries and good error messages,\nand is also fast.  It is defined as a monad transformer that can be\nstacked on arbitrary monads, and it is also parametric in the\ninput stream type.", category = "Parsing", exposed = True, exposedModules = [ModuleName ["Text","Parsec"],ModuleName ["Text","Parsec","String"],ModuleName ["Text","Parsec","ByteString"],ModuleName ["Text","Parsec","ByteString","Lazy"],ModuleName ["Text","Parsec","Text"],ModuleName ["Text","Parsec","Text","Lazy"],ModuleName ["Text","Parsec","Pos"],ModuleName ["Text","Parsec","Error"],ModuleName ["Text","Parsec","Prim"],ModuleName ["Text","Parsec","Char"],ModuleName ["Text","Parsec","Combinator"],ModuleName ["Text","Parsec","Token"],ModuleName ["Text","Parsec","Expr"],ModuleName ["Text","Parsec","Language"],ModuleName ["Text","Parsec","Perm"],ModuleName ["Text","ParserCombinators","Parsec"],ModuleName ["Text","ParserCombinators","Parsec","Char"],ModuleName ["Text","ParserCombinators","Parsec","Combinator"],ModuleName ["Text","ParserCombinators","Parsec","Error"],ModuleName ["Text","ParserCombinators","Parsec","Expr"],ModuleName ["Text","ParserCombinators","Parsec","Language"],ModuleName ["Text","ParserCombinators","Parsec","Perm"],ModuleName ["Text","ParserCombinators","Parsec","Pos"],ModuleName ["Text","ParserCombinators","Parsec","Prim"],ModuleName ["Text","ParserCombinators","Parsec","Token"]], hiddenModules = [], trusted = False, importDirs = ["/usr/local/lib/cabal/ghc-7.6.3/parsec-3.1.3"], libraryDirs = ["/usr/local/lib/cabal/ghc-7.6.3/parsec-3.1.3","/usr/local/lib"], hsLibraries = ["HSparsec-3.1.3"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/usr/local/include"], includes = [], depends = [InstalledPackageId "base-4.6.0.1-f7bdc8987bd5928e0ee6e8cc8b246a88",InstalledPackageId "bytestring-0.10.0.2-59abd9894532f476aabac207680aae43",InstalledPackageId "mtl-2.1.2-94c72af955e94b8d7b2f359dadd0cb62",InstalledPackageId "text-0.11.3.1-b49365bcfaf3954e4484c36c86c98126"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/local/share/doc/cabal/ghc-7.6.3/parsec-3.1.3/html/parsec.haddock"], haddockHTMLs = ["/usr/local/share/doc/cabal/ghc-7.6.3/parsec-3.1.3/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 = "", synopsis = "", description = "", category = "", exposed = True, exposedModules = [], hiddenModules = [], trusted = False, importDirs = [], libraryDirs = ["/usr/local/lib/ghc-7.6.3"], hsLibraries = ["HSrts"], extraLibraries = ["m","ffi"], extraGHCiLibraries = [], includeDirs = ["/usr/local/lib/ghc-7.6.3/include"], includes = ["Stg.h"], depends = [], 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","ghczmprim_GHCziTypes_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_flushStdHandles_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","-L/usr/local/lib"], frameworkDirs = [], frameworks = [], haddockInterfaces = [], haddockHTMLs = []}])]),(PackageName "text",fromList [(Version {versionBranch = [0,11,3,1], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "text-0.11.3.1-b49365bcfaf3954e4484c36c86c98126", sourcePackageId = PackageIdentifier {pkgName = PackageName "text", pkgVersion = Version {versionBranch = [0,11,3,1], versionTags = []}}, license = BSD3, copyright = "2009-2011 Bryan O'Sullivan, 2008-2009 Tom Harper", maintainer = "Bryan O'Sullivan <bos@serpentine.com>", author = "Bryan O'Sullivan <bos@serpentine.com>", stability = "", homepage = "https://github.com/bos/text", pkgUrl = "", synopsis = "An efficient packed Unicode text type.", description = "\nAn efficient packed, immutable Unicode text type (both strict and\nlazy), with a powerful loop fusion optimization framework.\n\nThe 'Text' type represents Unicode character strings, in a time and\nspace-efficient manner. This package provides text processing\ncapabilities that are optimized for performance critical use, both\nin terms of large data quantities and high speed.\n\nThe 'Text' type provides character-encoding, type-safe case\nconversion via whole-string case conversion functions. It also\nprovides a range of functions for converting 'Text' values to and from\n'ByteStrings', using several standard encodings.\n\nEfficient locale-sensitive support for text IO is also supported.\n\nThese modules are intended to be imported qualified, to avoid name\nclashes with Prelude functions, e.g.\n\n> import qualified Data.Text as T\n\nTo use an extended and very rich family of functions for working\nwith Unicode text (including normalization, regular expressions,\nnon-standard encodings, text breaking, and locales), see\nthe @text-icu@ package:\n<http://hackage.haskell.org/package/text-icu>\n\n&#8212;&#8212; RELEASE NOTES &#8212;&#8212;\n\nChanges in 0.11.2.0:\n\n* String literals are now converted directly from the format in\nwhich GHC stores them into 'Text', without an intermediate\ntransformation through 'String', and without inlining of\nconversion code at each site where a string literal is declared.\n", category = "Data, Text", exposed = True, exposedModules = [ModuleName ["Data","Text"],ModuleName ["Data","Text","Array"],ModuleName ["Data","Text","Encoding"],ModuleName ["Data","Text","Encoding","Error"],ModuleName ["Data","Text","Foreign"],ModuleName ["Data","Text","IO"],ModuleName ["Data","Text","Internal"],ModuleName ["Data","Text","Lazy"],ModuleName ["Data","Text","Lazy","Builder"],ModuleName ["Data","Text","Lazy","Builder","Int"],ModuleName ["Data","Text","Lazy","Builder","RealFloat"],ModuleName ["Data","Text","Lazy","Encoding"],ModuleName ["Data","Text","Lazy","IO"],ModuleName ["Data","Text","Lazy","Internal"],ModuleName ["Data","Text","Lazy","Read"],ModuleName ["Data","Text","Read"],ModuleName ["Data","Text","Unsafe"]], hiddenModules = [ModuleName ["Data","Text","Encoding","Fusion"],ModuleName ["Data","Text","Encoding","Fusion","Common"],ModuleName ["Data","Text","Encoding","Utf16"],ModuleName ["Data","Text","Encoding","Utf32"],ModuleName ["Data","Text","Encoding","Utf8"],ModuleName ["Data","Text","Fusion"],ModuleName ["Data","Text","Fusion","CaseMapping"],ModuleName ["Data","Text","Fusion","Common"],ModuleName ["Data","Text","Fusion","Internal"],ModuleName ["Data","Text","Fusion","Size"],ModuleName ["Data","Text","IO","Internal"],ModuleName ["Data","Text","Lazy","Builder","Functions"],ModuleName ["Data","Text","Lazy","Builder","Int","Digits"],ModuleName ["Data","Text","Lazy","Builder","Internal"],ModuleName ["Data","Text","Lazy","Builder","RealFloat","Functions"],ModuleName ["Data","Text","Lazy","Encoding","Fusion"],ModuleName ["Data","Text","Lazy","Fusion"],ModuleName ["Data","Text","Lazy","Search"],ModuleName ["Data","Text","Private"],ModuleName ["Data","Text","Search"],ModuleName ["Data","Text","Unsafe","Base"],ModuleName ["Data","Text","UnsafeChar"],ModuleName ["Data","Text","UnsafeShift"],ModuleName ["Data","Text","Util"]], trusted = False, importDirs = ["/usr/local/lib/cabal/ghc-7.6.3/text-0.11.3.1"], libraryDirs = ["/usr/local/lib/cabal/ghc-7.6.3/text-0.11.3.1","/usr/local/lib"], hsLibraries = ["HStext-0.11.3.1"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/usr/local/include"], includes = [], depends = [InstalledPackageId "array-0.4.0.1-3b78425c10ff2dad7acf7e8c8ae014c3",InstalledPackageId "base-4.6.0.1-f7bdc8987bd5928e0ee6e8cc8b246a88",InstalledPackageId "bytestring-0.10.0.2-59abd9894532f476aabac207680aae43",InstalledPackageId "deepseq-1.3.0.1-5cc4cd89bdc2e8f6db1833d95ec36926",InstalledPackageId "ghc-prim-0.3.0.0-d5221a8c8a269b66ab9a07bdc23317dd",InstalledPackageId "integer-gmp-0.5.0.0-2f15426f5b53fe4c6490832f9b20d8d7"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/local/share/doc/cabal/ghc-7.6.3/text-0.11.3.1/html/text.haddock"], haddockHTMLs = ["/usr/local/share/doc/cabal/ghc-7.6.3/text-0.11.3.1/html"]}])]),(PackageName "time",fromList [(Version {versionBranch = [1,4,0,1], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "time-1.4.0.1-10dc4804a19dc0000fab79908f1a9f50", sourcePackageId = PackageIdentifier {pkgName = PackageName "time", pkgVersion = Version {versionBranch = [1,4,0,1], versionTags = []}}, license = BSD3, copyright = "", maintainer = "<ashley@semantic.org>", author = "Ashley Yakeley", stability = "stable", homepage = "http://semantic.org/TimeLib/", pkgUrl = "", synopsis = "A time library", description = "A time library", category = "System", exposed = True, exposedModules = [ModuleName ["Data","Time","Calendar"],ModuleName ["Data","Time","Calendar","MonthDay"],ModuleName ["Data","Time","Calendar","OrdinalDate"],ModuleName ["Data","Time","Calendar","WeekDate"],ModuleName ["Data","Time","Calendar","Julian"],ModuleName ["Data","Time","Calendar","Easter"],ModuleName ["Data","Time","Clock"],ModuleName ["Data","Time","Clock","POSIX"],ModuleName ["Data","Time","Clock","TAI"],ModuleName ["Data","Time","LocalTime"],ModuleName ["Data","Time","Format"],ModuleName ["Data","Time"]], hiddenModules = [ModuleName ["Data","Time","Calendar","Private"],ModuleName ["Data","Time","Calendar","Days"],ModuleName ["Data","Time","Calendar","Gregorian"],ModuleName ["Data","Time","Calendar","JulianYearDay"],ModuleName ["Data","Time","Clock","Scale"],ModuleName ["Data","Time","Clock","UTC"],ModuleName ["Data","Time","Clock","CTimeval"],ModuleName ["Data","Time","Clock","UTCDiff"],ModuleName ["Data","Time","LocalTime","TimeZone"],ModuleName ["Data","Time","LocalTime","TimeOfDay"],ModuleName ["Data","Time","LocalTime","LocalTime"],ModuleName ["Data","Time","Format","Parse"]], trusted = False, importDirs = ["/usr/local/lib/ghc-7.6.3/time-1.4.0.1"], libraryDirs = ["/usr/local/lib/ghc-7.6.3/time-1.4.0.1"], hsLibraries = ["HStime-1.4.0.1"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/usr/local/lib/ghc-7.6.3/time-1.4.0.1/include"], includes = [], depends = [InstalledPackageId "base-4.6.0.1-f7bdc8987bd5928e0ee6e8cc8b246a88",InstalledPackageId "deepseq-1.3.0.1-5cc4cd89bdc2e8f6db1833d95ec36926",InstalledPackageId "old-locale-1.0.0.5-6729cb9d9cc62d150655de8fc5401b91"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/time-1.4.0.1/time.haddock"], haddockHTMLs = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/time-1.4.0.1"]}])]),(PackageName "transformers",fromList [(Version {versionBranch = [0,3,0,0], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "transformers-0.3.0.0-ff2bb6ac67241ebb987351a3db564af0", sourcePackageId = PackageIdentifier {pkgName = PackageName "transformers", pkgVersion = Version {versionBranch = [0,3,0,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "Ross Paterson <ross@soi.city.ac.uk>", author = "Andy Gill, Ross Paterson", stability = "", homepage = "", pkgUrl = "", synopsis = "Concrete functor and monad transformers", description = "A portable library of functor and monad transformers, inspired by\nthe paper \\\"Functional Programming with Overloading and Higher-Order\nPolymorphism\\\", by Mark P Jones,\nin /Advanced School of Functional Programming/, 1995\n(<http://web.cecs.pdx.edu/~mpj/pubs/springschool.html>).\n\nThis package contains:\n\n* the monad transformer class (in \"Control.Monad.Trans.Class\")\n\n* concrete functor and monad transformers, each with associated\noperations and functions to lift operations associated with other\ntransformers.\n\nIt can be used on its own in portable Haskell code, or with the monad\nclasses in the @mtl@ or @monads-tf@ packages, which automatically\nlift operations introduced by monad transformers through other\ntransformers.", category = "Control", exposed = True, exposedModules = [ModuleName ["Control","Applicative","Backwards"],ModuleName ["Control","Applicative","Lift"],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"],ModuleName ["Data","Functor","Reverse"]], hiddenModules = [], trusted = False, importDirs = ["/usr/local/lib/cabal/ghc-7.6.3/transformers-0.3.0.0"], libraryDirs = ["/usr/local/lib/cabal/ghc-7.6.3/transformers-0.3.0.0","/usr/local/lib"], hsLibraries = ["HStransformers-0.3.0.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/usr/local/include"], includes = [], depends = [InstalledPackageId "base-4.6.0.1-f7bdc8987bd5928e0ee6e8cc8b246a88"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/local/share/doc/cabal/ghc-7.6.3/transformers-0.3.0.0/html/transformers.haddock"], haddockHTMLs = ["/usr/local/share/doc/cabal/ghc-7.6.3/transformers-0.3.0.0/html"]}])]),(PackageName "unix",fromList [(Version {versionBranch = [2,6,0,1], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "unix-2.6.0.1-0331dd8b9407cabaa0b542d86de016a7", sourcePackageId = PackageIdentifier {pkgName = PackageName "unix", pkgVersion = Version {versionBranch = [2,6,0,1], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", synopsis = "POSIX functionality", description = "This package gives you access to the set of operating system\nservices standardised by POSIX 1003.1b (or the IEEE Portable\nOperating System Interface for Computing Environments -\nIEEE Std. 1003.1).\n\nThe package is not supported under Windows (except under Cygwin).", category = "System", exposed = True, exposedModules = [ModuleName ["System","Posix"],ModuleName ["System","Posix","ByteString"],ModuleName ["System","Posix","Error"],ModuleName ["System","Posix","Resource"],ModuleName ["System","Posix","Time"],ModuleName ["System","Posix","Unistd"],ModuleName ["System","Posix","User"],ModuleName ["System","Posix","Signals"],ModuleName ["System","Posix","Signals","Exts"],ModuleName ["System","Posix","Semaphore"],ModuleName ["System","Posix","SharedMem"],ModuleName ["System","Posix","ByteString","FilePath"],ModuleName ["System","Posix","Directory"],ModuleName ["System","Posix","Directory","ByteString"],ModuleName ["System","Posix","DynamicLinker","Module"],ModuleName ["System","Posix","DynamicLinker","Module","ByteString"],ModuleName ["System","Posix","DynamicLinker","Prim"],ModuleName ["System","Posix","DynamicLinker","ByteString"],ModuleName ["System","Posix","DynamicLinker"],ModuleName ["System","Posix","Files"],ModuleName ["System","Posix","Files","ByteString"],ModuleName ["System","Posix","IO"],ModuleName ["System","Posix","IO","ByteString"],ModuleName ["System","Posix","Env"],ModuleName ["System","Posix","Env","ByteString"],ModuleName ["System","Posix","Process"],ModuleName ["System","Posix","Process","Internals"],ModuleName ["System","Posix","Process","ByteString"],ModuleName ["System","Posix","Temp"],ModuleName ["System","Posix","Temp","ByteString"],ModuleName ["System","Posix","Terminal"],ModuleName ["System","Posix","Terminal","ByteString"]], hiddenModules = [ModuleName ["System","Posix","Directory","Common"],ModuleName ["System","Posix","DynamicLinker","Common"],ModuleName ["System","Posix","Files","Common"],ModuleName ["System","Posix","IO","Common"],ModuleName ["System","Posix","Process","Common"],ModuleName ["System","Posix","Terminal","Common"]], trusted = False, importDirs = ["/usr/local/lib/ghc-7.6.3/unix-2.6.0.1"], libraryDirs = ["/usr/local/lib/ghc-7.6.3/unix-2.6.0.1"], hsLibraries = ["HSunix-2.6.0.1"], extraLibraries = ["rt","util"], extraGHCiLibraries = [], includeDirs = ["/usr/local/lib/ghc-7.6.3/unix-2.6.0.1/include"], includes = ["HsUnix.h","execvpe.h"], depends = [InstalledPackageId "base-4.6.0.1-f7bdc8987bd5928e0ee6e8cc8b246a88",InstalledPackageId "bytestring-0.10.0.2-59abd9894532f476aabac207680aae43",InstalledPackageId "time-1.4.0.1-10dc4804a19dc0000fab79908f1a9f50"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/unix-2.6.0.1/unix.haddock"], haddockHTMLs = ["/usr/local/share/doc/ghc-7.6.3/html/libraries/unix-2.6.0.1"]}])])]), pkgDescrFile = Just "./Ketchup.cabal", localPkgDescr = PackageDescription {package = PackageIdentifier {pkgName = PackageName "Ketchup", pkgVersion = Version {versionBranch = [0,1,0], versionTags = []}}, license = MIT, licenseFile = "LICENSE", copyright = "", maintainer = "zikyky@gmail.com", author = "Alessandro Gatti", stability = "", testedWith = [], homepage = "https://github.com/Hamcha/Ketchup", pkgUrl = "", bugReports = "", sourceRepos = [SourceRepo {repoKind = RepoHead, repoType = Just Git, repoLocation = Just "git://github.com/Hamcha/Ketchup.git", repoModule = Nothing, repoBranch = Nothing, repoTag = Nothing, repoSubdir = Nothing}], synopsis = "A super small web framework for those who don't like big and fancy codebases", description = "", category = "Web, Ketchup", customFieldsPD = [], buildDepends = [Dependency (PackageName "base") (IntersectVersionRanges AnyVersion (ThisVersion (Version {versionBranch = [4,6,0,1], versionTags = []}))),Dependency (PackageName "bytestring") (IntersectVersionRanges AnyVersion (ThisVersion (Version {versionBranch = [0,10,0,2], versionTags = []}))),Dependency (PackageName "containers") (IntersectVersionRanges AnyVersion (ThisVersion (Version {versionBranch = [0,5,0,0], versionTags = []}))),Dependency (PackageName "network") (IntersectVersionRanges AnyVersion (ThisVersion (Version {versionBranch = [2,4,1,2], versionTags = []})))], specVersionRaw = Right (UnionVersionRanges (ThisVersion (Version {versionBranch = [1,6], versionTags = []})) (LaterVersion (Version {versionBranch = [1,6], versionTags = []}))), buildType = Just Simple, library = Just (Library {exposedModules = [ModuleName ["Ketchup","Httpd"],ModuleName ["Ketchup","Routing"]], libExposed = True, libBuildInfo = BuildInfo {buildable = True, buildTools = [], cppOptions = [], ccOptions = [], ldOptions = [], pkgconfigDepends = [], frameworks = [], cSources = [], hsSourceDirs = ["."], otherModules = [ModuleName ["Ketchup","Utils"]], defaultLanguage = Nothing, otherLanguages = [], defaultExtensions = [], otherExtensions = [], oldExtensions = [], extraLibs = [], extraLibDirs = [], includeDirs = [], includes = [], installIncludes = [], options = [], ghcProfOptions = [], ghcSharedOptions = [], customFieldsBI = [], targetBuildDepends = [Dependency (PackageName "base") (IntersectVersionRanges AnyVersion (ThisVersion (Version {versionBranch = [4,6,0,1], versionTags = []}))),Dependency (PackageName "bytestring") (IntersectVersionRanges AnyVersion (ThisVersion (Version {versionBranch = [0,10,0,2], versionTags = []}))),Dependency (PackageName "containers") (IntersectVersionRanges AnyVersion (ThisVersion (Version {versionBranch = [0,5,0,0], versionTags = []}))),Dependency (PackageName "network") (IntersectVersionRanges AnyVersion (ThisVersion (Version {versionBranch = [2,4,1,2], versionTags = []})))]}}), executables = [], testSuites = [], benchmarks = [], dataFiles = [], dataDir = "", extraSrcFiles = [], extraTmpFiles = []}, withPrograms = [("alex",ConfiguredProgram {programId = "alex", programVersion = Just (Version {versionBranch = [3,1,3], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/root/.cabal/bin/alex"}}),("ar",ConfiguredProgram {programId = "ar", programVersion = Nothing, programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/local/bin/ar"}}),("c2hs",ConfiguredProgram {programId = "c2hs", programVersion = Just (Version {versionBranch = [0,17,2], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/root/.cabal/bin/c2hs"}}),("gcc",ConfiguredProgram {programId = "gcc", programVersion = Just (Version {versionBranch = [4,7,3], versionTags = []}), programDefaultArgs = ["-Wl,--hash-size=31","-Wl,--reduce-memory-overheads"], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "gcc47"}}),("ghc",ConfiguredProgram {programId = "ghc", programVersion = Just (Version {versionBranch = [7,6,3], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/local/bin/ghc"}}),("ghc-pkg",ConfiguredProgram {programId = "ghc-pkg", programVersion = Just (Version {versionBranch = [7,6,3], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/local/bin/ghc-pkg"}}),("haddock",ConfiguredProgram {programId = "haddock", programVersion = Just (Version {versionBranch = [2,13,2], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/local/bin/haddock"}}),("happy",ConfiguredProgram {programId = "happy", programVersion = Just (Version {versionBranch = [1,19,3], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/root/.cabal/bin/happy"}}),("hpc",ConfiguredProgram {programId = "hpc", programVersion = Just (Version {versionBranch = [0,6], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/local/bin/hpc"}}),("hsc2hs",ConfiguredProgram {programId = "hsc2hs", programVersion = Just (Version {versionBranch = [0,67], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/local/bin/hsc2hs"}}),("ld",ConfiguredProgram {programId = "ld", programVersion = Nothing, programDefaultArgs = ["-x","--hash-size=31","--reduce-memory-overheads"], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/local/bin/ld"}}),("pkg-config",ConfiguredProgram {programId = "pkg-config", programVersion = Just (Version {versionBranch = [0,28], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/local/bin/pkg-config"}}),("ranlib",ConfiguredProgram {programId = "ranlib", programVersion = Nothing, programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/local/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 = "/usr/bin/tar"}})], withPackageDB = [GlobalPackageDB,UserPackageDB], withVanillaLib = True, withProfLib = False, withSharedLib = False, withDynExe = False, withProfExe = False, withOptimization = NormalOptimisation, withGHCiLib = True, splitObjs = False, stripExes = True, progPrefix = "", progSuffix = ""}
+ example.hs view
@@ -0,0 +1,26 @@+{-# LANGUAGE OverloadedStrings #-}
+
+module Main where
+
+import qualified Data.ByteString as B
+import qualified Data.Map as M
+import           Ketchup.Httpd
+import           Ketchup.Routing
+
+handle hnd req params = do
+    sendReply hnd 200 [("Content-Type", ["text/html"])] response
+    where
+    response = B.concat ["<center>You requested <b>", url, "</b></center>"]
+    url = uri req
+
+greet hnd req params = do
+    sendReply hnd 200 [("Content-Type", ["text/html"])] response
+    where
+    response = B.concat ["<h1>Hi ", getName name, "!</h1>"]
+    getName (Just x) = x
+    getName Nothing  = "Anonymous"
+    name = M.lookup "user" params
+
+router = route [("/", handle), ("/greet/:user", greet)]
+
+main = do listenHTTP "*" 8080 router