On my "still" prefered platform (nars2000) '⎕fmt var' is equivalent to the gnu apl '8 ⎕cr var'
but on that platform ⎕fmt gives more info and this is probably not hard to implement also into gnu apl. here some examples in nars2000 a←⍳10 ⎕fmt a ┌10──────────────────┐ │1 2 3 4 5 6 7 8 9 10│ └~───────────────────┘ ⍝ the '~' indicate it is an array of numbers, chars would be the usual '─' ⍝ the '10' is the size b←3 3 ⍴⍳9 ⎕fmt b ┌3────┐ 31 2 3│ │4 5 6│ │7 8 9│ └~────┘ ⎕fmt a b ┌2─────────────────────────────┐ │┌10──────────────────┐ ┌3────┐│ ││1 2 3 4 5 6 7 8 9 10│ 31 2 3││ │└~───────────────────┘ │4 5 6││ │ │7 8 9││ │ └~────┘2 └∊─────────────────────────────┘ ⍝ the '∊' indicate an agregate ⍝ the '2' at rightmost is the '≡' (i think) c←3 3 3 ⍴ 'abcdefghijklmnopqrstuvwxyz0' ⎕fmt c ┌┬3──┐ 33abc│ ││def│ ││ghi│ ││ │ ││jkl│ ││mno│ ││pqr│ ││ │ ││stu│ ││vwx│ ││yz0│ └┴───┘ ⍝ above, it says it is a 3 dimentioanl array of type 'char' d←3 3 3 ⍴ ⍳27 ⎕fmt d ┌┬3───────┐ 33 1 2 3│ ││ 4 5 6│ ││ 7 8 9│ ││ │ ││10 11 12│ ││13 14 15│ ││16 17 18│ ││ │ ││19 20 21│ ││22 23 24│ ││25 26 27│ └┴~───────┘ ⍝ above it says it is a 3 dimentioanl array of type 'numbers' e←(a b c d) ⎕fmt e ┌4────────────────────────────────────────────────┐ │┌10──────────────────┐ ┌3────┐ ┌┬3──┐ ┌┬3───────┐│ ││1 2 3 4 5 6 7 8 9 10│ 31 2 3│ 33abc│ 33 1 2 3││ │└~───────────────────┘ │4 5 6│ ││def│ ││ 4 5 6││ │ │7 8 9│ ││ghi│ ││ 7 8 9││ │ └~────┘ ││ │ ││ ││ │ ││jkl│ ││10 11 12││ │ ││mno│ ││13 14 15││ │ ││pqr│ ││16 17 18││ │ ││ │ ││ ││ │ ││stu│ ││19 20 21││ │ ││vwx│ ││22 23 24││ │ ││yz0│ ││25 26 27││ │ └┴───┘ └┴~───────┘2 └∊────────────────────────────────────────────────┘ ⍝ above, an agregate of 4 things f←e e ⎕fmt f ┌2──────────────────────────────────────────────────────────────────────────────────────────────────────┐ │┌4────────────────────────────────────────────────┐ ┌4────────────────────────────────────────────────┐│ ││┌10──────────────────┐ ┌3────┐ ┌┬3──┐ ┌┬3───────┐│ │┌10──────────────────┐ ┌3────┐ ┌┬3──┐ ┌┬3───────┐││ │││1 2 3 4 5 6 7 8 9 10│ 31 2 3│ 33abc│ 33 1 2 3││ ││1 2 3 4 5 6 7 8 9 10│ 31 2 3│ 33abc│ 33 1 2 3│││ ││└~───────────────────┘ │4 5 6│ ││def│ ││ 4 5 6││ │└~───────────────────┘ │4 5 6│ ││def│ ││ 4 5 6│││ ││ │7 8 9│ ││ghi│ ││ 7 8 9││ │ │7 8 9│ ││ghi│ ││ 7 8 9│││ ││ └~────┘ ││ │ ││ ││ │ └~────┘ ││ │ ││ │││ ││ ││jkl│ ││10 11 12││ │ ││jkl│ ││10 11 12│││ ││ ││mno│ ││13 14 15││ │ ││mno│ ││13 14 15│││ ││ ││pqr│ ││16 17 18││ │ ││pqr│ ││16 17 18│││ ││ ││ │ ││ ││ │ ││ │ ││ │││ ││ ││stu│ ││19 20 21││ │ ││stu│ ││19 20 21│││ ││ ││vwx│ ││22 23 24││ │ ││vwx│ ││22 23 24│││ ││ ││yz0│ ││25 26 27││ │ ││yz0│ ││25 26 27│││ ││ └┴───┘ └┴~───────┘2 │ └┴───┘ └┴~───────┘2│ │└∊────────────────────────────────────────────────┘ └∊────────────────────────────────────────────────┘3 └∊──────────────────────────────────────────────────────────────────────────────────────────────────────┘ Thoses informations are particuliarly usefull for everyone testing/developping and the actual ]boxing 8 (and 8 ⎕cr) function already know thoses values (size, rank, types, ...), so they can plug the info into the *actual* boxes. I dont mind if you update the actual behavior or define a new set of ⎕cr function number or rather define a quite new ⎕fmt to do this. It is quite missing. my 2 cents, (would love to see something like that into gnuapl) Xtian.