Beagle Programming Language Specifications = Documentation has been done Table of Contents Introduction Environment: Build System Deployment System Version Control Integration System Embedded Interpreter Flow Control: Conditional Branching Fundamental Branching with If-Else-If-Else Complex Branching with When Expression Based Branching Fundamental Looping Fundamental For-Loops Fundamental While-Loops Expression Based Looping Pattern Matching Definitions Defining a Property Defining a Function Defining a Class Defining a Struct Defining a Constant Defining an Enum Defining a Trait Defining an Interface Defining a Module Defining a Reference Defining a Rule Defining a Macro Defining a DefMacro Defining a Thread Defining a Task Properties Basic Properties Property Setters Property Getters Backing Fields Object Member Properties Class Member Properties Constructor Member Properties Struct Member Properties Extension Properties Variables Basic Variables Let vs Def Functions Basic Functions Function Types Higher-Order Functions and Lambdas Extension Functions Local Functions Member Functions Pass By Reference Classes Basic Classes Class Constructors Non-Primary Constructors Class Droppers Non-Primary Droppers Class Members Class Member Properties Class Member Functions Encapsulaton Private Members Internal Members Protected Members Encapsulated Constructors Inheritance Companion Objects Open Classes Abstract Classes Inner Classes Interfaces Basic Interfaces Abstract Members Interface Properties Interface Functions Default Members Default Properties Default Functions Interface Constructors Enums Basic Enums Enum Members Enum Member Properties Enum Member Functions Enum Constructor Member Properties Abstract Enum Members Abstract Member Properties Abstract Member Functions Advanced Enums and Pattern Matching Memory Management How Memory Management Works Memory Reservations Memory Deletion Object Memory Management Object Constructors and Droppers Heap Vs Stack Allocations (Def vs Let) Structs Basic Structs Data Structure Members Data Structure Member Properties Data Structure Member Functions With Clause Implementing Traits and Abstract Types Data Structure Constructors Non-Primary Constructors Data Structure Droppers Traits Basic Traits Trait Members Trait Member Properties Trait Member Functions Traits With Traits Trait Constructors Trait Droppers Traits As Pseudotypes Anonymous Trait Implementations Abstract Types Basic Abstract Types Abstract Type Members Abstract Type Properties Abstract Type Functions Abstract Type Constructors Non-Primary Constructors Abstract Type Droppers Implementing Abstract Types Class Implementation Struct Implementation Type Ignorance First Degree: Nullable Types Second Degree: Type Category Third Degree: Abstraction Categroy Fourth and Fifth Degrees: Absolute Ignorance Generic Programming Basic-Generics Variance Covariance and Declaration-site Variance Contravariance and Use-site Variance Type Projection Star Projection Generic Functions Generic Constraints Binding With Where Clause Type Erasure Modules Basic Modules Directory Based Modules Submodules Module Dependencies Concurrency Threads Tasks Advanced Concurrency Data Validation Rules Defining a Rule Rule Chaining