frenchy64.github.io
Using core.typed at the REPL
http://frenchy64.github.io/typed/clojure,/core.typed,/clojure/2013/09/03/core-typed-repl.html
Using core.typed at the REPL. Is intended to be used at the REPL for rapid feedback, however there are a few things to look out for. Coretyped only has effect when in checking mode. Are two ways of starting checking mode. This is most apparent when type checking a definition at the REPL. To correctly feed forms to be checked, wrap each form in. Experimenting at the REPL. Coretyped is designed for this workflow:. Check a namespace with. For flexible small experiments, possibly producing a dirty environment.
frenchy64.github.io
The link between CinC and Typed Clojure
http://frenchy64.github.io/2013/10/01/link-cinc-typed-clojure.html
The link between CinC and Typed Clojure. The first stretch goal for the Typed Clojure campaign. Concentrates on a significant missing piece in JVM tooling: a self-hosted Clojure compiler, (aka. a Clojure compiler written in Clojure). This post is intended to briefly demonstrate where core.typed can benefit from CinC. Read Clojure-in-Clojure), an actively developed Clojure compiler. Runs a close second). The question is: who do we give the reflection information to? Is a pattern matching library for Cloju...
frenchy64.github.io
Red/Black tree rebalancing invariants (with plain maps)
http://frenchy64.github.io/2013/10/03/rbt-tree-preview.html
Red/Black tree rebalancing invariants (with plain maps). 12 months of full time development on Typed Clojure. Please pledge or share! One of the first problems I attempted to solve with Typed Clojure turned out to be one of the most difficult: statically verifying Red/Black tree rebalancing invariants. This post describes how close I am to checking these invariants. Note that the code examples might not be currently checkable. I was lucky enough to have Rowan Davies. Supervise my Honours project. In Type...
frenchy64.github.io
Typed Clojure prevents Null Pointer Exceptions
http://frenchy64.github.io/2013/10/04/null-pointer.html
Typed Clojure prevents Null Pointer Exceptions. I am crowdfunding towards 12 months of full-time Typed Clojure development. If you value strong guarantees like the static prevention of Null Pointer Exceptions, pledge or share today. Typed Clojure is opinionated: some type errors are checked at compile time, and other checks are delayed until runtime. One kind of type error Typed Clojure is designed to eradicate at compile time is the. At its most basic level,. Can simply be replaced by. To the programmer...
frenchy64.github.io
Simple local reasoning with assertions
http://frenchy64.github.io/2013/09/08/simple-reasoning-assertions-core-typed.html
Simple local reasoning with assertions. Assertions are a popular technique for runtime verification of Clojure code. These assertions are often a rich source of type information that core.typed takes advantage of. Using simple reasoning about control flow, core.typed can understand typical Clojure assertions and preconditions. Consider the following common macroexpansion for an assertion:. After we understand branching and sequencing of code in Clojure, its easy to see that. Is updated from type. This mo...
frenchy64.github.io
Invariants via immutability
http://frenchy64.github.io/typed/clojure,/core.typed,/clojure/2013/08/16/first-steps-with-core-typed.html
Clojure’s emphasis on immutable bindings and data structures lead us to write simpler, more obvious code. We don’t need to worry about immutable things changing over time. This reduces the cognitive load of both writing and reading code. It is common to assume invariants for mutable structures, however, even in Clojure. Sometimes refactoring such logic in terms of. Things can be clearer, and also help verification tools like Typed Clojure infer and check interesting invariants. In this snippet, a local.
frenchy64.github.io
Using polymorphic higher-order functions
http://frenchy64.github.io/typed/clojure,/core.typed,/clojure/2013/09/03/polymorphic-hof.html
Using polymorphic higher-order functions. When it comes to annotating functions in core.typed. There are some special rules to keep in mind. Here are two. All function parameters should be annotated. Polymorphic functions should be instantiated when used as a parameters to polymorphic higher-order functions. There are several ways for function argument annotations to propagate downwards. To annotate a full function type, use. Takes a second argument which expands into. A keyword can be used as a function.
frenchy64.github.io
Typed Clojurescript Playground
http://frenchy64.github.io/2013/10/06/preview-typed-clojurescript.html
Typed Clojurescript is in early development, but its still fun to play around with. Its designed to be very similar to Typed Clojure. The usual vars like. Are identical to the Clojure implementation, except the prefix of. One of the major goals of the Typed Clojure crowdfunding campaign. I have created a Typed Clojurescript playground. For this purpose. Just clone it and run. To start type checking. It will mature much faster.
frenchy64.github.io
Crowdfunding full-time development on Typed Clojure and Clojurescript
http://frenchy64.github.io/2013/09/28/crowdfunding.html
Crowdfunding full-time development on Typed Clojure and Clojurescript. Ive started a campaign. To support full-time development on Typed Clojure and Clojurescript. Its off to flying start, please share!
SOCIAL ENGAGEMENT