Code Monkey home page Code Monkey logo

Comments (4)

jwaldmann avatar jwaldmann commented on August 23, 2024

simple proposal (a.k.a. Hack) for checking:

instead of case x of ... allow to write case known x of where

  • semantically known = id
  • but for compiling: only generate the code for the case that the constructor is statically known (will throw an exception if this is not the case, exception should contain line number or similar)

come to think of it - this known x could be put anywhere (not just under the case) and it will just check (at runtime) that the top constructor indeed is known.

from co4.

abau avatar abau commented on August 23, 2024

known x

148c8a6 provides assertKnown and assertDefined with the given semantics (the name known is already taken by the allocators). Both functions require import CO4.Prelude.

from co4.

jwaldmann avatar jwaldmann commented on August 23, 2024

commit 534ab80 contains very simple constraint that recurses on a known list (with unknown elements)

constraint s xs = eqNat8 s ( summe xs)

summe xs = case assertKnown xs of
    [] -> nat8 0
    x:xs' -> plusNat8 x (summe xs')

when running it with assertions enabled, I get an exception:

ghci CO4/Test/Assert.hs

*Main> main
Start producing CNF
*** Exception: EncodedAdt.Overlapping.constantConstructorIndex: no flags

where I was expecting that it works without exception.

from co4.

abau avatar abau commented on August 23, 2024

fixed by f823290

from co4.

Related Issues (20)

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.