All Projects → rlepigre → subml

rlepigre / subml

Licence: other
SubML (prototype) language

Programming Languages

ocaml
1615 projects
emacs lisp
2029 projects
Vim Script
2826 projects
Makefile
30231 projects

Projects that are alternatives of or similar to subml

Laravel Ownership
Laravel Ownership simplify management of Eloquent model's owner.
Stars: ✭ 71 (+238.1%)
Mutual labels:  polymorphism
typeclass-interface-pattern
Ideas, thoughts, and notes on a typeclass/interface based polymorphism pattern for standard C
Stars: ✭ 26 (+23.81%)
Mutual labels:  polymorphism
ftor
ftor enables ML-like type-directed, functional programming with Javascript including reasonable debugging.
Stars: ✭ 44 (+109.52%)
Mutual labels:  polymorphism
Strict Variant
A realtime/embedded-friendly C++11 variant type which is never empty and prevents undesirable implicit conversions
Stars: ✭ 81 (+285.71%)
Mutual labels:  polymorphism
Jsonsubtypes
Discriminated Json Subtypes Converter implementation for .NET
Stars: ✭ 201 (+857.14%)
Mutual labels:  polymorphism
poly collection
Fast containers of polymorphic objects.
Stars: ✭ 58 (+176.19%)
Mutual labels:  polymorphism
Zion
A statically-typed strictly-evaluated garbage-collected readable programming language.
Stars: ✭ 33 (+57.14%)
Mutual labels:  polymorphism
Battleship
An Object-Oriented VBA experiment
Stars: ✭ 66 (+214.29%)
Mutual labels:  polymorphism
React Polymorphic Box
Building blocks for strongly typed polymorphic components in React.
Stars: ✭ 206 (+880.95%)
Mutual labels:  polymorphism
system-F
Formalization of the polymorphic lambda calculus and its parametricity theorem
Stars: ✭ 20 (-4.76%)
Mutual labels:  polymorphism
Python And Oop
Object-Oriented Programming concepts in Python
Stars: ✭ 123 (+485.71%)
Mutual labels:  polymorphism
Te
TE: C++17 Run-time polymorphism (type erasure) library
Stars: ✭ 186 (+785.71%)
Mutual labels:  polymorphism
Java-Programs
Java Practiced Problems including concepts of OOPS, Interface, String , Collection.
Stars: ✭ 51 (+142.86%)
Mutual labels:  polymorphism
React Polymorphic Types
Zero-runtime polymorphic component definitions for React
Stars: ✭ 78 (+271.43%)
Mutual labels:  polymorphism
swagger-object-validator
Node-Module to validate your model against a swagger spec and receive in-depth error traces
Stars: ✭ 27 (+28.57%)
Mutual labels:  polymorphism
Zipperposition
An automatic theorem prover in OCaml for typed higher-order logic with equality and datatypes, based on superposition+rewriting; and Logtk, a supporting library for manipulating terms, formulas, clauses, etc.
Stars: ✭ 46 (+119.05%)
Mutual labels:  polymorphism
Unity-SerializeReferenceExtensions
Provide popup to specify the type of the field serialized by the [SerializeReference] attribute in the inspector.
Stars: ✭ 255 (+1114.29%)
Mutual labels:  polymorphism
superstruct
Rust library for versioned data types
Stars: ✭ 27 (+28.57%)
Mutual labels:  subtyping
vanilla-lang
An implementation of a predicative polymorphic language with bidirectional type inference and algebraic data types
Stars: ✭ 73 (+247.62%)
Mutual labels:  polymorphism
GeneticVariation.jl
Datastructures and algorithms for working with genetic variation
Stars: ✭ 33 (+57.14%)
Mutual labels:  polymorphism

SubML (prototype) language

The SubML language provides polymorphic types and subtyping, but also existential types, inductive types and coinductive types.

Online interpreter

The easyest way to try SubML is to use our online interpreter, which can be found here.

Compiling from source

If you prefer, you can also compile SubML from source, and run it on your machine. To do so, you will need a working version of OCaml (at least 4.07.0) and opam.

You can run the following commands to get the source and install the dependencies (SubML itself will not be installed).

git clone [email protected]:rlepigre/subml.git
cd subml
opam install . --deps-only
make

You can then run Subml using dune exec -- subml. For example, you can run file lib/nat.typ with dune exec -- subml lib/nat.typ.

Note: you must run the program in the main directory (where the lib directory is accessible).

Documentation

Useful links:

  • File tutorial.typ gives an introduction to the language and its syntax.
  • The online interpreter lets you evaluate existing programs, and also write new ones.
  • The documentation of the code gives some informations on the implementation.

Editor support

Vim

Just use the install_vim target.

make install_vim

Note: the syntax coloring and automatic format detection for .typ files is user-specific by default. Files are installed under $HOME/.vim in the standard way.

Neovim

Just use the install_nvim target.

make install_nvim

Note: the syntax coloring and automatic format detection for .typ files is user-specific by default. Files are installed under $HOME/.config/nvim in the standard way.

Emacs

Just use the install_emacs target.

make install_emacs

Note: the mode is installed under the standard share/emacs/site-lisp folder, according the the $PREFIX.

Removing editor modes

To remove all installed editor modes just use the uninstall_editor_modes.

make uninstall_editor_modes
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].