         ! [fortran-invoke]
         [
             c:void "funpack" "fun_times_"
-            { c:char* long c:char* c:void* c:char* c:long c:long } 
+            { pointer: { c:char 10 } long pointer: { c:char 20 } pointer: c:float pointer: { c:char 30 } c:long c:long } 
             alien-invoke
         ] 7 nkeep
         ! [fortran-results>]

    [ { c:char 1 } ]
    [ "character(1)" fortran-type>c-type ] unit-test

    [ c:char* { c:long } ]
    [ "character" fortran-arg-type>c-type ] unit-test

    [ c:void { c:char* c:long } ]
    [ "character" fortran-ret-type>c-type ] unit-test

    [ c:double { } ]
    [ "real" fortran-ret-type>c-type ] unit-test

    [ c:void { void* } ]
    [ "real(*)" fortran-ret-type>c-type ] unit-test

    [ "fun_" ] [ "FUN" fortran-name>symbol-name ] unit-test

        ! [fortran-invoke]
        [
            c:void "funpack" "fun_times_"
            { pointer: { c:char 20 } long } 
            alien-invoke
        ] 2 nkeep
        ! [fortran-results>]
