From 3091d34b34736b92e54573799570e58acc2e3a36 Mon Sep 17 00:00:00 2001 From: Dan Doel Date: Tue, 18 Aug 2020 15:16:52 -0400 Subject: [PATCH] Commit transcript changes for new builtins - These were generated using the existing runtime --- unison-src/transcripts/alias-many.output.md | 505 +++++++++++------- .../transcripts/builtins-merge.output.md | 82 +-- .../transcripts/emptyCodebase.output.md | 4 +- unison-src/transcripts/merges.output.md | 72 ++- unison-src/transcripts/reflog.output.md | 10 +- unison-src/transcripts/squash.output.md | 16 +- 6 files changed, 419 insertions(+), 270 deletions(-) diff --git a/unison-src/transcripts/alias-many.output.md b/unison-src/transcripts/alias-many.output.md index 06d7c4900..658e79b20 100644 --- a/unison-src/transcripts/alias-many.output.md +++ b/unison-src/transcripts/alias-many.output.md @@ -18,174 +18,251 @@ Let's try it! .builtin> find - 1. builtin type Boolean - 2. Boolean.not : Boolean -> Boolean - 3. builtin type Bytes - 4. Bytes.++ : Bytes -> Bytes -> Bytes - 5. Bytes.at : Nat -> Bytes -> Optional Nat - 6. Bytes.drop : Nat -> Bytes -> Bytes - 7. Bytes.empty : Bytes - 8. Bytes.flatten : Bytes -> Bytes - 9. Bytes.fromList : [Nat] -> Bytes - 10. Bytes.size : Bytes -> Nat - 11. Bytes.take : Nat -> Bytes -> Bytes - 12. Bytes.toList : Bytes -> [Nat] - 13. builtin type Char - 14. Char.fromNat : Nat -> Char - 15. Char.toNat : Char -> Nat - 16. Debug.watch : Text -> a -> a - 17. unique type Doc - 18. Doc.Blob : Text -> Doc - 19. Doc.Evaluate : Term -> Doc - 20. Doc.Join : [Doc] -> Doc - 21. Doc.Link : Link -> Doc - 22. Doc.Signature : Term -> Doc - 23. Doc.Source : Link -> Doc - 24. builtin type Float - 25. Float.* : Float -> Float -> Float - 26. Float.+ : Float -> Float -> Float - 27. Float.- : Float -> Float -> Float - 28. Float./ : Float -> Float -> Float - 29. Float.abs : Float -> Float - 30. Float.acos : Float -> Float - 31. Float.acosh : Float -> Float - 32. Float.asin : Float -> Float - 33. Float.asinh : Float -> Float - 34. Float.atan : Float -> Float - 35. Float.atan2 : Float -> Float -> Float - 36. Float.atanh : Float -> Float - 37. Float.ceiling : Float -> Int - 38. Float.cos : Float -> Float - 39. Float.cosh : Float -> Float - 40. Float.eq : Float -> Float -> Boolean - 41. Float.exp : Float -> Float - 42. Float.floor : Float -> Int - 43. Float.fromText : Text -> Optional Float - 44. Float.gt : Float -> Float -> Boolean - 45. Float.gteq : Float -> Float -> Boolean - 46. Float.log : Float -> Float - 47. Float.logBase : Float -> Float -> Float - 48. Float.lt : Float -> Float -> Boolean - 49. Float.lteq : Float -> Float -> Boolean - 50. Float.max : Float -> Float -> Float - 51. Float.min : Float -> Float -> Float - 52. Float.pow : Float -> Float -> Float - 53. Float.round : Float -> Int - 54. Float.sin : Float -> Float - 55. Float.sinh : Float -> Float - 56. Float.sqrt : Float -> Float - 57. Float.tan : Float -> Float - 58. Float.tanh : Float -> Float - 59. Float.toText : Float -> Text - 60. Float.truncate : Float -> Int - 61. builtin type Int - 62. Int.* : Int -> Int -> Int - 63. Int.+ : Int -> Int -> Int - 64. Int.- : Int -> Int -> Int - 65. Int./ : Int -> Int -> Int - 66. Int.and : Int -> Int -> Int - 67. Int.complement : Int -> Int - 68. Int.eq : Int -> Int -> Boolean - 69. Int.fromText : Text -> Optional Int - 70. Int.gt : Int -> Int -> Boolean - 71. Int.gteq : Int -> Int -> Boolean - 72. Int.increment : Int -> Int - 73. Int.isEven : Int -> Boolean - 74. Int.isOdd : Int -> Boolean - 75. Int.leadingZeros : Int -> Nat - 76. Int.lt : Int -> Int -> Boolean - 77. Int.lteq : Int -> Int -> Boolean - 78. Int.mod : Int -> Int -> Int - 79. Int.negate : Int -> Int - 80. Int.or : Int -> Int -> Int - 81. Int.pow : Int -> Nat -> Int - 82. Int.shiftLeft : Int -> Nat -> Int - 83. Int.shiftRight : Int -> Nat -> Int - 84. Int.signum : Int -> Int - 85. Int.toFloat : Int -> Float - 86. Int.toText : Int -> Text - 87. Int.trailingZeros : Int -> Nat - 88. Int.truncate0 : Int -> Nat - 89. Int.xor : Int -> Int -> Int - 90. unique type Link - 91. builtin type Link.Term - 92. Link.Term : Term -> Link - 93. builtin type Link.Type - 94. Link.Type : Type -> Link - 95. builtin type List - 96. List.++ : [a] -> [a] -> [a] - 97. List.+: : a -> [a] -> [a] - 98. List.:+ : [a] -> a -> [a] - 99. List.at : Nat -> [a] -> Optional a - 100. List.cons : a -> [a] -> [a] - 101. List.drop : Nat -> [a] -> [a] - 102. List.empty : [a] - 103. List.size : [a] -> Nat - 104. List.snoc : [a] -> a -> [a] - 105. List.take : Nat -> [a] -> [a] - 106. builtin type Nat - 107. Nat.* : Nat -> Nat -> Nat - 108. Nat.+ : Nat -> Nat -> Nat - 109. Nat./ : Nat -> Nat -> Nat - 110. Nat.and : Nat -> Nat -> Nat - 111. Nat.complement : Nat -> Nat - 112. Nat.drop : Nat -> Nat -> Nat - 113. Nat.eq : Nat -> Nat -> Boolean - 114. Nat.fromText : Text -> Optional Nat - 115. Nat.gt : Nat -> Nat -> Boolean - 116. Nat.gteq : Nat -> Nat -> Boolean - 117. Nat.increment : Nat -> Nat - 118. Nat.isEven : Nat -> Boolean - 119. Nat.isOdd : Nat -> Boolean - 120. Nat.leadingZeros : Nat -> Nat - 121. Nat.lt : Nat -> Nat -> Boolean - 122. Nat.lteq : Nat -> Nat -> Boolean - 123. Nat.mod : Nat -> Nat -> Nat - 124. Nat.or : Nat -> Nat -> Nat - 125. Nat.pow : Nat -> Nat -> Nat - 126. Nat.shiftLeft : Nat -> Nat -> Nat - 127. Nat.shiftRight : Nat -> Nat -> Nat - 128. Nat.sub : Nat -> Nat -> Int - 129. Nat.toFloat : Nat -> Float - 130. Nat.toInt : Nat -> Int - 131. Nat.toText : Nat -> Text - 132. Nat.trailingZeros : Nat -> Nat - 133. Nat.xor : Nat -> Nat -> Nat - 134. type Optional a - 135. Optional.None : Optional a - 136. Optional.Some : a -> Optional a - 137. builtin type Request - 138. unique type Test.Result - 139. Test.Result.Fail : Text -> Result - 140. Test.Result.Ok : Text -> Result - 141. builtin type Text - 142. Text.!= : Text -> Text -> Boolean - 143. Text.++ : Text -> Text -> Text - 144. Text.drop : Nat -> Text -> Text - 145. Text.empty : Text - 146. Text.eq : Text -> Text -> Boolean - 147. Text.fromCharList : [Char] -> Text - 148. Text.gt : Text -> Text -> Boolean - 149. Text.gteq : Text -> Text -> Boolean - 150. Text.lt : Text -> Text -> Boolean - 151. Text.lteq : Text -> Text -> Boolean - 152. Text.size : Text -> Nat - 153. Text.take : Nat -> Text -> Text - 154. Text.toCharList : Text -> [Char] - 155. Text.uncons : Text -> Optional (Char, Text) - 156. Text.unsnoc : Text -> Optional (Text, Char) - 157. type Tuple a b - 158. Tuple.Cons : a -> b -> Tuple a b - 159. type Unit - 160. Unit.Unit : () - 161. Universal.< : a -> a -> Boolean - 162. Universal.<= : a -> a -> Boolean - 163. Universal.== : a -> a -> Boolean - 164. Universal.> : a -> a -> Boolean - 165. Universal.>= : a -> a -> Boolean - 166. Universal.compare : a -> a -> Int - 167. bug : a -> b - 168. todo : a -> b + 1. AlreadyExists : IOError + 2. builtin type Boolean + 3. Boolean.not : Boolean -> Boolean + 4. type BufferMode + 5. BufferMode.BlockBuffering : BufferMode + 6. BufferMode.LineBuffering : BufferMode + 7. BufferMode.NoBuffering : BufferMode + 8. BufferMode.SizedBlockBuffering : Nat -> BufferMode + 9. builtin type Bytes + 10. Bytes.++ : Bytes -> Bytes -> Bytes + 11. Bytes.at : Nat -> Bytes -> Optional Nat + 12. Bytes.drop : Nat -> Bytes -> Bytes + 13. Bytes.empty : Bytes + 14. Bytes.flatten : Bytes -> Bytes + 15. Bytes.fromList : [Nat] -> Bytes + 16. Bytes.size : Bytes -> Nat + 17. Bytes.take : Nat -> Bytes -> Bytes + 18. Bytes.toList : Bytes -> [Nat] + 19. builtin type Char + 20. Char.fromNat : Nat -> Char + 21. Char.toNat : Char -> Nat + 22. Debug.watch : Text -> a -> a + 23. unique type Doc + 24. Doc.Blob : Text -> Doc + 25. Doc.Evaluate : Term -> Doc + 26. Doc.Join : [Doc] -> Doc + 27. Doc.Link : Link -> Doc + 28. Doc.Signature : Term -> Doc + 29. Doc.Source : Link -> Doc + 30. EOF : IOError + 31. type Either a b + 32. Either.Left : a -> Either a b + 33. Either.Right : b -> Either a b + 34. type FileMode + 35. FileMode.Append : FileMode + 36. FileMode.Read : FileMode + 37. FileMode.ReadWrite : FileMode + 38. FileMode.Write : FileMode + 39. builtin type Float + 40. Float.* : Float -> Float -> Float + 41. Float.+ : Float -> Float -> Float + 42. Float.- : Float -> Float -> Float + 43. Float./ : Float -> Float -> Float + 44. Float.abs : Float -> Float + 45. Float.acos : Float -> Float + 46. Float.acosh : Float -> Float + 47. Float.asin : Float -> Float + 48. Float.asinh : Float -> Float + 49. Float.atan : Float -> Float + 50. Float.atan2 : Float -> Float -> Float + 51. Float.atanh : Float -> Float + 52. Float.ceiling : Float -> Int + 53. Float.cos : Float -> Float + 54. Float.cosh : Float -> Float + 55. Float.eq : Float -> Float -> Boolean + 56. Float.exp : Float -> Float + 57. Float.floor : Float -> Int + 58. Float.fromText : Text -> Optional Float + 59. Float.gt : Float -> Float -> Boolean + 60. Float.gteq : Float -> Float -> Boolean + 61. Float.log : Float -> Float + 62. Float.logBase : Float -> Float -> Float + 63. Float.lt : Float -> Float -> Boolean + 64. Float.lteq : Float -> Float -> Boolean + 65. Float.max : Float -> Float -> Float + 66. Float.min : Float -> Float -> Float + 67. Float.pow : Float -> Float -> Float + 68. Float.round : Float -> Int + 69. Float.sin : Float -> Float + 70. Float.sinh : Float -> Float + 71. Float.sqrt : Float -> Float + 72. Float.tan : Float -> Float + 73. Float.tanh : Float -> Float + 74. Float.toText : Float -> Text + 75. Float.truncate : Float -> Int + 76. IO.clientSocket : Text + -> Text + ->{##IO} Either IOError ##Socket + 77. IO.closeFile : ##Handle ->{##IO} Either IOError () + 78. IO.closeSocket : ##Socket ->{##IO} Either IOError () + 79. IO.createDirectory : Text ->{##IO} Either IOError () + 80. IO.fileExists : Text ->{##IO} Either IOError Boolean + 81. IO.forkComp : '{##IO} Either IOError a + ->{##IO} Either IOError ##ThreadId + 82. IO.getBuffering : ##Handle + ->{##IO} Either IOError BufferMode + 83. IO.getCurrentDirectory : '{##IO} Either IOError Text + 84. IO.getFileSize : Text ->{##IO} Either IOError Nat + 85. IO.getFileTimestamp : Text ->{##IO} Either IOError Nat + 86. IO.getLine : ##Handle ->{##IO} Either IOError Text + 87. IO.getTempDirectory : '{##IO} Either IOError Text + 88. IO.getText : ##Handle ->{##IO} Either IOError Text + 89. IO.handlePosition : ##Handle ->{##IO} Either IOError Int + 90. IO.isDirectory : Text ->{##IO} Either IOError Boolean + 91. IO.isFileEOF : ##Handle ->{##IO} Either IOError Boolean + 92. IO.isFileOpen : ##Handle ->{##IO} Either IOError Boolean + 93. IO.isSeekable : ##Handle ->{##IO} Either IOError Boolean + 94. IO.listen : ##Socket ->{##IO} Either IOError () + 95. IO.openFile : Text ->{##IO} Either IOError ##Handle + 96. IO.putText : ##Handle -> Text ->{##IO} Either IOError () + 97. IO.removeDirectory : Text ->{##IO} Either IOError () + 98. IO.removeFile : Text ->{##IO} Either IOError () + 99. IO.renameDirectory : Text + -> Text + ->{##IO} Either IOError () + 100. IO.renameFile : Text -> Text ->{##IO} Either IOError () + 101. IO.seekHandle : ##Handle + -> FileMode + -> Int + ->{##IO} Either IOError () + 102. IO.serverSocket : Text + -> Text + ->{##IO} Either IOError ##Socket + 103. IO.setBuffering : ##Handle + -> BufferMode + ->{##IO} Either IOError () + 104. IO.setCurrentDirectory : Text ->{##IO} Either IOError () + 105. IO.socketAccept : ##Socket + ->{##IO} Either IOError ##Socket + 106. IO.socketReceive : ##Socket + -> Nat + ->{##IO} Either IOError Bytes + 107. IO.socketSend : ##Socket + -> Bytes + ->{##IO} Either IOError () + 108. IO.stdHandle : Nat -> Optional ##Handle + 109. IO.systemTime : '{##IO} Either IOError Nat + 110. type IOError + 111. IllegalOperation : IOError + 112. builtin type Int + 113. Int.* : Int -> Int -> Int + 114. Int.+ : Int -> Int -> Int + 115. Int.- : Int -> Int -> Int + 116. Int./ : Int -> Int -> Int + 117. Int.and : Int -> Int -> Int + 118. Int.complement : Int -> Int + 119. Int.eq : Int -> Int -> Boolean + 120. Int.fromText : Text -> Optional Int + 121. Int.gt : Int -> Int -> Boolean + 122. Int.gteq : Int -> Int -> Boolean + 123. Int.increment : Int -> Int + 124. Int.isEven : Int -> Boolean + 125. Int.isOdd : Int -> Boolean + 126. Int.leadingZeros : Int -> Nat + 127. Int.lt : Int -> Int -> Boolean + 128. Int.lteq : Int -> Int -> Boolean + 129. Int.mod : Int -> Int -> Int + 130. Int.negate : Int -> Int + 131. Int.or : Int -> Int -> Int + 132. Int.pow : Int -> Nat -> Int + 133. Int.shiftLeft : Int -> Nat -> Int + 134. Int.shiftRight : Int -> Nat -> Int + 135. Int.signum : Int -> Int + 136. Int.toFloat : Int -> Float + 137. Int.toText : Int -> Text + 138. Int.trailingZeros : Int -> Nat + 139. Int.truncate0 : Int -> Nat + 140. Int.xor : Int -> Int -> Int + 141. unique type Link + 142. builtin type Link.Term + 143. Link.Term : Term -> Link + 144. builtin type Link.Type + 145. Link.Type : Type -> Link + 146. builtin type List + 147. List.++ : [a] -> [a] -> [a] + 148. List.+: : a -> [a] -> [a] + 149. List.:+ : [a] -> a -> [a] + 150. List.at : Nat -> [a] -> Optional a + 151. List.cons : a -> [a] -> [a] + 152. List.drop : Nat -> [a] -> [a] + 153. List.empty : [a] + 154. List.size : [a] -> Nat + 155. List.snoc : [a] -> a -> [a] + 156. List.take : Nat -> [a] -> [a] + 157. builtin type Nat + 158. Nat.* : Nat -> Nat -> Nat + 159. Nat.+ : Nat -> Nat -> Nat + 160. Nat./ : Nat -> Nat -> Nat + 161. Nat.and : Nat -> Nat -> Nat + 162. Nat.complement : Nat -> Nat + 163. Nat.drop : Nat -> Nat -> Nat + 164. Nat.eq : Nat -> Nat -> Boolean + 165. Nat.fromText : Text -> Optional Nat + 166. Nat.gt : Nat -> Nat -> Boolean + 167. Nat.gteq : Nat -> Nat -> Boolean + 168. Nat.increment : Nat -> Nat + 169. Nat.isEven : Nat -> Boolean + 170. Nat.isOdd : Nat -> Boolean + 171. Nat.leadingZeros : Nat -> Nat + 172. Nat.lt : Nat -> Nat -> Boolean + 173. Nat.lteq : Nat -> Nat -> Boolean + 174. Nat.mod : Nat -> Nat -> Nat + 175. Nat.or : Nat -> Nat -> Nat + 176. Nat.pow : Nat -> Nat -> Nat + 177. Nat.shiftLeft : Nat -> Nat -> Nat + 178. Nat.shiftRight : Nat -> Nat -> Nat + 179. Nat.sub : Nat -> Nat -> Int + 180. Nat.toFloat : Nat -> Float + 181. Nat.toInt : Nat -> Int + 182. Nat.toText : Nat -> Text + 183. Nat.trailingZeros : Nat -> Nat + 184. Nat.xor : Nat -> Nat -> Nat + 185. NoSuchThing : IOError + 186. type Optional a + 187. Optional.None : Optional a + 188. Optional.Some : a -> Optional a + 189. PermissionDenied : IOError + 190. builtin type Request + 191. ResourceBusy : IOError + 192. ResourceExhausted : IOError + 193. type SeqView a + 194. SeqView.VElem : a -> SeqView a -> SeqView a + 195. SeqView.VEmpty : SeqView a + 196. unique type Test.Result + 197. Test.Result.Fail : Text -> Result + 198. Test.Result.Ok : Text -> Result + 199. builtin type Text + 200. Text.!= : Text -> Text -> Boolean + 201. Text.++ : Text -> Text -> Text + 202. Text.drop : Nat -> Text -> Text + 203. Text.empty : Text + 204. Text.eq : Text -> Text -> Boolean + 205. Text.fromCharList : [Char] -> Text + 206. Text.gt : Text -> Text -> Boolean + 207. Text.gteq : Text -> Text -> Boolean + 208. Text.lt : Text -> Text -> Boolean + 209. Text.lteq : Text -> Text -> Boolean + 210. Text.size : Text -> Nat + 211. Text.take : Nat -> Text -> Text + 212. Text.toCharList : Text -> [Char] + 213. Text.uncons : Text -> Optional (Char, Text) + 214. Text.unsnoc : Text -> Optional (Text, Char) + 215. type Tuple a b + 216. Tuple.Cons : a -> b -> Tuple a b + 217. type Unit + 218. Unit.Unit : () + 219. Universal.< : a -> a -> Boolean + 220. Universal.<= : a -> a -> Boolean + 221. Universal.== : a -> a -> Boolean + 222. Universal.> : a -> a -> Boolean + 223. Universal.>= : a -> a -> Boolean + 224. Universal.compare : a -> a -> Int + 225. UserError : IOError + 226. bug : a -> b + 227. todo : a -> b .builtin> alias.many 94-104 .mylib @@ -194,17 +271,32 @@ Let's try it! Added definitions: - 1. builtin type List - 2. Link.Type : Type -> Link - 3. List.++ : [a] -> [a] -> [a] - 4. ┌ List.+: : a -> [a] -> [a] - 5. └ List.cons : a -> [a] -> [a] - 6. ┌ List.:+ : [a] -> a -> [a] - 7. └ List.snoc : [a] -> a -> [a] - 8. List.at : Nat -> [a] -> Optional a - 9. List.drop : Nat -> [a] -> [a] - 10. List.empty : [a] - 11. List.size : [a] -> Nat + 1. IO.listen : ##Socket + ->{##IO} Either IOError () + 2. IO.openFile : Text + ->{##IO} Either IOError ##Handle + 3. IO.putText : ##Handle + -> Text + ->{##IO} Either IOError () + 4. IO.removeDirectory : Text ->{##IO} Either IOError () + 5. IO.removeFile : Text ->{##IO} Either IOError () + 6. IO.renameDirectory : Text + -> Text + ->{##IO} Either IOError () + 7. IO.renameFile : Text + -> Text + ->{##IO} Either IOError () + 8. IO.seekHandle : ##Handle + -> FileMode + -> Int + ->{##IO} Either IOError () + 9. IO.serverSocket : Text + -> Text + ->{##IO} Either IOError ##Socket + 10. IO.setBuffering : ##Handle + -> BufferMode + ->{##IO} Either IOError () + 11. IO.setCurrentDirectory : Text ->{##IO} Either IOError () Tip: You can use `undo` or `reflog` to undo this change. @@ -266,29 +358,38 @@ I want to incorporate a few more from another namespace: .mylib> find - 1. Link.Type : Type -> Link - 2. builtin type List - 3. List.++ : [a] -> [a] -> [a] - 4. List.+: : a -> [a] -> [a] - 5. List.:+ : [a] -> a -> [a] - 6. List.adjacentPairs : [a] -> [(a, a)] - 7. List.all : (a ->{𝕖} Boolean) ->{𝕖} [a] ->{𝕖} Boolean - 8. List.any : (a ->{𝕖} Boolean) ->{𝕖} [a] ->{𝕖} Boolean - 9. List.at : Nat -> [a] -> Optional a - 10. List.chunk : Nat -> [a] -> [[a]] - 11. List.chunksOf : Nat -> [a] -> [[a]] - 12. List.cons : a -> [a] -> [a] - 13. List.drop : Nat -> [a] -> [a] - 14. List.dropWhile : (a ->{𝕖} Boolean) ->{𝕖} [a] ->{𝕖} [a] - 15. List.empty : [a] - 16. List.first : [a] -> Optional a - 17. List.init : [a] -> Optional [a] - 18. List.intersperse : a -> [a] -> [a] - 19. List.isEmpty : [a] -> Boolean - 20. List.last : [a] -> Optional a - 21. List.replicate : Nat -> a -> [a] - 22. List.size : [a] -> Nat - 23. List.snoc : [a] -> a -> [a] + 1. IO.listen : ##Socket ->{##IO} Either IOError () + 2. IO.openFile : Text ->{##IO} Either IOError ##Handle + 3. IO.putText : ##Handle -> Text ->{##IO} Either IOError () + 4. IO.removeDirectory : Text ->{##IO} Either IOError () + 5. IO.removeFile : Text ->{##IO} Either IOError () + 6. IO.renameDirectory : Text + -> Text + ->{##IO} Either IOError () + 7. IO.renameFile : Text -> Text ->{##IO} Either IOError () + 8. IO.seekHandle : ##Handle + -> FileMode + -> Int + ->{##IO} Either IOError () + 9. IO.serverSocket : Text + -> Text + ->{##IO} Either IOError ##Socket + 10. IO.setBuffering : ##Handle + -> BufferMode + ->{##IO} Either IOError () + 11. IO.setCurrentDirectory : Text ->{##IO} Either IOError () + 12. List.adjacentPairs : [a] -> [(a, a)] + 13. List.all : (a ->{𝕖} Boolean) ->{𝕖} [a] ->{𝕖} Boolean + 14. List.any : (a ->{𝕖} Boolean) ->{𝕖} [a] ->{𝕖} Boolean + 15. List.chunk : Nat -> [a] -> [[a]] + 16. List.chunksOf : Nat -> [a] -> [[a]] + 17. List.dropWhile : (a ->{𝕖} Boolean) ->{𝕖} [a] ->{𝕖} [a] + 18. List.first : [a] -> Optional a + 19. List.init : [a] -> Optional [a] + 20. List.intersperse : a -> [a] -> [a] + 21. List.isEmpty : [a] -> Boolean + 22. List.last : [a] -> Optional a + 23. List.replicate : Nat -> a -> [a] 24. List.splitAt : Nat -> [a] -> ([a], [a]) 25. List.tail : [a] -> Optional [a] 26. List.takeWhile : (a ->{𝕖} Boolean) -> [a] ->{𝕖} [a] diff --git a/unison-src/transcripts/builtins-merge.output.md b/unison-src/transcripts/builtins-merge.output.md index 661b1b4bf..0536e5415 100644 --- a/unison-src/transcripts/builtins-merge.output.md +++ b/unison-src/transcripts/builtins-merge.output.md @@ -9,37 +9,55 @@ The `builtins.merge` command adds the known builtins to a `builtin` subnamespace .tmp> ls builtin - 1. Boolean (builtin type) - 2. Boolean/ (1 definition) - 3. Bytes (builtin type) - 4. Bytes/ (9 definitions) - 5. Char (builtin type) - 6. Char/ (2 definitions) - 7. Debug/ (1 definition) - 8. Doc (type) - 9. Doc/ (6 definitions) - 10. Float (builtin type) - 11. Float/ (36 definitions) - 12. Int (builtin type) - 13. Int/ (28 definitions) - 14. Link (type) - 15. Link/ (4 definitions) - 16. List (builtin type) - 17. List/ (10 definitions) - 18. Nat (builtin type) - 19. Nat/ (27 definitions) - 20. Optional (type) - 21. Optional/ (2 definitions) - 22. Request (builtin type) - 23. Test/ (3 definitions) - 24. Text (builtin type) - 25. Text/ (15 definitions) - 26. Tuple (type) - 27. Tuple/ (1 definition) - 28. Unit (type) - 29. Unit/ (1 definition) - 30. Universal/ (6 definitions) - 31. bug (a -> b) - 32. todo (a -> b) + 1. AlreadyExists (IOError) + 2. Boolean (builtin type) + 3. Boolean/ (1 definition) + 4. BufferMode (type) + 5. BufferMode/ (4 definitions) + 6. Bytes (builtin type) + 7. Bytes/ (9 definitions) + 8. Char (builtin type) + 9. Char/ (2 definitions) + 10. Debug/ (1 definition) + 11. Doc (type) + 12. Doc/ (6 definitions) + 13. EOF (IOError) + 14. Either (type) + 15. Either/ (2 definitions) + 16. FileMode (type) + 17. FileMode/ (4 definitions) + 18. Float (builtin type) + 19. Float/ (36 definitions) + 20. IO/ (34 definitions) + 21. IOError (type) + 22. IllegalOperation (IOError) + 23. Int (builtin type) + 24. Int/ (28 definitions) + 25. Link (type) + 26. Link/ (4 definitions) + 27. List (builtin type) + 28. List/ (10 definitions) + 29. Nat (builtin type) + 30. Nat/ (27 definitions) + 31. NoSuchThing (IOError) + 32. Optional (type) + 33. Optional/ (2 definitions) + 34. PermissionDenied (IOError) + 35. Request (builtin type) + 36. ResourceBusy (IOError) + 37. ResourceExhausted (IOError) + 38. SeqView (type) + 39. SeqView/ (2 definitions) + 40. Test/ (3 definitions) + 41. Text (builtin type) + 42. Text/ (15 definitions) + 43. Tuple (type) + 44. Tuple/ (1 definition) + 45. Unit (type) + 46. Unit/ (1 definition) + 47. Universal/ (6 definitions) + 48. UserError (IOError) + 49. bug (a -> b) + 50. todo (a -> b) ``` diff --git a/unison-src/transcripts/emptyCodebase.output.md b/unison-src/transcripts/emptyCodebase.output.md index c3142e301..b95bc5384 100644 --- a/unison-src/transcripts/emptyCodebase.output.md +++ b/unison-src/transcripts/emptyCodebase.output.md @@ -23,7 +23,7 @@ Technically, the definitions all exist, but they have no names. `builtins.merge` .foo> ls - 1. builtin/ (168 definitions) + 1. builtin/ (227 definitions) ``` And for a limited time, you can get even more builtin goodies: @@ -35,7 +35,7 @@ And for a limited time, you can get even more builtin goodies: .foo> ls - 1. builtin/ (334 definitions) + 1. builtin/ (390 definitions) ``` More typically, you'd start out by pulling `base. diff --git a/unison-src/transcripts/merges.output.md b/unison-src/transcripts/merges.output.md index db73f5148..f922338ac 100644 --- a/unison-src/transcripts/merges.output.md +++ b/unison-src/transcripts/merges.output.md @@ -112,13 +112,13 @@ We can also delete the fork if we're done with it. (Don't worry, it's still in t Note: The most recent namespace hash is immediately below this message. - ⊙ #1pdgtsicq9 + ⊙ #gjkmcnvfuh - Deletes: feature1.y - ⊙ #9e8gvv7r3e + ⊙ #kqloe7510g + Adds / updates: @@ -129,30 +129,34 @@ We can also delete the fork if we're done with it. (Don't worry, it's still in t Original name New name(s) feature1.y master.y - ⊙ #6sqsddkikv + ⊙ #aj79ekpoo3 + Adds / updates: feature1.y - ⊙ #loe9apjdis + ⊙ #tlh9bnckss > Moves: Original name New name x master.x - ⊙ #p90pbjip7l + ⊙ #om14e19o1o + Adds / updates: x - ⊙ #givahf3f6f + ⊙ #1ggq0kemne + Adds / updates: - builtin.Boolean builtin.Boolean.not builtin.Bytes + builtin.AlreadyExists builtin.Boolean builtin.Boolean.not + builtin.BufferMode builtin.BufferMode.BlockBuffering + builtin.BufferMode.LineBuffering + builtin.BufferMode.NoBuffering + builtin.BufferMode.SizedBlockBuffering builtin.Bytes builtin.Bytes.++ builtin.Bytes.at builtin.Bytes.drop builtin.Bytes.empty builtin.Bytes.flatten builtin.Bytes.fromList builtin.Bytes.size @@ -160,11 +164,15 @@ We can also delete the fork if we're done with it. (Don't worry, it's still in t builtin.Char.fromNat builtin.Char.toNat builtin.Debug.watch builtin.Doc builtin.Doc.Blob builtin.Doc.Evaluate builtin.Doc.Join builtin.Doc.Link - builtin.Doc.Signature builtin.Doc.Source builtin.Float - builtin.Float.* builtin.Float.+ builtin.Float.- - builtin.Float./ builtin.Float.abs builtin.Float.acos - builtin.Float.acosh builtin.Float.asin builtin.Float.asinh - builtin.Float.atan builtin.Float.atan2 builtin.Float.atanh + builtin.Doc.Signature builtin.Doc.Source builtin.EOF + builtin.Either builtin.Either.Left builtin.Either.Right + builtin.FileMode builtin.FileMode.Append + builtin.FileMode.Read builtin.FileMode.ReadWrite + builtin.FileMode.Write builtin.Float builtin.Float.* + builtin.Float.+ builtin.Float.- builtin.Float./ + builtin.Float.abs builtin.Float.acos builtin.Float.acosh + builtin.Float.asin builtin.Float.asinh builtin.Float.atan + builtin.Float.atan2 builtin.Float.atanh builtin.Float.ceiling builtin.Float.cos builtin.Float.cosh builtin.Float.eq builtin.Float.exp builtin.Float.floor builtin.Float.fromText builtin.Float.gt builtin.Float.gteq @@ -173,7 +181,25 @@ We can also delete the fork if we're done with it. (Don't worry, it's still in t builtin.Float.pow builtin.Float.round builtin.Float.sin builtin.Float.sinh builtin.Float.sqrt builtin.Float.tan builtin.Float.tanh builtin.Float.toText - builtin.Float.truncate builtin.Int builtin.Int.* + builtin.Float.truncate builtin.IO.clientSocket + builtin.IO.closeFile builtin.IO.closeSocket + builtin.IO.createDirectory builtin.IO.fileExists + builtin.IO.forkComp builtin.IO.getBuffering + builtin.IO.getCurrentDirectory builtin.IO.getFileSize + builtin.IO.getFileTimestamp builtin.IO.getLine + builtin.IO.getTempDirectory builtin.IO.getText + builtin.IO.handlePosition builtin.IO.isDirectory + builtin.IO.isFileEOF builtin.IO.isFileOpen + builtin.IO.isSeekable builtin.IO.listen + builtin.IO.openFile builtin.IO.putText + builtin.IO.removeDirectory builtin.IO.removeFile + builtin.IO.renameDirectory builtin.IO.renameFile + builtin.IO.seekHandle builtin.IO.serverSocket + builtin.IO.setBuffering builtin.IO.setCurrentDirectory + builtin.IO.socketAccept builtin.IO.socketReceive + builtin.IO.socketSend builtin.IO.stdHandle + builtin.IO.systemTime builtin.IOError + builtin.IllegalOperation builtin.Int builtin.Int.* builtin.Int.+ builtin.Int.- builtin.Int./ builtin.Int.and builtin.Int.complement builtin.Int.eq builtin.Int.fromText builtin.Int.gt builtin.Int.gteq builtin.Int.increment @@ -199,13 +225,16 @@ We can also delete the fork if we're done with it. (Don't worry, it's still in t builtin.Nat.pow builtin.Nat.shiftLeft builtin.Nat.shiftRight builtin.Nat.sub builtin.Nat.toFloat builtin.Nat.toInt builtin.Nat.toText - builtin.Nat.trailingZeros builtin.Nat.xor builtin.Optional - builtin.Optional.None builtin.Optional.Some - builtin.Request builtin.Test.Result - builtin.Test.Result.Fail builtin.Test.Result.Ok - builtin.Text builtin.Text.!= builtin.Text.++ - builtin.Text.drop builtin.Text.empty builtin.Text.eq - builtin.Text.fromCharList builtin.Text.gt + builtin.Nat.trailingZeros builtin.Nat.xor + builtin.NoSuchThing builtin.Optional builtin.Optional.None + builtin.Optional.Some builtin.PermissionDenied + builtin.Request builtin.ResourceBusy + builtin.ResourceExhausted builtin.SeqView + builtin.SeqView.VElem builtin.SeqView.VEmpty + builtin.Test.Result builtin.Test.Result.Fail + builtin.Test.Result.Ok builtin.Text builtin.Text.!= + builtin.Text.++ builtin.Text.drop builtin.Text.empty + builtin.Text.eq builtin.Text.fromCharList builtin.Text.gt builtin.Text.gteq builtin.Text.lt builtin.Text.lteq builtin.Text.size builtin.Text.take builtin.Text.toCharList builtin.Text.uncons @@ -213,7 +242,8 @@ We can also delete the fork if we're done with it. (Don't worry, it's still in t builtin.Unit builtin.Unit.Unit builtin.Universal.< builtin.Universal.<= builtin.Universal.== builtin.Universal.> builtin.Universal.>= - builtin.Universal.compare builtin.bug builtin.todo + builtin.Universal.compare builtin.UserError builtin.bug + builtin.todo □ #7asfbtqmoj (start of history) diff --git a/unison-src/transcripts/reflog.output.md b/unison-src/transcripts/reflog.output.md index 7cdd015cc..5c28a25d8 100644 --- a/unison-src/transcripts/reflog.output.md +++ b/unison-src/transcripts/reflog.output.md @@ -59,16 +59,16 @@ y = 2 most recent, along with the command that got us there. Try: `fork 2 .old` - `fork #akq10qch4d .old` to make an old namespace + `fork #jm7aftpo4a .old` to make an old namespace accessible again, - `reset-root #akq10qch4d` to reset the root namespace and + `reset-root #jm7aftpo4a` to reset the root namespace and its history to that of the specified namespace. - 1. #c7f5p7bir3 : add - 2. #akq10qch4d : add - 3. #givahf3f6f : builtins.merge + 1. #matsdm7js8 : add + 2. #jm7aftpo4a : add + 3. #1ggq0kemne : builtins.merge 4. #7asfbtqmoj : (initial reflogged namespace) ``` diff --git a/unison-src/transcripts/squash.output.md b/unison-src/transcripts/squash.output.md index 99e0bfea0..a9fb72b18 100644 --- a/unison-src/transcripts/squash.output.md +++ b/unison-src/transcripts/squash.output.md @@ -13,7 +13,7 @@ Let's look at some examples. We'll start with a namespace with just the builtins - □ #huqm38uob6 (start of history) + □ #70ji6gqmer (start of history) .> fork builtin builtin2 @@ -42,21 +42,21 @@ Now suppose we `fork` a copy of builtin, then rename `Nat.+` to `frobnicate`, th Note: The most recent namespace hash is immediately below this message. - ⊙ #sd7g31r8v9 + ⊙ #mgfejr51nc > Moves: Original name New name Nat.frobnicate Nat.+ - ⊙ #d8qganh7nh + ⊙ #2f8m4slvjf > Moves: Original name New name Nat.+ Nat.frobnicate - □ #huqm38uob6 (start of history) + □ #70ji6gqmer (start of history) ``` If we merge that back into `builtin`, we get that same chain of history: @@ -71,21 +71,21 @@ If we merge that back into `builtin`, we get that same chain of history: Note: The most recent namespace hash is immediately below this message. - ⊙ #sd7g31r8v9 + ⊙ #mgfejr51nc > Moves: Original name New name Nat.frobnicate Nat.+ - ⊙ #d8qganh7nh + ⊙ #2f8m4slvjf > Moves: Original name New name Nat.+ Nat.frobnicate - □ #huqm38uob6 (start of history) + □ #70ji6gqmer (start of history) ``` Let's try again, but using a `merge.squash` (or just `squash`) instead. The history will be unchanged: @@ -106,7 +106,7 @@ Let's try again, but using a `merge.squash` (or just `squash`) instead. The hist - □ #huqm38uob6 (start of history) + □ #70ji6gqmer (start of history) ``` The churn that happened in `mybuiltin` namespace ended up back in the same spot, so the squash merge of that namespace with our original namespace had no effect.