         drop
     ] if ;
 
-: (mp3>id3) ( path -- id3v2/f )
+PRIVATE>
+
+: mp3>id3 ( path -- id3v2/f )
     [
         [ <id3> ] dip
         {

            [ dup id3v1+? [ read-v1+-tags merge-id3v1 ] [ drop ] if ]
            [ dup id3v2? [ read-v2-tags ] [ drop ] if ]
        } cleave
    ] with-mapped-uchar-file ;

PRIVATE>

: mp3>id3 ( path -- id3/f )
    dup file-info size>> 0 <= [ drop f ] [ (mp3>id3) ] if ;

: find-id3-frame ( id3 name -- obj/f )
    swap frames>> at* [ data>> ] when ;

io.encodings.string io.encodings.utf16 assocs math.parser
combinators.short-circuit fry namespaces combinators.smart
splitting io.encodings.ascii arrays io.files.info unicode.case
io.directories.search literals math.functions continuations ;
IN: id3

<PRIVATE
