Giter VIP home page Giter VIP logo

yants's Introduction

YANTS is Yet Another Nix Type System.

Its code has moved to //depot/nix/yants on git.tazj.in. At this point most of my software (unless it lives in other organisations) is no longer developed on GitHub.

If you are looking for an issue tracker, issues and patches for my projects are tracked at [email protected] (which is also the email address that you can send issues and patches to).

yants's People

Contributors

alexarice avatar manveru avatar tazjin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

manveru alexarice

yants's Issues

n-ary either

I find the nesting of eithers annoying to write, and inconsequential. As a result, there should probably be a one-of sort of type constructor, s.t. oneof [a b c] either computes to either<a,either<b,c>>, or be its own type that behaves as such.

You might want to call it union, or you might want to avoid such language! :)

Open structs and intersection types

The current struct system checks for both the presence of mandatory fields, and the absence of extraneous fields.

There is some granularity offered in having optional fields, but it is sometimes useful to have more fine-grained control, such as:

Open structures
Where mandatory fields are checked for presence, but extraneous fields are fine.

Intersection types
In the presence of open structures, it starts making sense to ask for a value to have several types at once.

This could be quite a bit of work, so I understand if it takes a while to think through and decide whether to add them!

Explain how to use this?

All your examples assume that the library is already in scope.

Are you just supposed to:

with (import /path/to/yants/default.nix {});
... 

?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.