46 5 2005 5 564 n 1 4 4 -1 5 n data data DumbTree = Empty | Fork DumbTree DumbTree data DumbTree Empty ( ) 2 DumbTree Fork nobsun@sampou.org IPSJ Magazine Vol.46 No.5 May 2005 565 DumbTree ( ) Empty Fork ( ) -- trees (>0)DumbTree trees :: Int -> [DumbTree] trees 1 = [Empty] trees n = concat [ joins ls rs | (ls,rs) <- [ lrs xs ys | (xs,ys) <- splits1 n ]] -- splits1 (>0)(>0)2 splits1 :: Int -> [(In