cryptol-2.10.0: Cryptol: The Language of Cryptography
Copyright(c) 2013-2016 Galois Inc.
LicenseBSD3
Maintainercryptol@galois.com
Stabilityprovisional
Portabilityportable
Safe HaskellSafe-Inferred
LanguageHaskell2010

Cryptol.TypeCheck.Solver.Class

Description

Solving class constraints.

Synopsis

Documentation

solveZeroInst :: Type -> Solved Source #

Solve a Zero constraint by instance, if possible.

solveLogicInst :: Type -> Solved Source #

Solve a Logic constraint by instance, if possible.

solveRingInst :: Type -> Solved Source #

Solve a Ring constraint by instance, if possible.

solveFieldInst :: Type -> Solved Source #

Solve a Field constraint by instance, if possible.

solveIntegralInst :: Type -> Solved Source #

Solve an Integral constraint by instance, if possible.

solveRoundInst :: Type -> Solved Source #

Solve a Round constraint by instance, if possible.

solveEqInst :: Type -> Solved Source #

Solve Eq constraints.

solveCmpInst :: Type -> Solved Source #

Solve Cmp constraints.

solveSignedCmpInst :: Type -> Solved Source #

Solve SignedCmp constraints.

solveLiteralInst :: Type -> Type -> Solved Source #

Solve Literal constraints.

solveFLiteralInst :: Type -> Type -> Type -> Type -> Solved Source #

Solving fractional literal constraints.

solveValidFloat :: Type -> Type -> Solved Source #

This places constraints on the floating point numbers that we can work with. This is a bit of an odd check, as it is really a limitiation of the backend, and not the language itself.

On the other hand, it helps us give sane results if one accidentally types a polymorphic float at the REPL. Hopefully, most users will stick to particular FP sizes, so this should be quite transparent.