liquid-fixpoint-0.5.0.0: Predicate Abstraction-based Horn-Clause/Implication Constraint Solver

Safe HaskellNone
LanguageHaskell98

Language.Fixpoint.Types.Names

Contents

Description

This module contains Haskell variables representing globally visible names. Rather than have strings floating around the system, all constant names should be defined here, and the (exported) variables should be used and manipulated elsewhere.

Synopsis

Symbols

data Symbol Source

Invariant: a SafeText is made up of:

'0'..'9'
++ ['a'...'z'] ++ ['A'..'Z'] ++ $

If the original text has ANY other chars, it is represented as:

lq$i

where i is a unique integer (for each text)

class Symbolic a where Source

Values that can be viewed as Symbols

Methods

symbol :: a -> Symbol Source

Instances

Symbolic String Source 
Symbolic Text Source 
Symbolic Symbol Source 
Symbolic SymConst Source

String Constants -----------------------------------------

Replace all symbol-representations-of-string-literals with string-literal Used to transform parsed output from fixpoint back into fq.

Symbolic a => Symbolic (Located a) Source 

type LocSymbol = Located Symbol Source

Located Symbols -----------------------------------------------------

Conversion to/from Text

symbolText :: Symbol -> Text Source

Decoding Symbols -----------------------------------------------------

Destructors

Transforms

Widely used prefixes

Creating Symbols

Wrapping Symbols

suffixSymbol :: Symbol -> Symbol -> Symbol Source

Use this **EXCLUSIVELY** when you want to add stuff in front of a Symbol

Unwrapping Symbols

Hardwired global names

Casting function names