packages feed

language-ocaml-0.1.31: test/Language/OCaml/Parser/LetBinding/Test.hs

{-# LANGUAGE QuasiQuotes #-}

module Language.OCaml.Parser.LetBinding.Test
  ( testStrings
  ) where

import Data.String.Interpolate

import qualified Language.OCaml.Parser.ExtAttributes.Test as ExtAttributes
import qualified Language.OCaml.Parser.LetBindingBody.Test as LetBindingBody
import qualified Language.OCaml.Parser.Payload.Test as Payload
import qualified Language.OCaml.Parser.PostItemAttributes.Test as PostItemAttributes
import qualified Language.OCaml.Parser.RecFlag.Test as RecFlag

limit :: Int
limit = 10

testStrings :: [String] -> [String]
testStrings structure = []
  ++ [ [i| let #{ea} #{rf} #{lbb} #{pia} |]
       | ea <- extAttributes
       , rf <- recFlag
       , lbb <- letBindingBody
       , pia <- postItemAttributes
       ]
  where
    extAttributes      = take limit $ ExtAttributes.testStrings
    recFlag            = take limit $ RecFlag.testStrings
    letBindingBody     = take limit $ LetBindingBody.testStrings
    payload            = take limit $ Payload.testStrings structure
    postItemAttributes = take limit $ PostItemAttributes.testStrings payload