Skip to content

Instantly share code, notes, and snippets.

@epsilonhalbe
Last active August 29, 2015 14:10
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save epsilonhalbe/018664e75885091fd882 to your computer and use it in GitHub Desktop.
Save epsilonhalbe/018664e75885091fd882 to your computer and use it in GitHub Desktop.
Haskell mindmap
% Author: Martin Heuschober
% License: CC-BY-4.0
% see https://creativecommons.org/licenses/by/4.0/
\documentclass{article}
\usepackage[paperwidth=55cm
,paperheight=45cm
,left=1cm
,right=1cm
,top=1cm
,bottom=1cm
]{geometry}
\usepackage[hidelinks]{hyperref}
\usepackage{tikz}
\usetikzlibrary{mindmap,trees}
\begin{document}
\pagestyle{empty}
\centering
\begin{tikzpicture}
\path[mindmap, concept color=black,text=black
, level 1 concept/.append style={sibling angle=36, level distance=400}
, level 2 concept/.append style={sibling angle=20, level distance=150}
, level 3 concept/.append style={sibling angle=36, level distance=70}
, level 4 concept/.append style={sibling angle=36}
, level 5 concept/.append style={sibling angle=36}
]
node[concept, text=white] {\huge Haskell} [clockwise from=0]
child[concept color=green!50!yellow] { node[concept] {Types} [clockwise from=50]
child[concept color=black!20!green!50!yellow] { node[concept] {composed} [clockwise from=70]
child[concept color=green!10!yellow] { node[concept] {poly\-morphic}
child { node[concept] {type\-clas\-ses} [clockwise from=90]
child[concept color=cyan!5!yellow]{ node[concept] {monad}}
child[concept color=cyan!15!yellow]{ node[concept] {ap\-plica\-tive}}
child[concept color=cyan!25!yellow]{ node[concept] {functor}}
}
}
child[concept color=green!20!yellow] { node[concept] {ADTs}
child[concept color=cyan!20!yellow]{ node[concept] {record syntax}}
child[concept color=cyan!30!yellow]{ node[concept] {Lenses, Prisms}}
child[concept color=cyan!40!yellow]{ node[concept] {GADTs}}
child[concept color=cyan!50!yellow]{ node[concept] {Text}}
child[concept color=cyan!60!yellow]{ node[concept] {Byte\-String}}
}
}
child[concept color=black!30!green!50!yellow]{ node[concept] {static}}
child[concept color=black!40!green!50!yellow]{ node[concept] {strong}}
child[concept color=black!50!green!50!yellow]{ node[concept] {type-signatures}}
child[concept color=black!60!green!50!yellow]{ node[concept] {primitive} [clockwise from=25]
child[concept color=black!60!green!50!yellow!30!blue]{ node[concept] {boxed}}
child[concept color=black!60!green!50!yellow!60!blue]{ node[concept] {unboxed}}
}
child[concept color=black!70!green!50!yellow] { node[concept] {Containers} [clockwise from=0]
child[concept color=black!70!green]{ node[concept] {Maybe}}
child[concept color=black!60!green]{ node[concept] {list like} [clockwise from=15]
child[concept color=black!60!green!35!white]{ node[concept] {Lists}}
child[concept color=black!60!green!45!white]{ node[concept] {Seq\-uence}}
child[concept color=black!60!green!55!white]{ node[concept] {Vectors}}
child[concept color=black!60!green!65!white]{ node[concept] {Arrays}}
}
child[concept color=black!50!green] { node[concept] {Maps}}
child[concept color=black!40!green] { node[concept] {Tries}}
child[concept color=black!30!green] { node[concept] {Trees} [counterclockwise from=120]
child[concept color=black!30!green!59!white]{ node[concept] {Binary}}
child[concept color=black!30!green!66!white]{ node[concept] {Rose}}
child[concept color=black!30!green!73!white]{ node[concept] {Finger}}
child[concept color=black!30!green!80!white]{ node[concept] {Red-Black}}
}
}
}
child[concept color=green] { node[concept] {Messages}
child[concept color=green!90!black]{ node[concept] {Lints}}
child[concept color=green!70!black]{ node[concept] {Warnings}}
child[concept color=green!50!black]{ node[concept] {Reading Messages}}
child[concept color=green!30!black]{ node[concept] {Errors} [clockwise from=-36]
child[concept color=green!80!blue] { node[concept] {Compiler}}
child[concept color=green!60!blue] { node[concept] {Runtime}
child[concept color=green!80!cyan] { node[concept] {unsafe}}
child[concept color=green!60!cyan] { node[concept] {totality}}
child[concept color=green!40!cyan] { node[concept] {Space Leaks}}
child[concept color=green!20!cyan] { node[concept] {Time Leaks}}
}
}
}
child[concept color=green!50!cyan] { node[concept] {Hackage}}
child[concept color=blue!1!cyan] { node[concept] {Libraries} [clockwise from=-68]
child[concept color=blue!90!cyan] { node[concept] {Prelude}}
child[concept color=blue!70!cyan] { node[concept] {Parsec}}
child[concept color=blue!50!cyan] { node[concept] {Diagrams}}
child[concept color=blue!30!cyan] { node[concept] {lens}}
child[concept color=blue!10!cyan] { node[concept] {tasty}}
}
child[concept color=white!50!blue, text=black] { node[concept] {Tooling} [clockwise from=-94]
child[concept color=blue!90!red] { node[concept] {HLint}}
child[concept color=blue!80!red] { node[concept] {testing} [counterclockwise from=-170]
child { node[concept] {test coverage}
child { node[concept] {HPC}}
}
child { node[concept] {property tests}
child { node[concept] {Quick\-Check}}
child { node[concept] {Small\-Check}}
}
child { node[concept] {Unit tests} [clockwise from=-100]
child { node[concept] {HUnit}}
}
child { node[concept] {criterion = benchmarks}}
}
child[concept color=blue!60!red] { node[concept] {Hoogle Hayoo}}
child[concept color=blue!50!red] { node[concept] {Haskell Platform}}
child[concept color=blue!40!red] { node[concept] {GHCi}}
child[concept color=blue!30!red, level distance=120, sibling angle=27] { node[concept] {cabal} [counterclockwise from=5]
child[concept color=purple!25!white]{ node[concept] {install}}
child[concept color=purple!35!white]{ node[concept] {init}}
child[concept color=purple!45!white]{ node[concept] {sandbox}}
child[concept color=purple!55!white]{ node[concept] {run}}
child[concept color=purple!65!white]{ node[concept] {repl}}
child[concept color=purple!75!white]{ node[concept] {build}}
child[concept color=purple!85!white]{ node[concept] {install -jN -dep}}
child[concept color=purple!95!white]{ node[concept] {haddock}}
}
}
child[concept color=blue, text=black] { node[concept] {Functional} [clockwise from=210]
child[concept color=blue!95!white] { node[concept] {operators}
child { node[concept] {infix{lr}}}
child { node[concept] {backtick-syntax}}
}
child[concept color=blue!75!white]{ node[concept] {referential transparency}}
child[concept color=blue!55!white]{ node[concept] {lambda expressions}}
child[concept color=blue!35!white, text=white]{ node[concept, text=black] {functions}
child[concept color=black!35!blue]{ node[concept] {map}}
child[concept color=black!45!blue]{ node[concept] {fold{lr}{1}{'}}}
child[concept color=black!55!blue]{ node[concept] {scan{lr}{1}{'}}}
child[concept color=black!65!blue]{ node[concept] {recursive}}
child[concept color=black!75!blue]{ node[concept] {show}}
}
}
child[concept color=blue!50!magenta] { node[concept] {Lazy} [counterclockwise from=124.0]
child[concept color=yellow!15!blue] { node[concept] {lazy in Action}
child[concept color=yellow!35!blue] { node[concept] {lazy sequences}
child[concept color=yellow!55!cyan] { node[concept] {fi\-bo\-nac\-ci}}
}
child[concept color=yellow!35!cyan] { node[concept] {IO}
child[concept color=yellow!25!cyan] { node[concept] {Prob\-lems}}
}
}
child[concept color=yellow!35!blue] { node[concept] {:sprint}}
child[concept color=yellow!55!blue] { node[concept] {strictness}
child[concept color=yellow!45!blue] { node[concept] {seq}
child[concept color=yellow!25!blue]{ node[concept] {deepseq}}
}
child[concept color=orange!65!blue] { node[concept] {IO}
child[concept color=orange!55!blue]{ node[concept] {conduit}}
child[concept color=orange!75!blue]{ node[concept] {pipes}}
}
}
}
child[concept color=magenta] { node[concept] {Syntax} [counterclockwise from=-32]
child[concept color=magenta!90!yellow] { node[concept] {\textbf{ no} while, for or other loops}}
child[concept color=magenta!85!yellow] { node[concept] {Parenthesis}}
child[concept color=magenta!80!yellow] { node[concept] {if \dots then \dots else}}
child[concept color=magenta!75!yellow] { node[concept] {case}}
child[concept color=magenta!70!yellow] { node[concept] {let}}
child[concept color=magenta!65!yellow] { node[concept] {where}}
child[concept color=magenta!60!yellow] { node[concept] {do}}
child[concept color=magenta!55!yellow] { node[concept] {operators} [counterclockwise from=55]
child[concept color=magenta!50!white]{ node[concept] {(:)}}
child[concept color=magenta!40!white]{ node[concept] {(\$)}}
child[concept color=magenta!30!white]{ node[concept] {(\%)}}
child[concept color=magenta!20!white]{ node[concept] {(==), (/=)}}
}
child[concept color=magenta!50!yellow] { node[concept] {($<$-)}}
child[concept color=magenta!45!yellow] { node[concept] {[~]}}
child[concept color=magenta!40!yellow] { node[concept] {data, type, newtype, deriving}}
child[concept color=magenta!35!yellow] { node[concept] {module}}
child[concept color=magenta!30!yellow] { node[concept] {(..) range}}
child[concept color=magenta!25!yellow] { node[concept] {(::), ($=>$), (-$>$)}}
child[concept color=magenta!20!yellow] { node[concept] {point-free}}
}
child[concept color=red] { node[concept] {Literature} [counterclockwise from=26]
child[concept color=red!50!yellow] { node[concept] {Books}
child[concept color=red!75!green]{ node[concept] {RWH}}
child[concept color=red!70!green]{ node[concept] {LYAH}}
child[concept color=red!65!green]{ node[concept] {Type\-class\-o\-pedia}}
child[concept color=red!60!green]{ node[concept] {Papers}}
}
child[concept color=red!70!yellow, sibling angle=55]{ node[concept] {Blog}
child[concept color=red!40!magenta] { node[concept] {\href{haskellforall.com}{Gabriel Gonzalez}}}
child[concept color=red!50!magenta] { node[concept] {\href{example.com}{Michael Snoyman}}}
child[concept color=red!60!magenta] { node[concept] {\href{http://dev.stephendiehl.com/hask/}{Stephen Diehl}}}
child[concept color=red!70!magenta] { node[concept] {\href{http://blog.sigfpe.com/}{Dan Piponi}}}
}
child[concept color=red!90!yellow, sibling angle=45]{ node[concept] {Podcasts} [clockwise from=120]
child[concept color=red!70!magenta, sibling angle=45] { node[concept] {Haskell\-cast}}
}
}
child[concept color=red!50!yellow] { node[concept] {GHC} [counterclockwise from=-34]
child[concept color=red!10!yellow] { node[concept] {Pragmas}}
child[concept color=red!20!yellow] { node[concept] {Runtime}}
child[concept color=red!30!yellow] { node[concept] {Garbage Collector}}
child[concept color=red!40!yellow] { node[concept] {LLVM-Backend}}
child[concept color=red!50!yellow] { node[concept] {Compliation}}
child[concept color=red!60!yellow] { node[concept] {Multicore}}
child[concept color=red!70!yellow] { node[concept] {Template\-Haskell}}
child[concept color=red!80!yellow] { node[concept] {OpenSource}}
};
\end{tikzpicture}
\end{document}
@epsilonhalbe
Copy link
Author

a preview can be found http://tinypic.com/r/bdmh46/8

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment