atom(1/2) => false part(1/2,0) => / args(1/2) => [1,2] length(1/2) => 2 So far, so good. But map(print,1/2) => error Shouldn't part and args be consistent with map? -s