diff --git a/syntax/extra/haskell.nanorc b/syntax/extra/haskell.nanorc
new file mode 100644
index 00000000..037e7fa4
--- /dev/null
+++ b/syntax/extra/haskell.nanorc
@@ -0,0 +1,40 @@
+## Syntax highlighting for Haskell files.
+
+## Original author:  Alex Taber
+## License:  GPL version 3
+
+syntax "haskell" "\.hs$"
+comment "--"
+
+# Keywords
+color red "\<(as|case|of|class|data|default|deriving|do|forall|foreign|hiding|if|then|else|import|infix(l|r)?|instance|let|in|mdo|module|newtype|qualified|type|where)\>"
+
+# Various symbols
+color cyan "(\||@|!|:|_|~|=|\\|;|\(\)|,|\[|\]|\{|\})"
+
+# Operators
+color magenta "(==|/=|&&|\|\||<|>|<=|>=)"
+
+# More symbols
+color cyan "(->|<-|=>)"
+color magenta "\.|\$"
+
+# Data constructors
+color magenta "\<(True|False|Nothing|Just|Left|Right|LT|EQ|GT)\>"
+# Data classes
+color magenta "\<(Bounded|Data|Enum|Eq|Floating|Fractional|Functor|Integral|Monad|MonadPlus|Num|Ord|Read|Real|RealFloat|RealFrac|Show|Typeable)\>"
+
+# Special keyword
+color brightred "undefined"
+
+# Strings
+color yellow ""([^\"]|\\.)*""
+# Characters
+color brightyellow "'([^\']|\\.)'"
+
+# Comments
+color green "--.*"
+color green start="\{-" end="-\}"
+
+# Trailing whitespace
+color ,green "[[:space:]]+$"