P Pr Pre Pref Prefi Prefix Prefixe Prefixes
Haskell, 20 bytes

Edit: Yet a byte shorter with a completely different scan.

An anonymous function slightly beating the trivial import.



scanr(\_-&gt;init)=&lt;&lt;id


Try it online!


Uses =&lt;&lt; for the abbreviation (scanr(\_-&gt;init)=&lt;&lt;id) l = scanr(\_-&gt;init) l l.
Scans a list l from right to left, collecting intermediate results with the function \_-&gt;init.
That function ignores the elements scanned through (they're only used to get the right total length for the collected results), so really iterates applying init to the initial value of the scan, which is also l.