expression' :: ExpressionVariant -> Gen Expression
expression' variant = frequency $
    [ (1, FunctionApp <$> expression' NonLiteral <*> resize 4 (listOf1 arbitrary))
    , (3, Identifier <$> rightIdentifier) ]
    ++ case variant of WithLiterals -> [ (3, IntLiteral <$> positiveNum)
                                       , (3, DoubleLiteral <$> positiveNum)
                                       , (3, StringLiteral <$> arbitrary) ]
                       _            -> []
expression' :: ExpressionVariant -> Gen Expression
expression' variant = frequency $
    [ (1, FunctionApp <$> expression' NonLiteral <*> resize 4 (listOf1 arbitrary))
    , (3, Identifier <$> rightIdentifier) ]
    ++ case variant of WithLiterals -> [ (3, IntLiteral <$> positiveNum)
                                       , (3, DoubleLiteral <$> positiveNum)
                                       , (3, StringLiteral <$> arbitrary) ]
                       _            -> []
expression' variant = frequency $
    [ (1, FunctionApp <$> expression' NonLiteral <*> resize 4 (listOf1 arbitrary))
    , (3, Identifier <$> rightIdentifier) ]
    ++ case variant of WithLiterals -> [ (3, IntLiteral <$> positiveNum)
                                       , (3, DoubleLiteral <$> positiveNum)
                                       , (3, StringLiteral <$> arbitrary) ]
                       _            -> []