-- $Id: back_prop_slow.xsg,v 1.5 2004/03/31 13:51:15 orlov Exp $ data Char = A | B | C | D data String = NIL | CONS Char String data Int = O | I Int F :: String -> String String F x = A2B x x A2B :: String -> String A2B NIL = NIL A2B CONS A xs = CONS B A2B xs A2B CONS x xs = CONS x A2B xs G :: Int Char -> String String G n y = Replicate n B Replicate n y Repeat :: Char -> String Repeat x = CONS x Repeat x Take :: Int String -> String Take O _ = NIL Take I n CONS x xs = CONS x Take n xs Replicate :: Int Char -> String Replicate n x = Take n Repeat x