flprod fl2 <fl1
If two finite languages are not specified, flprod returns 0. fl1 and fl2 must conform to the Grail format for finite languages.
The product of the two languages is formed by catenated every string in the first language with every string in the second lanuage. The product of a language and the empty language is the empty language. The catenation of a string and the empty string is the first string.
% cat fl1 aa bb % cat fl2 test run % flprod fl1 fl1 aaaa aabb bbaa bbbb % flprod fl1 fl2 aatest bbtest aa bb aarun bbrun