module Autolib.Util.Factor where

-- -- $Id$

import Data.List ( tails, isPrefixOf )

factor :: Eq a => [a] -> [a] -> Bool
factor :: forall a. Eq a => [a] -> [a] -> Bool
factor [a]
x [a]
y = [Bool] -> Bool
forall (t :: * -> *). Foldable t => t Bool -> Bool
or ([Bool] -> Bool) -> [Bool] -> Bool
forall a b. (a -> b) -> a -> b
$ do
    z <- [a] -> [[a]]
forall a. [a] -> [[a]]
tails [a]
y
    return $ isPrefixOf x z