'---------------------------------------------------------------------' Comment.Single '\n' Text.Whitespace '-- SmallCheck: another lightweight testing library.' Comment.Single '\n' Text.Whitespace '-- Colin Runciman, August 2006' Comment.Single '\n' Text.Whitespace '-- Version 0.2 (November 2006)' Comment.Single '\n' Text.Whitespace '--' Comment.Single '\n' Text.Whitespace '-- After QuickCheck, by Koen Claessen and John Hughes (2000-2004).' Comment.Single '\n' Text.Whitespace '---------------------------------------------------------------------' Comment.Single '\n\n' Text.Whitespace 'module' Keyword.Reserved ' ' Text.Whitespace 'SmallCheck' Name.Namespace ' ' Text.Whitespace '(' Punctuation '\n ' Text.Whitespace 'smallCheck' Name.Function ',' Punctuation ' ' Text.Whitespace 'depthCheck' Name.Function ',' Punctuation '\n ' Text.Whitespace 'Property' Keyword.Type ',' Punctuation ' ' Text.Whitespace 'Testable' Keyword.Type ',' Punctuation '\n ' Text.Whitespace 'forAll' Name.Function ',' Punctuation ' ' Text.Whitespace 'forAllElem' Name.Function ',' Punctuation '\n ' Text.Whitespace 'exists' Name.Function ',' Punctuation ' ' Text.Whitespace 'existsDeeperBy' Name.Function ',' Punctuation ' ' Text.Whitespace 'thereExists' Name.Function ',' Punctuation ' ' Text.Whitespace 'thereExistsElem' Name.Function ',' Punctuation '\n ' Text.Whitespace '(' Punctuation '==>' Operator ')' Punctuation ',' Punctuation '\n ' Text.Whitespace 'Series' Keyword.Type ',' Punctuation ' ' Text.Whitespace 'Serial' Keyword.Type '(' Punctuation '..' Operator ')' Punctuation ',' Punctuation '\n ' Text.Whitespace '(' Punctuation '\\/' Operator ')' Punctuation ',' Punctuation ' ' Text.Whitespace '(' Punctuation '><' Operator ')' Punctuation ',' Punctuation ' ' Text.Whitespace 'two' Name.Function ',' Punctuation ' ' Text.Whitespace 'three' Name.Function ',' Punctuation ' ' Text.Whitespace 'four' Name.Function ',' Punctuation '\n ' Text.Whitespace 'cons0' Name.Function ',' Punctuation ' ' Text.Whitespace 'cons1' Name.Function ',' Punctuation ' ' Text.Whitespace 'cons2' Name.Function ',' Punctuation ' ' Text.Whitespace 'cons3' Name.Function ',' Punctuation ' ' Text.Whitespace 'cons4' Name.Function ',' Punctuation '\n ' Text.Whitespace 'alts0' Name.Function ',' Punctuation ' ' Text.Whitespace 'alts1' Name.Function ',' Punctuation ' ' Text.Whitespace 'alts2' Name.Function ',' Punctuation ' ' Text.Whitespace 'alts3' Name.Function ',' Punctuation ' ' Text.Whitespace 'alts4' Name.Function ',' Punctuation '\n ' Text.Whitespace 'N' Keyword.Type '(' Punctuation '..' Operator ')' Punctuation ',' Punctuation ' ' Text.Whitespace 'Nat' Keyword.Type ',' Punctuation ' ' Text.Whitespace 'Natural' Keyword.Type ',' Punctuation '\n ' Text.Whitespace 'depth' Name.Function ',' Punctuation ' ' Text.Whitespace 'inc' Name.Function ',' Punctuation ' ' Text.Whitespace 'dec' Name.Function '\n ' Text.Whitespace ')' Punctuation ' ' Text.Whitespace 'where' Keyword.Reserved '\n\n' Text.Whitespace 'import' Keyword.Reserved ' ' Text.Whitespace 'Data.List' Name.Namespace ' ' Text.Whitespace '(' Punctuation 'intersperse' Name.Function ')' Punctuation '\n' Text.Whitespace 'import' Keyword.Reserved ' ' Text.Whitespace 'Control.Monad' Name.Namespace ' ' Text.Whitespace '(' Punctuation 'when' Name.Function ')' Punctuation '\n' Text.Whitespace 'import' Keyword.Reserved ' ' Text.Whitespace 'System.IO' Name.Namespace ' ' Text.Whitespace '(' Punctuation 'stdout' Name.Function ',' Punctuation ' ' Text.Whitespace 'hFlush' Name.Function ')' Punctuation '\n\n' Text.Whitespace '------------------ -----------------' Comment.Single '\n\n' Text.Whitespace '-- Series arguments should be interpreted as a depth bound (>=0)' Comment.Single '\n' Text.Whitespace '-- Series results should have finite length' Comment.Single '\n\n' Text.Whitespace 'type' Keyword.Reserved ' ' Text.Whitespace 'Series' Keyword.Type ' ' Text.Whitespace 'a' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'Int' Keyword.Type ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace '[' Punctuation 'a' Name ']' Punctuation '\n\n' Text.Whitespace '-- sum' Comment.Single '\n' Text.Whitespace 'infixr' Keyword.Reserved ' ' Text.Whitespace '7' Literal.Number.Integer ' ' Text.Whitespace '\\/' Operator '\n' Text.Whitespace '(' Punctuation '\\/' Operator ')' Punctuation ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace 'Series' Keyword.Type ' ' Text.Whitespace 'a' Name ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Series' Keyword.Type ' ' Text.Whitespace 'a' Name ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Series' Keyword.Type ' ' Text.Whitespace 'a' Name '\n' Text.Whitespace 's1' Name.Function ' ' Text.Whitespace '\\/' Operator ' ' Text.Whitespace 's2' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace '\\' Name.Function 'd' Name ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 's1' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '++' Operator ' ' Text.Whitespace 's2' Name ' ' Text.Whitespace 'd' Name '\n\n' Text.Whitespace '-- product' Comment.Single '\n' Text.Whitespace 'infixr' Keyword.Reserved ' ' Text.Whitespace '8' Literal.Number.Integer ' ' Text.Whitespace '><' Operator '\n' Text.Whitespace '(' Punctuation '><' Operator ')' Punctuation ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace 'Series' Keyword.Type ' ' Text.Whitespace 'a' Name ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Series' Keyword.Type ' ' Text.Whitespace 'b' Name ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Series' Keyword.Type ' ' Text.Whitespace '(' Punctuation 'a' Name ',' Punctuation 'b' Name ')' Punctuation '\n' Text.Whitespace 's1' Name.Function ' ' Text.Whitespace '><' Operator ' ' Text.Whitespace 's2' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace '\\' Name.Function 'd' Name ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace '[' Punctuation '(' Punctuation 'x' Name ',' Punctuation 'y' Name ')' Punctuation ' ' Text.Whitespace '|' Operator ' ' Text.Whitespace 'x' Name ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 's1' Name ' ' Text.Whitespace 'd' Name ',' Punctuation ' ' Text.Whitespace 'y' Name ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 's2' Name ' ' Text.Whitespace 'd' Name ']' Punctuation '\n\n' Text.Whitespace '------------------- ------------------' Comment.Single '\n\n' Text.Whitespace '-- enumerated data values should be finite and fully defined' Comment.Single '\n' Text.Whitespace '-- enumerated functional values should be total and strict' Comment.Single '\n\n' Text.Whitespace '-- bounds:' Comment.Single '\n' Text.Whitespace '-- for data values, the depth of nested constructor applications' Comment.Single '\n' Text.Whitespace '-- for functional values, both the depth of nested case analysis' Comment.Single '\n' Text.Whitespace '-- and the depth of results' Comment.Single '\n \n' Text.Whitespace 'class' Keyword.Reserved ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace 'a' Name ' ' Text.Whitespace 'where' Keyword.Reserved '\n ' Text.Whitespace 'series' Name ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace 'Series' Keyword.Type ' ' Text.Whitespace 'a' Name '\n ' Text.Whitespace 'coseries' Name ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace 'b' Name ' ' Text.Whitespace '=>' Operator.Word ' ' Text.Whitespace 'Series' Keyword.Type ' ' Text.Whitespace '(' Punctuation 'a' Name '->' Operator.Word 'b' Name ')' Punctuation '\n\n' Text.Whitespace 'instance' Keyword.Reserved ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace '()' Name.Builtin ' ' Text.Whitespace 'where' Keyword.Reserved '\n ' Text.Whitespace 'series' Name ' ' Text.Whitespace '_' Keyword.Reserved ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace '[' Punctuation '()' Name.Builtin ']' Punctuation '\n ' Text.Whitespace 'coseries' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace '[' Punctuation ' ' Text.Whitespace '\\' Name.Function '()' Name.Builtin ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'b' Name '\n ' Text.Whitespace '|' Operator ' ' Text.Whitespace 'b' Name ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'series' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace ']' Punctuation '\n\n' Text.Whitespace 'instance' Keyword.Reserved ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace 'Int' Keyword.Type ' ' Text.Whitespace 'where' Keyword.Reserved '\n ' Text.Whitespace 'series' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace '[' Punctuation '(' Punctuation '-' Operator 'd' Name ')' Punctuation '..' Operator 'd' Name ']' Punctuation '\n ' Text.Whitespace 'coseries' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace '[' Punctuation ' ' Text.Whitespace '\\' Name.Function 'i' Name ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'if' Keyword.Reserved ' ' Text.Whitespace 'i' Name ' ' Text.Whitespace '>' Operator ' ' Text.Whitespace '0' Literal.Number.Integer ' ' Text.Whitespace 'then' Keyword.Reserved ' ' Text.Whitespace 'f' Name ' ' Text.Whitespace '(' Punctuation 'N' Keyword.Type ' ' Text.Whitespace '(' Punctuation 'i' Name ' ' Text.Whitespace '-' Operator ' ' Text.Whitespace '1' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n ' Text.Whitespace 'else' Keyword.Reserved ' ' Text.Whitespace 'if' Keyword.Reserved ' ' Text.Whitespace 'i' Name ' ' Text.Whitespace '<' Operator ' ' Text.Whitespace '0' Literal.Number.Integer ' ' Text.Whitespace 'then' Keyword.Reserved ' ' Text.Whitespace 'g' Name ' ' Text.Whitespace '(' Punctuation 'N' Keyword.Type ' ' Text.Whitespace '(' Punctuation 'abs' Name ' ' Text.Whitespace 'i' Name ' ' Text.Whitespace '-' Operator ' ' Text.Whitespace '1' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n ' Text.Whitespace 'else' Keyword.Reserved ' ' Text.Whitespace 'z' Name '\n ' Text.Whitespace '|' Operator ' ' Text.Whitespace 'z' Name ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'alts0' Name ' ' Text.Whitespace 'd' Name ',' Punctuation ' ' Text.Whitespace 'f' Name ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'alts1' Name ' ' Text.Whitespace 'd' Name ',' Punctuation ' ' Text.Whitespace 'g' Name ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'alts1' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace ']' Punctuation '\n\n' Text.Whitespace 'instance' Keyword.Reserved ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace 'Integer' Keyword.Type ' ' Text.Whitespace 'where' Keyword.Reserved '\n ' Text.Whitespace 'series' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace '[' Punctuation ' ' Text.Whitespace 'toInteger' Name ' ' Text.Whitespace '(' Punctuation 'i' Name ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace 'Int' Keyword.Type ')' Punctuation '\n ' Text.Whitespace '|' Operator ' ' Text.Whitespace 'i' Name ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'series' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace ']' Punctuation '\n ' Text.Whitespace 'coseries' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace '[' Punctuation ' ' Text.Whitespace 'f' Name ' ' Text.Whitespace '.' Operator ' ' Text.Whitespace '(' Punctuation 'fromInteger' Name ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace 'Integer' Keyword.Type '->' Operator.Word 'Int' Keyword.Type ')' Punctuation '\n ' Text.Whitespace '|' Operator ' ' Text.Whitespace 'f' Name ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'series' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace ']' Punctuation '\n\n' Text.Whitespace 'newtype' Keyword.Reserved ' ' Text.Whitespace 'N' Keyword.Type ' ' Text.Whitespace 'a' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'N' Keyword.Type ' ' Text.Whitespace 'a' Name '\n\n' Text.Whitespace 'instance' Keyword.Reserved ' ' Text.Whitespace 'Show' Keyword.Type ' ' Text.Whitespace 'a' Name ' ' Text.Whitespace '=>' Operator.Word ' ' Text.Whitespace 'Show' Keyword.Type ' ' Text.Whitespace '(' Punctuation 'N' Keyword.Type ' ' Text.Whitespace 'a' Name ')' Punctuation ' ' Text.Whitespace 'where' Keyword.Reserved '\n ' Text.Whitespace 'show' Name ' ' Text.Whitespace '(' Punctuation 'N' Keyword.Type ' ' Text.Whitespace 'i' Name ')' Punctuation ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'show' Name ' ' Text.Whitespace 'i' Name '\n\n' Text.Whitespace 'instance' Keyword.Reserved ' ' Text.Whitespace '(' Punctuation 'Integral' Keyword.Type ' ' Text.Whitespace 'a' Name ',' Punctuation ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace 'a' Name ')' Punctuation ' ' Text.Whitespace '=>' Operator.Word ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace '(' Punctuation 'N' Keyword.Type ' ' Text.Whitespace 'a' Name ')' Punctuation ' ' Text.Whitespace 'where' Keyword.Reserved '\n ' Text.Whitespace 'series' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'map' Name ' ' Text.Whitespace 'N' Keyword.Type ' ' Text.Whitespace '[' Punctuation '0' Literal.Number.Integer '..' Operator "d'" Name ']' Punctuation '\n ' Text.Whitespace 'where' Keyword.Reserved '\n ' Text.Whitespace "d'" Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'fromInteger' Name ' ' Text.Whitespace '(' Punctuation 'toInteger' Name ' ' Text.Whitespace 'd' Name ')' Punctuation '\n ' Text.Whitespace 'coseries' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace '[' Punctuation ' ' Text.Whitespace '\\' Name.Function '(' Punctuation 'N' Keyword.Type ' ' Text.Whitespace 'i' Name ')' Punctuation ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'if' Keyword.Reserved ' ' Text.Whitespace 'i' Name ' ' Text.Whitespace '>' Operator ' ' Text.Whitespace '0' Literal.Number.Integer ' ' Text.Whitespace 'then' Keyword.Reserved ' ' Text.Whitespace 'f' Name ' ' Text.Whitespace '(' Punctuation 'N' Keyword.Type ' ' Text.Whitespace '(' Punctuation 'i' Name ' ' Text.Whitespace '-' Operator ' ' Text.Whitespace '1' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n ' Text.Whitespace 'else' Keyword.Reserved ' ' Text.Whitespace 'z' Name '\n ' Text.Whitespace '|' Operator ' ' Text.Whitespace 'z' Name ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'alts0' Name ' ' Text.Whitespace 'd' Name ',' Punctuation ' ' Text.Whitespace 'f' Name ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'alts1' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace ']' Punctuation '\n\n' Text.Whitespace 'type' Keyword.Reserved ' ' Text.Whitespace 'Nat' Keyword.Type ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'N' Keyword.Type ' ' Text.Whitespace 'Int' Keyword.Type '\n' Text.Whitespace 'type' Keyword.Reserved ' ' Text.Whitespace 'Natural' Keyword.Type ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'N' Keyword.Type ' ' Text.Whitespace 'Integer' Keyword.Type '\n\n' Text.Whitespace 'instance' Keyword.Reserved ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace 'Float' Keyword.Type ' ' Text.Whitespace 'where' Keyword.Reserved '\n ' Text.Whitespace 'series' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace '[' Punctuation ' ' Text.Whitespace 'encodeFloat' Name ' ' Text.Whitespace 'sig' Name ' ' Text.Whitespace 'exp' Name '\n ' Text.Whitespace '|' Operator ' ' Text.Whitespace '(' Punctuation 'sig' Name ',' Punctuation 'exp' Name ')' Punctuation ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'series' Name ' ' Text.Whitespace 'd' Name ',' Punctuation '\n ' Text.Whitespace 'odd' Name ' ' Text.Whitespace 'sig' Name ' ' Text.Whitespace '||' Operator ' ' Text.Whitespace 'sig' Name '==' Operator '0' Literal.Number.Integer ' ' Text.Whitespace '&&' Operator ' ' Text.Whitespace 'exp' Name '==' Operator '0' Literal.Number.Integer ' ' Text.Whitespace ']' Punctuation '\n ' Text.Whitespace 'coseries' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace '[' Punctuation ' ' Text.Whitespace 'f' Name ' ' Text.Whitespace '.' Operator ' ' Text.Whitespace 'decodeFloat' Name '\n ' Text.Whitespace '|' Operator ' ' Text.Whitespace 'f' Name ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'series' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace ']' Punctuation '\n \n' Text.Whitespace 'instance' Keyword.Reserved ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace 'Double' Keyword.Type ' ' Text.Whitespace 'where' Keyword.Reserved '\n ' Text.Whitespace 'series' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace '[' Punctuation ' ' Text.Whitespace 'frac' Name ' ' Text.Whitespace '(' Punctuation 'x' Name ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace 'Float' Keyword.Type ')' Punctuation '\n ' Text.Whitespace '|' Operator ' ' Text.Whitespace 'x' Name ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'series' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace ']' Punctuation '\n ' Text.Whitespace 'coseries' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace '[' Punctuation ' ' Text.Whitespace 'f' Name ' ' Text.Whitespace '.' Operator ' ' Text.Whitespace '(' Punctuation 'frac' Name ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace 'Double' Keyword.Type '->' Operator.Word 'Float' Keyword.Type ')' Punctuation '\n ' Text.Whitespace '|' Operator ' ' Text.Whitespace 'f' Name ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'series' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace ']' Punctuation '\n\n' Text.Whitespace 'frac' Name.Function ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace '(' Punctuation 'Real' Keyword.Type ' ' Text.Whitespace 'a' Name ',' Punctuation ' ' Text.Whitespace 'Fractional' Keyword.Type ' ' Text.Whitespace 'a' Name ',' Punctuation ' ' Text.Whitespace 'Real' Keyword.Type ' ' Text.Whitespace 'b' Name ',' Punctuation ' ' Text.Whitespace 'Fractional' Keyword.Type ' ' Text.Whitespace 'b' Name ')' Punctuation ' ' Text.Whitespace '=>' Operator.Word ' ' Text.Whitespace 'a' Name ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'b' Name '\n' Text.Whitespace 'frac' Name.Function ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'fromRational' Name ' ' Text.Whitespace '.' Operator ' ' Text.Whitespace 'toRational' Name '\n\n' Text.Whitespace 'instance' Keyword.Reserved ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace 'Char' Keyword.Type ' ' Text.Whitespace 'where' Keyword.Reserved '\n ' Text.Whitespace 'series' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'take' Name ' ' Text.Whitespace '(' Punctuation 'd' Name '+' Operator '1' Literal.Number.Integer ')' Punctuation ' ' Text.Whitespace '[' Punctuation "'a'" Literal.String.Char '..' Operator "'z'" Literal.String.Char ']' Punctuation '\n ' Text.Whitespace 'coseries' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace '[' Punctuation ' ' Text.Whitespace '\\' Name.Function 'c' Name ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'f' Name ' ' Text.Whitespace '(' Punctuation 'N' Keyword.Type ' ' Text.Whitespace '(' Punctuation 'fromEnum' Name ' ' Text.Whitespace 'c' Name ' ' Text.Whitespace '-' Operator ' ' Text.Whitespace 'fromEnum' Name ' ' Text.Whitespace "'a'" Literal.String.Char ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '|' Operator ' ' Text.Whitespace 'f' Name ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'series' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace ']' Punctuation '\n\n' Text.Whitespace 'instance' Keyword.Reserved ' ' Text.Whitespace '(' Punctuation 'Serial' Keyword.Type ' ' Text.Whitespace 'a' Name ',' Punctuation ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace 'b' Name ')' Punctuation ' ' Text.Whitespace '=>' Operator.Word '\n ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace '(' Punctuation 'a' Name ',' Punctuation 'b' Name ')' Punctuation ' ' Text.Whitespace 'where' Keyword.Reserved '\n ' Text.Whitespace 'series' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'series' Name ' ' Text.Whitespace '><' Operator ' ' Text.Whitespace 'series' Name '\n ' Text.Whitespace 'coseries' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'map' Name ' ' Text.Whitespace 'uncurry' Name ' ' Text.Whitespace '.' Operator ' ' Text.Whitespace 'coseries' Name '\n\n' Text.Whitespace 'instance' Keyword.Reserved ' ' Text.Whitespace '(' Punctuation 'Serial' Keyword.Type ' ' Text.Whitespace 'a' Name ',' Punctuation ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace 'b' Name ',' Punctuation ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace 'c' Name ')' Punctuation ' ' Text.Whitespace '=>' Operator.Word '\n ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace '(' Punctuation 'a' Name ',' Punctuation 'b' Name ',' Punctuation 'c' Name ')' Punctuation ' ' Text.Whitespace 'where' Keyword.Reserved '\n ' Text.Whitespace 'series' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace '\\' Name.Function 'd' Name ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace '[' Punctuation '(' Punctuation 'a' Name ',' Punctuation 'b' Name ',' Punctuation 'c' Name ')' Punctuation ' ' Text.Whitespace '|' Operator ' ' Text.Whitespace '(' Punctuation 'a' Name ',' Punctuation '(' Punctuation 'b' Name ',' Punctuation 'c' Name ')' Punctuation ')' Punctuation ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'series' Name ' ' Text.Whitespace 'd' Name ']' Punctuation '\n ' Text.Whitespace 'coseries' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'map' Name ' ' Text.Whitespace 'uncurry3' Name ' ' Text.Whitespace '.' Operator ' ' Text.Whitespace 'coseries' Name '\n\n' Text.Whitespace 'instance' Keyword.Reserved ' ' Text.Whitespace '(' Punctuation 'Serial' Keyword.Type ' ' Text.Whitespace 'a' Name ',' Punctuation ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace 'b' Name ',' Punctuation ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace 'c' Name ',' Punctuation ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace 'd' Name ')' Punctuation ' ' Text.Whitespace '=>' Operator.Word '\n ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace '(' Punctuation 'a' Name ',' Punctuation 'b' Name ',' Punctuation 'c' Name ',' Punctuation 'd' Name ')' Punctuation ' ' Text.Whitespace 'where' Keyword.Reserved '\n ' Text.Whitespace 'series' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace '\\' Name.Function 'd' Name ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace '[' Punctuation '(' Punctuation 'a' Name ',' Punctuation 'b' Name ',' Punctuation 'c' Name ',' Punctuation 'd' Name ')' Punctuation ' ' Text.Whitespace '|' Operator ' ' Text.Whitespace '(' Punctuation 'a' Name ',' Punctuation '(' Punctuation 'b' Name ',' Punctuation '(' Punctuation 'c' Name ',' Punctuation 'd' Name ')' Punctuation ')' Punctuation ')' Punctuation ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'series' Name ' ' Text.Whitespace 'd' Name ']' Punctuation '\n ' Text.Whitespace 'coseries' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'map' Name ' ' Text.Whitespace 'uncurry4' Name ' ' Text.Whitespace '.' Operator ' ' Text.Whitespace 'coseries' Name '\n\n' Text.Whitespace 'uncurry3' Name.Function ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace '(' Punctuation 'a' Name '->' Operator.Word 'b' Name '->' Operator.Word 'c' Name '->' Operator.Word 'd' Name ')' Punctuation ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace '(' Punctuation '(' Punctuation 'a' Name ',' Punctuation 'b' Name ',' Punctuation 'c' Name ')' Punctuation '->' Operator.Word 'd' Name ')' Punctuation '\n' Text.Whitespace 'uncurry3' Name.Function ' ' Text.Whitespace 'f' Name ' ' Text.Whitespace '(' Punctuation 'x' Name ',' Punctuation 'y' Name ',' Punctuation 'z' Name ')' Punctuation ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'f' Name ' ' Text.Whitespace 'x' Name ' ' Text.Whitespace 'y' Name ' ' Text.Whitespace 'z' Name '\n\n' Text.Whitespace 'uncurry4' Name.Function ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace '(' Punctuation 'a' Name '->' Operator.Word 'b' Name '->' Operator.Word 'c' Name '->' Operator.Word 'd' Name '->' Operator.Word 'e' Name ')' Punctuation ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace '(' Punctuation '(' Punctuation 'a' Name ',' Punctuation 'b' Name ',' Punctuation 'c' Name ',' Punctuation 'd' Name ')' Punctuation '->' Operator.Word 'e' Name ')' Punctuation '\n' Text.Whitespace 'uncurry4' Name.Function ' ' Text.Whitespace 'f' Name ' ' Text.Whitespace '(' Punctuation 'w' Name ',' Punctuation 'x' Name ',' Punctuation 'y' Name ',' Punctuation 'z' Name ')' Punctuation ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'f' Name ' ' Text.Whitespace 'w' Name ' ' Text.Whitespace 'x' Name ' ' Text.Whitespace 'y' Name ' ' Text.Whitespace 'z' Name '\n\n' Text.Whitespace 'two' Name.Function ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace 'Series' Keyword.Type ' ' Text.Whitespace 'a' Name ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Series' Keyword.Type ' ' Text.Whitespace '(' Punctuation 'a' Name ',' Punctuation 'a' Name ')' Punctuation '\n' Text.Whitespace 'two' Name.Function ' ' Text.Whitespace 's' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 's' Name ' ' Text.Whitespace '><' Operator ' ' Text.Whitespace 's' Name '\n\n' Text.Whitespace 'three' Name.Function ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace 'Series' Keyword.Type ' ' Text.Whitespace 'a' Name ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Series' Keyword.Type ' ' Text.Whitespace '(' Punctuation 'a' Name ',' Punctuation 'a' Name ',' Punctuation 'a' Name ')' Punctuation '\n' Text.Whitespace 'three' Name.Function ' ' Text.Whitespace 's' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace '\\' Name.Function 'd' Name ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace '[' Punctuation '(' Punctuation 'x' Name ',' Punctuation 'y' Name ',' Punctuation 'z' Name ')' Punctuation ' ' Text.Whitespace '|' Operator ' ' Text.Whitespace '(' Punctuation 'x' Name ',' Punctuation '(' Punctuation 'y' Name ',' Punctuation 'z' Name ')' Punctuation ')' Punctuation ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace '(' Punctuation 's' Name ' ' Text.Whitespace '><' Operator ' ' Text.Whitespace 's' Name ' ' Text.Whitespace '><' Operator ' ' Text.Whitespace 's' Name ')' Punctuation ' ' Text.Whitespace 'd' Name ']' Punctuation '\n\n' Text.Whitespace 'four' Name.Function ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace 'Series' Keyword.Type ' ' Text.Whitespace 'a' Name ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Series' Keyword.Type ' ' Text.Whitespace '(' Punctuation 'a' Name ',' Punctuation 'a' Name ',' Punctuation 'a' Name ',' Punctuation 'a' Name ')' Punctuation '\n' Text.Whitespace 'four' Name.Function ' ' Text.Whitespace 's' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace '\\' Name.Function 'd' Name ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace '[' Punctuation '(' Punctuation 'w' Name ',' Punctuation 'x' Name ',' Punctuation 'y' Name ',' Punctuation 'z' Name ')' Punctuation ' ' Text.Whitespace '|' Operator ' ' Text.Whitespace '(' Punctuation 'w' Name ',' Punctuation '(' Punctuation 'x' Name ',' Punctuation '(' Punctuation 'y' Name ',' Punctuation 'z' Name ')' Punctuation ')' Punctuation ')' Punctuation ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace '(' Punctuation 's' Name ' ' Text.Whitespace '><' Operator ' ' Text.Whitespace 's' Name ' ' Text.Whitespace '><' Operator ' ' Text.Whitespace 's' Name ' ' Text.Whitespace '><' Operator ' ' Text.Whitespace 's' Name ')' Punctuation ' ' Text.Whitespace 'd' Name ']' Punctuation '\n\n' Text.Whitespace 'cons0' Name.Function ' ' Text.Whitespace '::' Operator.Word ' \n ' Text.Whitespace 'a' Name ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Series' Keyword.Type ' ' Text.Whitespace 'a' Name '\n' Text.Whitespace 'cons0' Name.Function ' ' Text.Whitespace 'c' Name ' ' Text.Whitespace '_' Keyword.Reserved ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace '[' Punctuation 'c' Name ']' Punctuation '\n\n' Text.Whitespace 'cons1' Name.Function ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace 'a' Name ' ' Text.Whitespace '=>' Operator.Word '\n ' Text.Whitespace '(' Punctuation 'a' Name '->' Operator.Word 'b' Name ')' Punctuation ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Series' Keyword.Type ' ' Text.Whitespace 'b' Name '\n' Text.Whitespace 'cons1' Name.Function ' ' Text.Whitespace 'c' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace '[' Punctuation 'c' Name ' ' Text.Whitespace 'z' Name ' ' Text.Whitespace '|' Operator ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '>' Operator ' ' Text.Whitespace '0' Literal.Number.Integer ',' Punctuation ' ' Text.Whitespace 'z' Name ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'series' Name ' ' Text.Whitespace '(' Punctuation 'd' Name '-' Operator '1' Literal.Number.Integer ')' Punctuation ']' Punctuation '\n\n' Text.Whitespace 'cons2' Name.Function ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace '(' Punctuation 'Serial' Keyword.Type ' ' Text.Whitespace 'a' Name ',' Punctuation ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace 'b' Name ')' Punctuation ' ' Text.Whitespace '=>' Operator.Word '\n ' Text.Whitespace '(' Punctuation 'a' Name '->' Operator.Word 'b' Name '->' Operator.Word 'c' Name ')' Punctuation ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Series' Keyword.Type ' ' Text.Whitespace 'c' Name '\n' Text.Whitespace 'cons2' Name.Function ' ' Text.Whitespace 'c' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace '[' Punctuation 'c' Name ' ' Text.Whitespace 'y' Name ' ' Text.Whitespace 'z' Name ' ' Text.Whitespace '|' Operator ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '>' Operator ' ' Text.Whitespace '0' Literal.Number.Integer ',' Punctuation ' ' Text.Whitespace '(' Punctuation 'y' Name ',' Punctuation 'z' Name ')' Punctuation ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'series' Name ' ' Text.Whitespace '(' Punctuation 'd' Name '-' Operator '1' Literal.Number.Integer ')' Punctuation ']' Punctuation '\n\n' Text.Whitespace 'cons3' Name.Function ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace '(' Punctuation 'Serial' Keyword.Type ' ' Text.Whitespace 'a' Name ',' Punctuation ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace 'b' Name ',' Punctuation ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace 'c' Name ')' Punctuation ' ' Text.Whitespace '=>' Operator.Word '\n ' Text.Whitespace '(' Punctuation 'a' Name '->' Operator.Word 'b' Name '->' Operator.Word 'c' Name '->' Operator.Word 'd' Name ')' Punctuation ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Series' Keyword.Type ' ' Text.Whitespace 'd' Name '\n' Text.Whitespace 'cons3' Name.Function ' ' Text.Whitespace 'c' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace '[' Punctuation 'c' Name ' ' Text.Whitespace 'x' Name ' ' Text.Whitespace 'y' Name ' ' Text.Whitespace 'z' Name ' ' Text.Whitespace '|' Operator ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '>' Operator ' ' Text.Whitespace '0' Literal.Number.Integer ',' Punctuation ' ' Text.Whitespace '(' Punctuation 'x' Name ',' Punctuation 'y' Name ',' Punctuation 'z' Name ')' Punctuation ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'series' Name ' ' Text.Whitespace '(' Punctuation 'd' Name '-' Operator '1' Literal.Number.Integer ')' Punctuation ']' Punctuation '\n\n' Text.Whitespace 'cons4' Name.Function ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace '(' Punctuation 'Serial' Keyword.Type ' ' Text.Whitespace 'a' Name ',' Punctuation ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace 'b' Name ',' Punctuation ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace 'c' Name ',' Punctuation ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace 'd' Name ')' Punctuation ' ' Text.Whitespace '=>' Operator.Word '\n ' Text.Whitespace '(' Punctuation 'a' Name '->' Operator.Word 'b' Name '->' Operator.Word 'c' Name '->' Operator.Word 'd' Name '->' Operator.Word 'e' Name ')' Punctuation ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Series' Keyword.Type ' ' Text.Whitespace 'e' Name '\n' Text.Whitespace 'cons4' Name.Function ' ' Text.Whitespace 'c' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace '[' Punctuation 'c' Name ' ' Text.Whitespace 'w' Name ' ' Text.Whitespace 'x' Name ' ' Text.Whitespace 'y' Name ' ' Text.Whitespace 'z' Name ' ' Text.Whitespace '|' Operator ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '>' Operator ' ' Text.Whitespace '0' Literal.Number.Integer ',' Punctuation ' ' Text.Whitespace '(' Punctuation 'w' Name ',' Punctuation 'x' Name ',' Punctuation 'y' Name ',' Punctuation 'z' Name ')' Punctuation ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'series' Name ' ' Text.Whitespace '(' Punctuation 'd' Name '-' Operator '1' Literal.Number.Integer ')' Punctuation ']' Punctuation '\n\n' Text.Whitespace 'alts0' Name.Function ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace 'a' Name ' ' Text.Whitespace '=>' Operator.Word '\n ' Text.Whitespace 'Series' Keyword.Type ' ' Text.Whitespace 'a' Name '\n' Text.Whitespace 'alts0' Name.Function ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'series' Name ' ' Text.Whitespace 'd' Name '\n\n' Text.Whitespace 'alts1' Name.Function ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace '(' Punctuation 'Serial' Keyword.Type ' ' Text.Whitespace 'a' Name ',' Punctuation ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace 'b' Name ')' Punctuation ' ' Text.Whitespace '=>' Operator.Word '\n ' Text.Whitespace 'Series' Keyword.Type ' ' Text.Whitespace '(' Punctuation 'a' Name '->' Operator.Word 'b' Name ')' Punctuation '\n' Text.Whitespace 'alts1' Name.Function ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'if' Keyword.Reserved ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '>' Operator ' ' Text.Whitespace '0' Literal.Number.Integer ' ' Text.Whitespace 'then' Keyword.Reserved ' ' Text.Whitespace 'series' Name ' ' Text.Whitespace '(' Punctuation 'dec' Name ' ' Text.Whitespace 'd' Name ')' Punctuation '\n ' Text.Whitespace 'else' Keyword.Reserved ' ' Text.Whitespace '[' Punctuation '\\' Name.Function '_' Keyword.Reserved ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'x' Name ' ' Text.Whitespace '|' Operator ' ' Text.Whitespace 'x' Name ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'series' Name ' ' Text.Whitespace 'd' Name ']' Punctuation '\n\n' Text.Whitespace 'alts2' Name.Function ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace '(' Punctuation 'Serial' Keyword.Type ' ' Text.Whitespace 'a' Name ',' Punctuation ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace 'b' Name ',' Punctuation ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace 'c' Name ')' Punctuation ' ' Text.Whitespace '=>' Operator.Word '\n ' Text.Whitespace 'Series' Keyword.Type ' ' Text.Whitespace '(' Punctuation 'a' Name '->' Operator.Word 'b' Name '->' Operator.Word 'c' Name ')' Punctuation '\n' Text.Whitespace 'alts2' Name.Function ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'if' Keyword.Reserved ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '>' Operator ' ' Text.Whitespace '0' Literal.Number.Integer ' ' Text.Whitespace 'then' Keyword.Reserved ' ' Text.Whitespace 'series' Name ' ' Text.Whitespace '(' Punctuation 'dec' Name ' ' Text.Whitespace 'd' Name ')' Punctuation '\n ' Text.Whitespace 'else' Keyword.Reserved ' ' Text.Whitespace '[' Punctuation '\\' Name.Function '_' Keyword.Reserved ' ' Text.Whitespace '_' Keyword.Reserved ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'x' Name ' ' Text.Whitespace '|' Operator ' ' Text.Whitespace 'x' Name ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'series' Name ' ' Text.Whitespace 'd' Name ']' Punctuation '\n\n' Text.Whitespace 'alts3' Name.Function ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace '(' Punctuation 'Serial' Keyword.Type ' ' Text.Whitespace 'a' Name ',' Punctuation ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace 'b' Name ',' Punctuation ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace 'c' Name ',' Punctuation ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace 'd' Name ')' Punctuation ' ' Text.Whitespace '=>' Operator.Word '\n ' Text.Whitespace 'Series' Keyword.Type ' ' Text.Whitespace '(' Punctuation 'a' Name '->' Operator.Word 'b' Name '->' Operator.Word 'c' Name '->' Operator.Word 'd' Name ')' Punctuation '\n' Text.Whitespace 'alts3' Name.Function ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'if' Keyword.Reserved ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '>' Operator ' ' Text.Whitespace '0' Literal.Number.Integer ' ' Text.Whitespace 'then' Keyword.Reserved ' ' Text.Whitespace 'series' Name ' ' Text.Whitespace '(' Punctuation 'dec' Name ' ' Text.Whitespace 'd' Name ')' Punctuation '\n ' Text.Whitespace 'else' Keyword.Reserved ' ' Text.Whitespace '[' Punctuation '\\' Name.Function '_' Keyword.Reserved ' ' Text.Whitespace '_' Keyword.Reserved ' ' Text.Whitespace '_' Keyword.Reserved ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'x' Name ' ' Text.Whitespace '|' Operator ' ' Text.Whitespace 'x' Name ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'series' Name ' ' Text.Whitespace 'd' Name ']' Punctuation '\n\n' Text.Whitespace 'alts4' Name.Function ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace '(' Punctuation 'Serial' Keyword.Type ' ' Text.Whitespace 'a' Name ',' Punctuation ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace 'b' Name ',' Punctuation ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace 'c' Name ',' Punctuation ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace 'd' Name ',' Punctuation ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace 'e' Name ')' Punctuation ' ' Text.Whitespace '=>' Operator.Word '\n ' Text.Whitespace 'Series' Keyword.Type ' ' Text.Whitespace '(' Punctuation 'a' Name '->' Operator.Word 'b' Name '->' Operator.Word 'c' Name '->' Operator.Word 'd' Name '->' Operator.Word 'e' Name ')' Punctuation '\n' Text.Whitespace 'alts4' Name.Function ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'if' Keyword.Reserved ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '>' Operator ' ' Text.Whitespace '0' Literal.Number.Integer ' ' Text.Whitespace 'then' Keyword.Reserved ' ' Text.Whitespace 'series' Name ' ' Text.Whitespace '(' Punctuation 'dec' Name ' ' Text.Whitespace 'd' Name ')' Punctuation '\n ' Text.Whitespace 'else' Keyword.Reserved ' ' Text.Whitespace '[' Punctuation '\\' Name.Function '_' Keyword.Reserved ' ' Text.Whitespace '_' Keyword.Reserved ' ' Text.Whitespace '_' Keyword.Reserved ' ' Text.Whitespace '_' Keyword.Reserved ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'x' Name ' ' Text.Whitespace '|' Operator ' ' Text.Whitespace 'x' Name ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'series' Name ' ' Text.Whitespace 'd' Name ']' Punctuation '\n\n' Text.Whitespace 'instance' Keyword.Reserved ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace 'Bool' Keyword.Type ' ' Text.Whitespace 'where' Keyword.Reserved '\n ' Text.Whitespace 'series' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'cons0' Name ' ' Text.Whitespace 'True' Keyword.Type ' ' Text.Whitespace '\\/' Operator ' ' Text.Whitespace 'cons0' Name ' ' Text.Whitespace 'False' Keyword.Type '\n ' Text.Whitespace 'coseries' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace '[' Punctuation ' ' Text.Whitespace '\\' Name.Function 'x' Name ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'if' Keyword.Reserved ' ' Text.Whitespace 'x' Name ' ' Text.Whitespace 'then' Keyword.Reserved ' ' Text.Whitespace 'b1' Name ' ' Text.Whitespace 'else' Keyword.Reserved ' ' Text.Whitespace 'b2' Name '\n ' Text.Whitespace '|' Operator ' ' Text.Whitespace '(' Punctuation 'b1' Name ',' Punctuation 'b2' Name ')' Punctuation ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'series' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace ']' Punctuation '\n\n' Text.Whitespace 'instance' Keyword.Reserved ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace 'a' Name ' ' Text.Whitespace '=>' Operator.Word ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace '(' Punctuation 'Maybe' Keyword.Type ' ' Text.Whitespace 'a' Name ')' Punctuation ' ' Text.Whitespace 'where' Keyword.Reserved '\n ' Text.Whitespace 'series' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'cons0' Name ' ' Text.Whitespace 'Nothing' Keyword.Type ' ' Text.Whitespace '\\/' Operator ' ' Text.Whitespace 'cons1' Name ' ' Text.Whitespace 'Just' Keyword.Type '\n ' Text.Whitespace 'coseries' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace '[' Punctuation ' ' Text.Whitespace '\\' Name.Function 'm' Name ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'case' Keyword.Reserved ' ' Text.Whitespace 'm' Name ' ' Text.Whitespace 'of' Keyword.Reserved '\n ' Text.Whitespace 'Nothing' Keyword.Type ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'z' Name '\n ' Text.Whitespace 'Just' Keyword.Type ' ' Text.Whitespace 'x' Name ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'f' Name ' ' Text.Whitespace 'x' Name '\n ' Text.Whitespace '|' Operator ' ' Text.Whitespace 'z' Name ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'alts0' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace ',' Punctuation '\n ' Text.Whitespace 'f' Name ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'alts1' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace ']' Punctuation '\n\n' Text.Whitespace 'instance' Keyword.Reserved ' ' Text.Whitespace '(' Punctuation 'Serial' Keyword.Type ' ' Text.Whitespace 'a' Name ',' Punctuation ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace 'b' Name ')' Punctuation ' ' Text.Whitespace '=>' Operator.Word ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace '(' Punctuation 'Either' Keyword.Type ' ' Text.Whitespace 'a' Name ' ' Text.Whitespace 'b' Name ')' Punctuation ' ' Text.Whitespace 'where' Keyword.Reserved '\n ' Text.Whitespace 'series' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'cons1' Name ' ' Text.Whitespace 'Left' Keyword.Type ' ' Text.Whitespace '\\/' Operator ' ' Text.Whitespace 'cons1' Name ' ' Text.Whitespace 'Right' Keyword.Type '\n ' Text.Whitespace 'coseries' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace '[' Punctuation ' ' Text.Whitespace '\\' Name.Function 'e' Name ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'case' Keyword.Reserved ' ' Text.Whitespace 'e' Name ' ' Text.Whitespace 'of' Keyword.Reserved '\n ' Text.Whitespace 'Left' Keyword.Type ' ' Text.Whitespace 'x' Name ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'f' Name ' ' Text.Whitespace 'x' Name '\n ' Text.Whitespace 'Right' Keyword.Type ' ' Text.Whitespace 'y' Name ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'g' Name ' ' Text.Whitespace 'y' Name '\n ' Text.Whitespace '|' Operator ' ' Text.Whitespace 'f' Name ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'alts1' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace ',' Punctuation '\n ' Text.Whitespace 'g' Name ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'alts1' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace ']' Punctuation '\n\n' Text.Whitespace 'instance' Keyword.Reserved ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace 'a' Name ' ' Text.Whitespace '=>' Operator.Word ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace '[' Punctuation 'a' Name ']' Punctuation ' ' Text.Whitespace 'where' Keyword.Reserved '\n ' Text.Whitespace 'series' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'cons0' Name ' ' Text.Whitespace '[]' Keyword.Type ' ' Text.Whitespace '\\/' Operator ' ' Text.Whitespace 'cons2' Name ' ' Text.Whitespace '(' Punctuation ':' Keyword.Type ')' Punctuation '\n ' Text.Whitespace 'coseries' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace '[' Punctuation ' ' Text.Whitespace '\\' Name.Function 'xs' Name ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'case' Keyword.Reserved ' ' Text.Whitespace 'xs' Name ' ' Text.Whitespace 'of' Keyword.Reserved '\n ' Text.Whitespace '[]' Keyword.Type ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'y' Name '\n ' Text.Whitespace '(' Punctuation 'x' Name ':' Keyword.Type "xs'" Name ')' Punctuation ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'f' Name ' ' Text.Whitespace 'x' Name ' ' Text.Whitespace "xs'" Name '\n ' Text.Whitespace '|' Operator ' ' Text.Whitespace 'y' Name ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'alts0' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace ',' Punctuation '\n ' Text.Whitespace 'f' Name ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'alts2' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace ']' Punctuation '\n\n' Text.Whitespace '-- Warning: the coseries instance here may generate duplicates.' Comment.Single '\n' Text.Whitespace 'instance' Keyword.Reserved ' ' Text.Whitespace '(' Punctuation 'Serial' Keyword.Type ' ' Text.Whitespace 'a' Name ',' Punctuation ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace 'b' Name ')' Punctuation ' ' Text.Whitespace '=>' Operator.Word ' ' Text.Whitespace 'Serial' Keyword.Type ' ' Text.Whitespace '(' Punctuation 'a' Name '->' Operator.Word 'b' Name ')' Punctuation ' ' Text.Whitespace 'where' Keyword.Reserved '\n ' Text.Whitespace 'series' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'coseries' Name '\n ' Text.Whitespace 'coseries' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace '[' Punctuation ' ' Text.Whitespace '\\' Name.Function 'f' Name ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'g' Name ' ' Text.Whitespace '[' Punctuation 'f' Name ' ' Text.Whitespace 'x' Name ' ' Text.Whitespace '|' Operator ' ' Text.Whitespace 'x' Name ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'series' Name ' ' Text.Whitespace 'd' Name ']' Punctuation '\n ' Text.Whitespace '|' Operator ' ' Text.Whitespace 'g' Name ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'series' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace ']' Punctuation ' \n\n' Text.Whitespace '-- For customising the depth measure. Use with care!' Comment.Single '\n\n' Text.Whitespace 'depth' Name.Function ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace 'Int' Keyword.Type ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Int' Keyword.Type ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Int' Keyword.Type '\n' Text.Whitespace 'depth' Name.Function ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace "d'" Name ' ' Text.Whitespace '|' Operator ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '>=' Operator ' ' Text.Whitespace '0' Literal.Number.Integer ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace "d'" Name '+' Operator '1' Literal.Number.Integer '-' Operator 'd' Name '\n ' Text.Whitespace '|' Operator ' ' Text.Whitespace 'otherwise' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'error' Name.Exception ' ' Text.Whitespace '"' Literal.String 'SmallCheck.depth: argument < 0' Literal.String '"' Literal.String '\n\n' Text.Whitespace 'dec' Name.Function ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace 'Int' Keyword.Type ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Int' Keyword.Type '\n' Text.Whitespace 'dec' Name.Function ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '|' Operator ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '>' Operator ' ' Text.Whitespace '0' Literal.Number.Integer ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'd' Name '-' Operator '1' Literal.Number.Integer '\n ' Text.Whitespace '|' Operator ' ' Text.Whitespace 'otherwise' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'error' Name.Exception ' ' Text.Whitespace '"' Literal.String 'SmallCheck.dec: argument <= 0' Literal.String '"' Literal.String '\n\n' Text.Whitespace 'inc' Name.Function ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace 'Int' Keyword.Type ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Int' Keyword.Type '\n' Text.Whitespace 'inc' Name.Function ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'd' Name '+' Operator '1' Literal.Number.Integer '\n\n' Text.Whitespace '-- show the extension of a function (in part, bounded both by' Comment.Single '\n' Text.Whitespace '-- the number and depth of arguments)' Comment.Single '\n' Text.Whitespace 'instance' Keyword.Reserved ' ' Text.Whitespace '(' Punctuation 'Serial' Keyword.Type ' ' Text.Whitespace 'a' Name ',' Punctuation ' ' Text.Whitespace 'Show' Keyword.Type ' ' Text.Whitespace 'a' Name ',' Punctuation ' ' Text.Whitespace 'Show' Keyword.Type ' ' Text.Whitespace 'b' Name ')' Punctuation ' ' Text.Whitespace '=>' Operator.Word ' ' Text.Whitespace 'Show' Keyword.Type ' ' Text.Whitespace '(' Punctuation 'a' Name '->' Operator.Word 'b' Name ')' Punctuation ' ' Text.Whitespace 'where' Keyword.Reserved '\n ' Text.Whitespace 'show' Name ' ' Text.Whitespace 'f' Name ' ' Text.Whitespace '=' Operator.Word ' \n ' Text.Whitespace 'if' Keyword.Reserved ' ' Text.Whitespace 'maxarheight' Name ' ' Text.Whitespace '==' Operator ' ' Text.Whitespace '1' Literal.Number.Integer '\n ' Text.Whitespace '&&' Operator ' ' Text.Whitespace 'sumarwidth' Name ' ' Text.Whitespace '+' Operator ' ' Text.Whitespace 'length' Name ' ' Text.Whitespace 'ars' Name ' ' Text.Whitespace '*' Operator ' ' Text.Whitespace 'length' Name ' ' Text.Whitespace '"' Literal.String '->;' Literal.String '"' Literal.String ' ' Text.Whitespace '<' Operator ' ' Text.Whitespace 'widthLimit' Name ' ' Text.Whitespace 'then' Keyword.Reserved '\n ' Text.Whitespace '"' Literal.String '{' Literal.String '"' Literal.String '++' Operator '(' Punctuation '\n ' Text.Whitespace 'concat' Name ' ' Text.Whitespace '$' Operator ' ' Text.Whitespace 'intersperse' Name ' ' Text.Whitespace '"' Literal.String ';' Literal.String '"' Literal.String ' ' Text.Whitespace '$' Operator ' ' Text.Whitespace '[' Punctuation 'a' Name '++' Operator '"' Literal.String '->' Literal.String '"' Literal.String '++' Operator 'r' Name ' ' Text.Whitespace '|' Operator ' ' Text.Whitespace '(' Punctuation 'a' Name ',' Punctuation 'r' Name ')' Punctuation ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'ars' Name ']' Punctuation '\n ' Text.Whitespace ')' Punctuation '++' Operator '"' Literal.String '}' Literal.String '"' Literal.String '\n ' Text.Whitespace 'else' Keyword.Reserved '\n ' Text.Whitespace 'concat' Name ' ' Text.Whitespace '$' Operator ' ' Text.Whitespace '[' Punctuation 'a' Name '++' Operator '"' Literal.String '->' Literal.String '\\' Literal.String.Escape 'n' Literal.String.Escape '"' Literal.String '++' Operator 'indent' Name ' ' Text.Whitespace 'r' Name ' ' Text.Whitespace '|' Operator ' ' Text.Whitespace '(' Punctuation 'a' Name ',' Punctuation 'r' Name ')' Punctuation ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'ars' Name ']' Punctuation '\n ' Text.Whitespace 'where' Keyword.Reserved '\n ' Text.Whitespace 'ars' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'take' Name ' ' Text.Whitespace 'lengthLimit' Name ' ' Text.Whitespace '[' Punctuation ' ' Text.Whitespace '(' Punctuation 'show' Name ' ' Text.Whitespace 'x' Name ',' Punctuation ' ' Text.Whitespace 'show' Name ' ' Text.Whitespace '(' Punctuation 'f' Name ' ' Text.Whitespace 'x' Name ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '|' Operator ' ' Text.Whitespace 'x' Name ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'series' Name ' ' Text.Whitespace 'depthLimit' Name ' ' Text.Whitespace ']' Punctuation '\n ' Text.Whitespace 'maxarheight' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'maximum' Name ' ' Text.Whitespace '[' Punctuation ' ' Text.Whitespace 'max' Name ' ' Text.Whitespace '(' Punctuation 'height' Name ' ' Text.Whitespace 'a' Name ')' Punctuation ' ' Text.Whitespace '(' Punctuation 'height' Name ' ' Text.Whitespace 'r' Name ')' Punctuation '\n ' Text.Whitespace '|' Operator ' ' Text.Whitespace '(' Punctuation 'a' Name ',' Punctuation 'r' Name ')' Punctuation ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'ars' Name ' ' Text.Whitespace ']' Punctuation '\n ' Text.Whitespace 'sumarwidth' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'sum' Name ' ' Text.Whitespace '[' Punctuation ' ' Text.Whitespace 'length' Name ' ' Text.Whitespace 'a' Name ' ' Text.Whitespace '+' Operator ' ' Text.Whitespace 'length' Name ' ' Text.Whitespace 'r' Name ' \n ' Text.Whitespace '|' Operator ' ' Text.Whitespace '(' Punctuation 'a' Name ',' Punctuation 'r' Name ')' Punctuation ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'ars' Name ']' Punctuation '\n ' Text.Whitespace 'indent' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'unlines' Name ' ' Text.Whitespace '.' Operator ' ' Text.Whitespace 'map' Name ' ' Text.Whitespace '(' Punctuation '"' Literal.String ' ' Literal.String '"' Literal.String '++' Operator ')' Punctuation ' ' Text.Whitespace '.' Operator ' ' Text.Whitespace 'lines' Name '\n ' Text.Whitespace 'height' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'length' Name ' ' Text.Whitespace '.' Operator ' ' Text.Whitespace 'lines' Name '\n ' Text.Whitespace '(' Punctuation 'widthLimit' Name ',' Punctuation 'lengthLimit' Name ',' Punctuation 'depthLimit' Name ')' Punctuation ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace '(' Punctuation '80' Literal.Number.Integer ',' Punctuation '20' Literal.Number.Integer ',' Punctuation '3' Literal.Number.Integer ')' Punctuation '::' Operator.Word '(' Punctuation 'Int' Keyword.Type ',' Punctuation 'Int' Keyword.Type ',' Punctuation 'Int' Keyword.Type ')' Punctuation '\n\n' Text.Whitespace '---------------- ------------------' Comment.Single '\n\n' Text.Whitespace '-- adapted from QuickCheck originals: here results come in lists,' Comment.Single '\n' Text.Whitespace '-- properties have depth arguments, stamps (for classifying random' Comment.Single '\n' Text.Whitespace '-- tests) are omitted, existentials are introduced' Comment.Single '\n\n' Text.Whitespace 'newtype' Keyword.Reserved ' ' Text.Whitespace 'PR' Keyword.Type ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'Prop' Keyword.Type ' ' Text.Whitespace '[' Punctuation 'Result' Keyword.Type ']' Punctuation '\n\n' Text.Whitespace 'data' Keyword.Reserved ' ' Text.Whitespace 'Result' Keyword.Type ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'Result' Keyword.Type ' ' Text.Whitespace '{' Punctuation 'ok' Name ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace 'Maybe' Keyword.Type ' ' Text.Whitespace 'Bool' Keyword.Type ',' Punctuation ' ' Text.Whitespace 'arguments' Name ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace '[' Punctuation 'String' Keyword.Type ']' Punctuation '}' Punctuation '\n\n' Text.Whitespace 'nothing' Name.Function ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace 'Result' Keyword.Type '\n' Text.Whitespace 'nothing' Name.Function ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'Result' Keyword.Type ' ' Text.Whitespace '{' Punctuation 'ok' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'Nothing' Keyword.Type ',' Punctuation ' ' Text.Whitespace 'arguments' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace '[]' Keyword.Type '}' Punctuation '\n\n' Text.Whitespace 'result' Name.Function ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace 'Result' Keyword.Type ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'PR' Keyword.Type '\n' Text.Whitespace 'result' Name.Function ' ' Text.Whitespace 'res' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'Prop' Keyword.Type ' ' Text.Whitespace '[' Punctuation 'res' Name ']' Punctuation '\n\n' Text.Whitespace 'newtype' Keyword.Reserved ' ' Text.Whitespace 'Property' Keyword.Type ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'Property' Keyword.Type ' ' Text.Whitespace '(' Punctuation 'Int' Keyword.Type ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'PR' Keyword.Type ')' Punctuation '\n\n' Text.Whitespace 'class' Keyword.Reserved ' ' Text.Whitespace 'Testable' Keyword.Type ' ' Text.Whitespace 'a' Name ' ' Text.Whitespace 'where' Keyword.Reserved '\n ' Text.Whitespace 'property' Name ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace 'a' Name ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Int' Keyword.Type ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'PR' Keyword.Type '\n\n' Text.Whitespace 'instance' Keyword.Reserved ' ' Text.Whitespace 'Testable' Keyword.Type ' ' Text.Whitespace 'Bool' Keyword.Type ' ' Text.Whitespace 'where' Keyword.Reserved '\n ' Text.Whitespace 'property' Name ' ' Text.Whitespace 'b' Name ' ' Text.Whitespace '_' Keyword.Reserved ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'Prop' Keyword.Type ' ' Text.Whitespace '[' Punctuation 'Result' Keyword.Type ' ' Text.Whitespace '(' Punctuation 'Just' Keyword.Type ' ' Text.Whitespace 'b' Name ')' Punctuation ' ' Text.Whitespace '[]' Keyword.Type ']' Punctuation '\n\n' Text.Whitespace 'instance' Keyword.Reserved ' ' Text.Whitespace 'Testable' Keyword.Type ' ' Text.Whitespace 'PR' Keyword.Type ' ' Text.Whitespace 'where' Keyword.Reserved '\n ' Text.Whitespace 'property' Name ' ' Text.Whitespace 'prop' Name ' ' Text.Whitespace '_' Keyword.Reserved ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'prop' Name '\n\n' Text.Whitespace 'instance' Keyword.Reserved ' ' Text.Whitespace '(' Punctuation 'Serial' Keyword.Type ' ' Text.Whitespace 'a' Name ',' Punctuation ' ' Text.Whitespace 'Show' Keyword.Type ' ' Text.Whitespace 'a' Name ',' Punctuation ' ' Text.Whitespace 'Testable' Keyword.Type ' ' Text.Whitespace 'b' Name ')' Punctuation ' ' Text.Whitespace '=>' Operator.Word ' ' Text.Whitespace 'Testable' Keyword.Type ' ' Text.Whitespace '(' Punctuation 'a' Name '->' Operator.Word 'b' Name ')' Punctuation ' ' Text.Whitespace 'where' Keyword.Reserved '\n ' Text.Whitespace 'property' Name ' ' Text.Whitespace 'f' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace "f'" Name ' ' Text.Whitespace 'where' Keyword.Reserved ' ' Text.Whitespace 'Property' Keyword.Type ' ' Text.Whitespace "f'" Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'forAll' Name ' ' Text.Whitespace 'series' Name ' ' Text.Whitespace 'f' Name '\n\n' Text.Whitespace 'instance' Keyword.Reserved ' ' Text.Whitespace 'Testable' Keyword.Type ' ' Text.Whitespace 'Property' Keyword.Type ' ' Text.Whitespace 'where' Keyword.Reserved '\n ' Text.Whitespace 'property' Name ' ' Text.Whitespace '(' Punctuation 'Property' Keyword.Type ' ' Text.Whitespace 'f' Name ')' Punctuation ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'f' Name ' ' Text.Whitespace 'd' Name '\n\n' Text.Whitespace 'evaluate' Name.Function ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace 'Testable' Keyword.Type ' ' Text.Whitespace 'a' Name ' ' Text.Whitespace '=>' Operator.Word ' ' Text.Whitespace 'a' Name ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Series' Keyword.Type ' ' Text.Whitespace 'Result' Keyword.Type '\n' Text.Whitespace 'evaluate' Name.Function ' ' Text.Whitespace 'x' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'rs' Name ' ' Text.Whitespace 'where' Keyword.Reserved ' ' Text.Whitespace 'Prop' Keyword.Type ' ' Text.Whitespace 'rs' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'property' Name ' ' Text.Whitespace 'x' Name ' ' Text.Whitespace 'd' Name '\n\n' Text.Whitespace 'forAll' Name.Function ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace '(' Punctuation 'Show' Keyword.Type ' ' Text.Whitespace 'a' Name ',' Punctuation ' ' Text.Whitespace 'Testable' Keyword.Type ' ' Text.Whitespace 'b' Name ')' Punctuation ' ' Text.Whitespace '=>' Operator.Word ' ' Text.Whitespace 'Series' Keyword.Type ' ' Text.Whitespace 'a' Name ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace '(' Punctuation 'a' Name '->' Operator.Word 'b' Name ')' Punctuation ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Property' Keyword.Type '\n' Text.Whitespace 'forAll' Name.Function ' ' Text.Whitespace 'xs' Name ' ' Text.Whitespace 'f' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'Property' Keyword.Type ' ' Text.Whitespace '$' Operator ' ' Text.Whitespace '\\' Name.Function 'd' Name ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Prop' Keyword.Type ' ' Text.Whitespace '$' Operator '\n ' Text.Whitespace '[' Punctuation ' ' Text.Whitespace 'r' Name '{' Punctuation 'arguments' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'show' Name ' ' Text.Whitespace 'x' Name ' ' Text.Whitespace ':' Keyword.Type ' ' Text.Whitespace 'arguments' Name ' ' Text.Whitespace 'r' Name '}' Punctuation '\n ' Text.Whitespace '|' Operator ' ' Text.Whitespace 'x' Name ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'xs' Name ' ' Text.Whitespace 'd' Name ',' Punctuation ' ' Text.Whitespace 'r' Name ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'evaluate' Name ' ' Text.Whitespace '(' Punctuation 'f' Name ' ' Text.Whitespace 'x' Name ')' Punctuation ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace ']' Punctuation '\n\n' Text.Whitespace 'forAllElem' Name.Function ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace '(' Punctuation 'Show' Keyword.Type ' ' Text.Whitespace 'a' Name ',' Punctuation ' ' Text.Whitespace 'Testable' Keyword.Type ' ' Text.Whitespace 'b' Name ')' Punctuation ' ' Text.Whitespace '=>' Operator.Word ' ' Text.Whitespace '[' Punctuation 'a' Name ']' Punctuation ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace '(' Punctuation 'a' Name '->' Operator.Word 'b' Name ')' Punctuation ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Property' Keyword.Type '\n' Text.Whitespace 'forAllElem' Name.Function ' ' Text.Whitespace 'xs' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'forAll' Name ' ' Text.Whitespace '(' Punctuation 'const' Name ' ' Text.Whitespace 'xs' Name ')' Punctuation '\n\n' Text.Whitespace 'thereExists' Name.Function ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace 'Testable' Keyword.Type ' ' Text.Whitespace 'b' Name ' ' Text.Whitespace '=>' Operator.Word ' ' Text.Whitespace 'Series' Keyword.Type ' ' Text.Whitespace 'a' Name ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace '(' Punctuation 'a' Name '->' Operator.Word 'b' Name ')' Punctuation ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Property' Keyword.Type '\n' Text.Whitespace 'thereExists' Name.Function ' ' Text.Whitespace 'xs' Name ' ' Text.Whitespace 'f' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'Property' Keyword.Type ' ' Text.Whitespace '$' Operator ' ' Text.Whitespace '\\' Name.Function 'd' Name ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Prop' Keyword.Type ' ' Text.Whitespace '$' Operator '\n ' Text.Whitespace '[' Punctuation ' ' Text.Whitespace 'Result' Keyword.Type '\n ' Text.Whitespace '(' Punctuation ' ' Text.Whitespace 'Just' Keyword.Type ' ' Text.Whitespace '$' Operator ' ' Text.Whitespace 'or' Name ' ' Text.Whitespace '[' Punctuation ' ' Text.Whitespace 'all' Name ' ' Text.Whitespace 'pass' Name ' ' Text.Whitespace '(' Punctuation 'evaluate' Name ' ' Text.Whitespace '(' Punctuation 'f' Name ' ' Text.Whitespace 'x' Name ')' Punctuation ' ' Text.Whitespace 'd' Name ')' Punctuation '\n ' Text.Whitespace '|' Operator ' ' Text.Whitespace 'x' Name ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'xs' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace ']' Punctuation ' ' Text.Whitespace ')' Punctuation '\n ' Text.Whitespace '[]' Keyword.Type ' ' Text.Whitespace ']' Punctuation ' \n ' Text.Whitespace 'where' Keyword.Reserved '\n ' Text.Whitespace 'pass' Name ' ' Text.Whitespace '(' Punctuation 'Result' Keyword.Type ' ' Text.Whitespace 'Nothing' Keyword.Type ' ' Text.Whitespace '_' Keyword.Reserved ')' Punctuation ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'True' Keyword.Type '\n ' Text.Whitespace 'pass' Name ' ' Text.Whitespace '(' Punctuation 'Result' Keyword.Type ' ' Text.Whitespace '(' Punctuation 'Just' Keyword.Type ' ' Text.Whitespace 'b' Name ')' Punctuation ' ' Text.Whitespace '_' Keyword.Reserved ')' Punctuation ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'b' Name '\n\n' Text.Whitespace 'thereExistsElem' Name.Function ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace 'Testable' Keyword.Type ' ' Text.Whitespace 'b' Name ' ' Text.Whitespace '=>' Operator.Word ' ' Text.Whitespace '[' Punctuation 'a' Name ']' Punctuation ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace '(' Punctuation 'a' Name '->' Operator.Word 'b' Name ')' Punctuation ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Property' Keyword.Type '\n' Text.Whitespace 'thereExistsElem' Name.Function ' ' Text.Whitespace 'xs' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'thereExists' Name ' ' Text.Whitespace '(' Punctuation 'const' Name ' ' Text.Whitespace 'xs' Name ')' Punctuation '\n\n' Text.Whitespace 'exists' Name.Function ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace '(' Punctuation 'Serial' Keyword.Type ' ' Text.Whitespace 'a' Name ',' Punctuation ' ' Text.Whitespace 'Testable' Keyword.Type ' ' Text.Whitespace 'b' Name ')' Punctuation ' ' Text.Whitespace '=>' Operator.Word '\n ' Text.Whitespace '(' Punctuation 'a' Name '->' Operator.Word 'b' Name ')' Punctuation ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Property' Keyword.Type '\n' Text.Whitespace 'exists' Name.Function ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'thereExists' Name ' ' Text.Whitespace 'series' Name '\n\n' Text.Whitespace 'existsDeeperBy' Name.Function ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace '(' Punctuation 'Serial' Keyword.Type ' ' Text.Whitespace 'a' Name ',' Punctuation ' ' Text.Whitespace 'Testable' Keyword.Type ' ' Text.Whitespace 'b' Name ')' Punctuation ' ' Text.Whitespace '=>' Operator.Word '\n ' Text.Whitespace '(' Punctuation 'Int' Keyword.Type '->' Operator.Word 'Int' Keyword.Type ')' Punctuation ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace '(' Punctuation 'a' Name '->' Operator.Word 'b' Name ')' Punctuation ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Property' Keyword.Type '\n' Text.Whitespace 'existsDeeperBy' Name.Function ' ' Text.Whitespace 'f' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'thereExists' Name ' ' Text.Whitespace '(' Punctuation 'series' Name ' ' Text.Whitespace '.' Operator ' ' Text.Whitespace 'f' Name ')' Punctuation '\n \n' Text.Whitespace 'infixr' Keyword.Reserved ' ' Text.Whitespace '0' Literal.Number.Integer ' ' Text.Whitespace '==>' Operator '\n\n' Text.Whitespace '(' Punctuation '==>' Operator ')' Punctuation ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace 'Testable' Keyword.Type ' ' Text.Whitespace 'a' Name ' ' Text.Whitespace '=>' Operator.Word ' ' Text.Whitespace 'Bool' Keyword.Type ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'a' Name ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Property' Keyword.Type '\n' Text.Whitespace 'True' Keyword.Type ' ' Text.Whitespace '==>' Operator ' ' Text.Whitespace 'x' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'Property' Keyword.Type ' ' Text.Whitespace '(' Punctuation 'property' Name ' ' Text.Whitespace 'x' Name ')' Punctuation '\n' Text.Whitespace 'False' Keyword.Type ' ' Text.Whitespace '==>' Operator ' ' Text.Whitespace 'x' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'Property' Keyword.Type ' ' Text.Whitespace '(' Punctuation 'const' Name ' ' Text.Whitespace '(' Punctuation 'result' Name ' ' Text.Whitespace 'nothing' Name ')' Punctuation ')' Punctuation '\n\n' Text.Whitespace '--------------------- ----------------------' Comment.Single '\n\n' Text.Whitespace '-- similar in spirit to QuickCheck but with iterative deepening' Comment.Single '\n\n' Text.Whitespace '-- test for values of depths 0..d stopping when a property' Comment.Single '\n' Text.Whitespace '-- fails or when it has been checked for all these values' Comment.Single '\n' Text.Whitespace 'smallCheck' Name.Function ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace 'Testable' Keyword.Type ' ' Text.Whitespace 'a' Name ' ' Text.Whitespace '=>' Operator.Word ' ' Text.Whitespace 'Int' Keyword.Type ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'a' Name ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'IO' Keyword.Type ' ' Text.Whitespace 'String' Keyword.Type '\n' Text.Whitespace 'smallCheck' Name.Function ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'iterCheck' Name ' ' Text.Whitespace '0' Literal.Number.Integer ' ' Text.Whitespace '(' Punctuation 'Just' Keyword.Type ' ' Text.Whitespace 'd' Name ')' Punctuation '\n\n' Text.Whitespace 'depthCheck' Name.Function ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace 'Testable' Keyword.Type ' ' Text.Whitespace 'a' Name ' ' Text.Whitespace '=>' Operator.Word ' ' Text.Whitespace 'Int' Keyword.Type ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'a' Name ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'IO' Keyword.Type ' ' Text.Whitespace 'String' Keyword.Type '\n' Text.Whitespace 'depthCheck' Name.Function ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'iterCheck' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '(' Punctuation 'Just' Keyword.Type ' ' Text.Whitespace 'd' Name ')' Punctuation '\n\n' Text.Whitespace 'iterCheck' Name.Function ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace 'Testable' Keyword.Type ' ' Text.Whitespace 'a' Name ' ' Text.Whitespace '=>' Operator.Word ' ' Text.Whitespace 'Int' Keyword.Type ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Maybe' Keyword.Type ' ' Text.Whitespace 'Int' Keyword.Type ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'a' Name ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'IO' Keyword.Type ' ' Text.Whitespace 'String' Keyword.Type '\n' Text.Whitespace 'iterCheck' Name.Function ' ' Text.Whitespace 'dFrom' Name ' ' Text.Whitespace 'mdTo' Name ' ' Text.Whitespace 't' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'iter' Name ' ' Text.Whitespace 'dFrom' Name '\n ' Text.Whitespace 'where' Keyword.Reserved '\n ' Text.Whitespace 'iter' Name ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace 'Int' Keyword.Type ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'IO' Keyword.Type ' ' Text.Whitespace 'String' Keyword.Type '\n ' Text.Whitespace 'iter' Name ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'do' Keyword.Reserved '\n ' Text.Whitespace 'let' Keyword.Reserved ' ' Text.Whitespace 'Prop' Keyword.Type ' ' Text.Whitespace 'results' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'property' Name ' ' Text.Whitespace 't' Name ' ' Text.Whitespace 'd' Name '\n ' Text.Whitespace '(' Punctuation 'ok' Name ',' Punctuation 's' Name ')' Punctuation ' ' Text.Whitespace '<-' Operator.Word ' ' Text.Whitespace 'check' Name ' ' Text.Whitespace '(' Punctuation 'mdTo' Name '==' Operator 'Nothing' Keyword.Type ')' Punctuation ' ' Text.Whitespace '0' Literal.Number.Integer ' ' Text.Whitespace '0' Literal.Number.Integer ' ' Text.Whitespace 'True' Keyword.Type ' ' Text.Whitespace 'results' Name '\n ' Text.Whitespace 'maybe' Name ' ' Text.Whitespace '(' Punctuation 'iter' Name ' ' Text.Whitespace '(' Punctuation 'd' Name '+' Operator '1' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation '\\' Name.Function 'dTo' Name ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'if' Keyword.Reserved ' ' Text.Whitespace 'ok' Name ' ' Text.Whitespace '&&' Operator ' ' Text.Whitespace 'd' Name ' ' Text.Whitespace '<' Operator ' ' Text.Whitespace 'dTo' Name '\n ' Text.Whitespace 'then' Keyword.Reserved ' ' Text.Whitespace 'iter' Name ' ' Text.Whitespace '(' Punctuation 'd' Name '+' Operator '1' Literal.Number.Integer ')' Punctuation '\n ' Text.Whitespace 'else' Keyword.Reserved ' ' Text.Whitespace 'return' Name ' ' Text.Whitespace 's' Name ')' Punctuation '\n ' Text.Whitespace 'mdTo' Name '\n\n' Text.Whitespace 'check' Name.Function ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace 'Bool' Keyword.Type ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Int' Keyword.Type ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Int' Keyword.Type ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Bool' Keyword.Type ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace '[' Punctuation 'Result' Keyword.Type ']' Punctuation ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'IO' Keyword.Type ' ' Text.Whitespace '(' Punctuation 'Bool' Keyword.Type ',' Punctuation ' ' Text.Whitespace 'String' Keyword.Type ')' Punctuation '\n' Text.Whitespace 'check' Name.Function ' ' Text.Whitespace 'i' Name ' ' Text.Whitespace 'n' Name ' ' Text.Whitespace 'x' Name ' ' Text.Whitespace 'ok' Name ' ' Text.Whitespace 'rs' Name ' ' Text.Whitespace '|' Operator ' ' Text.Whitespace 'null' Name ' ' Text.Whitespace 'rs' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'do' Keyword.Reserved '\n ' Text.Whitespace 'let' Keyword.Reserved ' ' Text.Whitespace 's' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace '"' Literal.String ' Completed ' Literal.String '"' Literal.String '++' Operator 'show' Name ' ' Text.Whitespace 'n' Name '++' Operator '"' Literal.String ' test(s)' Literal.String '"' Literal.String '\n ' Text.Whitespace 'y' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'if' Keyword.Reserved ' ' Text.Whitespace 'i' Name ' ' Text.Whitespace 'then' Keyword.Reserved ' ' Text.Whitespace '"' Literal.String '.' Literal.String '"' Literal.String ' ' Text.Whitespace 'else' Keyword.Reserved ' ' Text.Whitespace '"' Literal.String ' without failure.' Literal.String '"' Literal.String '\n ' Text.Whitespace 'z' Name ' ' Text.Whitespace '|' Operator ' ' Text.Whitespace 'x' Name ' ' Text.Whitespace '>' Operator ' ' Text.Whitespace '0' Literal.Number.Integer ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace '"' Literal.String ' But ' Literal.String '"' Literal.String '++' Operator 'show' Name ' ' Text.Whitespace 'x' Name '++' Operator '"' Literal.String ' did not meet ==> condition.' Literal.String '"' Literal.String '\n ' Text.Whitespace '|' Operator ' ' Text.Whitespace 'otherwise' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace '"' Literal.String '"' Literal.String '\n ' Text.Whitespace 'return' Name ' ' Text.Whitespace '(' Punctuation 'ok' Name ',' Punctuation ' ' Text.Whitespace 's' Name ' ' Text.Whitespace '++' Operator ' ' Text.Whitespace 'y' Name ' ' Text.Whitespace '++' Operator ' ' Text.Whitespace 'z' Name ')' Punctuation '\n\n' Text.Whitespace 'check' Name.Function ' ' Text.Whitespace 'i' Name ' ' Text.Whitespace 'n' Name ' ' Text.Whitespace 'x' Name ' ' Text.Whitespace 'ok' Name ' ' Text.Whitespace '(' Punctuation 'Result' Keyword.Type ' ' Text.Whitespace 'Nothing' Keyword.Type ' ' Text.Whitespace '_' Keyword.Reserved ' ' Text.Whitespace ':' Keyword.Type ' ' Text.Whitespace 'rs' Name ')' Punctuation ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'do' Keyword.Reserved '\n ' Text.Whitespace 'progressReport' Name ' ' Text.Whitespace 'i' Name ' ' Text.Whitespace 'n' Name ' ' Text.Whitespace 'x' Name '\n ' Text.Whitespace 'check' Name ' ' Text.Whitespace 'i' Name ' ' Text.Whitespace '(' Punctuation 'n' Name '+' Operator '1' Literal.Number.Integer ')' Punctuation ' ' Text.Whitespace '(' Punctuation 'x' Name '+' Operator '1' Literal.Number.Integer ')' Punctuation ' ' Text.Whitespace 'ok' Name ' ' Text.Whitespace 'rs' Name '\n\n' Text.Whitespace 'check' Name.Function ' ' Text.Whitespace 'i' Name ' ' Text.Whitespace 'n' Name ' ' Text.Whitespace 'x' Name ' ' Text.Whitespace 'f' Name ' ' Text.Whitespace '(' Punctuation 'Result' Keyword.Type ' ' Text.Whitespace '(' Punctuation 'Just' Keyword.Type ' ' Text.Whitespace 'True' Keyword.Type ')' Punctuation ' ' Text.Whitespace '_' Keyword.Reserved ' ' Text.Whitespace ':' Keyword.Type ' ' Text.Whitespace 'rs' Name ')' Punctuation ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'do' Keyword.Reserved '\n ' Text.Whitespace 'progressReport' Name ' ' Text.Whitespace 'i' Name ' ' Text.Whitespace 'n' Name ' ' Text.Whitespace 'x' Name '\n ' Text.Whitespace 'check' Name ' ' Text.Whitespace 'i' Name ' ' Text.Whitespace '(' Punctuation 'n' Name '+' Operator '1' Literal.Number.Integer ')' Punctuation ' ' Text.Whitespace 'x' Name ' ' Text.Whitespace 'f' Name ' ' Text.Whitespace 'rs' Name '\n\n' Text.Whitespace 'check' Name.Function ' ' Text.Whitespace 'i' Name ' ' Text.Whitespace 'n' Name ' ' Text.Whitespace 'x' Name ' ' Text.Whitespace 'f' Name ' ' Text.Whitespace '(' Punctuation 'Result' Keyword.Type ' ' Text.Whitespace '(' Punctuation 'Just' Keyword.Type ' ' Text.Whitespace 'False' Keyword.Type ')' Punctuation ' ' Text.Whitespace 'args' Name ' ' Text.Whitespace ':' Keyword.Type ' ' Text.Whitespace 'rs' Name ')' Punctuation ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'do' Keyword.Reserved '\n ' Text.Whitespace 'let' Keyword.Reserved ' ' Text.Whitespace 's' Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace '"' Literal.String ' Failed test no. ' Literal.String '"' Literal.String '++' Operator 'show' Name ' ' Text.Whitespace '(' Punctuation 'n' Name '+' Operator '1' Literal.Number.Integer ')' Punctuation '++' Operator '"' Literal.String '. Test values follow.' Literal.String '"' Literal.String '\n ' Text.Whitespace "s'" Name ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 's' Name ' ' Text.Whitespace '++' Operator ' ' Text.Whitespace '"' Literal.String ': ' Literal.String '"' Literal.String ' ' Text.Whitespace '++' Operator ' ' Text.Whitespace 'concat' Name ' ' Text.Whitespace '(' Punctuation 'intersperse' Name ' ' Text.Whitespace '"' Literal.String ', ' Literal.String '"' Literal.String ' ' Text.Whitespace 'args' Name ')' Punctuation '\n ' Text.Whitespace 'if' Keyword.Reserved ' ' Text.Whitespace 'i' Name ' ' Text.Whitespace 'then' Keyword.Reserved '\n ' Text.Whitespace 'check' Name ' ' Text.Whitespace 'i' Name ' ' Text.Whitespace '(' Punctuation 'n' Name '+' Operator '1' Literal.Number.Integer ')' Punctuation ' ' Text.Whitespace 'x' Name ' ' Text.Whitespace 'False' Keyword.Type ' ' Text.Whitespace 'rs' Name '\n ' Text.Whitespace 'else' Keyword.Reserved '\n ' Text.Whitespace 'return' Name ' ' Text.Whitespace '(' Punctuation 'False' Keyword.Type ',' Punctuation ' ' Text.Whitespace "s'" Name ')' Punctuation '\n\n' Text.Whitespace 'progressReport' Name.Function ' ' Text.Whitespace '::' Operator.Word ' ' Text.Whitespace 'Bool' Keyword.Type ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Int' Keyword.Type ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'Int' Keyword.Type ' ' Text.Whitespace '->' Operator.Word ' ' Text.Whitespace 'IO' Keyword.Type ' ' Text.Whitespace '()' Name.Builtin '\n' Text.Whitespace 'progressReport' Name.Function ' ' Text.Whitespace '_' Keyword.Reserved ' ' Text.Whitespace '_' Keyword.Reserved ' ' Text.Whitespace '_' Keyword.Reserved ' ' Text.Whitespace '=' Operator.Word ' ' Text.Whitespace 'return' Name ' ' Text.Whitespace '()' Name.Builtin '\n' Text.Whitespace