<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Unbound DNA &#187; Hlint</title>
	<atom:link href="http://www.unbounddna.com/category/hlint/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.unbounddna.com</link>
	<description></description>
	<lastBuildDate>Fri, 20 Aug 2021 09:00:00 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=3.9.40</generator>
	<item>
		<title>Learn Me A Haskell Development Tool Setup</title>
		<link>http://craigsmith.id.au/2015/01/28/learn-me-a-haskell-development-tool-setup/</link>
		<comments>http://craigsmith.id.au/2015/01/28/learn-me-a-haskell-development-tool-setup/#comments</comments>
		<pubDate>Tue, 27 Jan 2015 14:48:13 +0000</pubDate>
		<dc:creator><![CDATA[Craig Smith]]></dc:creator>
				<category><![CDATA[Cabal]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Functional Programming]]></category>
		<category><![CDATA[Hackage]]></category>
		<category><![CDATA[Haskell]]></category>
		<category><![CDATA[Hlint]]></category>
		<category><![CDATA[Hoogle]]></category>
		<category><![CDATA[Licences]]></category>

		<guid isPermaLink="false">http://craigsmith.id.au/?p=1642</guid>
		<description><![CDATA[I attended the Brisbane Functional Programing Group meetup this week, and one of the talks was by Chris McKay on &#8220;The Whirlwind tour of Haskell Development Tools&#8221;. I always enjoy these talks because often the books don&#8217;t adequately explain these things and the experts often assume that these things are known. Here are my notes: [&#8230;]<img alt="" border="0" src="http://pixel.wp.com/b.gif?host=craigsmith.id.au&#38;blog=1253279&#38;post=1642&#38;subd=cds43&#38;ref=&#38;feed=1" width="1" height="1">]]></description>
				<content:encoded><![CDATA[<p><a href="https://cds43.files.wordpress.com/2015/01/haskell.png"><img class="alignright size-full wp-image-1643" src="https://cds43.files.wordpress.com/2015/01/haskell.png?w=676" alt="Haskell"   /></a>I attended the <a href="http://www.meetup.com/Brisbane-Functional-Programming-Group/">Brisbane Functional Programing Group</a> meetup this week, and one of the talks was by Chris McKay on &#8220;The Whirlwind tour of Haskell Development Tools&#8221;. I always enjoy these talks because often the books don&#8217;t adequately explain these things and the experts often assume that these things are known.</p>
<p><img class="alignnone" src="https://lh6.googleusercontent.com/-Vn82akCwYLA/VMekP3U_b5I/AAAAAAAABCM/UMZ0E7rT-3I/s912/IMG_0915.JPG" alt="" width="912" height="684" /></p>
<p>Here are my notes:</p>
<ul>
<li>getting started books &#8211; <a href="http://book.realworldhaskell.org/">Real World Haskell</a>, <a href="http://learnyouahaskell.com/">Learn You A Haskell For Great Good</a>, <a href="http://www.amazon.com/Thinking-Functionally-Haskell-Richard-Bird/dp/1107452643">Thiinking Functionally with Haskell</a></li>
<li><a href="https://www.haskell.org/ghc/">ghc</a> &#8211; core compiler, supported pretty much everywhere</li>
<li><a href="https://www.haskell.org/cabal/">Cabal </a>&#8211; package management system for Haskell, general purpose build tool</li>
<li><a href="https://www.haskell.org/platform/">Haskell Platform</a> &#8211; bundle of the previous 2 bundled for your platform, plus commonly used libraries, safe place to start</li>
<li>Windows &#8211; pressure for the committers to kept his up-to-date, Haskell platform takes care of the hard parts</li>
<li>OS X &#8211; <a href="https://ghcformacosx.github.io/">ghcformacosx</a> for an installer or via brew / macports</li>
<li><a href="https://www.haskell.org/cabal/users-guide/installing-packages.html#developing-with-sandboxes">sandbox</a> &#8211; supported by Cabal &#8211; will check here before going to the system libraries</li>
<li>src/Main.hs is the starting point</li>
<li>licences &#8211; <a href="http://choosealicense.com/">choosealicence.com</a> or <a href="https://tldrlegal.com/">tldrlegal.com</a></li>
<li>default-language &#8211; Haskell2010</li>
<li><a href="https://wiki.haskell.org/GHC/GHCi">GHCi</a> &#8211; REPL console, also use for inspections at the command line, used by editor</li>
<li><a href="https://hackage.haskell.org/package/ghci-ng">GHCi-NG</a> &#8211; extension with better debugging and extra features, required for some plugins</li>
<li><a href="http://community.haskell.org/~ndm/hlint/">Hlint</a> &#8211; like lint on other languages, looks for code smells (patterns of functional rules), good for beginners</li>
<li><a href="https://www.haskell.org/hoogle/">Hoogle</a> is Google for Haskell &#8211; idea of what you want to do and want to know a function to do it</li>
<li><a href="https://hackage.haskell.org/">Hackage</a> &#8211; repository of all Haskell knowledge</li>
<li><a href="https://hackage.haskell.org/package/ghc-mod">GhcMod</a> &#8211; used by plugins, may need to install it, unlikely to use it directly</li>
<li>Emacs &#8211; <a href="https://github.com/haskell/haskell-mode">haskell-mode</a> (syntax highlighting, indentation, REPL integration), <a href="http://www.mew.org/~kazu/proj/ghc-mod/en/">ghc-mod</a> (access to a whole bunch of tools, nice place to start), <a href="https://github.com/flycheck/flycheck-haskell">flycheck-haskell</a> (syntax checking, can&#8217;t use with ghc), <a href="https://github.com/iquiw/company-ghc">company-ghc</a> (auto completion), <a href="https://github.com/chrisdone/structured-haskell-mode">shm</a> (structured Haskell mode, write code in a tree and it edits for you)</li>
<li><a href="https://github.com/chrisdone/emacs-haskell-config">https://github.com/chrisdone/emacs-haskell-config</a> &#8211; good place to start and works out of the box</li>
<li>vim &#8211; <a href="https://github.com/dag/vim2hs">vim2hs</a> (syntax highlighting), <a href="https://github.com/scrooloose/syntastic">syntastic</a> (syntax checking and lint), <a href="https://github.com/eagletmt/neco-ghc">neco-ghc</a> (auto completion), <a href="https://github.com/eagletmt/ghcmod-vim">ghcmod-vim</a> (compliation errors and warnings, not as good as syntastic)</li>
<li>other editors that work OK &#8211; <a href="http://www.sublimetext.com/">Sublime</a>, <a href="http://eclipsefp.github.io/">EclipseFP</a>, <a href="https://atom.io/">Atom</a> (from Github, still immature), <a href="https://github.com/rikvdkleij/intellij-haskell">intelliJ-haskell</a>, <a href="https://www.fpcomplete.com/business/haskell-center/overview/">FP Haskell Center</a></li>
</ul><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cds43.wordpress.com/1642/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cds43.wordpress.com/1642/" /></a> <img alt="" border="0" src="http://pixel.wp.com/b.gif?host=craigsmith.id.au&#038;blog=1253279&%23038;post=1642&%23038;subd=cds43&%23038;ref=&%23038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://craigsmith.id.au/2015/01/28/learn-me-a-haskell-development-tool-setup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="https://cds43.files.wordpress.com/2015/01/haskell.png?w=150" length="0" type="" />
<enclosure url="http://1.gravatar.com/avatar/150a07a737ff3ff0109cd13bcd008dd8?s=96&#038;d=identicon&#038;r=G" length="0" type="" />
<enclosure url="https://cds43.files.wordpress.com/2015/01/haskell.png" length="0" type="" />
<enclosure url="https://lh6.googleusercontent.com/-Vn82akCwYLA/VMekP3U_b5I/AAAAAAAABCM/UMZ0E7rT-3I/s912/IMG_0915.JPG" length="0" type="" />
		</item>
	</channel>
</rss>
