úÎ2£-õJ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHISafe+,-FSTßNot-equal constraint"Equality constraint, used as e.g.  (x == 3) => _Boolean type-level not-equals./Boolean type-level equals. Useful for e.g.  (x ==? 0)4444(c) 2018 Iris WardBSD3aditu.venyhandottir@gmail.com experimental Trustworthy,-;=CDFSTVh]1This type represents unknown type-level integers.òThis class gives the (value-level) integer associated with a type-level integer. There are instances of this class for every concrete natural: 0, 1, 2, etc. There are also instances of this class for every negated natural, such as " 1. '(Kind) An integer that may be negative.#2Get the value associated with a type-level integer$aGet the value associated with a type-level integer. The difference between this function and # is that it takes a JM parameter, which has zero runtime representation and so is entirely free.%6Convert an integer into an unknown type-level integer.  !"#$% !"#$%KLM !"NO(c) 2018 Iris WardBSD3aditu.venyhandottir@gmail.com experimental Trustworthy,-;<=CDFSTVh-1This type represents unknown type-level integers./½This class gives the (value-level) rational associated with a type-level rational. There are instances of this class for every combination of a concrete integer and concrete natural.0Type constructor for a rational23Get the value associated with a type-level rational3bGet the value associated with a type-level rational. The difference between this function and 2 is that it takes a JM parameter, which has zero runtime representation and so is entirely free.47Convert a rational into an unknown type-level rational.-./0123401/23-.4PQ-./RST01Safe +,-FST$M<%The product of two type-level numbers=(The difference of two type-level numbers>"The sum of two type-level numbers.?)The kind of the result of multiplication.@&The kind of the result of subtraction.A#The kind of the result of addition.<=>?@AA@?>=< Safe,FST&¥B%The product of two type-level numbersC(The difference of two type-level numbersD!The sum of two type-level numbersBCDB7C6D6 Safe +,-FST(#I,Boolean comparison of two type-level numbersEFGHIE4F4G4H4I4(c) 2018 Iris WardBSD3aditu.venyhandottir@gmail.com experimentalSafeT)×$ !"#$%-./01234BCDEFGHI$ !"#$%01/23-.4IHGFEDCB(c) 2018 Iris WardBSD3aditu.venyhandottir@gmail.com experimentalSafeT,?6   !"#$%-./01234BCDEFGHI6 !"#$%01/23-.4IHGFEDCB  U                ! " # # $ % & &'()*++,-./0123456789::;<=>?@ABCDEFGHIJKLM N O P Q R S T UVWXXYZZ[[\]]^%typenums-0.1.2-9NU3nlr7H55FG2mB09QKAY Data.TypeNums Data.TypeLitsData.TypeNums.IntsData.TypeNums.Rats!Data.TypeNums.Arithmetic.InternalData.TypeNums.EqualityData.Type.BoolIfData.TypeNums.ArithmeticData.TypeNums.Comparisonbase GHC.TypeNatsKnownNat GHC.TypeLits KnownSymbolghc-prim GHC.TypesNatSymbol^ CmpSymbol TypeError AppendSymbolText:<>::$$:ShowType sameSymbol someSymbolVal someNatVal symbolVal'natVal' symbolValnatVal SomeSymbol ErrorMessagesameNatSomeNat/===/=?==?SomeIntKnownIntTIntPosNegintValintVal' someIntVal$fKnownIntTIntNeg$fKnownIntTIntPos$fKnownIntNatn $fReadSomeInt $fShowSomeInt $fOrdSomeInt $fEqSomeIntSomeRatKnownRatRat:%ratValratVal' someRatVal $fKnownRatkn$fKnownRatRat:%$fKnownRatRat:%0 $fReadSomeRat $fShowSomeRat $fOrdSomeRat $fEqSomeRatMulSubAddMulKSubKAddK*-+>>=<<=<=?GHC.PrimProxy#SomeIntWithDictintSingSIntSomeRatWithDictratSingSRat