PascalCase
convention.module
.
import
(
filePath)
.keli
, if not the compiler will raise an error, even though filePath points to a valid Keli source file.Main
module imports Shape
module:Shape
module imports Math
:Shape
will be visible to Main
except private declarations. Math
will be visible to Shape
.Math
will be visible to Main
, although Main
imported Shape
which imported Math
.Importee will only be visible to its corresponding direct importer. In another words, the importees of importee will be not be visible to the importer.
Int
, String
, etc. Two STA are considered identical is their identifier is lexically equal.A
and B
are identical BTV despite their name difference, because their constraint is identical.A
and A
are considered non-identical BTV because their constraint are different, albeit having identical identifier.C
imported A
and B
, but both A
and B
contains identical public declarations, say XA(declared in A) and XB(declared in B), the compiler should never give any kind of warning or errors, unless an identifier XC
which is identical to XA
and XB
is used in C
.C
with imported both A
and B
as follows:C
as entry point, no compiler error or warning will be shown, although A
and B
contains identical declarations, which is the plus
function.D
imported both A
and B
and uses the plus
function as follows:D
as entry point, the compiler will throw an error saying:.using
magic function.Main.keli
, no compile error would be introduced.square
function, which is defined in both MathV1
and MathV2
with the same parameter types, we will get a compile error:.using
function as follows:Main.keli
:Math.keli
.