diff options
author | Eduardo Julian | 2018-02-07 22:48:20 -0400 |
---|---|---|
committer | Eduardo Julian | 2018-02-07 22:48:20 -0400 |
commit | ca53b9929cfb4f5cef11c6f296e4f62bab518226 (patch) | |
tree | f00c3033afec4688f806444312caf2dbf84f4295 /luxc | |
parent | 6e2815e80aad20fc96ea9df03ea2d2ebad856584 (diff) |
- Fixed how type-application is text-encoded in old compiler.
Diffstat (limited to '')
-rw-r--r-- | luxc/src/lux/type.clj | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/luxc/src/lux/type.clj b/luxc/src/lux/type.clj index 84c00b978..76d580cb0 100644 --- a/luxc/src/lux/type.clj +++ b/luxc/src/lux/type.clj @@ -371,14 +371,16 @@ _ (&/T [type &/$Nil]))) -(defn ^:private unravel-app [fun-type] - (|case fun-type - (&/$Apply ?arg ?func) - (|let [[?fun-type ?args] (unravel-app ?func)] - (&/T [?fun-type (&/$Cons ?arg ?args)])) - - _ - (&/T [fun-type &/$Nil]))) +(defn ^:private unravel-app + ([fun-type tail] + (|case fun-type + (&/$Apply ?arg ?func) + (unravel-app ?func (&/$Cons ?arg tail)) + + _ + (&/T [fun-type tail]))) + ([fun-type] + (unravel-app fun-type &/$Nil))) (do-template [<tag> <flatten> <at> <desc>] (do (defn <flatten> [type] |