`FY/      !"#$%&'()*+,-./0123456789:; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  None#!"%&*+,/02569:;<=?DILOQRTLOperator 'Data.Equality.(==)' expects both arguments to have the same kind.None#!"%&*+,/02569:;<=?DILOQRT`Execute an action that returns a function than map function over the result of the next action.EExecute one action and then the next, ignore the result of the first.Bind to actions.    0None#!"%&*+,/02569:;<=?DILOQRT#Return the left type of a promoted None#!"%&*+,/02569:;<=?DILOQRT In case of  9 prepend a message to the message, if the parameter was  x just return  x.3A constraint that is satisfied if the parameter is . Fails with a  otherwise.!Return the result or fail with a A nice alias for  A nice alias for !When a type level expectation is tested, it might be that compound expectations fail. In order to have a small, precise error message, the type level assertion results are made to have kind !. ! !!  !None#!"%&*+,/02569:;<=?DILOQRT"$A class for pretty printing via the  instance of %.$IAn open family of type level expectation evaluators, that return either () or an  ErrorMessage.%A type specification.&lExpect the given expectations to hold. If the compiler does not reject it - the expectation seem plausible.'}Expect the given expectations to **NOT** hold. If the compiler does not reject it - the expectation seem indeed implausible.("The default indention to use when ing uments. "#$%&'()*+,  !"#$%&'(%&'$"#("#$%&'()*+,None#!"%&*+,/02569:;<=?DILOQRT-Combine two expectations."Make a collection of expectations:  (2 + 2) `Is` 4 -/- (4 + 4) `Is` 8 -/- 'True `IsNot` 'False.Pretty Printing Instance.-.---.-1None#!"%&*+,/02569:;<=?DILOQRT/bAdd a type level string as label or longer descripton around expectations. This is analog to the it function in the hspec package./0///0None#!"%&*+,/02569:;<=?DILOQRT1>State that two types or type constructs are NOT the same type.2IState that two types or type constructs are boiled down to the same type.3_State that one type is different to two other types. This must always be used right next to a 2$ pair, otherwise this will not work.4-State that a type is equal to the type level False.5-State that a type is equal to the type level True.-Pretty print a test prefix by a bullet-point. 123456789:1234521543 123456789: #Type-Level eDSL for Type-Unit-Tests(c) Sven Heyll, 2016BSD-3sven.heyll@gmail.com experimentalNone#!"%&*+,/02569:;<=?DILOQRT;<=>?@ABCDEFGHIJKLMN( !"#$%&'(-/12345;<=>?@ABCDEFGHIJKLMNNMLKJIHGFEDCBA@?>=<;;<=>?@ABCDEFGHIJKLMN None#!"%&*+,/02569:;<=?DILOQRTOCrazy operator alias for -.[Make a list of expectations. The precedence of this operator is even higher than that of P.PCrazy operator alias for - with higher precedence.KIt allows to group expectations more beautiful than using type level lists. 6specCrazyMoreNested :: "Title" ###### "Top-level " ~~~~~~~~~~~~ "Nested:" ~~~~~~~~~ Int `Is` Int -*- Int `Is` Int -*- Int `Is` Int -/- "Top-level " ~~~~~~~~~~~~ "Nested:" ~~~~~~~~~ Int `Is` Int -*- "Nested:" ~~~~~~~~~ Int `Is` Int -*- Int `Is` Int specCrazyMoreNested = Validh Create a %] with an initial description or title followed by some expectations. Note that the number of #s is alway a multiple of 3.8It allows to rewrite the example above in a shorter way:  type ExpectationWithTitleShorter = "This is a title for some assertions:" ###################################### (2 + 2) `Is` 4  Alias for /, note that the number of ~os is alway a multiple of 3. This provides the impression of an underlined title followed by other expectations.&It allows to write the following type:  type ExpectationWithTitle = TypeSpec ( "This is a title for some assertions:" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (2 + 2) `Is` 4 )3OPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~[ !"#$%&'(-/12345;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~3~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQOP3OPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~3O4P3Q1R1S1T1U1V1W1X1Y1Z1[1\1]1^1_1`1a1b1c1d1e1f1g1h1i3j3k3l3m3n3o3p3q3r3s3t3u3v3w3x3y3z3{3|3}3~3333    !"#$%&'()*+,-./0123456789:;<=>?@ABCDE F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~              'type-spec-0.3.0.0-awVogH7O0yE8mJ45TGjBGTest.TypeSpec.Internal.EqualityTest.TypeSpec.Internal.ApplyTest.TypeSpec.Internal.EitherTest.TypeSpec.Internal.ResultTest.TypeSpec.CoreTest.TypeSpec.GroupTest.TypeSpec.LabelTest.TypeSpec.ShouldBe Test.TypeSpecTest.TypeSpecCrazyEqExtraApply~>TyFunConst''Const'ConstCompose_ComposeCompose' Compose''Flip__Flip_FlipFlip'<$><$>$<$>$$TyCon2TyCon1Cons'Cons''Pair'Pair''<*>>>>>=FromLeftPrependToErrorDontTryTryFAILEDOKResultPrettyTypeSpecprettyTypeSpecEvalExpectationTypeSpecValidInvalidprettyIndentation$fPrettyTypeSpec[]:$fPrettyTypeSpec[][]$fPrettyTypeSpec(,)(,)$fShowTypeSpec-/-$fPrettyTypeSpecTYPE-/-It$fPrettyTypeSpecTYPEIt ShouldNotBeShouldBeButNot ShouldBeFalse ShouldBeTrue$fPrettyTypeSpecTYPEButNot$fPrettyTypeSpecTYPEShouldNotBe$fPrettyTypeSpecTYPEShouldBe!$fPrettyTypeSpecTYPEShouldBeFalse $fPrettyTypeSpecTYPEShouldBeTrueIt'sContextDescribeTheyNotIsFalseThat ThereforeAndIsTrueTheseAreNotEqualIsDifferentFromIsNotTheSameAsIsn'tIsNot TheseAreEqual IsTheSameAsIsExplainExpect-*-*-H########################################################################E#####################################################################B##################################################################?###############################################################<############################################################9#########################################################6######################################################3###################################################0################################################-#############################################*##########################################'#######################################$####################################!######################################################################################################################################################################## ############ ##################H~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~E~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~B~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~?~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~9~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~6~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~3~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~0~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~$~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~--*base Data.EitherEitherLeft GHC.TypeLits ErrorMessageRight TypeErrorGHC.ShowShowpretty-1.1.3.3Text.PrettyPrint.HughesPJnestDocprettyBulletPoint