Component - modelint/types GitHub Wiki

A User Type can have an arbitrarily complex internal structure.

For example, The Line Segment User Type consists of two internal components:

Line Segment

  Point A :: Point
  Point B :: Point

Each of these two Components has a name and an associated Type defining what values can be assigned.

We could also define the Point User Type with two more components

Point

  x :: Rat(0,100)
  y :: Rat(0,100)

Here we define Point as having x and y Components each constrained to be a range from 0..100 inclusive.

Identifiers

  1. Name + User type

Attributes

No non-referential attributes.