Skip to content

Commit 28eb811

Browse files
committed
[ compat ] with current Idris
1 parent b401de0 commit 28eb811

File tree

38 files changed

+325
-129
lines changed

38 files changed

+325
-129
lines changed

Code/Lecture1/Core/Core.idr

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,10 @@ export %inline
5656
map : (a -> b) -> Core a -> Core b
5757
map f (MkCore a) = MkCore (map (map f) a)
5858

59+
export %inline
60+
ignore : Core a -> Core ()
61+
ignore = map (\ _ => ())
62+
5963
export %inline
6064
(<$>) : (a -> b) -> Core a -> Core b
6165
(<$>) f (MkCore a) = MkCore (map (map f) a)
@@ -69,6 +73,11 @@ export %inline
6973
Left err => pure (Left err)
7074
Right val => runCore (f val)))
7175

76+
-- Monad (specialised)
77+
export %inline
78+
(>>) : Core () -> Core b -> Core b
79+
ma >> mb = ma >>= \ () => mb
80+
7281
-- Applicative (specialised)
7382
export %inline
7483
pure : a -> Core a
@@ -111,7 +120,7 @@ traverse f xs = traverse' f xs []
111120

112121
export
113122
traverseList1 : (a -> Core b) -> List1 a -> Core (List1 b)
114-
traverseList1 f (x :: xs) = [| f x :: traverse f xs |]
123+
traverseList1 f (x ::: xs) = [| f x ::: traverse f xs |]
115124

116125
export
117126
traverseVect : (a -> Core b) -> Vect n a -> Core (Vect n b)
@@ -124,15 +133,15 @@ traverseOpt f Nothing = pure Nothing
124133
traverseOpt f (Just x) = map Just (f x)
125134

126135
export
127-
traverse_ : (a -> Core b) -> List a -> Core ()
136+
traverse_ : (a -> Core ()) -> List a -> Core ()
128137
traverse_ f [] = pure ()
129138
traverse_ f (x :: xs)
130139
= do f x
131140
traverse_ f xs
132141

133142
export
134-
traverseList1_ : (a -> Core b) -> List1 a -> Core ()
135-
traverseList1_ f (x :: xs) = do
143+
traverseList1_ : (a -> Core ()) -> List1 a -> Core ()
144+
traverseList1_ f (x ::: xs) = do
136145
f x
137146
traverse_ f xs
138147

Code/Lecture1/lecture1.ipkg

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,14 @@
11
package lecture1
22

33
opts = "-p contrib"
4+
5+
modules
6+
= Ref
7+
, Search
8+
, QTT
9+
, WarmupExercise.Ex2
10+
, WarmupExercise.Ex1
11+
, WarmupExercise.Ex3
12+
, RLE
13+
, Append
14+
, Core.Core

Code/Lecture2/Core/TT.idr

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ nameAt : {vars : _} ->
152152
nameAt {vars = n :: ns} Z First = n
153153
nameAt {vars = n :: ns} (S k) (Later p) = nameAt k p
154154

155-
export
155+
export
156156
{vars : _} -> Show (Term vars) where
157157
show tm = let (fn, args) = getFnArgs tm in showApp fn args
158158
where

Code/Lecture2/lecture2.ipkg

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
11
package lecture1
22

33
opts = "-p contrib"
4+
5+
6+
modules
7+
= Ref
8+
, Core.CaseTree
9+
, Core.TT
10+
, Core.Core

Code/Lecture3/TinyIdris-v1/src/Core/Core.idr

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,11 @@ export %inline
9898
map : (a -> b) -> Core a -> Core b
9999
map f (MkCore a) = MkCore (map (map f) a)
100100

101+
-- Functor (specialised)
102+
export %inline
103+
ignore : Core a -> Core ()
104+
ignore = map (\ _ => ())
105+
101106
export %inline
102107
(<$>) : (a -> b) -> Core a -> Core b
103108
(<$>) f (MkCore a) = MkCore (map (map f) a)
@@ -111,6 +116,11 @@ export %inline
111116
Left err => pure (Left err)
112117
Right val => runCore (f val)))
113118

119+
-- Monad (specialised)
120+
export %inline
121+
(>>) : Core () -> Core b -> Core b
122+
ma >> mb = ma >>= \ () => mb
123+
114124
-- Applicative (specialised)
115125
export %inline
116126
pure : a -> Core a
@@ -153,7 +163,7 @@ traverse f xs = traverse' f xs []
153163

154164
export
155165
traverseList1 : (a -> Core b) -> List1 a -> Core (List1 b)
156-
traverseList1 f (x :: xs) = [| f x :: traverse f xs |]
166+
traverseList1 f (x ::: xs) = [| f x ::: traverse f xs |]
157167

158168
export
159169
traverseVect : (a -> Core b) -> Vect n a -> Core (Vect n b)
@@ -166,15 +176,15 @@ traverseOpt f Nothing = pure Nothing
166176
traverseOpt f (Just x) = map Just (f x)
167177

168178
export
169-
traverse_ : (a -> Core b) -> List a -> Core ()
179+
traverse_ : (a -> Core ()) -> List a -> Core ()
170180
traverse_ f [] = pure ()
171181
traverse_ f (x :: xs)
172182
= do f x
173183
traverse_ f xs
174184

175185
export
176-
traverseList1_ : (a -> Core b) -> List1 a -> Core ()
177-
traverseList1_ f (x :: xs) = do
186+
traverseList1_ : (a -> Core ()) -> List1 a -> Core ()
187+
traverseList1_ f (x ::: xs) = do
178188
f x
179189
traverse_ f xs
180190

Code/Lecture3/TinyIdris-v1/src/Core/Env.idr

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ revOnto xs [] = Refl
1313
revOnto xs (v :: vs)
1414
= rewrite revOnto (v :: xs) vs in
1515
rewrite appendAssociative (reverse vs) [v] xs in
16-
rewrite revOnto [v] vs in Refl
16+
rewrite revOnto [v] vs in Refl
1717

1818
revNs : (vs, ns : List a) -> reverse ns ++ reverse vs = reverse (vs ++ ns)
1919
revNs [] ns = rewrite appendNilRightNeutral (reverse ns) in Refl

Code/Lecture3/TinyIdris-v1/src/Core/TT.idr

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ data Term : List Name -> Type where
125125
Erased : Term vars
126126

127127
public export
128-
interface Weaken (tm : List Name -> Type) where
128+
interface Weaken (0 tm : List Name -> Type) where
129129
weaken : {n, vars : _} -> tm vars -> tm (n :: vars)
130130
weakenNs : {vars : _} -> (ns : List Name) -> tm vars -> tm (ns ++ vars)
131131

@@ -384,7 +384,7 @@ nameAt : {vars : _} ->
384384
nameAt {vars = n :: ns} Z First = n
385385
nameAt {vars = n :: ns} (S k) (Later p) = nameAt k p
386386

387-
export
387+
export
388388
{vars : _} -> Show (Term vars) where
389389
show tm = let (fn, args) = getFnArgs tm in showApp fn args
390390
where

Code/Lecture3/TinyIdris-v1/src/Parser/Lexer/Package.idr

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ Show Token where
2727
show (Comment str) = "Comment: " ++ str
2828
show EndOfInput = "EndOfInput"
2929
show Equals = "Equals"
30-
show (DotSepIdent dsid) = "DotSepIdentifier: " ++ dotSep (List1.toList dsid)
30+
show (DotSepIdent dsid) = "DotSepIdentifier: " ++ dotSep (forget dsid)
3131
show Separator = "Separator"
3232
show Space = "Space"
3333
show (StringLit s) = "StringLit: " ++ s

Code/Lecture3/TinyIdris-v1/src/Parser/Lexer/Source.idr

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ Show Token where
4646
-- Identifiers
4747
show (HoleIdent x) = "hole identifier " ++ x
4848
show (Ident x) = "identifier " ++ x
49-
show (DotSepIdent xs) = "namespaced identifier " ++ dotSep (List1.toList $ reverse xs)
49+
show (DotSepIdent xs) = "namespaced identifier " ++ dotSep (forget $ reverse xs)
5050
show (DotIdent x) = "dot+identifier " ++ x
5151
show (Symbol x) = "symbol " ++ x
5252
-- Comments
@@ -222,7 +222,7 @@ rawTokens =
222222
else Ident x
223223
parseNamespace : String -> Token
224224
parseNamespace ns = case List1.reverse . split (== '.') $ ns of
225-
[ident] => parseIdent ident
225+
(ident ::: []) => parseIdent ident
226226
ns => DotSepIdent ns
227227

228228
export

Code/Lecture3/TinyIdris-v1/src/Parser/Rule/Package.idr

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ export
3434
exactProperty : String -> Rule String
3535
exactProperty p = terminal ("Expected property " ++ p)
3636
(\x => case tok x of
37-
DotSepIdent [p'] =>
37+
DotSepIdent (p' ::: []) =>
3838
if p == p' then Just p
3939
else Nothing
4040
_ => Nothing)
@@ -64,7 +64,7 @@ export
6464
packageName : Rule String
6565
packageName = terminal "Expected package name"
6666
(\x => case tok x of
67-
DotSepIdent [str] =>
67+
DotSepIdent (str ::: []) =>
6868
if isIdent AllowDashes str then Just str
6969
else Nothing
7070
_ => Nothing)

Code/Lecture3/TinyIdris-v1/src/Parser/Rule/Source.idr

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ namespacedIdent
124124
= terminal "Expected namespaced name"
125125
(\x => case tok x of
126126
DotSepIdent ns => Just ns
127-
Ident i => Just [i]
127+
Ident i => Just (i ::: [])
128128
_ => Nothing)
129129

130130
export
@@ -133,7 +133,7 @@ moduleIdent
133133
= terminal "Expected module identifier"
134134
(\x => case tok x of
135135
DotSepIdent ns => Just ns
136-
Ident i => Just [i]
136+
Ident i => Just (i ::: [])
137137
_ => Nothing)
138138

139139
export

Code/Lecture3/TinyIdris-v1/src/TTImp/Parser.idr

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ collectDefs : List ImpDecl -> List ImpDecl
3333

3434
%hide Prelude.(>>=)
3535
%hide Core.Core.(>>=)
36+
%hide Prelude.(>>)
37+
%hide Core.Core.(>>)
3638
%hide Prelude.pure
3739
%hide Core.Core.pure
3840

Code/Lecture3/TinyIdris-v1/src/Text/Literate.idr

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ module Text.Literate
2626
import Text.Lexer
2727

2828
import Data.List
29+
import Data.List1
2930
import Data.List.Views
3031
import Data.Strings
3132

@@ -68,7 +69,7 @@ reduce (MkToken _ _ _ _ (Any x) :: rest) acc = reduce rest (blank_content::acc)
6869
where
6970
-- Preserve the original document's line count.
7071
blank_content : String
71-
blank_content = fastAppend (replicate (length (lines x)) "\n")
72+
blank_content = fastAppend (replicate (length (forget $ lines x)) "\n")
7273

7374
reduce (MkToken _ _ _ _ (CodeLine m src) :: rest) acc =
7475
if m == trim src
@@ -79,10 +80,9 @@ reduce (MkToken _ _ _ _ (CodeLine m src) :: rest) acc =
7980
)::acc)
8081

8182
reduce (MkToken _ _ _ _ (CodeBlock l r src) :: rest) acc with (lines src) -- Strip the deliminators surrounding the block.
82-
reduce (MkToken _ _ _ _ (CodeBlock l r src) :: rest) acc | [] = reduce rest acc -- 1
83-
reduce (MkToken _ _ _ _ (CodeBlock l r src) :: rest) acc | (s :: ys) with (snocList ys)
84-
reduce (MkToken _ _ _ _ (CodeBlock l r src) :: rest) acc | (s :: []) | Empty = reduce rest acc -- 2
85-
reduce (MkToken _ _ _ _ (CodeBlock l r src) :: rest) acc | (s :: (srcs ++ [f])) | (Snoc f srcs rec) =
83+
reduce (MkToken _ _ _ _ (CodeBlock l r src) :: rest) acc | (s ::: ys) with (snocList ys)
84+
reduce (MkToken _ _ _ _ (CodeBlock l r src) :: rest) acc | (s ::: []) | Empty = reduce rest acc -- 2
85+
reduce (MkToken _ _ _ _ (CodeBlock l r src) :: rest) acc | (s ::: (srcs ++ [f])) | (Snoc f srcs rec) =
8686
reduce rest ("\n" :: unlines srcs :: acc)
8787

8888
-- [ NOTE ] 1 & 2 shouldn't happen as code blocks are well formed i.e. have two deliminators.

Code/Lecture3/TinyIdris-v1/src/Text/Parser.idr

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ optional p = option Nothing (map Just p)
4141
||| which option succeeded. If both would succeed, the left option
4242
||| takes priority.
4343
export
44-
choose : {c1, c2 : Bool} ->
44+
choose : {c1, c2 : Bool} ->
4545
(l : Grammar tok c1 a) ->
4646
(r : Grammar tok c2 b) ->
4747
Grammar tok (c1 && c2) (Either a b)
@@ -64,7 +64,7 @@ choiceMap {c} f xs = foldr (\x, acc => rewrite sym (andSameNeutral c) in
6464
||| Try each grammar in a container until the first one succeeds.
6565
||| Fails if the container is empty.
6666
export
67-
choice : Foldable t =>
67+
choice : Foldable t =>
6868
{c : Bool} ->
6969
t (Grammar tok c a) ->
7070
Grammar tok c a

0 commit comments

Comments
 (0)