Nussinov78- Nussinov78 using the ADPfusion library.

Safe HaskellNone





type Signature m a r = (() -> a, Char -> a -> a, a -> Char -> a, Char -> a -> Char -> a, a -> a -> a, Stream m a -> m r)Source

gNussinov :: (Monad m, Build x, Build b, Build b1, Build (TransTo b1), StreamElement (BuildStack x), StreamElement (:. (BuildStack b) b1), StreamElement (:. (BuildStack b1) b), StreamElement (:. (:. (BuildStack b) b1) b), StreamElement (:. (BuildStack (TransTo b1)) (TransTo b1)), MkStream m (BuildStack x), MkStream m (:. (BuildStack b) b1), MkStream m (:. (BuildStack b1) b), MkStream m (:. (:. (BuildStack b) b1) b), MkStream m (:. (BuildStack (TransTo b1)) (TransTo b1)), TransToN b1, Apply (StreamArg (BuildStack x) -> a), Apply (StreamArg (:. (BuildStack b) b1) -> a), Apply (StreamArg (:. (BuildStack b1) b) -> a), Apply (StreamArg (:. (:. (BuildStack b) b1) b) -> a), Apply (StreamArg (:. (BuildStack (TransTo b1)) (TransTo b1)) -> a)) => (Fun (StreamArg (BuildStack x) -> a), Fun (StreamArg (:. (BuildStack b) b1) -> a), Fun (StreamArg (:. (BuildStack b1) b) -> a), Fun (StreamArg (:. (:. (BuildStack b) b1) b) -> a), Fun (StreamArg (:. (BuildStack (TransTo b1)) (TransTo b1)) -> a), Stream m a -> t) -> b1 -> b -> x -> (b1, (Int, Int) -> t)Source

type CombSignature m e b = (() -> (e, m (Stream m b)), Char -> (e, m (Stream m b)) -> (e, m (Stream m b)), (e, m (Stream m b)) -> Char -> (e, m (Stream m b)), Char -> (e, m (Stream m b)) -> Char -> (e, m (Stream m b)), (e, m (Stream m b)) -> (e, m (Stream m b)) -> (e, m (Stream m b)), Stream m (e, m (Stream m b)) -> m (Stream m b))Source

(<**) :: (Monad m, Eq b, Eq e, Show e, Show (m [b])) => Signature m e e -> Signature m b (Stream m b) -> CombSignature m e bSource

Boilerplate and driver, will be moved to library

fillTable :: PrimMonad m => (MTbl E (MArr0 (PrimState m) DIM2 Int), (Int, Int) -> m Int) -> m ()Source