Add : declarations for val definitions
#74
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Implements the declaration type annotations from #73.
(: f {Integer -> Integer}) (def f (λ [x] x)) (: fact {Integer -> Integer}) (defn fact [[0] 1] [[n] {n * (fact {n - 1})}]) (: id (forall [a] {a -> a})) (defn id [[x] (: x a)]) (: rmt (forall [a b] (Monoid b) => (Either a b))) (def rmt (Right (: mempty b)))There is one issue remaining, and that is the ambiguity between the expression version and the declaration version of
:(including in the REPL and in Scribble examples). This could be solved by giving them different names.