trait IsSchemeLattice[L] extends JoinLattice[L]
A lattice for Scheme should support the following operations
- Alphabetic
- By Inheritance
- IsSchemeLattice
- JoinLattice
- PartialOrdering
- Equiv
- Serializable
- Serializable
- Monoid
- Semigroup
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
Type Members
-
trait
MonoidLaw extends scalaz.Monoid.SemigroupLaw
- Definition Classes
- Monoid
- trait SchemeLatticeLaw extends MonoidLaw
-
trait
SemigroupApply extends Apply[[α]F]
- Attributes
- protected[this]
- Definition Classes
- Semigroup
-
trait
SemigroupCompose extends Compose[[α, β]F]
- Attributes
- protected[this]
- Definition Classes
- Semigroup
-
trait
SemigroupLaw extends AnyRef
- Definition Classes
- Semigroup
-
trait
JoinLatticeLaw extends AnyRef
- Definition Classes
- JoinLattice
Abstract Value Members
-
abstract
def
binaryOp(op: BinaryOperator)(x: L, y: L): MayFail[L]
Performs a binary operation on abstract values x and y
-
abstract
def
bottom: L
A lattice has a bottom element
A lattice has a bottom element
- Definition Classes
- JoinLattice
-
abstract
def
car[Addr](x: L)(implicit arg0: Address[Addr]): Set[Addr]
Takes the car of a cons cell
-
abstract
def
cardinality(x: L): Cardinality
Cardinality of this value
Cardinality of this value
- Definition Classes
- JoinLattice
-
abstract
def
cdr[Addr](x: L)(implicit arg0: Address[Addr]): Set[Addr]
Takes the cdr of a cons cell
-
abstract
def
cons[Addr](car: Addr, cdr: Addr)(implicit arg0: Address[Addr]): L
Creates a cons cell
-
abstract
def
counting: Boolean
It should state whether it supports abstract counting or not.
It should state whether it supports abstract counting or not. (TODO: this is probably not the best place for that)
- Definition Classes
- JoinLattice
-
abstract
def
getClosures[Exp, Addr](x: L)(implicit arg0: Expression[Exp], arg1: Address[Addr]): Set[(Exp, Environment[Addr])]
Extract closures contained in this value
-
abstract
def
getPrimitives[Addr, Abs](x: L)(implicit arg0: Address[Addr], arg1: JoinLattice[Abs]): Set[Primitive[Addr, Abs]]
Extract primitives contained in this value
-
abstract
def
getVectors[Addr](x: L)(implicit arg0: Address[Addr]): Set[Addr]
Extract vector addresses contained in this value
-
abstract
def
inject[Exp, Addr](x: (Exp, Environment[Addr]))(implicit arg0: Expression[Exp], arg1: Address[Addr]): L
Injection of a closure
-
abstract
def
inject[Addr, Abs](x: Primitive[Addr, Abs])(implicit arg0: Address[Addr], arg1: JoinLattice[Abs]): L
Injection of a primitive function
-
abstract
def
inject(x: Char): L
Injection of a character
-
abstract
def
inject(x: Boolean): L
Injection of a boolean
-
abstract
def
inject(x: String): L
Injection of a string
-
abstract
def
inject(x: Double): L
Injection of a float
-
abstract
def
inject(x: Int): L
Injection of an integer
-
abstract
def
injectSymbol(x: String): L
Injection of a symbol
-
abstract
def
intTop: L
The top integer
-
abstract
def
isFalse(x: L): Boolean
Can this value be considered false for conditionals?
-
abstract
def
isPrimitiveValue(x: L): Boolean
Some elements may contain addresses in there and are therefore not considered as primitive values
Some elements may contain addresses in there and are therefore not considered as primitive values
- Definition Classes
- JoinLattice
-
abstract
def
isTrue(x: L): Boolean
Can this value be considered true for conditionals?
-
abstract
def
join(x: L, y: L): L
Elements of the lattice can be joined together
Elements of the lattice can be joined together
- Definition Classes
- JoinLattice
-
abstract
def
name: String
A name identifying the lattice
A name identifying the lattice
- Definition Classes
- JoinLattice
-
abstract
def
nil: L
Nil value
-
abstract
def
subsumes(x: L, y: L): Boolean
Subsumption between two elements can be checked
Subsumption between two elements can be checked
- Definition Classes
- JoinLattice
-
abstract
def
unaryOp(op: UnaryOperator)(x: L): MayFail[L]
Performs a unary operation on the abstract value x
-
abstract
def
vector[Addr](addr: Addr, size: L, init: Addr)(implicit arg0: Address[Addr]): MayFail[(L, L)]
Creates a vector of the given size, where the initial value lies at address.
Creates a vector of the given size, where the initial value lies at address. Return the vector address wrapped in a lattice value, as well as the vector value itsel
-
abstract
def
vectorRef[Addr](vector: L, index: L)(implicit arg0: Address[Addr]): MayFail[Set[Addr]]
Get a value from a vector.
Get a value from a vector. Returns the addresses where to look for the values
-
abstract
def
vectorSet[Addr](vector: L, index: L, addr: Addr)(implicit arg0: Address[Addr]): MayFail[(L, Set[Addr])]
Changes a value inside a vector.
Changes a value inside a vector. The address given is an address where the value can be stored if needed. Returns the vector value, as well as the addresses to update in the store. The value stored is not passed to vectorSet, but will be stored in the returned addresses.
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
def
+(other: String): String
- Implicit
- This member is added by an implicit conversion from IsSchemeLattice[L] to any2stringadd[IsSchemeLattice[L]] performed by method any2stringadd in scala.Predef.
- Definition Classes
- any2stringadd
-
def
->[B](y: B): (IsSchemeLattice[L], B)
- Implicit
- This member is added by an implicit conversion from IsSchemeLattice[L] to ArrowAssoc[IsSchemeLattice[L]] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @inline()
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
and(x: L, y: ⇒ L): L
Conjunction
-
def
append(x: L, y: ⇒ L): L
- Definition Classes
- JoinLattice → Semigroup
-
final
def
applicative: Applicative[[α]L]
- Definition Classes
- Monoid
-
final
def
apply: Apply[[α]L]
- Definition Classes
- Semigroup
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
boolTop: L
The top boolean
-
final
def
category: Category[[α, β]L]
- Definition Classes
- Monoid
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate() @throws( ... )
-
final
def
compose: Compose[[α, β]L]
- Definition Classes
- Semigroup
-
def
ensuring(cond: (IsSchemeLattice[L]) ⇒ Boolean, msg: ⇒ Any): IsSchemeLattice[L]
- Implicit
- This member is added by an implicit conversion from IsSchemeLattice[L] to Ensuring[IsSchemeLattice[L]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
def
ensuring(cond: (IsSchemeLattice[L]) ⇒ Boolean): IsSchemeLattice[L]
- Implicit
- This member is added by an implicit conversion from IsSchemeLattice[L] to Ensuring[IsSchemeLattice[L]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
def
ensuring(cond: Boolean, msg: ⇒ Any): IsSchemeLattice[L]
- Implicit
- This member is added by an implicit conversion from IsSchemeLattice[L] to Ensuring[IsSchemeLattice[L]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
def
ensuring(cond: Boolean): IsSchemeLattice[L]
- Implicit
- This member is added by an implicit conversion from IsSchemeLattice[L] to Ensuring[IsSchemeLattice[L]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
equiv(x: L, y: L): Boolean
- Definition Classes
- PartialOrdering → Equiv
-
def
formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from IsSchemeLattice[L] to StringFormat[IsSchemeLattice[L]] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @inline()
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
gt(x: L, y: L): Boolean
- Definition Classes
- PartialOrdering
-
def
gteq(x: L, y: L): Boolean
- Definition Classes
- PartialOrdering
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
ifEmpty[B](a: L)(t: ⇒ B)(f: ⇒ B)(implicit eq: Equal[L]): B
- Definition Classes
- Monoid
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
isMZero(a: L)(implicit eq: Equal[L]): Boolean
- Definition Classes
- Monoid
-
def
lt(x: L, y: L): Boolean
- Definition Classes
- PartialOrdering
-
def
lteq(x: L, y: L): Boolean
- Definition Classes
- JoinLattice → PartialOrdering
-
def
monoidLaw: MonoidLaw
- Definition Classes
- Monoid
-
val
monoidSyntax: MonoidSyntax[L]
- Definition Classes
- Monoid
-
def
multiply(value: L, n: Int): L
- Definition Classes
- Monoid
-
def
multiply1(value: L, n: Int): L
- Definition Classes
- Semigroup
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
onEmpty[A, B](a: L)(v: ⇒ B)(implicit eq: Equal[L], mb: Monoid[B]): B
- Definition Classes
- Monoid
-
final
def
onNotEmpty[B](a: L)(v: ⇒ B)(implicit eq: Equal[L], mb: Monoid[B]): B
- Definition Classes
- Monoid
-
def
or(x: L, y: ⇒ L): L
Disjunction
-
def
reverse: PartialOrdering[L]
- Definition Classes
- PartialOrdering
- val schemeLatticeLaw: SchemeLatticeLaw
-
def
semigroupLaw: SemigroupLaw
- Definition Classes
- Semigroup
-
val
semigroupSyntax: SemigroupSyntax[L]
- Definition Classes
- Semigroup
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
def
totalLessThan(a: L, b: L): Boolean
Force an artificial "total order" to sort final values and have a deterministic printing output.
Force an artificial "total order" to sort final values and have a deterministic printing output. (The corresponding relation <= is not always transitive, but it is good enough.)
- Definition Classes
- JoinLattice
-
def
tryCompare(x: L, y: L): Option[Int]
If x and y are comparable then returns the comparison, else returns None.
If x and y are comparable then returns the comparison, else returns None.
- Definition Classes
- JoinLattice → PartialOrdering
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
zero: L
- Definition Classes
- JoinLattice → Monoid
-
def
→[B](y: B): (IsSchemeLattice[L], B)
- Implicit
- This member is added by an implicit conversion from IsSchemeLattice[L] to ArrowAssoc[IsSchemeLattice[L]] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc