@@ -26,7 +26,7 @@ module which defines a binary tree type ``BTree`` (in a file
2626
2727 toList : BTree a -> List a
2828 toList Leaf = []
29− toList (Node l v r) = btree.toList l ++ (v :: btree.toList r)
29+ toList (Node l v r) = Btree.toList l ++ (v :: Btree.toList r)
3030
3131 toTree : Ord a => List a -> BTree a
3232 toTree [] = Leaf
@@ -44,7 +44,7 @@ Then, this gives a main program (in a file
4444
4545 main : IO ()
4646 main = do let t = toTree [1,8,2,7,9,3]
47− print (btree.toList t)
47+ print (Btree.toList t)
4848
4949
5050
@@ -118,7 +118,7 @@ functions to be exported as ``abstract``, as we see below:
118118 abstract
119119 toList : BTree a -> List a
120120 toList Leaf = []
121− toList (Node l v r) = btree.toList l ++ (v :: btree.toList r)
121+ toList (Node l v r) = Btree.toList l ++ (v :: Btree.toList r)
122122
123123 abstract
124124 toTree : Ord a => List a -> BTree a
@@ -128,6 +128,28 @@ functions to be exported as ``abstract``, as we see below:
128128Finally, the default export mode can be changed with the ``%access``
129129directive, for example:
130130
131+.. code-block:: idris
132+
133+ module Btree
134+
135+ %access abstract
136+
137+ data BTree a = Leaf
138+ | Node (BTree a) a (BTree a)
139+
140+ insert : Ord a => a -> BTree a -> BTree a
141+ insert x Leaf = Node Leaf x Leaf
142+ insert x (Node l v r) = if (x < v) then (Node (insert x l) v r)
143+ else (Node l v (insert x r))
144+
145+ toList : BTree a -> List a
146+ toList Leaf = []
147+ toList (Node l v r) = Btree.toList l ++ (v :: Btree.toList r)
148+
149+ toTree : Ord a => List a -> BTree a
150+ toTree [] = Leaf
151+ toTree (x :: xs) = insert x (toTree xs)
152+
131153In this case, any function with no access modifier will be exported as
132154``abstract``, rather than left ``private``.
133155