All Projects → cyrus- → typy

cyrus- / typy

Licence: MIT License
A fragmentary bidirectional type system as a Python library

Programming Languages

python
139335 projects - #7 most used programming language
ocaml
1615 projects

Projects that are alternatives of or similar to typy

Expat
Reusable, composable patterns across Elixir libraries
Stars: ✭ 157 (+207.84%)
Mutual labels:  pattern-matching, algebraic-data-types
Whyhaskellmatters
In this article I try to explain why Haskell keeps being such an important language by presenting some of its most important and distinguishing features and detailing them with working code examples. The presentation aims to be self-contained and does not require any previous knowledge of the language.
Stars: ✭ 418 (+719.61%)
Mutual labels:  pattern-matching, algebraic-data-types
Mlstyle.jl
Julia functional programming infrastructures and metaprogramming facilities
Stars: ✭ 223 (+337.25%)
Mutual labels:  pattern-matching, algebraic-data-types
Mach7
Functional programming style pattern-matching library for C++
Stars: ✭ 1,151 (+2156.86%)
Mutual labels:  pattern-matching, algebraic-data-types
Poica
🧮 A research programming language on top of C macros
Stars: ✭ 231 (+352.94%)
Mutual labels:  pattern-matching, algebraic-data-types
yantra
JavaScript Engine for .NET Standard
Stars: ✭ 32 (-37.25%)
Mutual labels:  functional-language
bitty
🗃 A mono-repository with functional programming helpers, algebraic data types, util functions, types and even some micro frameworks in TypeScript.
Stars: ✭ 27 (-47.06%)
Mutual labels:  algebraic-data-types
mutoid
Reactive library for data fetching, caching, state management
Stars: ✭ 24 (-52.94%)
Mutual labels:  algebraic-data-types
suitcase
Java Pattern Matching library
Stars: ✭ 21 (-58.82%)
Mutual labels:  pattern-matching
lispy
Learning with Peter Norvig's lis.py interpreter
Stars: ✭ 133 (+160.78%)
Mutual labels:  pattern-matching
Bracmat
Programming language for symbolic computation with unusual combination of pattern matching features: Tree patterns, associative patterns and expressions embedded in patterns.
Stars: ✭ 42 (-17.65%)
Mutual labels:  pattern-matching
bop
Bop is a very fast Boyer-Moore parser/matcher for String or Buffer patterns.
Stars: ✭ 15 (-70.59%)
Mutual labels:  pattern-matching
go-pattern-match
Pattern matchings for Go.
Stars: ✭ 182 (+256.86%)
Mutual labels:  pattern-matching
dry-matcher
Flexible, expressive pattern matching for Ruby
Stars: ✭ 91 (+78.43%)
Mutual labels:  pattern-matching
squire
The medieval language held together by twine.
Stars: ✭ 42 (-17.65%)
Mutual labels:  pattern-matching
sum types.dart
A code generator enabling sum-types in Dart
Stars: ✭ 39 (-23.53%)
Mutual labels:  algebraic-data-types
typical
Data interchange with algebraic data types.
Stars: ✭ 114 (+123.53%)
Mutual labels:  algebraic-data-types
Sig
The most powerful and customizable binary pattern scanner
Stars: ✭ 131 (+156.86%)
Mutual labels:  pattern-matching
dart meta types
a code gen solution for defining sealed classes, data classes, and enum classes for dart.
Stars: ✭ 25 (-50.98%)
Mutual labels:  algebraic-data-types
vallang
Generic immutable recursive data representation API targeted at source code models and more.
Stars: ✭ 28 (-45.1%)
Mutual labels:  algebraic-data-types

typy

typy is a fragmentary bidirectionally typed language embedded into Python.

Information

  • The typy.std library implements a number of useful semantic fragments.
  • See tests directory for examples.
  • See Omar and Aldrich, GPCE 2016 [1] for a description of how typy is implemented.

Project Status and Contributions

The fragment system was significantly revamped just prior to the GPCE paper, so many previously running examples do not currently work. Working on it!

Contributors

Cyrus Omar (@cyrus-)

License

Copyright 2016 Cyrus Omar.

typy is released under the permissive MIT License, requiring only attribution in derivative works. See LICENSE for full terms.

References

[1] Cyrus Omar and Jonathan Aldrich. Programmable Semantic Fragments. GPCE 2016. https://github.com/cyrus-/papers/raw/master/typy-2016/typy-2016.pdf

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].