type-spec-0.3.0.1: Type Level Specification by Example

Safe HaskellNone
LanguageHaskell2010

Test.TypeSpec.ShouldBe

Description

Type level assertions on type equality.

Synopsis

Documentation

data ShouldBe :: actual -> expected -> Type Source #

State that two types or type constructs are boiled down to the same type.

Instances

PrettyTypeSpec Type (ShouldBe expected actual a b) Source # 

Methods

prettyTypeSpec :: proxy t -> Doc Source #

type EvalExpectation Type (ShouldBe t t1 actual expected) Source # 
type EvalExpectation Type (ShouldBe t t1 actual expected) = If (Either ErrorMessage Type) (EqExtra t t1 actual expected) (OK ErrorMessage Type (ShouldBe t t1 actual expected)) (FAILED ErrorMessage Type ((:$$:) ((:<>:) (Text "Expected type: ") (ShowType t expected)) ((:<>:) (Text "Actual type: ") (ShowType t1 actual))))
type EvalExpectation Type (ButNot shouldntBe Type (ShouldBe t t1 actual expected) other) Source # 
type EvalExpectation Type (ButNot shouldntBe Type (ShouldBe t t1 actual expected) other) = If (Either ErrorMessage Type) (EqExtra t t1 actual expected) (If (Either ErrorMessage Type) (EqExtra t shouldntBe other expected) (FAILED ErrorMessage Type ((:$$:) ((:$$:) ((:$$:) (Text "Expected type: ") ((:<>:) (Text " ") (ShowType t expected))) (Text "to be different from: ")) ((:<>:) (Text " ") (ShowType shouldntBe other)))) (OK ErrorMessage Type (ButNot shouldntBe Type (ShouldBe t t1 actual expected) other))) (FAILED ErrorMessage Type ((:$$:) ((:<>:) (Text "Expected type: ") (ShowType t expected)) ((:<>:) (Text "Actual type: ") (ShowType t1 actual))))

data ShouldNotBe :: actual -> expected -> Type Source #

State that two types or type constructs are NOT the same type.

Instances

PrettyTypeSpec Type (ShouldNotBe expected actual a b) Source # 

Methods

prettyTypeSpec :: proxy t -> Doc Source #

type EvalExpectation Type (ShouldNotBe expected actual actual1 expected1) Source # 
type EvalExpectation Type (ShouldNotBe expected actual actual1 expected1) = If (Either ErrorMessage Type) (EqExtra actual expected expected1 actual1) (FAILED ErrorMessage Type ((:$$:) ((:$$:) ((:$$:) (Text "Expected type: ") ((:<>:) (Text " ") (ShowType expected expected1))) (Text "to be different from: ")) ((:<>:) (Text " ") (ShowType actual actual1)))) (OK ErrorMessage Type (ShouldNotBe expected actual actual1 expected1))

data ShouldBeTrue :: expectation -> Type Source #

State that a type is equal to the type level True.

Instances

data ShouldBeFalse :: expectation -> Type Source #

State that a type is equal to the type level False.

Instances

data ButNot :: shouldBe -> shouldntBe -> Type Source #

State that one type is different to two other types. This must always be used right next to a ShouldBe pair, otherwise this will not work.

Instances

(~) Type a (ShouldBe expected actual a0 a1) => PrettyTypeSpec Type (ButNot shouldntBe Type a b) Source # 

Methods

prettyTypeSpec :: proxy t -> Doc Source #

type EvalExpectation Type (ButNot shouldntBe Type (ShouldBe t t1 actual expected) other) Source # 
type EvalExpectation Type (ButNot shouldntBe Type (ShouldBe t t1 actual expected) other) = If (Either ErrorMessage Type) (EqExtra t t1 actual expected) (If (Either ErrorMessage Type) (EqExtra t shouldntBe other expected) (FAILED ErrorMessage Type ((:$$:) ((:$$:) ((:$$:) (Text "Expected type: ") ((:<>:) (Text " ") (ShowType t expected))) (Text "to be different from: ")) ((:<>:) (Text " ") (ShowType shouldntBe other)))) (OK ErrorMessage Type (ButNot shouldntBe Type (ShouldBe t t1 actual expected) other))) (FAILED ErrorMessage Type ((:$$:) ((:<>:) (Text "Expected type: ") (ShowType t expected)) ((:<>:) (Text "Actual type: ") (ShowType t1 actual))))