-- $Id: back_prop_opt_fast.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 = x A2B 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 = CONS y CONS y CONS y CONS y CONS y CONS y CONS y CONS y CONS y CONS y NIL
CONS B CONS B CONS B CONS B CONS B CONS B CONS B CONS B CONS B CONS B NIL