Gabriel Gonzalez
d36eabb0af
Update documentation
2016-09-18 21:28:21 -07:00
Gabriel Gonzalez
80b9b25d24
Update documentation
2016-09-18 21:13:03 -07:00
Gabriel Gonzalez
3e9d230498
Add Natural/even
and Natural/odd
2016-09-18 21:07:49 -07:00
Gabriel Gonzalez
e597a97e78
Add Text/concat
2016-09-18 18:45:34 -07:00
Gabriel Gonzalez
6e74794a76
Add List/concat
2016-09-18 18:31:23 -07:00
Gabriel Gonzalez
1260b92fdc
Rename ListConcat
constructor to ListAppend
2016-09-18 18:18:08 -07:00
Gabriel Gonzalez
eb4e482380
Rename fields generated by List/indexed
2016-09-18 18:09:11 -07:00
Gabriel Gonzalez
324a29be12
Rename List/first
to List/head
2016-09-18 17:54:58 -07:00
Gabriel Gonzalez
11a06ab540
Replace drop
/dropEnd
with splitAt
/splitAtEnd
2016-09-18 17:50:45 -07:00
Gabriel Gonzalez
1332f6cfb0
Fix pretty-printing of (==)
and (/=)
to match parser
2016-09-18 17:34:56 -07:00
Gabriel Gonzalez
16c72f5a76
Add (==)
and (/=)
2016-09-18 16:28:03 -07:00
Gabriel Gonzalez
076678f1de
Add support for decoding Maybe
s
2016-09-18 15:38:36 -07:00
Gabriel Gonzalez
d39cf8876e
Re-export Text
2016-09-18 15:24:54 -07:00
Gabriel Gonzalez
429dbd266b
Update documentation
2016-09-18 15:24:42 -07:00
Gabriel Gonzalez
acd77292ef
Reintroduce indexed variables
...
The simpler approach still permitted variable capture. For example, this would
break:
\x -> (\y -> (\x -> y)) x
That should reduce to:
\x -> \x -> x@1 -- ... not even expressible under the simpler system
... but it actually reduced to:
\x -> \x -> x
This also required disabling multi-`let` since in the process of fixing this I
realized that this expression is ambiguous:
\(x : Type) ->
let x : Type = Bool
let f (y : x) = y
in f -- ^ Which `x` does this refer to
... because it's supposed to be semantically equivalent to:
\(x : Type) ->
( \(x : Type)
-> \(f : forall (y : x) -> x)
-> f -- ^ This refers to the inner `x : Type`
)
Bool
(\(y : x) -> y)
-- ^ ... but this refers to the outer `x : Type`
Now the code only permits a single `let` binding in each `let ... in` expression
2016-09-18 14:22:45 -07:00
Gabriel Gonzalez
0da0968147
Polish documentation
2016-09-16 20:23:12 -07:00
Gabriel Gonzalez
d0a4134e25
Reintroduce Unicode support
2016-09-16 20:16:46 -07:00
Gabriel Gonzalez
f5a7e50d07
Use {}
for empty record literals
2016-09-16 19:03:10 -07:00
Gabriel Gonzalez
6ea1b4ae5a
Add type annotations for let
results
2016-09-16 17:39:59 -07:00
Gabriel Gonzalez
47eb966f8e
Reuse buildLet
in Buildable
instance for Let
2016-09-16 17:21:26 -07:00
Gabriel Gonzalez
d2ec1c1cc2
Space out record syntax
2016-09-16 17:11:42 -07:00
Gabriel Gonzalez
c3bbe324b3
Add List/dropEnd
2016-09-16 17:06:24 -07:00
Gabriel Gonzalez
b777f4252c
Add List/reverse
2016-09-16 16:58:35 -07:00
Gabriel Gonzalez
35e03c5a02
Replace List/index
with List/drop
...
You can implement `List/index` equally efficiently in terms of `List/drop` and
`List/first`
2016-09-16 09:48:04 -07:00
Gabriel Gonzalez
c09a586117
Add Natural/isZero
2016-09-16 09:32:50 -07:00
Gabriel Gonzalez
b8909addf4
Add List/index
2016-09-16 09:22:03 -07:00
Gabriel Gonzalez
73c817ec94
Use {:}
for empty record types and {=}
for empty record literals
2016-09-16 09:14:54 -07:00
Gabriel Gonzalez
d15ed8ef5e
Add List/length
2016-09-16 09:10:56 -07:00
Gabriel Gonzalez
1741db3702
Add List/last
2016-09-16 09:04:08 -07:00
Gabriel Gonzalez
a0a2c54671
Add List/first
2016-09-16 08:58:42 -07:00
Gabriel Gonzalez
a34dee9356
Fix pretty-printing for function arguments
2016-09-15 22:17:23 -07:00
Gabriel Gonzalez
39cee75f69
Tighten record pretty-printing
2016-09-15 22:13:53 -07:00
Gabriel Gonzalez
b068384098
Use {1} to denote empty record type
...
This eliminates the need for double braces
2016-09-15 22:08:40 -07:00
Gabriel Gonzalez
09fe4bf1cd
Add List/indexed
2016-09-15 21:41:10 -07:00
Gabriel Gonzalez
59a0c68e1e
Add Maybe/fold
2016-09-15 20:24:28 -07:00
Gabriel Gonzalez
2e0689a7aa
Reintroduce support for Maybe
...
... but this time using a syntax similar to `List` literals
2016-09-15 19:52:59 -07:00
Gabriel Gonzalez
c5b781e03e
Change list literal syntax
...
Move the type annotation outside the list
This is to prepare for an equivalent syntax for `Maybe` literals
2016-09-15 09:34:55 -07:00
Gabriel Gonzalez
6580a4cbf1
Change [ a ]
to List a
2016-09-15 09:03:12 -07:00
Gabriel Gonzalez
7ea7603594
Update documentation
2016-09-14 19:48:35 -07:00
Gabriel Gonzalez
e2b247b705
Fix normalization of if
expressions
2016-09-13 21:38:51 -07:00
Gabriel Gonzalez
abbcdb8b55
Rename Star
/Box
to Kind
/Type
2016-09-13 21:38:37 -07:00
Gabriel Gonzalez
d0e29c66f9
Polish source
2016-09-13 21:27:49 -07:00
Gabriel Gonzalez
7ee927e9ad
Disable dependent types
2016-09-13 21:15:56 -07:00
Gabriel Gonzalez
78d2975d48
Use parseUrlThrow
instead of parseUrl
2016-09-13 20:47:32 -07:00
Gabriel Gonzalez
f2030edbab
Remove support for Maybe
2016-09-13 20:41:36 -07:00
Gabriel Gonzalez
16da255e98
Fix pretty printer to exactly match parser
2016-09-13 09:40:17 -07:00
Gabriel Gonzalez
77c45103b3
Update documentation
2016-09-13 08:36:39 -07:00
Gabriel Gonzalez
9e8c86e93f
Change parser to allow chained type annotations
2016-09-13 08:35:56 -07:00
Gabriel Gonzalez
df373c6408
Fix remaining ambiguous parses
2016-09-12 23:21:28 -07:00
Gabriel Gonzalez
66fc7ed6c2
Fix several ambiguous parses
2016-09-12 22:10:46 -07:00