forked from GitHub/gf-core
Split widesnake example. Changed examples to use rec and sig keywords.
This commit is contained in:
19
transfer/examples/widesnake.tr
Normal file
19
transfer/examples/widesnake.tr
Normal file
@@ -0,0 +1,19 @@
|
||||
import bool
|
||||
import stoneage
|
||||
|
||||
monoid_Bool : sig { zero : Bool; plus : Bool -> Bool -> Bool }
|
||||
monoid_Bool = rec
|
||||
zero = False
|
||||
plus = \x -> \y -> x && y
|
||||
|
||||
isSnake : (A : Tree) -> Tree A -> Bool
|
||||
isSnake _ x = case x of
|
||||
Snake -> True
|
||||
_ -> composFold_Tree Bool monoid_Bool ? isSnake x
|
||||
|
||||
wideSnake : (A : Cat) -> Tree A -> Tree A
|
||||
wideSnake _ x = case x of
|
||||
Wide y -> let y' : CN = wideSnake ? y
|
||||
in if isSnake CN y' then Thick y' else Wide y'
|
||||
_ -> composOp_Tree ? wideSnake x
|
||||
|
||||
Reference in New Issue
Block a user